DuckDB Quack Driver 0.1.0

Driver Version 0.1.0 Tested With DuckDB Quack 1.5

Warning

This is documentation for a prerelease version.

This driver provides ADBC access to a DuckDB server exposed through the Quack remote protocol.

Note

This project is not associated with DuckDB Labs.

Connecting

from adbc_driver_manager import dbapi

dbapi.connect(
    driver="quack",
    db_kwargs={"uri": "quack://localhost:9494/?token=quack-secret"},
)

Connection String Format

Quack URI syntax:

quack://HOST[:PORT]/?token=TOKEN

Components:

  • Scheme: quack:// (required)

  • HOST: Quack server host (required)

  • PORT: Quack server port (optional)

  • token: shared Quack authentication token (optional)

Feature & Type Support

Feature DuckDB Quack
Bulk Ingestion Create
Append
Create/Append
Replace
Temporary Table
Target Catalog
Target Schema
Non-nullable fields are marked NOT NULL
Catalog (GetObjects) depth=catalogs
depth=db_schemas
depth=tables
depth=columns (all)
Get Parameter Schema
Get Table Schema
Prepared Statements
Transactions

Types

Database to Arrow

Database Type DuckDB Quack

BIGINT

int64

BOOLEAN

bool

DATE

date32[day]

DOUBLE PRECISION

double

INT

int32

NUMERIC

decimal128

REAL

float

SMALLINT

int16

TIME

time64[us]

TIMESTAMP

timestamp[us]

TIMESTAMP WITH TIME ZONE

timestamp[us] (with time zone)

VARBINARY

binary

VARCHAR

string

Arrow to Database

Arrow Type DuckDB Quack Type
Bind Ingest

binary

VARBINARY

binary_view

VARBINARY

bool

BOOLEAN

date32[day]

DATE

decimal128

NUMERIC

double

DOUBLE PRECISION

fixed_size_binary

VARBINARY

float

REAL

halffloat

(NA/not tested)

int16

SMALLINT

int32

INT

int64

BIGINT

large_binary

VARBINARY

large_string

VARCHAR

string

VARCHAR

string_view

VARCHAR

time32[ms]

TIME [1]

time32[s]

TIME [1]

time64[ns]

TIME

time64[us]

TIME

timestamp[ms]

TIMESTAMP(3)

timestamp[ms] (with time zone)

TIMESTAMP(3) WITH TIME ZONE [2]

timestamp[ns]

TIMESTAMP(9)

timestamp[ns] (with time zone)

TIMESTAMP(9) WITH TIME ZONE [2]

timestamp[s]

TIMESTAMP(0)

timestamp[s] (with time zone)

TIMESTAMP(0) WITH TIME ZONE [2]

timestamp[us]

TIMESTAMP(6)

timestamp[us] (with time zone)

TIMESTAMP(6) WITH TIME ZONE

Compatibility

This driver was tested on:

  • DuckDB Quack 1.5.3