Apache Arrow ADBC 0.7.0 (Libraries) Release


Published 23 Sep 2023
By The Apache Arrow PMC (pmc)

The Apache Arrow team is pleased to announce the 0.7.0 release of the Apache Arrow ADBC libraries. This covers includes 50 resolved issues from 8 distinct contributors.

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.

Release Highlights

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 TIME fields.

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

Contributors

$ 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

Roadmap

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.

Getting Involved

We welcome questions and contributions from all interested. Issues can be filed on GitHub, and questions can be directed to GitHub or the Arrow mailing lists.