DuckDB Support#

Available for: C/C++, GLib/Ruby, Go, Python, R

DuckDB provides ADBC support since version 0.8.0.

Note

DuckDB is not part of the Apache Arrow project and is developed separately.

Installation#

See the DuckDB documentation.

Usage#

ADBC support in DuckDB requires the driver manager.

You must have libduckdb.so on your LD_LIBRARY_PATH, or in the same directory as the executable when you run this. This requires CGO and loads the DuckDB driver.

import (
   "context"

   "github.com/apache/arrow-adbc/go/adbc"
   "github.com/apache/arrow-adbc/go/adbc/drivermgr"
)

func main() {
   var drv drivermgr.Driver
   db, err := drv.NewDatabase(map[string]string{
      "driver": "libduckdb.so",
      "entrypoint": "duckdb_adbc_init",
   })
   if err != nil {
      // handle error
   }
   defer db.Close()

   cnxn, err := db.Open(context.Background())
   if err != nil {
      // handle error
   }
   defer cnxn.Close()
}

You must have DuckDB 0.9.1 or higher.

See the DuckDB Python documentation.

You must have DuckDB 0.9.1 or higher.

# install.packages("duckdb")
library(adbcdrivermanager)
db <- adbc_database_init(duckdb::duckdb_adbc(), ...)

Supported Features#

ADBC support in DuckDB is still in progress. See duckdb/duckdb#7141 for details.