duckdb_fdw
duckdb_fdw
duckdb_fdw : DuckDB Foreign Data Wrapper
Overview
| ID | Extension | Package | Version | Category | License | Language |
|---|---|---|---|---|---|---|
| 2450 | duckdb_fdw
|
duckdb_fdw
|
1.1.2 |
OLAP
|
MIT
|
C
|
| Attribute | Has Binary | Has Library | Need Load | Has DDL | Relocatable | Trusted |
|---|---|---|---|---|---|---|
--s-d-r
|
No
|
Yes
|
No
|
Yes
|
yes
|
no
|
| Relationships | |
|---|---|
| See Also | pg_analytics
pg_duckdb
pg_mooncake
pg_parquet
wrappers
citus_columnar
columnar
citus
|
conflict on libduckdb with pg_duckdb
Packages
| Type | Repo | Version | PG Major Compatibility | Package Pattern | Dependencies |
|---|---|---|---|---|---|
| EXT | PIGSTY
|
1.1.2 |
18
17
16
15
14
13
|
duckdb_fdw |
- |
| RPM | PIGSTY
|
1.1.2 |
18
17
16
15
14
13
|
duckdb_fdw_$v* |
libduckdb |
| DEB | PIGSTY
|
1.1.2 |
18
17
16
15
14
13
|
postgresql-$v-duckdb-fdw |
libduckdb |
| Linux / PG | PG18 | PG17 | PG16 | PG15 | PG14 | PG13 |
|---|---|---|---|---|---|---|
el8.x86_64
|
MISS
|
PIGSTY 1.1.2
|
PIGSTY 1.1.2
|
PIGSTY 1.1.2
|
PIGSTY 1.1.2
|
PIGSTY 1.1.2
|
el8.aarch64
|
MISS
|
PIGSTY 1.1.2
|
PIGSTY 1.1.2
|
PIGSTY 1.1.2
|
PIGSTY 1.1.2
|
PIGSTY 1.1.2
|
el9.x86_64
|
MISS
|
PIGSTY 1.1.2
|
PIGSTY 1.1.2
|
PIGSTY 1.1.2
|
PIGSTY 1.1.2
|
PIGSTY 1.1.2
|
el9.aarch64
|
MISS
|
PIGSTY 1.1.2
|
PIGSTY 1.1.2
|
PIGSTY 1.1.2
|
PIGSTY 1.1.2
|
PIGSTY 1.1.2
|
el10.x86_64
|
MISS
|
MISS
|
MISS
|
MISS
|
MISS
|
MISS
|
el10.aarch64
|
MISS
|
MISS
|
MISS
|
MISS
|
MISS
|
MISS
|
d12.x86_64
|
MISS
|
PIGSTY 1.1.2
|
PIGSTY 1.1.2
|
PIGSTY 1.1.2
|
PIGSTY 1.1.2
|
PIGSTY 1.1.2
|
d12.aarch64
|
MISS
|
PIGSTY 1.1.2
|
PIGSTY 1.1.2
|
PIGSTY 1.1.2
|
PIGSTY 1.1.2
|
PIGSTY 1.1.2
|
d13.x86_64
|
MISS
|
MISS
|
MISS
|
MISS
|
MISS
|
MISS
|
d13.aarch64
|
MISS
|
MISS
|
MISS
|
MISS
|
MISS
|
MISS
|
u22.x86_64
|
MISS
|
PIGSTY 1.1.2
|
PIGSTY 1.1.2
|
PIGSTY 1.1.2
|
PIGSTY 1.1.2
|
PIGSTY 1.1.2
|
u22.aarch64
|
MISS
|
PIGSTY 1.1.2
|
PIGSTY 1.1.2
|
PIGSTY 1.1.2
|
PIGSTY 1.1.2
|
PIGSTY 1.1.2
|
u24.x86_64
|
MISS
|
PIGSTY 1.1.2
|
PIGSTY 1.1.2
|
PIGSTY 1.1.2
|
PIGSTY 1.1.2
|
PIGSTY 1.1.2
|
u24.aarch64
|
MISS
|
PIGSTY 1.1.2
|
PIGSTY 1.1.2
|
PIGSTY 1.1.2
|
PIGSTY 1.1.2
|
PIGSTY 1.1.2
|
Source
pig build pkg duckdb_fdw; # build rpm / deb with pigInstall
Make sure PGDG and PIGSTY repo available:
pig repo add pgdg pigsty -u # add both repo and update cacheInstall this extension with pig:
pig install duckdb_fdw; # install via package name, for the active PG version
pig install duckdb_fdw -v 17; # install for PG 17
pig install duckdb_fdw -v 16; # install for PG 16
pig install duckdb_fdw -v 15; # install for PG 15
pig install duckdb_fdw -v 14; # install for PG 14
pig install duckdb_fdw -v 13; # install for PG 13Create this extension with:
CREATE EXTENSION duckdb_fdw;This extension is currently broken and conflict with pg_duckdb & pg_mooncake
Usage
Create Extension
After install the duckdb_fdw yum package, you can create the extension inside PostgreSQL database:
-- create extension
CREATE EXTENSION duckdb_fdw;
-- create duckdb_fdw server
CREATE SERVER duckdb_server FOREIGN DATA WRAPPER duckdb_fdw OPTIONS (database '/tmp/duck.db');
-- create user mapping [OPTIONAL]
-- GRANT USAGE ON FOREIGN SERVER duckdb_server TO PUBLIC;
SELECT duckdb_fdw_version();
-- You can execute duckdb command with `duckdb_execute`, for example, to create a table inside duckdb:
-- create a table in duckdb
SELECT duckdb_execute('duckdb_server', 'CREATE TABLE t1 (a integer,b varchar);');
-- create duckdb foreign table mapping that duckdb table
CREATE FOREIGN TABLE t1 (
a integer,
b text
) SERVER duckdb_server OPTIONS (
table 't1'
);
-- write some data and read it back
INSERT INTO t1 SELECT i AS a,i::text AS b FROM generate_series(1,10) i;
SELECT * FROM t1;You can also import foreign schema from duckdb server, for example, create a table with duckdb cli:
duckdb /tmp/duck.db
CREATE TABLE t1 (
a integer,
b text
);
INSERT INTO t1 VALUES (1, 'a'), (2 , 'b'), (3, 'c');
SELECT * FROM t1;Then import the schema into PostgreSQL:
IMPORT FOREIGN SCHEMA public FROM SERVER duckdb_server INTO public;Other Resource
Last updated on