This is the multi-page printable view of this section. Click here to print.

Return to the regular view of this page.

Category: OLAP

OLAP: DuckDB Integration with FDW & PG Lakehouse, Access Parquet from File/S3, Sharding with Citus/Partman/PlProxy, …

OLAP category has 13 available extensions:

Name (Detail) Package (Repo) Repo Version Category License LOAD DDL TRUST RELOC Description
citus citus PIGSTY 13.0.1 OLAP AGPLv3 Distributed PostgreSQL as an extension
citus_columnar citus PIGSTY 11.3-1 OLAP AGPLv3 Citus columnar storage engine
columnar hydra PIGSTY 11.1-11 OLAP AGPLv3 Hydra Columnar extension
pg_analytics pg_analytics PIGSTY 0.3.3 OLAP PostgreSQL Postgres for analytics, powered by DuckDB
pg_duckdb pg_duckdb PIGSTY 0.2.0 OLAP MIT DuckDB Embedded in Postgres
pg_mooncake pg_mooncake PIGSTY 0.1.0 OLAP MIT Columnstore Table in Postgres
duckdb_fdw duckdb_fdw PIGSTY 1.1.2 OLAP MIT DuckDB Foreign Data Wrapper
pg_parquet pg_parquet PIGSTY 0.2.0 OLAP PostgreSQL copy data between Postgres and Parquet
pg_fkpart pg_fkpart MIXED 1.7 OLAP GPLv2 Table partitioning by foreign key utility
pg_partman pg_partman PGDG 5.2.4 OLAP PostgreSQL Extension to manage partitioned tables by time or ID
plproxy plproxy PGDG 2.11.0 OLAP BSD 0 Database partitioning implemented as procedural language
pg_strom pg_strom PGDG 5.1 OLAP PostgreSQL PG-Strom - big-data processing acceleration using GPU and NVME
tablefunc tablefunc CONTRIB 1.0 OLAP PostgreSQL functions that manipulate whole tables, including crosstab

1 - citus

Distributed PostgreSQL as an extension

Overview

PIGSTY 3rd Party Extension: citus : Distributed PostgreSQL as an extension

Information

Metadata

  • Latest Version: 13.0.1
  • Postgres Support: 17,16,15,14
  • Need Load: Explicit Loading Required
  • Need DDL: Need CREATE EXTENSION DDL
  • Relocatable: Can be installed into other schemas
  • Trusted: Untrusted, Require Superuser to Create
  • Schemas: pg_catalog
  • Requires: N/A

RPM / DEB

  • RPM Repo: PIGSTY
  • RPM Name: citus_$v*
  • RPM Ver : 13.0-1
  • RPM Deps: N/A
  • DEB Repo: PIGSTY
  • DEB Name: postgresql-$v-citus
  • DEB Ver : 13.0-1
  • DEB Deps: N/A

Packages

OS Arch PG17 PG16 PG15 PG14 PG13
el8 x86_64 citus_17
PIGSTY 13.0.1
citus_16
PIGSTY 13.0.1
citus_15
PIGSTY 13.0.1
citus_14
PIGSTY 13.0.0
citus_13
PGDG 9.5.4
el8 aarch64 citus_17
PIGSTY 13.0.1
citus_16
PIGSTY 13.0.1
citus_15
PIGSTY 13.0.1
citus_14
PIGSTY 13.0.0
citus_13
PGDG 11.3.0
el9 x86_64 citus_17
PIGSTY 13.0.1
citus_16
PIGSTY 13.0.1
citus_15
PIGSTY 13.0.1
citus_14
PIGSTY 13.0.0
citus_13
PGDG 11.3.0
el9 aarch64 citus_17
PIGSTY 13.0.1
citus_16
PIGSTY 13.0.1
citus_15
PIGSTY 13.0.1
citus_14
PIGSTY 13.0.0
citus_13
PGDG 11.3.0
d12 x86_64 postgresql-17-citus
PIGSTY 13.0.1
postgresql-16-citus
PIGSTY 13.0.1
postgresql-15-citus
PIGSTY 13.0.1
postgresql-14-citus
PIGSTY 13.0.0
d12 aarch64 postgresql-17-citus
PIGSTY 13.0.1
postgresql-16-citus
PIGSTY 13.0.1
postgresql-15-citus
PIGSTY 13.0.1
postgresql-14-citus
PIGSTY 13.0.0
u22 x86_64 postgresql-17-citus
PIGSTY 13.0.1
postgresql-16-citus
PIGSTY 13.0.1
postgresql-15-citus
PIGSTY 13.0.1
postgresql-14-citus
PIGSTY 13.0.0
u22 aarch64 postgresql-17-citus
PIGSTY 13.0.1
postgresql-16-citus
PIGSTY 13.0.1
postgresql-15-citus
PIGSTY 13.0.1
postgresql-14-citus
PIGSTY 13.0.0
u24 x86_64 postgresql-17-citus
PIGSTY 13.0.1
postgresql-16-citus
PIGSTY 13.0.1
postgresql-15-citus
PIGSTY 13.0.1
postgresql-14-citus
PIGSTY 13.0.0
u24 aarch64 postgresql-17-citus
PIGSTY 13.0.1
postgresql-16-citus
PIGSTY 13.0.1
postgresql-15-citus
PIGSTY 13.0.1
postgresql-14-citus
PIGSTY 13.0.0

Installation

Install citus via the pig CLI tool:

pig ext install citus

Install citus via Pigsty playbook:

./pgsql.yml -t pg_extension -e '{"pg_extensions": ["citus"]}' # -l <cls>

Install citus RPM from YUM repo directly:

dnf install citus_17*;
dnf install citus_16*;
dnf install citus_15*;
dnf install citus_14*;

Install citus DEB from APT repo directly:

apt install postgresql-17-citus;
apt install postgresql-16-citus;
apt install postgresql-15-citus;
apt install postgresql-14-citus;

Extension citus has to be added to shared_preload_libraries

shared_preload_libraries = 'citus'; # add to pg cluster config

Enable citus extension on PostgreSQL cluster:

CREATE EXTENSION citus;



2 - citus_columnar

Citus columnar storage engine

Overview

PIGSTY 3rd Party Extension: citus : Citus columnar storage engine

Information

Metadata

  • Latest Version: 11.3-1
  • Postgres Support: 17,16,15,14
  • Need Load: Shared library do not need explicit loading
  • Need DDL: Need CREATE EXTENSION DDL
  • Relocatable: Can be installed into other schemas
  • Trusted: Untrusted, Require Superuser to Create
  • Schemas: pg_catalog
  • Requires: N/A

RPM / DEB

  • RPM Repo: PIGSTY
  • RPM Name: citus_$v*
  • RPM Ver : 11.3-1
  • RPM Deps: N/A
  • DEB Repo: PIGSTY
  • DEB Name: postgresql-$v-citus
  • DEB Ver : 11.3-1
  • DEB Deps: N/A

Packages

OS Arch PG17 PG16 PG15 PG14 PG13
el8 x86_64 citus_17
PIGSTY 13.0.1
citus_16
PIGSTY 13.0.1
citus_15
PIGSTY 13.0.1
citus_14
PIGSTY 13.0.0
citus_13
PGDG 9.5.4
el8 aarch64 citus_17
PIGSTY 13.0.1
citus_16
PIGSTY 13.0.1
citus_15
PIGSTY 13.0.1
citus_14
PIGSTY 13.0.0
citus_13
PGDG 11.3.0
el9 x86_64 citus_17
PIGSTY 13.0.1
citus_16
PIGSTY 13.0.1
citus_15
PIGSTY 13.0.1
citus_14
PIGSTY 13.0.0
citus_13
PGDG 11.3.0
el9 aarch64 citus_17
PIGSTY 13.0.1
citus_16
PIGSTY 13.0.1
citus_15
PIGSTY 13.0.1
citus_14
PIGSTY 13.0.0
citus_13
PGDG 11.3.0
d12 x86_64 postgresql-17-citus
PIGSTY 13.0.1
postgresql-16-citus
PIGSTY 13.0.1
postgresql-15-citus
PIGSTY 13.0.1
postgresql-14-citus
PIGSTY 13.0.0
d12 aarch64 postgresql-17-citus
PIGSTY 13.0.1
postgresql-16-citus
PIGSTY 13.0.1
postgresql-15-citus
PIGSTY 13.0.1
postgresql-14-citus
PIGSTY 13.0.0
u22 x86_64 postgresql-17-citus
PIGSTY 13.0.1
postgresql-16-citus
PIGSTY 13.0.1
postgresql-15-citus
PIGSTY 13.0.1
postgresql-14-citus
PIGSTY 13.0.0
u22 aarch64 postgresql-17-citus
PIGSTY 13.0.1
postgresql-16-citus
PIGSTY 13.0.1
postgresql-15-citus
PIGSTY 13.0.1
postgresql-14-citus
PIGSTY 13.0.0
u24 x86_64 postgresql-17-citus
PIGSTY 13.0.1
postgresql-16-citus
PIGSTY 13.0.1
postgresql-15-citus
PIGSTY 13.0.1
postgresql-14-citus
PIGSTY 13.0.0
u24 aarch64 postgresql-17-citus
PIGSTY 13.0.1
postgresql-16-citus
PIGSTY 13.0.1
postgresql-15-citus
PIGSTY 13.0.1
postgresql-14-citus
PIGSTY 13.0.0

Installation

Install citus_columnar via the pig CLI tool:


pig ext install citus; # Extension Namepig ext install citus_columnar; # normalized package name

Install citus via Pigsty playbook:

./pgsql.yml -t pg_extension -e '{"pg_extensions": ["citus"]}' # -l <cls>

Install citus RPM from YUM repo directly:

dnf install citus_17*;
dnf install citus_16*;
dnf install citus_15*;
dnf install citus_14*;

Install citus DEB from APT repo directly:

apt install postgresql-17-citus;
apt install postgresql-16-citus;
apt install postgresql-15-citus;
apt install postgresql-14-citus;

Enable citus_columnar extension on PostgreSQL cluster:

CREATE EXTENSION citus_columnar;



3 - columnar

Hydra Columnar extension

Overview

PIGSTY 3rd Party Extension: hydra : Hydra Columnar extension

Information

Metadata

  • Latest Version: 11.1-11
  • Postgres Support: 16,15,14,13
  • Need Load: Shared library do not need explicit loading
  • Need DDL: Need CREATE EXTENSION DDL
  • Relocatable: Can be installed into other schemas
  • Trusted: Untrusted, Require Superuser to Create
  • Schemas: N/A
  • Requires: N/A

RPM / DEB

  • RPM Repo: PIGSTY
  • RPM Name: hydra_$v*
  • RPM Ver : 11.1-11
  • RPM Deps: N/A
  • DEB Repo: PIGSTY
  • DEB Name: postgresql-$v-hydra
  • DEB Ver : 11.1-11
  • DEB Deps: N/A

Packages

OS Arch PG17 PG16 PG15 PG14 PG13
el8 x86_64 hydra_16
PIGSTY 1.1.2
hydra_15
PIGSTY 1.1.2
hydra_14
PIGSTY 1.1.2
hydra_13
PIGSTY 1.1.2
el8 aarch64 hydra_16
PIGSTY 1.1.2
hydra_15
PIGSTY 1.1.2
hydra_14
PIGSTY 1.1.2
hydra_13
PIGSTY 1.1.2
el9 x86_64 hydra_16
PIGSTY 1.1.2
hydra_15
PIGSTY 1.1.2
hydra_14
PIGSTY 1.1.2
hydra_13
PIGSTY 1.1.2
el9 aarch64 hydra_16
PIGSTY 1.1.2
hydra_15
PIGSTY 1.1.2
hydra_14
PIGSTY 1.1.2
hydra_13
PIGSTY 1.1.2
d12 x86_64 postgresql-16-hydra
PIGSTY 1.1.2
postgresql-15-hydra
PIGSTY 1.1.2
postgresql-14-hydra
PIGSTY 1.1.2
postgresql-13-hydra
PIGSTY 1.1.2
d12 aarch64 postgresql-16-hydra
PIGSTY 1.1.2
postgresql-15-hydra
PIGSTY 1.1.2
postgresql-14-hydra
PIGSTY 1.1.2
postgresql-13-hydra
PIGSTY 1.1.2
u22 x86_64 postgresql-16-hydra
PIGSTY 1.1.2
postgresql-15-hydra
PIGSTY 1.1.2
postgresql-14-hydra
PIGSTY 1.1.2
postgresql-13-hydra
PIGSTY 1.1.2
u22 aarch64 postgresql-16-hydra
PIGSTY 1.1.2
postgresql-15-hydra
PIGSTY 1.1.2
postgresql-14-hydra
PIGSTY 1.1.2
postgresql-13-hydra
PIGSTY 1.1.2
u24 x86_64 postgresql-16-hydra
PIGSTY 1.1.2
postgresql-15-hydra
PIGSTY 1.1.2
postgresql-14-hydra
PIGSTY 1.1.2
postgresql-13-hydra
PIGSTY 1.1.2
u24 aarch64 postgresql-16-hydra
PIGSTY 1.1.2
postgresql-15-hydra
PIGSTY 1.1.2
postgresql-14-hydra
PIGSTY 1.1.2
postgresql-13-hydra
PIGSTY 1.1.2

Installation

Install columnar via the pig CLI tool:


pig ext install hydra; # Extension Namepig ext install columnar; # normalized package name

Install hydra via Pigsty playbook:

./pgsql.yml -t pg_extension -e '{"pg_extensions": ["hydra"]}' # -l <cls>

Install hydra RPM from YUM repo directly:

dnf install hydra_16*;
dnf install hydra_15*;
dnf install hydra_14*;
dnf install hydra_13*;

Install hydra DEB from APT repo directly:

apt install postgresql-16-hydra;
apt install postgresql-15-hydra;
apt install postgresql-14-hydra;
apt install postgresql-13-hydra;

Enable columnar extension on PostgreSQL cluster:

CREATE EXTENSION columnar;



4 - pg_analytics

Postgres for analytics, powered by DuckDB

Overview

PIGSTY 3rd Party Extension: pg_analytics : Postgres for analytics, powered by DuckDB

Information

Metadata

  • Latest Version: 0.3.3
  • Postgres Support: 17,16,15,14
  • Need Load: Shared library do not need explicit loading
  • Need DDL: Need CREATE EXTENSION DDL
  • Relocatable: Can be installed into other schemas
  • Trusted: Trusted, Can be created by user with CREATE Privilege
  • Schemas: paradedb
  • Requires: N/A

RPM / DEB

  • RPM Repo: PIGSTY
  • RPM Name: pg_analytics_$v
  • RPM Ver : 0.3.3
  • RPM Deps: N/A
  • DEB Repo: PIGSTY
  • DEB Name: postgresql-$v-pg-analytics
  • DEB Ver : 0.3.3
  • DEB Deps: N/A

Packages

OS Arch PG17 PG16 PG15 PG14 PG13
el8 x86_64 pg_analytics_17
PIGSTY 0.3.3
pg_analytics_16
PIGSTY 0.3.3
pg_analytics_15
PIGSTY 0.3.3
pg_analytics_14
PIGSTY 0.3.3
pg_analytics_13
PIGSTY 0.2.1
el8 aarch64 pg_analytics_17
PIGSTY 0.3.3
pg_analytics_16
PIGSTY 0.3.3
pg_analytics_15
PIGSTY 0.3.3
pg_analytics_14
PIGSTY 0.3.3
pg_analytics_13
PIGSTY 0.2.1
el9 x86_64 pg_analytics_17
PIGSTY 0.3.3
pg_analytics_16
PIGSTY 0.3.3
pg_analytics_15
PIGSTY 0.3.3
pg_analytics_14
PIGSTY 0.3.3
pg_analytics_13
PIGSTY 0.2.1
el9 aarch64 pg_analytics_17
PIGSTY 0.3.3
pg_analytics_16
PIGSTY 0.3.3
pg_analytics_15
PIGSTY 0.3.3
pg_analytics_14
PIGSTY 0.3.3
pg_analytics_13
PIGSTY 0.2.1
d12 x86_64 postgresql-17-pg-analytics
PIGSTY 0.3.3
postgresql-16-pg-analytics
PIGSTY 0.3.3
postgresql-15-pg-analytics
PIGSTY 0.3.3
postgresql-14-pg-analytics
PIGSTY 0.3.3
d12 aarch64 postgresql-17-pg-analytics
PIGSTY 0.3.3
postgresql-16-pg-analytics
PIGSTY 0.3.3
postgresql-15-pg-analytics
PIGSTY 0.3.3
postgresql-14-pg-analytics
PIGSTY 0.3.3
u22 x86_64 postgresql-17-pg-analytics
PIGSTY 0.3.3
postgresql-16-pg-analytics
PIGSTY 0.3.3
postgresql-15-pg-analytics
PIGSTY 0.3.3
postgresql-14-pg-analytics
PIGSTY 0.3.3
u22 aarch64 postgresql-17-pg-analytics
PIGSTY 0.3.3
postgresql-16-pg-analytics
PIGSTY 0.3.3
postgresql-15-pg-analytics
PIGSTY 0.3.3
postgresql-14-pg-analytics
PIGSTY 0.3.3
u24 x86_64 postgresql-17-pg-analytics
PIGSTY 0.3.3
postgresql-16-pg-analytics
PIGSTY 0.3.3
postgresql-15-pg-analytics
PIGSTY 0.3.3
postgresql-14-pg-analytics
PIGSTY 0.3.3
u24 aarch64 postgresql-17-pg-analytics
PIGSTY 0.3.3
postgresql-16-pg-analytics
PIGSTY 0.3.3
postgresql-15-pg-analytics
PIGSTY 0.3.3
postgresql-14-pg-analytics
PIGSTY 0.3.3

Installation

Install pg_analytics via the pig CLI tool:

pig ext install pg_analytics

Install pg_analytics via Pigsty playbook:

./pgsql.yml -t pg_extension -e '{"pg_extensions": ["pg_analytics"]}' # -l <cls>

Install pg_analytics RPM from YUM repo directly:

dnf install pg_analytics_17;
dnf install pg_analytics_16;
dnf install pg_analytics_15;
dnf install pg_analytics_14;

Install pg_analytics DEB from APT repo directly:

apt install postgresql-17-pg-analytics;
apt install postgresql-16-pg-analytics;
apt install postgresql-15-pg-analytics;
apt install postgresql-14-pg-analytics;

Enable pg_analytics extension on PostgreSQL cluster:

CREATE EXTENSION pg_analytics;

Usage

https://github.com/paradedb/pg_analytics

Example, read parquet file from S3:

CREATE EXTENSION pg_lakehouse;
CREATE FOREIGN DATA WRAPPER parquet_wrapper HANDLER parquet_fdw_handler VALIDATOR parquet_fdw_validator;

-- Provide S3 credentials
CREATE SERVER parquet_server FOREIGN DATA WRAPPER parquet_wrapper;

-- Create foreign table with auto schema creation
CREATE FOREIGN TABLE trips ()
SERVER parquet_server
OPTIONS (files 's3://paradedb-benchmarks/yellow_tripdata_2024-01.parquet');

-- Success! Now you can query the remote Parquet file like a regular Postgres table
SELECT COUNT(*) FROM trips;
  count
---------
 2964624
(1 row)

This fdw is read-only for now.


Iceberg Support

CREATE EXTENSION pg_lakehouse;

CREATE FOREIGN DATA WRAPPER iceberg_wrapper
    HANDLER iceberg_fdw_handler
    VALIDATOR iceberg_fdw_validator;

CREATE SERVER iceberg_server
    FOREIGN DATA WRAPPER iceberg_wrapper;

-- Replace the dummy schema with the actual schema
CREATE FOREIGN TABLE iceberg_table (x INT)
    SERVER iceberg_server
    OPTIONS (files 's3://bucket/iceberg_folder');

-- Success! You can now query the Iceberg table
SELECT COUNT(*) FROM iceberg_table;



5 - pg_duckdb

DuckDB Embedded in Postgres

Overview

PIGSTY 3rd Party Extension: pg_duckdb : DuckDB Embedded in Postgres

Information

Metadata

  • Latest Version: 0.2.0
  • Postgres Support: 17,16,15,14
  • Need Load: Explicit Loading Required
  • Need DDL: Need CREATE EXTENSION DDL
  • Relocatable: Can be installed into other schemas
  • Trusted: Untrusted, Require Superuser to Create
  • Schemas: N/A
  • Requires: N/A

RPM / DEB

  • RPM Repo: PIGSTY
  • RPM Name: pg_duckdb_$v*
  • RPM Ver : 0.2.0
  • RPM Deps: N/A
  • DEB Repo: PIGSTY
  • DEB Name: postgresql-$v-pg-duckdb
  • DEB Ver : 0.2.0
  • DEB Deps: N/A

Packages

OS Arch PG17 PG16 PG15 PG14 PG13
el8 x86_64 pg_duckdb_17
PIGSTY 0.2.0
pg_duckdb_16
PIGSTY 0.2.0
pg_duckdb_15
PIGSTY 0.2.0
pg_duckdb_14
PIGSTY 0.2.0
el8 aarch64 pg_duckdb_17
PIGSTY 0.2.0
pg_duckdb_16
PIGSTY 0.2.0
pg_duckdb_15
PIGSTY 0.2.0
pg_duckdb_14
PIGSTY 0.2.0
el9 x86_64 pg_duckdb_17
PIGSTY 0.2.0
pg_duckdb_16
PIGSTY 0.2.0
pg_duckdb_15
PIGSTY 0.2.0
pg_duckdb_14
PIGSTY 0.2.0
el9 aarch64 pg_duckdb_17
PIGSTY 0.2.0
pg_duckdb_16
PIGSTY 0.2.0
pg_duckdb_15
PIGSTY 0.2.0
pg_duckdb_14
PIGSTY 0.2.0
d12 x86_64 postgresql-17-pg-duckdb
PIGSTY 0.2.0
postgresql-16-pg-duckdb
PIGSTY 0.2.0
postgresql-15-pg-duckdb
PIGSTY 0.2.0
postgresql-14-pg-duckdb
PIGSTY 0.2.0
d12 aarch64 postgresql-17-pg-duckdb
PIGSTY 0.2.0
postgresql-16-pg-duckdb
PIGSTY 0.2.0
postgresql-15-pg-duckdb
PIGSTY 0.2.0
postgresql-14-pg-duckdb
PIGSTY 0.2.0
u22 x86_64 postgresql-17-pg-duckdb
PIGSTY 0.2.0
postgresql-16-pg-duckdb
PIGSTY 0.2.0
postgresql-15-pg-duckdb
PIGSTY 0.2.0
postgresql-14-pg-duckdb
PIGSTY 0.2.0
u22 aarch64 postgresql-17-pg-duckdb
PIGSTY 0.2.0
postgresql-16-pg-duckdb
PIGSTY 0.2.0
postgresql-15-pg-duckdb
PIGSTY 0.2.0
postgresql-14-pg-duckdb
PIGSTY 0.2.0
u24 x86_64 postgresql-17-pg-duckdb
PIGSTY 0.2.0
postgresql-16-pg-duckdb
PIGSTY 0.2.0
postgresql-15-pg-duckdb
PIGSTY 0.2.0
postgresql-14-pg-duckdb
PIGSTY 0.2.0
u24 aarch64 postgresql-17-pg-duckdb
PIGSTY 0.2.0
postgresql-16-pg-duckdb
PIGSTY 0.2.0
postgresql-15-pg-duckdb
PIGSTY 0.2.0
postgresql-14-pg-duckdb
PIGSTY 0.2.0

Installation

Install pg_duckdb via the pig CLI tool:

pig ext install pg_duckdb

Install pg_duckdb via Pigsty playbook:

./pgsql.yml -t pg_extension -e '{"pg_extensions": ["pg_duckdb"]}' # -l <cls>

Install pg_duckdb RPM from YUM repo directly:

dnf install pg_duckdb_17*;
dnf install pg_duckdb_16*;
dnf install pg_duckdb_15*;
dnf install pg_duckdb_14*;

Install pg_duckdb DEB from APT repo directly:

apt install postgresql-17-pg-duckdb;
apt install postgresql-16-pg-duckdb;
apt install postgresql-15-pg-duckdb;
apt install postgresql-14-pg-duckdb;

Extension pg_duckdb has to be added to shared_preload_libraries

shared_preload_libraries = 'pg_duckdb'; # add to pg cluster config

Enable pg_duckdb extension on PostgreSQL cluster:

CREATE EXTENSION pg_duckdb;

Usage

Add pg_duckdb to shared_preload_libraries via patronictl

pg edit-config --force -p shared_preload_libraries='pg_duckdb, pg_stat_statements, auto_explain'
pg restart --force pg-meta

Create Extension

CREATE EXTENSION pg_duckdb;

Generate some data

pgbench -is100
\timing on

SELECT count(*) FROM pgbench_accounts;
-- 3268.023ms

# use the duckdb execution engine
SET duckdb.force_execution = true;


postgres@el8:5432/postgres=# explain SELECT count(*) FROM pgbench_accounts;
                                   QUERY PLAN
---------------------------------------------------------------------------------
Custom Scan (DuckDBScan)  (cost=0.00..0.00 rows=0 width=0)
DuckDB Execution Plan:

┌───────────────────────────┐
│    UNGROUPED_AGGREGATE    │
│    ────────────────────   │
│        Aggregates:        │
│        count_star()└─────────────┬─────────────┘
┌─────────────┴─────────────┐
│     POSTGRES_SEQ_SCAN     │
│    ────────────────────   │
│         Function:         │
│     POSTGRES_SEQ_SCAN     │
│                           │
│       ~10000000 Rows      │
└───────────────────────────┘


JIT:
Functions: 1
Options: Inlining false, Optimization false, Expressions true, Deforming true
(22 rows)


postgres@el8:5432/postgres=# SELECT count(*) FROM pgbench_accounts;
count
----------
10000000
(1 row)

Time: 696.801 ms

According some user feedbacks, the duckdb engine can achieve 100x - 1000x speed up on certain queries.

Check more details @ https://github.com/duckdb/pg_duckdb




6 - pg_mooncake

Columnstore Table in Postgres

Overview

PIGSTY 3rd Party Extension: pg_mooncake : Columnstore Table in Postgres

Information

Metadata

  • Latest Version: 0.1.0
  • Postgres Support: 17,16,15,14
  • Need Load: Shared library do not need explicit loading
  • Need DDL: Dd not need CREATE EXTENSION DDL
  • Relocatable: Can be installed into other schemas
  • Trusted: Untrusted, Require Superuser to Create
  • Schemas: N/A
  • Requires: N/A

RPM / DEB

  • RPM Repo: PIGSTY
  • RPM Name: pg_mooncake_$v*
  • RPM Ver : 0.1.0
  • RPM Deps: N/A
  • DEB Repo: PIGSTY
  • DEB Name: postgresql-$v-pg-mooncake
  • DEB Ver : 0.1.0
  • DEB Deps: N/A

Packages

OS Arch PG17 PG16 PG15 PG14 PG13
el8 x86_64 pg_mooncake_17
PIGSTY 0.1.0
pg_mooncake_16
PIGSTY 0.1.0
pg_mooncake_15
PIGSTY 0.1.0
pg_mooncake_14
PIGSTY 0.1.0
el8 aarch64 pg_mooncake_17
PIGSTY 0.1.0
pg_mooncake_16
PIGSTY 0.1.0
pg_mooncake_15
PIGSTY 0.1.0
pg_mooncake_14
PIGSTY 0.1.0
el9 x86_64 pg_mooncake_17
PIGSTY 0.1.1
pg_mooncake_16
PIGSTY 0.1.1
pg_mooncake_15
PIGSTY 0.1.1
pg_mooncake_14
PIGSTY 0.1.0
el9 aarch64 pg_mooncake_17
PIGSTY 0.1.0
pg_mooncake_16
PIGSTY 0.1.1
pg_mooncake_15
PIGSTY 0.1.1
pg_mooncake_14
PIGSTY 0.1.1
d12 x86_64 postgresql-17-pg-mooncake
PIGSTY 0.1.1
postgresql-16-pg-mooncake
PIGSTY 0.1.1
postgresql-15-pg-mooncake
PIGSTY 0.1.1
postgresql-14-pg-mooncake
PIGSTY 0.1.0
d12 aarch64 postgresql-17-pg-mooncake
PIGSTY 0.1.1
postgresql-16-pg-mooncake
PIGSTY 0.1.0
postgresql-15-pg-mooncake
PIGSTY 0.1.0
postgresql-14-pg-mooncake
PIGSTY 0.1.0
u22 x86_64 postgresql-17-pg-mooncake
PIGSTY 0.1.1
postgresql-16-pg-mooncake
PIGSTY 0.1.1
postgresql-15-pg-mooncake
PIGSTY 0.1.1
postgresql-14-pg-mooncake
PIGSTY 0.1.0
u22 aarch64 postgresql-17-pg-mooncake
PIGSTY 0.1.1
postgresql-16-pg-mooncake
PIGSTY 0.1.1
postgresql-15-pg-mooncake
PIGSTY 0.1.1
postgresql-14-pg-mooncake
PIGSTY 0.1.0
u24 x86_64 postgresql-17-pg-mooncake
PIGSTY 0.1.1
postgresql-16-pg-mooncake
PIGSTY 0.1.1
postgresql-15-pg-mooncake
PIGSTY 0.1.1
postgresql-14-pg-mooncake
PIGSTY 0.1.0
u24 aarch64 postgresql-17-pg-mooncake
PIGSTY 0.1.1
postgresql-16-pg-mooncake
PIGSTY 0.1.1
postgresql-15-pg-mooncake
PIGSTY 0.1.1
postgresql-14-pg-mooncake
PIGSTY 0.1.0

Installation

Install pg_mooncake via the pig CLI tool:

pig ext install pg_mooncake

Install pg_mooncake via Pigsty playbook:

./pgsql.yml -t pg_extension -e '{"pg_extensions": ["pg_mooncake"]}' # -l <cls>

Install pg_mooncake RPM from YUM repo directly:

dnf install pg_mooncake_17*;
dnf install pg_mooncake_16*;
dnf install pg_mooncake_15*;
dnf install pg_mooncake_14*;

Install pg_mooncake DEB from APT repo directly:

apt install postgresql-17-pg-mooncake;
apt install postgresql-16-pg-mooncake;
apt install postgresql-15-pg-mooncake;
apt install postgresql-14-pg-mooncake;

Extension %s does not need CREATE EXTENSION command


Usage

THIS EXTENSION IS CONFLICT WITH pg_duckdb & duckdb_fdw, if it is under maintained, we may remove this extension in the future

Beware that this package is conflict with the official pg_duckdb extension due to use the same libduckdb.so under same path.

And this function will block the duckdb_fdw functioning.

-- Create a columnstore table in PostgreSQL
CREATE TABLE user_activity (....) USING columnstore;

-- Insert data into a columnstore table
INSERT INTO user_activity VALUES ....;

-- Query a columnstore table in PostgreSQL
SELECT * FROM user_activity LIMIT 5;

Example

Use mooncake with S3:

SELECT mooncake.create_secret('<name>', 'S3', '<key_id>', '<secret>', '{"REGION": "<s3-region>"}');

SET mooncake.default_bucket = 's3://<bucket>';

SET mooncake.enable_local_cache = false; -- (if you are using Neon)

Use mooncake with local columnstore:

CREATE TABLE user_activity(
  user_id BIGINT,
  activity_type TEXT,
  activity_timestamp TIMESTAMP,
  duration INT
) USING columnstore;

INSERT INTO user_activity VALUES
  (1, 'login', '2024-01-01 08:00:00', 120),
  (2, 'page_view', '2024-01-01 08:05:00', 30),
  (3, 'logout', '2024-01-01 08:30:00', 60),
  (4, 'error', '2024-01-01 08:13:00', 60);

SELECT * FROM user_activity;

Run analytic queries

SELECT
    user_id,
    activity_type,
    SUM(duration) AS total_duration,
    COUNT(*) AS activity_count
FROM
    user_activity
GROUP BY
    user_id, activity_type
ORDER BY
    user_id, activity_type;

The explain result could be:

postgres@u22:5432/postgres=# explain SELECT
    user_id,
    activity_type,
    SUM(duration) AS total_duration,
    COUNT(*) AS activity_count
FROM
    user_activity
GROUP BY
    user_id, activity_type
ORDER BY
    user_id, activity_type;
                         QUERY PLAN
------------------------------------------------------------
 Custom Scan (DuckDBScan)  (cost=0.00..0.00 rows=0 width=0)
   DuckDB Execution Plan:

 ┌───────────────────────────┐
 │         PROJECTION        │
 │    ────────────────────   │
 │__internal_decompress_integ│
 │     ral_bigint(#0, 1)     │
 │             #1            │
 │             #2            │
 │             #3            │
 │                           │
 │          ~2 Rows          │
 └─────────────┬─────────────┘
 ┌─────────────┴─────────────┐
 │          ORDER_BY         │
 │    ────────────────────   │
 │ user_activity.user_id ASC │
 │       user_activity       │
 │     .activity_type ASC    │
 └─────────────┬─────────────┘
 ┌─────────────┴─────────────┐
 │         PROJECTION        │
 │    ────────────────────   │
 │__internal_compress_integra│
 │     l_utinyint(#0, 1)     │
 │             #1            │
 │             #2            │
 │             #3            │
 │                           │
 │          ~2 Rows          │
 └─────────────┬─────────────┘
 ┌─────────────┴─────────────┐
 │         PROJECTION        │
 │    ────────────────────   │
 │__internal_decompress_integ│
 │     ral_bigint(#0, 1)     │
 │             #1            │
 │             #2            │
 │             #3            │
 │                           │
 │          ~2 Rows          │
 └─────────────┬─────────────┘
 ┌─────────────┴─────────────┐
 │       HASH_GROUP_BY       │
 │    ────────────────────   │
 │          Groups:          │
 │             #0            │
 │             #1            │
 │                           │
 │        Aggregates:        │
 │          sum(#2)          │
 │        count_star()       │
 │                           │
 │          ~2 Rows          │
 └─────────────┬─────────────┘
 ┌─────────────┴─────────────┐
 │         PROJECTION        │
 │    ────────────────────   │
 │          user_id          │
 │       activity_type       │
 │          duration         │
 │                           │
 │          ~4 Rows          │
 └─────────────┬─────────────┘
 ┌─────────────┴─────────────┐
 │         PROJECTION        │
 │    ────────────────────   │
 │__internal_compress_integra│
 │     l_utinyint(#0, 1)     │
 │             #1            │
 │             #2            │
 │                           │
 │          ~4 Rows          │
 └─────────────┬─────────────┘
 ┌─────────────┴─────────────┐
 │     COLUMNSTORE_SCAN      │
 │    ────────────────────   │
 │         Function:         │
 │      COLUMNSTORE_SCAN     │
 │                           │
 │        Projections:       │
 │          user_id          │
 │       activity_type       │
 │          duration         │
 │                           │
 │          ~4 Rows          │
 └───────────────────────────┘


(90 rows)



7 - duckdb_fdw

DuckDB Foreign Data Wrapper

Overview

PIGSTY 3rd Party Extension: duckdb_fdw : DuckDB Foreign Data Wrapper

Information

Metadata

  • Latest Version: 1.1.2
  • Postgres Support: 17,16,15,14,13
  • Need Load: Shared library do not need explicit loading
  • Need DDL: Need CREATE EXTENSION DDL
  • Relocatable: Can not install to arbitrary schema
  • Trusted: Untrusted, Require Superuser to Create
  • Schemas: N/A
  • Requires: N/A

RPM / DEB

  • RPM Repo: PIGSTY
  • RPM Name: duckdb_fdw_$v*
  • RPM Ver : 1.1.2
  • RPM Deps: libduckdb
  • DEB Repo: PIGSTY
  • DEB Name: postgresql-$v-duckdb-fdw
  • DEB Ver : 1.1.2
  • DEB Deps: libduckdb

Packages

OS Arch PG17 PG16 PG15 PG14 PG13
el8 x86_64 duckdb_fdw_17
PIGSTY 1.1.2
duckdb_fdw_16
PIGSTY 1.1.2
duckdb_fdw_15
PIGSTY 1.1.2
duckdb_fdw_14
PIGSTY 1.1.2
duckdb_fdw_13
PIGSTY 1.1.2
el8 aarch64 duckdb_fdw_17
PIGSTY 1.1.2
duckdb_fdw_16
PIGSTY 1.1.2
duckdb_fdw_15
PIGSTY 1.1.2
duckdb_fdw_14
PIGSTY 1.1.2
duckdb_fdw_13
PIGSTY 1.1.2
el9 x86_64 duckdb_fdw_17
PIGSTY 1.1.2
duckdb_fdw_16
PIGSTY 1.1.2
duckdb_fdw_15
PIGSTY 1.1.2
duckdb_fdw_14
PIGSTY 1.1.2
duckdb_fdw_13
PIGSTY 1.1.2
el9 aarch64 duckdb_fdw_17
PIGSTY 1.1.2
duckdb_fdw_16
PIGSTY 1.1.2
duckdb_fdw_15
PIGSTY 1.1.2
duckdb_fdw_14
PIGSTY 1.1.2
duckdb_fdw_13
PIGSTY 1.1.2
d12 x86_64 postgresql-17-duckdb-fdw
PIGSTY 1.1.2
postgresql-16-duckdb-fdw
PIGSTY 1.1.2
postgresql-15-duckdb-fdw
PIGSTY 1.1.2
postgresql-14-duckdb-fdw
PIGSTY 1.1.2
postgresql-13-duckdb-fdw
PIGSTY 1.1.2
d12 aarch64 postgresql-17-duckdb-fdw
PIGSTY 1.1.2
postgresql-16-duckdb-fdw
PIGSTY 1.1.2
postgresql-15-duckdb-fdw
PIGSTY 1.1.2
postgresql-14-duckdb-fdw
PIGSTY 1.1.2
postgresql-13-duckdb-fdw
PIGSTY 1.1.2
u22 x86_64 postgresql-17-duckdb-fdw
PIGSTY 1.1.2
postgresql-16-duckdb-fdw
PIGSTY 1.1.2
postgresql-15-duckdb-fdw
PIGSTY 1.1.2
postgresql-14-duckdb-fdw
PIGSTY 1.1.2
postgresql-13-duckdb-fdw
PIGSTY 1.1.2
u22 aarch64 postgresql-17-duckdb-fdw
PIGSTY 1.1.2
postgresql-16-duckdb-fdw
PIGSTY 1.1.2
postgresql-15-duckdb-fdw
PIGSTY 1.1.2
postgresql-14-duckdb-fdw
PIGSTY 1.1.2
postgresql-13-duckdb-fdw
PIGSTY 1.1.2
u24 x86_64 postgresql-17-duckdb-fdw
PIGSTY 1.1.2
postgresql-16-duckdb-fdw
PIGSTY 1.1.2
postgresql-15-duckdb-fdw
PIGSTY 1.1.2
postgresql-14-duckdb-fdw
PIGSTY 1.1.2
postgresql-13-duckdb-fdw
PIGSTY 1.1.2
u24 aarch64 postgresql-17-duckdb-fdw
PIGSTY 1.1.2
postgresql-16-duckdb-fdw
PIGSTY 1.1.2
postgresql-15-duckdb-fdw
PIGSTY 1.1.2
postgresql-14-duckdb-fdw
PIGSTY 1.1.2
postgresql-13-duckdb-fdw
PIGSTY 1.1.2

Installation

Install duckdb_fdw via the pig CLI tool:

pig ext install duckdb_fdw

Install duckdb_fdw via Pigsty playbook:

./pgsql.yml -t pg_extension -e '{"pg_extensions": ["duckdb_fdw"]}' # -l <cls>

Install duckdb_fdw RPM from YUM repo directly:

dnf install duckdb_fdw_17*;
dnf install duckdb_fdw_16*;
dnf install duckdb_fdw_15*;
dnf install duckdb_fdw_14*;
dnf install duckdb_fdw_13*;

Install duckdb_fdw DEB from APT repo directly:

apt install postgresql-17-duckdb-fdw;
apt install postgresql-16-duckdb-fdw;
apt install postgresql-15-duckdb-fdw;
apt install postgresql-14-duckdb-fdw;
apt install postgresql-13-duckdb-fdw;

Enable duckdb_fdw extension on PostgreSQL cluster:

CREATE EXTENSION duckdb_fdw;

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




8 - pg_parquet

copy data between Postgres and Parquet

Overview

PIGSTY 3rd Party Extension: pg_parquet : copy data between Postgres and Parquet

Information

Metadata

  • Latest Version: 0.2.0
  • Postgres Support: 17,16,15,14
  • Need Load: Explicit Loading Required
  • Need DDL: Need CREATE EXTENSION DDL
  • Relocatable: Can be installed into other schemas
  • Trusted: Trusted, Can be created by user with CREATE Privilege
  • Schemas: N/A
  • Requires: N/A

RPM / DEB

  • RPM Repo: PIGSTY
  • RPM Name: pg_parquet_$v
  • RPM Ver : 0.2.0
  • RPM Deps: N/A
  • DEB Repo: PIGSTY
  • DEB Name: postgresql-$v-pg-parquet
  • DEB Ver : 0.2.0
  • DEB Deps: N/A

Packages

OS Arch PG17 PG16 PG15 PG14 PG13
el8 x86_64 pg_parquet_17
PIGSTY 0.2.0
pg_parquet_16
PIGSTY 0.2.0
pg_parquet_15
PIGSTY 0.2.0
pg_parquet_14
PIGSTY 0.2.0
el8 aarch64 pg_parquet_17
PIGSTY 0.2.0
pg_parquet_16
PIGSTY 0.2.0
pg_parquet_15
PIGSTY 0.2.0
pg_parquet_14
PIGSTY 0.2.0
el9 x86_64 pg_parquet_17
PIGSTY 0.2.0
pg_parquet_16
PIGSTY 0.2.0
pg_parquet_15
PIGSTY 0.2.0
pg_parquet_14
PIGSTY 0.2.0
el9 aarch64 pg_parquet_17
PIGSTY 0.2.0
pg_parquet_16
PIGSTY 0.2.0
pg_parquet_15
PIGSTY 0.2.0
pg_parquet_14
PIGSTY 0.2.0
d12 x86_64 postgresql-17-pg-parquet
PIGSTY 0.2.0
postgresql-16-pg-parquet
PIGSTY 0.2.0
postgresql-15-pg-parquet
PIGSTY 0.2.0
postgresql-14-pg-parquet
PIGSTY 0.2.0
d12 aarch64 postgresql-17-pg-parquet
PIGSTY 0.2.0
postgresql-16-pg-parquet
PIGSTY 0.2.0
postgresql-15-pg-parquet
PIGSTY 0.2.0
postgresql-14-pg-parquet
PIGSTY 0.2.0
u22 x86_64 postgresql-17-pg-parquet
PIGSTY 0.2.0
postgresql-16-pg-parquet
PIGSTY 0.2.0
postgresql-15-pg-parquet
PIGSTY 0.2.0
postgresql-14-pg-parquet
PIGSTY 0.2.0
u22 aarch64 postgresql-17-pg-parquet
PIGSTY 0.2.0
postgresql-16-pg-parquet
PIGSTY 0.2.0
postgresql-15-pg-parquet
PIGSTY 0.2.0
postgresql-14-pg-parquet
PIGSTY 0.2.0
u24 x86_64 postgresql-17-pg-parquet
PIGSTY 0.2.0
postgresql-16-pg-parquet
PIGSTY 0.2.0
postgresql-15-pg-parquet
PIGSTY 0.2.0
postgresql-14-pg-parquet
PIGSTY 0.2.0
u24 aarch64 postgresql-17-pg-parquet
PIGSTY 0.2.0
postgresql-16-pg-parquet
PIGSTY 0.2.0
postgresql-15-pg-parquet
PIGSTY 0.2.0
postgresql-14-pg-parquet
PIGSTY 0.2.0

Installation

Install pg_parquet via the pig CLI tool:

pig ext install pg_parquet

Install pg_parquet via Pigsty playbook:

./pgsql.yml -t pg_extension -e '{"pg_extensions": ["pg_parquet"]}' # -l <cls>

Install pg_parquet RPM from YUM repo directly:

dnf install pg_parquet_17;
dnf install pg_parquet_16;
dnf install pg_parquet_15;
dnf install pg_parquet_14;

Install pg_parquet DEB from APT repo directly:

apt install postgresql-17-pg-parquet;
apt install postgresql-16-pg-parquet;
apt install postgresql-15-pg-parquet;
apt install postgresql-14-pg-parquet;

Extension pg_parquet has to be added to shared_preload_libraries

shared_preload_libraries = 'pg_parquet'; # add to pg cluster config

Enable pg_parquet extension on PostgreSQL cluster:

CREATE EXTENSION pg_parquet;



9 - pg_fkpart

Table partitioning by foreign key utility

Overview

MIXED 3rd Party Extension: pg_fkpart : Table partitioning by foreign key utility

Information

Metadata

  • Latest Version: 1.7
  • Postgres Support: 17,16,15,14,13
  • Need Load: Shared library do not need explicit loading
  • Need DDL: Need CREATE EXTENSION DDL
  • Relocatable: Can be installed into other schemas
  • Trusted: Untrusted, Require Superuser to Create
  • Schemas: pgfkpart
  • Requires: N/A

RPM / DEB

  • RPM Repo: PIGSTY
  • RPM Name: pg_fkpart_$v
  • RPM Ver : 1.7
  • RPM Deps: N/A
  • DEB Repo: PIGSTY
  • DEB Name: postgresql-$v-pg-fkpart
  • DEB Ver : 1.7
  • DEB Deps: N/A

Packages

OS Arch PG17 PG16 PG15 PG14 PG13
el8 x86_64 pg_fkpart_17
PGDG 1.7.0
pg_fkpart_16
PGDG 1.7.0
pg_fkpart_15
PGDG 1.7.0
pg_fkpart_14
PGDG 1.7.0
pg_fkpart_13
PIGSTY 1.7.0
el8 aarch64 pg_fkpart_17
PGDG 1.7.0
pg_fkpart_16
PGDG 1.7.0
pg_fkpart_15
PGDG 1.7.0
pg_fkpart_14
PGDG 1.7.0
pg_fkpart_13
PGDG 1.7.0
el9 x86_64 pg_fkpart_17
PGDG 1.7.0
pg_fkpart_16
PGDG 1.7.0
pg_fkpart_15
PGDG 1.7.0
pg_fkpart_14
PGDG 1.7.0
pg_fkpart_13
PGDG 1.7.0
el9 aarch64 pg_fkpart_17
PGDG 1.7.0
pg_fkpart_16
PGDG 1.7.0
pg_fkpart_15
PGDG 1.7.0
pg_fkpart_14
PGDG 1.7.0
pg_fkpart_13
PGDG 1.7.0
d12 x86_64 postgresql-17-pg-fkpart
PIGSTY 1.7.0
postgresql-16-pg-fkpart
PIGSTY 1.7.0
postgresql-15-pg-fkpart
PIGSTY 1.7.0
postgresql-14-pg-fkpart
PIGSTY 1.7.0
postgresql-13-pg-fkpart
PIGSTY 1.7.0
d12 aarch64 postgresql-17-pg-fkpart
PIGSTY 1.7.0
postgresql-16-pg-fkpart
PIGSTY 1.7.0
postgresql-15-pg-fkpart
PIGSTY 1.7.0
postgresql-14-pg-fkpart
PIGSTY 1.7.0
postgresql-13-pg-fkpart
PIGSTY 1.7.0
u22 x86_64 postgresql-17-pg-fkpart
PIGSTY 1.7.0
postgresql-16-pg-fkpart
PIGSTY 1.7.0
postgresql-15-pg-fkpart
PIGSTY 1.7.0
postgresql-14-pg-fkpart
PIGSTY 1.7.0
postgresql-13-pg-fkpart
PIGSTY 1.7.0
u22 aarch64 postgresql-17-pg-fkpart
PIGSTY 1.7.0
postgresql-16-pg-fkpart
PIGSTY 1.7.0
postgresql-15-pg-fkpart
PIGSTY 1.7.0
postgresql-14-pg-fkpart
PIGSTY 1.7.0
postgresql-13-pg-fkpart
PIGSTY 1.7.0
u24 x86_64 postgresql-17-pg-fkpart
PIGSTY 1.7.0
postgresql-16-pg-fkpart
PIGSTY 1.7.0
postgresql-15-pg-fkpart
PIGSTY 1.7.0
postgresql-14-pg-fkpart
PIGSTY 1.7.0
postgresql-13-pg-fkpart
PIGSTY 1.7.0
u24 aarch64 postgresql-17-pg-fkpart
PIGSTY 1.7.0
postgresql-16-pg-fkpart
PIGSTY 1.7.0
postgresql-15-pg-fkpart
PIGSTY 1.7.0
postgresql-14-pg-fkpart
PIGSTY 1.7.0
postgresql-13-pg-fkpart
PIGSTY 1.7.0

Installation

Install pg_fkpart via the pig CLI tool:

pig ext install pg_fkpart

Install pg_fkpart via Pigsty playbook:

./pgsql.yml -t pg_extension -e '{"pg_extensions": ["pg_fkpart"]}' # -l <cls>

Install pg_fkpart RPM from YUM repo directly:

dnf install pg_fkpart_17;
dnf install pg_fkpart_16;
dnf install pg_fkpart_15;
dnf install pg_fkpart_14;
dnf install pg_fkpart_13;

Install pg_fkpart DEB from APT repo directly:

apt install postgresql-17-pg-fkpart;
apt install postgresql-16-pg-fkpart;
apt install postgresql-15-pg-fkpart;
apt install postgresql-14-pg-fkpart;
apt install postgresql-13-pg-fkpart;

Enable pg_fkpart extension on PostgreSQL cluster:

CREATE EXTENSION pg_fkpart;



10 - pg_partman

Extension to manage partitioned tables by time or ID

Overview

PGDG 1st Party Extension: pg_partman : Extension to manage partitioned tables by time or ID

Information

Metadata

  • Latest Version: 5.2.4
  • Postgres Support: 17,16,15,14,13
  • Need Load: Shared library do not need explicit loading
  • Need DDL: Need CREATE EXTENSION DDL
  • Relocatable: Can be installed into other schemas
  • Trusted: Untrusted, Require Superuser to Create
  • Schemas: N/A
  • Requires: N/A

RPM / DEB

  • RPM Repo: PGDG
  • RPM Name: pg_partman_$v*
  • RPM Ver : 5.2.4
  • RPM Deps: N/A
  • DEB Repo: PGDG
  • DEB Name: postgresql-$v-partman
  • DEB Ver : 5.2.4
  • DEB Deps: N/A

Packages

OS Arch PG17 PG16 PG15 PG14 PG13
el8 x86_64 pg_partman_17
PGDG 5.2.4
pg_partman_16
PGDG 5.2.4
pg_partman_15
PGDG 5.2.4
pg_partman_14
PGDG 5.2.4
pg_partman_13
PGDG 4.7.4
el8 aarch64 pg_partman_17
PGDG 5.2.4
pg_partman_16
PGDG 5.2.4
pg_partman_15
PGDG 5.2.4
pg_partman_14
PGDG 5.2.4
pg_partman_13
PGDG 4.7.4
el9 x86_64 pg_partman_17
PGDG 5.2.4
pg_partman_16
PGDG 5.2.4
pg_partman_15
PGDG 5.2.4
pg_partman_14
PGDG 5.2.4
pg_partman_13
PGDG 4.7.4
el9 aarch64 pg_partman_17
PGDG 5.2.4
pg_partman_16
PGDG 5.2.4
pg_partman_15
PGDG 5.2.4
pg_partman_14
PGDG 5.2.4
pg_partman_13
PGDG 4.7.4
d12 x86_64 postgresql-17-partman
PGDG 5.2.4
postgresql-16-partman
PGDG 5.2.4
postgresql-15-partman
PGDG 5.2.4
postgresql-14-partman
PGDG 5.2.4
postgresql-13-partman
PGDG 4.7.4
d12 aarch64 postgresql-17-partman
PGDG 5.2.4
postgresql-16-partman
PGDG 5.2.4
postgresql-15-partman
PGDG 5.2.4
postgresql-14-partman
PGDG 5.2.4
postgresql-13-partman
PGDG 4.7.4
u22 x86_64 postgresql-17-partman
PGDG 5.2.4
postgresql-16-partman
PGDG 5.2.4
postgresql-15-partman
PGDG 5.2.4
postgresql-14-partman
PGDG 5.2.4
postgresql-13-partman
PGDG 4.7.4
u22 aarch64 postgresql-17-partman
PGDG 5.2.4
postgresql-16-partman
PGDG 5.2.4
postgresql-15-partman
PGDG 5.2.4
postgresql-14-partman
PGDG 5.2.4
postgresql-13-partman
PGDG 4.7.4
u24 x86_64 postgresql-17-partman
PGDG 5.2.4
postgresql-16-partman
PGDG 5.2.4
postgresql-15-partman
PGDG 5.2.4
postgresql-14-partman
PGDG 5.2.4
u24 aarch64 postgresql-17-partman
PGDG 5.2.4
postgresql-16-partman
PGDG 5.2.4
postgresql-15-partman
PGDG 5.2.4
postgresql-14-partman
PGDG 5.2.4

Installation

Install pg_partman via the pig CLI tool:

pig ext install pg_partman

Install pg_partman via Pigsty playbook:

./pgsql.yml -t pg_extension -e '{"pg_extensions": ["pg_partman"]}' # -l <cls>

Install pg_partman RPM from YUM repo directly:

dnf install pg_partman_17*;
dnf install pg_partman_16*;
dnf install pg_partman_15*;
dnf install pg_partman_14*;
dnf install pg_partman_13*;

Install pg_partman DEB from APT repo directly:

apt install postgresql-17-partman;
apt install postgresql-16-partman;
apt install postgresql-15-partman;
apt install postgresql-14-partman;
apt install postgresql-13-partman;

Enable pg_partman extension on PostgreSQL cluster:

CREATE EXTENSION pg_partman;



11 - plproxy

Database partitioning implemented as procedural language

Overview

PGDG 3rd Party Extension: plproxy : Database partitioning implemented as procedural language

Information

Metadata

  • Latest Version: 2.11.0
  • Postgres Support: 17,16,15,14,13
  • Need Load: Shared library do not need explicit loading
  • Need DDL: Need CREATE EXTENSION DDL
  • Relocatable: Can be installed into other schemas
  • Trusted: Untrusted, Require Superuser to Create
  • Schemas: N/A
  • Requires: N/A

RPM / DEB

  • RPM Repo: PIGSTY
  • RPM Name: plproxy_$v*
  • RPM Ver : 2.11.0
  • RPM Deps: N/A
  • DEB Repo: PGDG
  • DEB Name: postgresql-$v-plproxy
  • DEB Ver : 2.11.0
  • DEB Deps: N/A

Packages

OS Arch PG17 PG16 PG15 PG14 PG13
el8 x86_64 plproxy_17
PGDG 2.11.0
plproxy_16
PIGSTY 2.11.0
plproxy_15
PIGSTY 2.11.0
plproxy_14
PIGSTY 2.11.0
plproxy_13
PIGSTY 2.11.0
el8 aarch64 plproxy_17
PGDG 2.11.0
plproxy_16
PIGSTY 2.11.0
plproxy_15
PIGSTY 2.11.0
plproxy_14
PIGSTY 2.11.0
plproxy_13
PIGSTY 2.11.0
el9 x86_64 plproxy_17
PGDG 2.11.0
plproxy_16
PIGSTY 2.11.0
plproxy_15
PIGSTY 2.11.0
plproxy_14
PIGSTY 2.11.0
plproxy_13
PIGSTY 2.11.0
el9 aarch64 plproxy_17
PGDG 2.11.0
plproxy_16
PIGSTY 2.11.0
plproxy_15
PIGSTY 2.11.0
plproxy_14
PIGSTY 2.11.0
plproxy_13
PIGSTY 2.11.0
d12 x86_64 postgresql-17-plproxy
PGDG 2.11.0
postgresql-16-plproxy
PGDG 2.11.0
postgresql-15-plproxy
PGDG 2.11.0
postgresql-14-plproxy
PGDG 2.11.0
postgresql-13-plproxy
PGDG 2.11.0
d12 aarch64 postgresql-17-plproxy
PGDG 2.11.0
postgresql-16-plproxy
PGDG 2.11.0
postgresql-15-plproxy
PGDG 2.11.0
postgresql-14-plproxy
PGDG 2.11.0
postgresql-13-plproxy
PGDG 2.11.0
u22 x86_64 postgresql-17-plproxy
PGDG 2.11.0
postgresql-16-plproxy
PGDG 2.11.0
postgresql-15-plproxy
PGDG 2.11.0
postgresql-14-plproxy
PGDG 2.11.0
postgresql-13-plproxy
PGDG 2.11.0
u22 aarch64 postgresql-17-plproxy
PGDG 2.11.0
postgresql-16-plproxy
PGDG 2.11.0
postgresql-15-plproxy
PGDG 2.11.0
postgresql-14-plproxy
PGDG 2.11.0
postgresql-13-plproxy
PGDG 2.11.0
u24 x86_64 postgresql-17-plproxy
PGDG 2.11.0
postgresql-16-plproxy
PGDG 2.11.0
postgresql-15-plproxy
PGDG 2.11.0
postgresql-14-plproxy
PGDG 2.11.0
postgresql-13-plproxy
PGDG 2.11.0
u24 aarch64 postgresql-17-plproxy
PGDG 2.11.0
postgresql-16-plproxy
PGDG 2.11.0
postgresql-15-plproxy
PGDG 2.11.0
postgresql-14-plproxy
PGDG 2.11.0
postgresql-13-plproxy
PGDG 2.11.0

Installation

Install plproxy via the pig CLI tool:

pig ext install plproxy

Install plproxy via Pigsty playbook:

./pgsql.yml -t pg_extension -e '{"pg_extensions": ["plproxy"]}' # -l <cls>

Install plproxy RPM from YUM repo directly:

dnf install plproxy_17*;
dnf install plproxy_16*;
dnf install plproxy_15*;
dnf install plproxy_14*;
dnf install plproxy_13*;

Install plproxy DEB from APT repo directly:

apt install postgresql-17-plproxy;
apt install postgresql-16-plproxy;
apt install postgresql-15-plproxy;
apt install postgresql-14-plproxy;
apt install postgresql-13-plproxy;

Enable plproxy extension on PostgreSQL cluster:

CREATE EXTENSION plproxy;



12 - pg_strom

PG-Strom - big-data processing acceleration using GPU and NVME

Overview

PGDG 1st Party Extension: pg_strom : PG-Strom - big-data processing acceleration using GPU and NVME

Information

Metadata

  • Latest Version: 5.1
  • Postgres Support: 17,16,15,14,13
  • Need Load: Shared library do not need explicit loading
  • Need DDL: Need CREATE EXTENSION DDL
  • Relocatable: Unknown
  • Trusted: Untrusted, Require Superuser to Create
  • Schemas: N/A
  • Requires: N/A

RPM / DEB

  • RPM Repo: PGDG
  • RPM Name: pg_strom_$v*
  • RPM Ver : 5.1
  • RPM Deps: N/A
  • DEB Repo: None
  • DEB Name: N/A
  • DEB Ver : N/A
  • DEB Deps: N/A

Packages

OS Arch PG17 PG16 PG15 PG14 PG13
el8 x86_64 pg_strom_17
PGDG 5.2.2
pg_strom_16
PGDG 5.2.2
pg_strom_15
PGDG 5.2.2
pg_strom_14
PGDG 3.5
pg_strom_13
PGDG 3.5
el8 aarch64
el9 x86_64 pg_strom_17
PGDG 5.2.2
pg_strom_16
PGDG 5.2.2
pg_strom_15
PGDG 5.2.2
pg_strom_14
PGDG 3.5
pg_strom_13
PGDG 3.5
el9 aarch64
d12 x86_64
d12 aarch64
u22 x86_64
u22 aarch64
u24 x86_64
u24 aarch64

Installation

Install pg_strom via the pig CLI tool:

pig ext install pg_strom

Install pg_strom via Pigsty playbook:

./pgsql.yml -t pg_extension -e '{"pg_extensions": ["pg_strom"]}' # -l <cls>

Install pg_strom RPM from YUM repo directly:

dnf install pg_strom_17*;
dnf install pg_strom_16*;
dnf install pg_strom_15*;
dnf install pg_strom_14*;
dnf install pg_strom_13*;

Enable pg_strom extension on PostgreSQL cluster:

CREATE EXTENSION pg_strom;



13 - tablefunc

functions that manipulate whole tables, including crosstab

Overview

CONTRIB Built-in Extension: tablefunc : functions that manipulate whole tables, including crosstab

Information

Metadata

  • Latest Version: 1.0
  • Postgres Support: 17,16,15,14,13
  • Need Load: Shared library do not need explicit loading
  • Need DDL: Need CREATE EXTENSION DDL
  • Relocatable: Unknown
  • Trusted: Trusted, Can be created by user with CREATE Privilege
  • Schemas: N/A
  • Requires: N/A

RPM / DEB

PostgreSQL Built-in Contrib Extension


Packages

OS Arch PG17 PG16 PG15 PG14 PG13
el8 x86_64
el8 aarch64
el9 x86_64
el9 aarch64
d12 x86_64
d12 aarch64
u22 x86_64
u22 aarch64
u24 x86_64
u24 aarch64

Installation

Extension tablefunc is PostgreSQL Built-in Contrib Extension which is installed along with the kernel/contrib.

Install tablefunc RPM from YUM repo directly:

dnf install postgresql17-contrib;
dnf install postgresql16-contrib;
dnf install postgresql15-contrib;
dnf install postgresql14-contrib;
dnf install postgresql13-contrib;

Install tablefunc DEB from APT repo directly:

apt install postgresql-17;
apt install postgresql-16;
apt install postgresql-15;
apt install postgresql-14;
apt install postgresql-13;

Enable tablefunc extension on PostgreSQL cluster:

CREATE EXTENSION tablefunc;