QuestDB into Apache Arrow through ADBC: native PostgreSQL ADBC driver vs the ODBC route, measured

QuestDB speaks the PostgreSQL wire protocol, so there are two ways to get its results into Arrow record batches through ADBC (Arrow Database Connectivity): the Apache Arrow project’s native PostgreSQL ADBC driver, or adbcBridge, an ADBC driver that wraps an ODBC driver, here psqlodbc. On 2026-09-05 I ran one seven-step workload through both against QuestDB 10: connect, SELECT 1, an eight-column CREATE TABLE plus two INSERTs and a read, a 1,000-row bulk ingest, table schema, catalog listing, and a read of the ingested table.

Native PostgreSQL ADBC driver 1.12.0: stops at connect. Its type-resolver bootstrap, “SELECT oid, typname, typreceive, typbasetype, typrelid, typarray FROM pg_catalog.pg_type WHERE (typreceive != 0 OR typsend != 0) …”, is rejected, so no connection is established. That is the driver assuming a full pg_catalog rather than anything wrong on QuestDB’s side.
adbcBridge over psqlodbc: all seven steps pass (with BoolsAsChar=0 and Protocol=7.4-0 on the psqlodbc side, and a moment for QuestDB’s commit before the count check).

Verified matrix entry with the exact settings, and the full native-vs-ODBC table for all 28 PostgreSQL-wire and MySQL-wire databases with each first error: Where the native PostgreSQL and MySQL ADBC drivers stop on wire-compatible databases — adbcBridge notes
Project : GitHub - singhpratech/adbcbridge: Any ODBC driver as an Apache Arrow ADBC driver. One C library, 53 databases verified on Linux, 45 on macOS, 48 on Windows, five languages. · GitHub
Website: https://adbcbridge.org/

Thanks, but since QuestDB 10.0 the preferred way to query data is via the QWP protocol, with pgwire still available for compatibility. The latest QuestDB clients (For C/C++, Rust, Python, and Ruby) support Arrow natively, although not ADBC.

If there is ADBC support for QuestDB, which we are already considering, it should be via the QWP protocol, rather than via pgwire