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