Driver Implementation Status

Warning

There is a known problem on macOS x86_64 when using two drivers written in Go in the same process (unless working in a pure-Go application), where using the second driver may crash. For more details, see GH-1841.

Implementation Status

Experimental drivers are not feature-complete and the implementation is still progressing. Beta drivers are (mostly) feature-complete but have only been available for a short time. Stable drivers are (mostly) feature-complete (as much as possible for the underlying database) and have been available/tested for a while.

Driver

Supported Languages [1]

Implementation Language

Status

BigQuery

C#

C#

Experimental

Flight SQL (Go)

C, Go

Go

Stable

Flight SQL (Java)

Java

Java

Experimental

JDBC

Java

Java

Experimental

PostgreSQL

C

C++

Stable

SQLite

C

C

Stable

Snowflake

C, Go

Go

Stable

Feature Support

N/A indicates that it is not possible to support this feature in the underlying database.

See individual driver documentation pages for full details.

Bulk Ingestion

Does the driver support bulk ingestion of data (creating or appending to a database table from an Arrow table)?

Database Metadata

Does the driver support functions like AdbcConnectionGetObjects() that get metadata about the database catalog, etc.?

Parameterized Queries

Does the driver support binding query parameters?

Partitioned Data

Being able to read individual chunks of a (generally distributed) result set (AdbcStatementExecutePartitions()).

Prepared Statements

Does the driver support binding query parameters?

Full Type Support

Does the driver map all database types to/from equivalent Arrow types, as much as is possible?

Select Queries

Does the driver support queries returning result sets?

SQL

Does the driver support submitting SQL queries?

Transactions

Does the driver support explicit transactions (the default is to assume auto-commit)?

Substrait

Does the driver support submitting Substrait plans?

Update Queries

Does the driver support queries not returning result sets?

General features

Driver

Full Type Support

SQL

Substrait

Flight SQL (Go)

Y

Y

N

Flight SQL (Java)

Y

Y

N

JDBC

N

Y

N/A

PostgreSQL

N

Y

N/A

SQLite

Y

Y

N/A

Statement/query-level features

Driver

Incremental Queries

Partitioned Data

Parameterized Queries

Prepared Statements

Select Queries

Update Queries

Flight SQL (Go)

Y

Y

Y

Y

Y

Y

Flight SQL (Java)

N

Y

Y

Y

Y

Y

JDBC

N/A

N/A

Y

Y

Y

Y

PostgreSQL

N/A

N/A

Y [2]

Y

Y

Y

SQLite

N/A

N/A

Y

Y

Y

Y

Connection/database-level features

Driver

Bulk Ingestion

Database Metadata (catalogs, etc.)

Transactions

Flight SQL (Go)

N

Y

Y

Flight SQL (Java)

Y

Y

N

JDBC

Y

Y

N

PostgreSQL

Y

Y

Y

SQLite

Y

Y

Y