• Fixed compilation failure on Linux with clang-22 / clang-ASAN (CRAN’s clang-ASAN check platform). vasprintf() requires _GNU_SOURCE to be visible from glibc’s <stdio.h>; added #define _GNU_SOURCE guard at the top of src/mdbtools/src/libmdb/fakeglib.c before system headers are included. Not needed on macOS where vasprintf() is always available.
  • Fixed heap-use-after-free in mdbr_run_query (detected by AddressSanitizer on CRAN’s M1-SAN and Linux sanitizer checks). When a SQL query failed, the error message was read from a pointer into the MdbSQL struct after the struct had been freed via mdb_sql_exit(). The error string is now copied into a local buffer before cleanup (#15).
  • Fixed compilation failure on macOS ARM64 (CRAN r-release-macos-arm64 and r-oldrel-macos-arm64). The vendored mdbtools source now correctly includes <xlocale.h> on Apple platforms, where locale_t is not exposed through <locale.h> alone under strict SDK settings (#14).

  • Fixed four C compiler warnings in vendored mdbtools source that caused CRAN pre-test rejection (#12):

    • catalog.c: expanded GCC-only ?: to standard ternary
    • file.c, table.c: cast void* to char* before pointer arithmetic
    • index.c: declared idx_to_text as unsigned char[] to hold 0x81
  • 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