Skip to content

Releases: r-dbi/DBI

DBI 1.2.3

04 Jun 02:04
Compare
Choose a tag to compare

Bug fixes

  • dbQuoteLiteral() uses the format "%Y-%m-%d %H-%M-%S%z" which is understood by more databases (#467, #474).

Documentation

DBI 1.2.2

20 Feb 01:39
Compare
Choose a tag to compare

Bug fixes

  • Id() does not assign empty names to the components if all arguments are unnamed (#464).
  • Add spec to version control to avoid weird pandoc errors on CRAN (#465).

DBI 1.2.1

16 Jan 01:50
Compare
Choose a tag to compare

Bug fixes

  • Fix dbWriteTableArrow() according to spec (#457).

  • Fix type inference in default method for dbCreateTableArrow() (#450).

Features

  • dbAppendTableArrow() returns number of rows (#454).

  • Add temporary argument to dbCreateTableArrow() (#453).

  • Avoid coercing params in default implementation for dbSendQueryArrow() (#447).

  • Use nanoarrow::infer_nanoarrow_schema() in the default method for dbCreateTable() (#445).

Chore

  • Add badge to DBIResultArrow class (#452).

  • Change maintainer e-mail.

Documentation

DBI 1.2.0

23 Dec 01:42
Compare
Choose a tag to compare

Breaking changes

  • dbUnquoteIdentifier() creates Id() objects without component names and allows non-NA character input (#421, #422).

Features

  • New generics dbSendQueryArrow(), dbFetchArrow(), dbGetQueryArrow(), dbReadTableArrow(), dbWriteTableArrow() (@nbenn, #390), dbCreateTableArrow(), dbAppendTableArrow() (#396),
    dbBindArrow() (#415) and dbFetchArrowChunk() (#424), with default implementations via nanoarrow (#414).

  • Id() now accepts unnamed components (#417). If names are provided, the components are arranged in SQL order (@eauleaf, #427).

  • New dbIsValid() method for "DBIResultArrowDefault" objects implemented by DBI (#425).

  • Implement dbiDataType() for objects of class "blob".

Documentation

  • Update pkgdown template (@maelle, #428, #438, #437).

  • Clarify repeated parameter binding (#430).

  • Deal with sundown of https://relational.fit.cvut.cz (#423).

  • Correct vignette titles (#419).

  • Harmonize table documentation (#400).

  • Tweak typo, add families for data retrieval and command execution.

Testing

  • Enable BLOB tests for arrow >= 10.0.0 (#395).

  • Run DBItest for SQLite as part of the checks here (#431).

  • Fix checks without suggested packages (#420).

  • Fix Windows tests on GHA (#406).

  • testthat::use_testthat(3) (#416).

DBI 1.1.3

18 Jun 07:27
Compare
Choose a tag to compare

Features

Documentation

  • ?dbSendQuery and related methods gain a section "The data retrieval flow" (#386).

  • ?dbSendStatement and related methods gain a section "The command execution flow" (#386).

DBI 1.1.2

21 Dec 08:59
Compare
Choose a tag to compare

Features

  • Use dbQuoteLiteral() in default method for sqlData() (#362, #371).
  • Update specification with changes from DBItest 1.7.2 (#367).

Documentation

  • Method documentation on pkgdown is clickable and contains methods from all known DBI backends except ROracle (#360).
  • ?Id gains better examples (#295, #370).
  • Elaborate on status of dbWriteTable() in the documentation (#352, #372).
  • Make method definition more similar to S3. All setMethod() calls refer to top-level functions (#368).
  • The pkgdown documentation for DBI generics (e.g. ?dbConnect) contains clickable links to many known backends, and an explanatory sentence (#360).
  • ?dbReadTable and other pages gain pointers to Id() and SQL() (#359).

DBI 1.1.1

16 Jan 03:37
Compare
Choose a tag to compare

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

15 Dec 09:55
Compare
Choose a tag to compare

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).

DBI 1.0.0

28 Aug 20:21
Compare
Choose a tag to compare

New generics

  • New dbAppendTable() that by default calls sqlAppendTableTemplate() and then dbExecute() with a param argument, without support for row.names argument (#74).
  • New dbCreateTable() that by default calls sqlCreateTable() and then dbExecute(), without support for row.names argument (#74).
  • New dbCanConnect() generic with default implementation (#87).
  • New dbIsReadOnly() generic with default implementation (#190, @anhqle).

Changes

  • 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) (#75).

Documentation updates

  • The DBI specification vignette is rendered correctly from the installed package (#234).
  • Update docs on how to cope with stored procedures (#242, @aryoda).
  • Add "Additional arguments" sections and more examples for dbGetQuery(), dbSendQuery(), dbExecute() and dbSendStatement().
  • The dbColumnInfo() method is now fully specified (#75).
  • The dbListFields() method is now fully specified (#75).
  • The dynamic list of methods in help pages doesn't contain methods in DBI anymore.

Bug fixes

  • Pass missing value argument to secondary dbWriteTable() call (#737, @jimhester).
  • The Id class now uses <Id> and not <Table> when printing.
  • The default dbUnquoteIdentifier() implementation now complies to the spec.

DBI 0.8

09 Mar 16:15
Compare
Choose a tag to compare

Breaking changes

  • 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.

New generics

  • Schema support: Export Id(), new generics dbListObjects() and dbUnquoteIdentifier(), methods for Id that call dbQuoteIdentifier() and then forward (#220).
  • 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 (#172).

Default implementations

  • Default implementations of dbQuoteIdentifier() and dbQuoteLiteral() preserve names, default implementation of dbQuoteString() strips names (#173).
  • Specialized methods for dbQuoteString() and dbQuoteIdentifier() are available again, for compatibility with clients that use getMethod() to access them (#218).
  • Add default implementation of dbListFields().
  • The default implementation of dbReadTable() now has row.names = FALSE as default and also supports row.names = NULL (#186).

API changes

  • The SQL() function gains an optional names argument which can be used to assign names to SQL strings.

Deprecated generics

  • dbListConnections() is soft-deprecated by documentation.
  • dbListResults() is deprecated by documentation (#58).
  • dbGetException() is soft-deprecated by documentation (#51).
  • The deprecated print.list.pairs() has been removed.

Bug fixes

Documentation

  • Help pages for generics now contain a dynamic list of methods implemented by DBI backends (#162).
  • sqlInterpolate() now supports both named and positional variables (#216, @hannesmuehleisen).
  • Point to db.rstudio.com (@wibeasley, #209).
  • Reflect new 'r-dbi' organization in DESCRIPTION (@wibeasley, #207).

Internal

  • Using switchpatch on the second argument for default implementations of dbQuoteString() and dbQuoteIdentifier().