Upstream changes:
DBI 1.1.1 (2021-01-04)
Documentation
Expand "Get started" vignette to two tutorials, basic and advanced (#332, @jawond).
Bug fixes
dbAppendTable() now allows columns named sep (#336).
dbAppendTable() shows a better error message if the input has zero columns (#313).
sqlInterpolate() now correctly interprets consecutive comments (#329, @rnorberg).
dbQuoteLiteral() works for difftime objects (#325).
dbQuoteLiteral() quotes dates as YYYY-MM-DD without time zone (#331).
Internal
Switch to GitHub Actions (#326).
Update URL in DESCRIPTION.
# DBI 1.1.0
## New features
- New `DBIConnector` class (#280).
- Specify `immediate` argument to `dbSendQuery()`, `dbGetQuery()`,
`dbSendStatement()` and `dbExecute()` (#268).
- Use specification for `dbGetInfo()` (#271).
- `dbUnquoteIdentifier()` now supports `Id()` objects with `catalog`
members (#266, @raffscallion). It also handles unquoted identifiers
of the form `table`, `schema.table` or `catalog.schema.table`, for
compatibility with dbplyr.
## Documentation
- New DBI intro article (#286, @cutterkom).
- Add pkgdown reference index (#288).
- DBI specification on https://dbi.r-dbi.org/dev/articles/spec now
comes with a table of contents and code formatting.
- Update examples to refer to `params` instead of `param` (#235).
- Improved documentation for `sqlInterpolate()` (#100). Add usage of
`SQL()` to `sqlInterpolate()` examples (#259, @renkun-ken).
- Improve documentation for `Id`.
## Internal
- Add tests for `dbUnquoteIdentifier()` (#279, @baileych).
- `sqlInterpolate()` uses `dbQuoteLiteral()` instead of checking the
type of the input.
- Avoid partial argument match in `dbWriteTable()` (#246, @richfitz).
Changes:
- New dbAppendTable() that by default calls sqlAppendTableTemplate()
and then dbExecute() with a param argument, without support for
row.names argument.
- New dbCreateTable() that by default calls sqlCreateTable() and then
dbExecute(), without support for row.names argument.
- New dbCanConnect() generic with default implementation.
- New dbIsReadOnly() generic with default implementation.
- sqlAppendTable() now accepts lists for the values argument, to
support lists of SQL objects in R 3.1.
- Add default implementation for dbListFields(DBIConnection, Id), this
relies on dbQuoteIdentifier(DBIConnection, Id).
- Documentation updates and ug fixes.
Notable changes since 0.7.0:
- SQL() now strips the names from the output if the names argument is
unset.
- The dbReadTable(), dbWriteTable(), dbExistsTable(), dbRemoveTable(),
and dbListFields() generics now specialize over the first two
arguments to support implementations with the Id S4 class as type
for the second argument. Some packages may need to update their
documentation to satisfy R CMD check again.
- Schema support: Export Id(), new generics dbListObjects() and
dbUnquoteIdentifier(), methods for Id that call dbQuoteIdentifier()
and then forward.
- New dbQuoteLiteral() generic. The default implementation uses
switchpatch to avoid dispatch ambiguities, and forwards to
dbQuoteString() for character vectors. Backends may override methods
that also dispatch on the second argument, but in this case also an
override for the "SQL" class is necessary.
Notable changes since 0.3.1:
- dbGetInfo() gains a default method.
- New generic dbBind() for binding values to a parameterised query.
- DBI gains a number of SQL generation functions.
- dbDataType() maps character values to "TEXT" by default.
- The default implementation of dbQuoteString() doesn’t call
encodeString() anymore.
- Deprecated dbDriver() and dbUnloadDriver().
- Import updated specs from DBItest.
- Require R>=3.0.0.
Upstream changes:
# Version 0.3.1
* Actually export `dbIsValid()` :/
* `dbGetQuery()` uses `dbFetch()` in the default implementation.
# Version 0.3.0
## New and enhanced generics
* `dbIsValid()` returns a logical value describing whether a connection or
result set (or other object) is still valid. (#12).
* `dbQuoteString()` and `dbQuoteIdentifier()` to implement database specific
quoting mechanisms.
* `dbFetch()` added as alias to `fetch()` to provide consistent name.
Implementers should define methods for both `fetch()` and `dbFetch()` until
`fetch()` is deprecated in 2015. For now, the default method for `dbFetch()`
calls `fetch()`.
* `dbBegin()` begins a transaction (#17). If not supported, DB specific
methods should throw an error (as should `dbCommit()` and `dbRollback()`).
## New default methods
* `dbGetStatement()`, `dbGetRowsAffected()`, `dbHasCompleted()`, and
`dbGetRowCount()` gain default methods that extract the appropriate elements
from `dbGetInfo()`. This means that most drivers should no longer need to
implement these methods (#13).
* `dbGetQuery()` gains a default method for `DBIConnection` which uses
`dbSendQuery()`, `fetch()` and `dbClearResult()`.
## Deprecated features
* The following functions are soft-deprecated. They are going away,
and developers who use the DBI should begin preparing. The formal deprecation
process will begin in July 2015, where these function will emit warnings
on use.
* `fetch()` is replaced by `dbFetch()`.
* `make.db.names()`, `isSQLKeyword()` and `SQLKeywords()`: a black list
based approach is fundamentally flawed; instead quote strings and
identifiers with `dbQuoteIdentifier()` and `dbQuoteString()`.
* `dbGetDBIVersion()` is deprecated since it's now just a thin wrapper
around `packageVersion("DBI")`.
* `dbSetDataMappings()` (#9) and `dbCallProc()` (#7) are deprecated as no
implementations were ever provided.
## Other improvements
* `dbiCheckCompliance()` makes it easier for implementors to check that their
package is in compliance with the DBI specification.
* All examples now use the RSQLite package so that you can easily try out
the code samples (#4).
* `dbDriver()` gains a more effective search mechanism that doesn't rely on
packages being loaded (#1).
* DBI has been converted to use roxygen2 for documentation, and now most
functions have their own documentation files. I would love your feedback
on how we could make the documentation better!
Upstream changes:
Version 0.2-7
* Trivial changes (updated package fields, daj)
Version 0.2-6
* Removed deprecated \synopsis in some Rd files (thanks to Prof. Ripley)
A database interface (DBI) definition for communication between R and
relational database management systems. All classes in this package
are virtual and need to be extended by the various R/DBMS
implementations.