Binary and OLE fields are now returned as list columns of raw vectors instead of character strings (#18).
Empty text values are now returned as "" instead of
NA. Only NULL values become NA (#18).
mdb_example() now returns the bundled Northwind
database (nwind.mdb). The nycflights13 example file has
been removed (#18).
mdb_stream_table() opens a table as a DBI result
that can be read in batches with DBI::dbFetch(), keeping
memory use bounded for large tables. dbReadTable() and
read_mdb() now read through the same cursor. SQL queries
sent with dbSendQuery() are still read in full (#18, @meztez).dbFetch() now advances through
dbSendQuery() results across successive calls, and
dbHasCompleted() reports completion correctly
(#18).
dbFetch() accepts n = 0 and returns a
zero-row data frame with the correct column types.
dbIsValid() is now FALSE after
dbClearResult() (#18).
const qualifier warning in fakeglib.c
flagged by GCC 16 on Fedora (#17).The mdbtools C library is now compiled and bundled
with the package. No external mdbtools installation is
required on any platform (#3).
A full read-only DBI backend is now available via
mdb() (#6):
con <- DBI::dbConnect(mdb(), dbname = "path/to/file.mdb")
DBI::dbListTables(con)
DBI::dbGetQuery(con, "SELECT * FROM [Orders] LIMIT 10;")
DBI::dbDisconnect(con)New helper functions: mdb_sql(),
mdb_queries(), mdb_count(),
mdb_json(), mdb_export(),
mdb_ver(), mdb_array(),
mdb_header(), mdb_hexdump(), and
mdb_prop().
mdb_schema() gains a mode argument for
DDL output in multiple SQL dialects in addition to the existing readr
col-spec mode.
read_mdb() now reads tables via the bundled C
library and returns a tibble. The col_types and
... arguments are deprecated with a lifecycle
warning.
readr is no longer a hard dependency. If you use
read_mdb() and rely on readr being available,
add it explicitly to your own dependencies.
Thanks to Bruno Tremblay for contributing the bundled mdbtools source, the DBI backend, and the expanded helper functions (#9).
shQuote().
(#7)export_mdb() now mirrors
readr::format_csv() with arguments, etc.read_mdb() (with
smart hidden defaults).stdout option.read_mdb() now has stdout() which can take
TRUE or a file path.NEWS.md file to track changes to the
package.