Fixed a bug (Issue #6) where x[y] did not return the reference result when x contains a WHERE clause.
Evaluation of special functions (e.g., %in%) now RDBMS specific.
.(name = symbol) to the on arguement in the extract ([) method. Thanks to @SugarRayLua for reporting the issue.as_cte was putting the CTEs in the wrong order when the input already included a CTE. This caused DuckDB >= 1.4.0 to bork.RDBMS-specific functions are now generic and existing code has been moved to methods. Methods are provided for RMariaDB, RPostgres, RSQLite, duckdb, and Microsoft SQL Server. The default methods rely on DBI alone and should provide basic functionality where DBI is fully implemented.
data.table-style keys are partially implemented. A key can be specified when creating a dbi.table. dbi.tables created by dbi.catalog (and dbi.attach) use the table's primary key as the default.
The column naming scheme for relational merge (i.e., merge(x)) has been changed.
dbi.tables in schemas are now implemented as active bindings so that data.table's setcolorder does not change their column order.
In reference.test, when the output of all.equal is not TRUE and verbose = TRUE, the format of the message now matches print(all.equal(...)). Thanks to @MichaelChirico for the report and fix.