wrappers
Overview
| Package | Version | Category | License | Language |
|---|---|---|---|---|
wrappers | 0.6.1 | FDW | Apache-2.0 | Rust |
| ID | Extension | Bin | Lib | Load | Create | Trust | Reloc | Schema |
|---|---|---|---|---|---|---|---|---|
| 8500 | wrappers | No | Yes | No | Yes | No | Yes | - |
| Related | multicorn odbc_fdw jdbc_fdw pgspider_ext |
|---|
pgrx patched to 0.18.1.
Version
| Type | Repo | Version | PG Ver | Package | Deps |
|---|---|---|---|---|---|
| EXT | PIGSTY | 0.6.1 | 1817161514 | wrappers | - |
| RPM | PIGSTY | 0.6.1 | 1817161514 | wrappers_$v | - |
| DEB | PIGSTY | 0.6.1 | 1817161514 | postgresql-$v-wrappers | - |
Build
You can build the RPM / DEB packages for wrappers using pig build:
pig build pkg wrappers # build RPM / DEB packages
Install
You can install wrappers directly. First, make sure the PGDG and PIGSTY repositories are added and enabled:
pig repo add pgsql -u # Add repo and update cache
Install the extension using pig or apt/yum/dnf:
pig install wrappers; # Install for current active PG version
pig ext install -y wrappers -v 18 # PG 18
pig ext install -y wrappers -v 17 # PG 17
pig ext install -y wrappers -v 16 # PG 16
pig ext install -y wrappers -v 15 # PG 15
pig ext install -y wrappers -v 14 # PG 14
dnf install -y wrappers_18 # PG 18
dnf install -y wrappers_17 # PG 17
dnf install -y wrappers_16 # PG 16
dnf install -y wrappers_15 # PG 15
dnf install -y wrappers_14 # PG 14
apt install -y postgresql-18-wrappers # PG 18
apt install -y postgresql-17-wrappers # PG 17
apt install -y postgresql-16-wrappers # PG 16
apt install -y postgresql-15-wrappers # PG 15
apt install -y postgresql-14-wrappers # PG 14
Create Extension:
CREATE EXTENSION wrappers;
Usage
Sources: official README, official docs, v0.6.1 release
wrappers is both a Rust framework for writing PostgreSQL foreign data wrappers and a packaged collection of Supabase-maintained FDWs. A single extension installs many wrapper implementations, then each foreign server chooses the specific wrapper type it needs.
CREATE EXTENSION wrappers;
Typical Workflow
Create a server for one wrapper, then expose remote data through foreign tables:
CREATE SERVER stripe_server
FOREIGN DATA WRAPPER stripe_wrapper
OPTIONS (
api_key_id 'stripe_api_key',
api_url 'https://api.stripe.com/v1/'
);
CREATE FOREIGN TABLE stripe_customers (
id text,
email text,
name text,
description text,
created timestamp,
attrs jsonb
)
SERVER stripe_server
OPTIONS (
object 'customers',
rowid_column 'id'
);
What It Covers
Upstream ships wrappers for databases and services such as BigQuery, ClickHouse, DuckDB, DynamoDB, MySQL/Doris, Redis, S3, S3 Vectors, Stripe, Snowflake, Slack, Notion, OpenAPI, Infura, and many others. Read and write support varies by wrapper, but pushdown for WHERE, ORDER BY, and LIMIT is a core framework feature.
Version Notes
The v0.6.1 release keeps the same extension model but expands the catalog and wrapper behavior. Official release notes call out:
- new DynamoDB FDW support
- MySQL/Doris support through
mysql_fdw - schema evolution support for
iceberg_fdw - vault secret lookup by name in
_idoptions - aggregate pushdown support for COUNT, SUM, AVG, MIN, and MAX, including MySQL FDW support
- parameter-state refresh/rescan fixes and dependency/security updates
Caveats
- Wrapper-specific options, supported objects, and write support differ widely; check the official catalog page for the exact FDW you use.
- The docs warn that logical restores can fail when materialized views depend on foreign tables, so avoid that pattern or rely on physical backups.
Feedback
Was this page helpful?
Thanks for the feedback! Please let us know how we can improve.
Sorry to hear that. Please let us know how we can improve.