Apache Arrow ADBC 14 (Libraries) Release


Published 05 Sep 2024
By The Apache Arrow PMC (pmc)

The Apache Arrow team is pleased to announce the 14 release of the Apache Arrow ADBC libraries. This covers includes 27 resolved issues from 12 distinct contributors.

This is a release of the libraries, which are at version

  1. The API specification is versioned separately and is at version 1.1.0.

The subcomponents are versioned independently:

  • C/C++/GLib/Go/Python/Ruby: 1.2.0
  • C#: 0.14.0
  • Java: 0.14.0
  • R: 0.14.0
  • Rust: 0.14.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

A new driver for Google BigQuery is now available in source form and will be available from conda-forge, however, Python wheels will not be available until the next release. Thanks to Cocoa Xu for the major effort!

The C/C++ implementation now uses arrow-adbc/adbc.h as its include path to avoid polluting the include directory. For now, adbc.h is still installed for backwards compatibility but we recommend updating include paths.

The C# ADO.NET bindings now support bind parameters.

The Rust library is now uploaded to crates.io.

The PostgreSQL driver now properly handles reading JSONB columns and ingestion of list/large list columns. It also finally properly supports bind parameters in prepared statements and can handle multiple statements in the same string.

We discovered a performance regression in recent versions of Go when making FFI calls from the main thread. Unfortunately, this affects the Arrow Flight SQL, BigQuery, and Snowflake driver implementations. Python wheels are not affected as we are still building with an older version of Go. However, if you are building the driver yourself or using the conda-forge package, you may run into this. Mitigations include making fewer FFI calls if possible (e.g., reuse a single connection or cursor instead of creating new ones), or using a different thread than the main thread.

Contributors

$ git shortlog --perl-regexp --author='^((?!dependabot\[bot\]).*)$' -sn apache-arrow-adbc-13..apache-arrow-adbc-14
    18	David Li
    11	Dewey Dunnington
    11	William Ayd
     4	Joel Lubinitsky
     3	davidhcoe
     2	Matt Topol
     1	Bruce Irschick
     1	Clive Cox
     1	Cocoa
     1	Curt Hagenlocher
     1	Hyunseok Seo
     1	Joris Van den Bossche

Roadmap

There is some discussion on a potential second revision of ADBC to include more missing functionality and asynchronous API support. For more, see the milestone and the async discussion/proposed C Data Interface API.

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.