Session

Improving DBI

with Kirill Müller

useR!2017: Improving DBI

Keywords: Database, SQLite, specification, test suite
Webpages: https://CRAN.R-project.org/package=DBI, https://CRAN.R-project.org/package=DBItest, https://CRAN.R-project.org/package=RSQLite
Getting data in and out of R is a minor but very important part of a statistician's or data scientist's work. Sometimes, the data are packaged as R package; however, in the majority of cases one has to deal with third-party data sources. Using a database for storage and retrieval is often the only feasible option with today's ever-growing data.
DBI is R's native DataBase Interface: a set of virtual functions declared in the DBI package. DBI backends connect R to a particular database system by implementing the methods defined in DBI and accessing DBMS-specific APIs to perform the actual query processing. A common interface is helpful for both users and backend implementers. Thanks to generous support from the R Consortium, the contract for DBI's virtual functions is now specified in detail in their documentation, which are also linked to corresponding backend-agnostic tests in the DBItest package. This means that the compatibility of backends to the DBI specification can be verified automatically. The support from the R Consortium also allowed to bring one existing DBI backend, RSQLite, on par with the specification; the odbc package, a DBI-compliant interface to ODBC, has been written from scratch against the specification defined by DBItest.
Among other topics, the presentation will introduce new and updated DBI methods, show the design and usage of the test suite, and describe the changes in the RSQLite implementation.