The sql_ generics are used to build the different types of SQL queries.
The default implementations in dbplyr generates ANSI 92 compliant SQL.
The db_ generics execute actions on the database. The default
implementations in dbplyr typically just call the standard DBI S4
method.
db_desc(x) sql_translate_env(con) db_list_tables(con) db_has_table(con, table) db_data_type(con, fields) db_save_query(con, sql, name, temporary = TRUE, ...) db_begin(con, ...) db_commit(con, ...) db_rollback(con, ...) db_write_table(con, table, types, values, temporary = FALSE, ...) db_create_table(con, table, types, temporary = FALSE, ...) db_insert_into(con, table, values, ...) db_create_indexes(con, table, indexes = NULL, unique = FALSE, ...) db_create_index(con, table, columns, name = NULL, unique = FALSE, ...) db_drop_table(con, table, force = FALSE, ...) db_analyze(con, table, ...) db_explain(con, sql, ...) db_query_fields(con, sql, ...) db_query_rows(con, sql, ...) sql_select(con, select, from, where = NULL, group_by = NULL, having = NULL, order_by = NULL, limit = NULL, distinct = FALSE, ...) sql_subquery(con, from, name = random_table_name(), ...) sql_join(con, x, y, vars, type = "inner", by = NULL, ...) sql_semi_join(con, x, y, anti = FALSE, by = NULL, ...) sql_set_op(con, x, y, method) sql_escape_string(con, x) sql_escape_ident(con, x)
| con | A database connection. |
|---|---|
| table | A string, the table name. |
| fields | A list of fields, as in a data frame. |
Usually a logical value indicating success. Most failures should generate
an error. However, db_has_table() should return NA if
temporary tables cannot be listed with DBI::dbListTables() (due to backend
API limitations for example). As a result, you methods will rely on the
backend to throw an error if a table exists when it shouldn't.
A few backend methods do not call the standard DBI S4 methods including
db_data_type(): Calls DBI::dbDataType() for every field
(e.g. data frame column) and returns a vector of corresponding SQL data
types
db_save_query(): Builds and executes a
CREATE [TEMPORARY] TABLE <table> ... SQL command.
db_create_index(): Builds and executes a
CREATE INDEX <name> ON <table> SQL command.
db_drop_table(): Builds and executes a
DROP TABLE [IF EXISTS] <table> SQL command.
db_analyze(): Builds and executes an
ANALYZE <table> SQL command.
Currently, copy_to() is the only user of db_begin(), db_commit(),
db_rollback(), db_write_table(), db_create_indexes(), db_drop_table() and
db_analyze(). If you find yourself overriding many of these
functions it may suggest that you should just override copy_to()
instead.
db_create_table() and db_insert_into() have been deprecated
in favour of db_write_table().