Breaking changes

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

New features

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

Bug fixes

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

  • Fix const qualifier warning in fakeglib.c flagged by GCC 16 on Fedora (#17).
  • Update maintainer email, website URL, and GitHub URL.
  • Functions now quote their input files with shQuote(). (#7)
  • export_mdb() now mirrors readr::format_csv() with arguments, etc.
  • Remove all formatting arguments for read_mdb() (with smart hidden defaults).
  • Add more schema types with readr equivalents.
  • Write schema to a matrix in-memory rather than a temporary file.
  • Always read data from a temporary file instead of stdout option.
  • Add better checking if mdbtools is installed.
  • read_mdb() now has stdout() which can take TRUE or a file path.
  • Examples and tests don’t run on CRAN.
  • Added a NEWS.md file to track changes to the package.
  • Cover the most basic functions from mdbtools:
    • List tables in database
    • Export table as delimited file
    • Read delimited file as dataframe
    • Convert simple schema to readr spec