Apache Arrow ADBC 0.7.0 (Libraries) Release
23 Sep 2023
By The Apache Arrow PMC (pmc)
This is a release of the libraries, which are at version 0.7.0. The API specification is versioned separately and is at version 1.1.0.
The release notes below are not exhaustive and only expose selected highlights of the release. Many other bugfixes and improvements have been made: we refer you to the complete changelog.
This is the first release to implement version 1.1.0 of the ADBC API specification. The documentation has a fuller overview of new features, but in brief:
- More common options and info keys were added, and clients can now retrieve option values instead of only being able to set them.
- Connections/statements can be cancelled.
- Drivers can add arbitrary metadata to errors. For example, the Flight SQL driver exposes gRPC status details, and the PostgreSQL driver provides PostgreSQL-specific error fields.
- Miscellaneous other APIs to cover specific feature gaps (e.g. getting/setting the ‘active’ catalog and schema).
The PostgreSQL and SQLite drivers support ingesting Arrow data into temporary tables, and targeting a table in a particular namespace. Also, they handle quoting of table/column names in bulk ingestion better. Both drivers also support more Arrow types when executing queries and ingesting data.
The FlightSQL driver supports basic logging via configuration in Go code or via an environment variable when built as a shared library (for Python/R).
The Snowflake driver properly handles
The minimum Go version was bumped to 1.19 (in line with the next release of the Arrow Go libraries).
R drivers expose functions to quote/escape names and strings for the specific backend.
The Python DBAPI layer wraps Arrow record batch readers to raise ADBC exceptions if the driver provides error metadata (see above).
$ git shortlog --perl-regexp --author='^((?!dependabot\[bot\]).*)$' -sn apache-arrow-adbc-0.6.0..apache-arrow-adbc-0.7.0 26 David Li 7 Dewey Dunnington 7 William Ayd 2 ElenaHenderson 1 Matt Topol 1 Solomon Choe 1 Sutou Kouhei 1 davidhcoe
Work continues on improving the existing drivers in terms of supported Arrow/database types, performance, and so on.
For Java, the minimum JDK version may be raised from JDK 8 to 11 or 17, a move that the Arrow Java libraries are also considering.
There are currently no plans for a second API revision. As work progresses on asynchronous and device-aware APIs in the Arrow ecosystem, ADBC will eventually be updated to support any new APIs.