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/