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.