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

Return to the regular view of this page.

Extension: PGSQL

There are 340 PostgreSQL extensions available in Pigsty, with out-of-box RPM/DEB packages"

There are 340 PostgreSQL extensions available in Pigsty, including 326 RPM extensions available in EL and 312 DEB extensions available in Debian/Ubuntu.

There are 70 PostgreSQL built-in Contrib extensions, alone with (109+133) deb and (135+121) rpm extensions provided by PGDG and Pigsty.

We have an extension catalog and usage instructions. Even if you are not using Pigsty, you can still use our extension repository.

1 - Extension List

The complete 346 PostgreSQL Extension List available in Pigsty

There are 340 available extensions in Pigsty, including 338 RPM extensions available in EL and 326 DEB extensions available in Debian/Ubuntu. There are 70 Contrib extensions provided by PostgreSQL and 275 additional third-party extensions provide by PGDG & Pigsty.

Extension (URL) Alias Repo Version Category License LOAD DDL TRUST RELOC Description
timescaledb timescaledb PGDG 2.17.0 TIME Timescale Enables scalable inserts and complex queries for time-series data (Apache 2 Edition)
timeseries pg_timeseries PIGSTY 0.1.6 TIME PostgreSQL Convenience API for Tembo time series stack
periods periods PGDG 1.2 TIME PostgreSQL Provide Standard SQL functionality for PERIODs and SYSTEM VERSIONING
temporal_tables temporal_tables PIGSTY 1.2.2 TIME BSD 2 temporal tables
emaj emaj PGDG 4.5.0 TIME GPLv3 E-Maj extension enables fine-grained write logging and time travel on subsets of the database.
table_version table_version PGDG 1.10.3 TIME BSD 3 PostgreSQL table versioning extension
pg_cron pg_cron PGDG 1.6 TIME PostgreSQL Job scheduler for PostgreSQL
pg_later pg_later PIGSTY 0.1.1 TIME PostgreSQL pg_later: Run queries now and get results later
pg_background pg_background PGDG 1.0 TIME GPLv3 Run SQL queries in the background
pg_timetable pg_timetable PGDG 5.9.0 TIME PostgreSQL Advanced scheduling for PostgreSQL
postgis postgis PGDG 3.5.0 GIS GPLv2 PostGIS geometry and geography spatial types and functions
postgis_topology postgis PGDG 3.5.0 GIS GPLv2 PostGIS topology spatial types and functions
postgis_raster postgis PGDG 3.5.0 GIS GPLv2 PostGIS raster types and functions
postgis_sfcgal postgis PGDG 3.5.0 GIS GPLv2 PostGIS SFCGAL functions
postgis_tiger_geocoder postgis PGDG 3.5.0 GIS GPLv2 PostGIS tiger geocoder and reverse geocoder
address_standardizer postgis PGDG 3.5.0 GIS GPLv2 Used to parse an address into constituent elements. Generally used to support geocoding address normalization step.
address_standardizer_data_us postgis PGDG 3.5.0 GIS GPLv2 Address Standardizer US dataset example
pgrouting pgrouting PGDG 3.6.0 GIS GPLv2 pgRouting Extension
pointcloud pointcloud PIGSTY 1.2.5 GIS BSD 3 data type for lidar point clouds
pointcloud_postgis pointcloud PGDG 1.2.5 GIS BSD 3 integration for pointcloud LIDAR data and PostGIS geometry data
h3 pg_h3 PGDG 4.1.3 GIS Apache-2.0 H3 bindings for PostgreSQL
h3_postgis pg_h3 PGDG 4.1.3 GIS Apache-2.0 H3 PostGIS integration
q3c q3c PIGSTY 2.0.1 GIS GPLv2 q3c sky indexing plugin
ogr_fdw ogr_fdw PGDG 1.1 GIS MIT foreign-data wrapper for GIS data access
geoip geoip PGDG 0.3.0 GIS BSD 2 IP-based geolocation query
pg_polyline pg_polyline PIGSTY 0.0.0 GIS MIT Fast Google Encoded Polyline encoding & decoding for postgres
pg_geohash pg_geohash PIGSTY 1.0 GIS MIT Handle geohash based functionality for spatial coordinates
mobilitydb mobilitydb PGDG 1.1.1 GIS GPLv3 MobilityDB geospatial trajectory data management & analysis platform
earthdistance earthdistance CONTRIB 1.1 GIS PostgreSQL calculate great-circle distances on the surface of the Earth
vector pgvector PGDG 0.7.4 RAG PostgreSQL vector data type and ivfflat and hnsw access methods
vectorscale pgvectorscale PIGSTY 0.4.0 RAG PostgreSQL pgvectorscale: Advanced indexing for vector data
vectorize pg_vectorize PIGSTY 0.18.3 RAG PostgreSQL The simplest way to do vector search on Postgres
pg_similarity pg_similarity PIGSTY 1.0 RAG BSD 3 support similarity queries
smlar smlar PIGSTY 1.0 RAG PostgreSQL Effective similarity search
pg_summarize pg_summarize PIGSTY 0.0.0 FUNC PostgreSQL Text Summarization using LLMs. Built using pgrx
pg_tiktoken pg_tiktoken PIGSTY 0.0.1 RAG Apache-2.0 pg_tictoken: tiktoken tokenizer for use with OpenAI models in postgres
pgml pgml PIGSTY 2.9.3 RAG MIT PostgresML: Run AL/ML workloads with SQL interface
pg4ml pg4ml PIGSTY 2.0 RAG AGPLv3 Machine learning framework for PostgreSQL
pg_search pg_search PIGSTY 0.11.1 FTS AGPLv3 pg_search: Full text search for PostgreSQL using BM25
pg_bigm pg_bigm PGDG 1.2 FTS PostgreSQL create 2-gram (bigram) index for faster full text search.
zhparser zhparser PIGSTY 2.2 FTS PostgreSQL a parser for full-text search of Chinese
hunspell_cs_cz hunspell_cs_cz PIGSTY 1.0 FTS PostgreSQL Czech Hunspell Dictionary
hunspell_de_de hunspell_de_de PIGSTY 1.0 FTS PostgreSQL German Hunspell Dictionary
hunspell_en_us hunspell_en_us PIGSTY 1.0 FTS PostgreSQL en_US Hunspell Dictionary
hunspell_fr hunspell_fr PIGSTY 1.0 FTS PostgreSQL French Hunspell Dictionary
hunspell_ne_np hunspell_ne_np PIGSTY 1.0 FTS PostgreSQL Nepali Hunspell Dictionary
hunspell_nl_nl hunspell_nl_nl PIGSTY 1.0 FTS PostgreSQL Dutch Hunspell Dictionary
hunspell_nn_no hunspell_nn_no PIGSTY 1.0 FTS PostgreSQL Norwegian (norsk) Hunspell Dictionary
hunspell_pt_pt hunspell_pt_pt PIGSTY 1.0 FTS PostgreSQL Portuguese Hunspell Dictionary
hunspell_ru_ru hunspell_ru_ru PIGSTY 1.0 FTS PostgreSQL Russian Hunspell Dictionary
hunspell_ru_ru_aot hunspell_ru_ru_aot PIGSTY 1.0 FTS PostgreSQL Russian Hunspell Dictionary (from AOT.ru group)
fuzzystrmatch fuzzystrmatch CONTRIB 1.2 FTS PostgreSQL determine similarities and distance between strings
pg_trgm pg_trgm CONTRIB 1.6 FTS PostgreSQL text similarity measurement and index searching based on trigrams
citus citus PGDG 12.1-1 OLAP AGPLv3 Distributed PostgreSQL as an extension
citus_columnar citus PGDG 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.2.1 OLAP AGPLv3 Postgres for analytics, powered by DuckDB
pg_duckdb pg_duckdb PIGSTY 0.0.1 OLAP MIT DuckDB Embedded in Postgres
duckdb_fdw duckdb_fdw PIGSTY 1.0.0 OLAP MIT DuckDB Foreign Data Wrapper
pg_parquet pg_parquet PIGSTY 0.1.0 OLAP PostgreSQL copy data between Postgres and Parquet
pg_fkpart pg_fkpart PGDG 1.7 OLAP GPLv2 Table partitioning by foreign key utility
pg_partman pg_partman PGDG 5.1.0 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
age age PIGSTY 1.5.0 FEAT Apache-2.0 AGE graph database extension
hll hll PGDG 2.18 FEAT Apache-2.0 type for storing hyperloglog data
rum rum PGDG 1.3 FEAT PostgreSQL RUM index access method
pg_graphql pg_graphql PIGSTY 1.5.9 FEAT Apache-2.0 pg_graphql: GraphQL support
pg_jsonschema pg_jsonschema PIGSTY 0.3.3 FEAT Apache-2.0 PostgreSQL extension providing JSON Schema validation
jsquery jsquery PGDG 1.1 FEAT PostgreSQL data type for jsonb inspection
pg_hint_plan pg_hint_plan PGDG 1.6.1 FEAT BSD 3 Give PostgreSQL ability to manually force some decisions in execution plans.
hypopg hypopg PGDG 1.4.1 FEAT PostgreSQL Hypothetical indexes for PostgreSQL
index_advisor index_advisor PIGSTY 0.2.0 FEAT PostgreSQL Query index advisor
plan_filter pg_plan_filter PIGSTY 0.0.1 FEAT PostgreSQL filter statements by their execution plans.
imgsmlr imgsmlr PIGSTY 1.0 FEAT PostgreSQL Image similarity with haar
pg_ivm pg_ivm PGDG 1.8 FEAT PostgreSQL incremental view maintenance on PostgreSQL
pgmq pgmq PIGSTY 1.4.4 FEAT PostgreSQL A lightweight message queue. Like AWS SQS and RSMQ but on Postgres.
pgq pgq PGDG 3.5.1 FEAT ISC Generic queue for PostgreSQL
pg_cardano pg_cardano PIGSTY 1.0.2 FEAT MIT A suite of Cardano-related tools
rdkit rdkit PGDG 4.3.0 FEAT BSD 3 Cheminformatics functionality for PostgreSQL.
bloom bloom CONTRIB 1.0 FEAT PostgreSQL bloom access method - signature file based index
pg_tle pg_tle PIGSTY 1.2.0 LANG Apache-2.0 Trusted Language Extensions for PostgreSQL
plv8 plv8 PIGSTY 3.2.3 LANG PostgreSQL PL/JavaScript (v8) trusted procedural language
plluau pllua PGDG 2.0 LANG MIT Lua as an untrusted procedural language
hstore_plluau pllua PGDG 1.0 LANG MIT Hstore transform for untrusted Lua
pllua pllua PGDG 2.0 LANG MIT Lua as a procedural language
hstore_pllua pllua PGDG 1.0 LANG MIT Hstore transform for Lua
plprql plprql PIGSTY 0.1.0 LANG Apache-2.0 Use PRQL in PostgreSQL - Pipelined Relational Query Language
pldbgapi pldebugger PGDG 1.1 LANG Artistic server-side support for debugging PL/pgSQL functions
plpgsql_check plpgsql_check PGDG 2.7 LANG MIT extended check for plpgsql functions
plprofiler plprofiler PGDG 4.2 LANG Artistic server-side support for profiling PL/pgSQL functions
plsh plsh PGDG 2 LANG MIT PL/sh procedural language
pljava pljava PGDG 1.6.6 LANG BSD 3 PL/Java procedural language (https://tada.github.io/pljava/)
plr plr PGDG 8.4.6 LANG GPLv2 load R interpreter and execute R script from within a database
pgtap pgtap PGDG 1.3.1 LANG PostgreSQL Unit testing for PostgreSQL
faker faker PGDG 0.5.3 LANG PostgreSQL Wrapper for the Faker Python library
dbt2 dbt2 PGDG 0.45.0 LANG Artistic OSDL-DBT-2 test kit
pltcl pltcl CONTRIB 1.0 LANG PostgreSQL PL/Tcl procedural language
pltclu pltcl CONTRIB 1.0 LANG PostgreSQL PL/TclU untrusted procedural language
plperl plperl CONTRIB 1.0 LANG PostgreSQL PL/Perl procedural language
bool_plperl plperl CONTRIB 1.0 LANG PostgreSQL transform between bool and plperl
hstore_plperl plperl CONTRIB 1.0 LANG PostgreSQL transform between hstore and plperl
jsonb_plperl plperl CONTRIB 1.0 LANG PostgreSQL transform between jsonb and plperl
plperlu plperlu CONTRIB 1.0 LANG PostgreSQL PL/PerlU untrusted procedural language
bool_plperlu plperlu CONTRIB 1.0 LANG PostgreSQL transform between bool and plperlu
jsonb_plperlu plperlu CONTRIB 1.0 LANG PostgreSQL transform between jsonb and plperlu
hstore_plperlu plperlu CONTRIB 1.0 LANG PostgreSQL transform between hstore and plperlu
plpgsql plpgsql CONTRIB 1.0 LANG PostgreSQL PL/pgSQL procedural language
plpython3u plpython3u CONTRIB 1.0 LANG PostgreSQL PL/Python3U untrusted procedural language
jsonb_plpython3u plpython3u CONTRIB 1.0 LANG PostgreSQL transform between jsonb and plpython3u
ltree_plpython3u plpython3u CONTRIB 1.0 LANG PostgreSQL transform between ltree and plpython3u
hstore_plpython3u plpython3u CONTRIB 1.0 LANG PostgreSQL transform between hstore and plpython3u
prefix prefix PGDG 1.2.0 TYPE PostgreSQL Prefix Range module for PostgreSQL
semver semver PGDG 0.32.1 TYPE PostgreSQL Semantic version data type
unit pgunit PGDG 7 TYPE GPLv3 SI units extension
md5hash md5hash PIGSTY 1.0.1 TYPE BSD 2 type for storing 128-bit binary data inline
asn1oid asn1oid PIGSTY 1 TYPE GPLv3 asn1oid extension
roaringbitmap roaringbitmap PIGSTY 0.5 TYPE Apache-2.0 support for Roaring Bitmaps
pgfaceting pgfaceting PIGSTY 0.2.0 TYPE BSD 3 fast faceting queries using an inverted index
pg_sphere pgsphere PIGSTY 1.5.1 TYPE BSD 3 spherical objects with useful functions, operators and index support
country pg_country PIGSTY 0.0.3 TYPE PostgreSQL Country data type, ISO 3166-1
currency pg_currency PIGSTY 0.0.3 TYPE MIT Custom PostgreSQL currency type in 1Byte
pgmp pgmp PGDG 1.1 TYPE LGPLv3 Multiple Precision Arithmetic extension
numeral numeral PIGSTY 1 TYPE GPLv2 numeral datatypes extension
pg_rational pg_rational PIGSTY 0.0.2 TYPE MIT bigint fractions
uint pguint PGDG 0 TYPE PostgreSQL unsigned integer types
uint128 pg_uint128 PIGSTY 1.0.0 TYPE PostgreSQL Native uint128 type
ip4r ip4r PGDG 2.4 TYPE PostgreSQL IPv4/v6 and IPv4/v6 range index type for PostgreSQL
uri pg_uri PIGSTY 1 TYPE PostgreSQL URI Data type for PostgreSQL
pgemailaddr pgemailaddr PIGSTY 0 TYPE PostgreSQL Email address type for PostgreSQL
acl acl PIGSTY 1.0.4 TYPE BSD-2 ACL Data type
debversion debversion PGDG 1.2 TYPE PostgreSQL Debian version number data type
pg_rrule pg_rrule PGDG 0.2.0 TYPE MIT RRULE field type for PostgreSQL
timestamp9 timestamp9 PGDG 1.4.0 TYPE MIT timestamp nanosecond resolution
chkpass chkpass PIGSTY 1.0 TYPE PostgreSQL data type for auto-encrypted passwords
isn isn CONTRIB 1.2 TYPE PostgreSQL data types for international product numbering standards
seg seg CONTRIB 1.4 TYPE PostgreSQL data type for representing line segments or floating-point intervals
cube cube CONTRIB 1.5 TYPE PostgreSQL data type for multidimensional cubes
ltree ltree CONTRIB 1.2 TYPE PostgreSQL data type for hierarchical tree-like structures
hstore hstore CONTRIB 1.8 TYPE PostgreSQL data type for storing sets of (key, value) pairs
citext citext CONTRIB 1.6 TYPE PostgreSQL data type for case-insensitive character strings
xml2 xml2 CONTRIB 1.1 TYPE PostgreSQL XPath querying and XSLT
topn topn PGDG 2.6.0 FUNC AGPLv3 type for top-n JSONB
gzip pg_gzip PGDG 1.0 FUNC MIT gzip and gunzip functions.
zstd pg_zstd PIGSTY 1.1.0 FUNC ISC Zstandard compression algorithm implementation in PostgreSQL
http pg_http PGDG 1.6 FUNC MIT HTTP client for PostgreSQL, allows web page retrieval inside the database.
pg_net pg_net PIGSTY 0.9.2 FUNC Apache-2.0 Async HTTP Requests
pg_html5_email_address pg_html5_email_address PIGSTY 1.2.3 FUNC PostgreSQL PostgreSQL email validation that is consistent with the HTML5 spec
pgsql_tweaks pgsql_tweaks PGDG 0.10.6 FUNC PostgreSQL Some functions and views for daily usage
pg_extra_time pg_extra_time PGDG 1.1.3 FUNC PostgreSQL Some date time functions and operators that,
timeit pg_timeit PIGSTY 1.0 FUNC PostgreSQL High-accuracy timing of SQL expressions
count_distinct count_distinct PGDG 3.0.1 FUNC BSD 2 An alternative to COUNT(DISTINCT …) aggregate, usable with HashAggregate
extra_window_functions extra_window_functions PGDG 1.0 FUNC PostgreSQL Extra Window Functions for PostgreSQL
first_last_agg first_last_agg PIGSTY 0.1.4 FUNC PostgreSQL first() and last() aggregate functions
tdigest tdigest PGDG 1.4.1 FUNC Apache-2.0 Provides tdigest aggregate function.
aggs_for_vecs aggs_for_vecs PIGSTY 1.3.0 FUNC MIT Aggregate functions for array inputs
aggs_for_arrays aggs_for_arrays PIGSTY 1.3.2 FUNC MIT Various functions for computing statistics on arrays of numbers
arraymath pg_arraymath PIGSTY 1.1 FUNC MIT Array math and operators that work element by element on the contents of arrays
quantile quantile PIGSTY 1.1.7 FUNC BSD Quantile aggregation function
lower_quantile lower_quantile PIGSTY 1.0.0 FUNC BSD-2 Lower quantile aggregate function
pg_idkit pg_idkit PIGSTY 0.2.4 FUNC Apache-2.0 multi-tool for generating new/niche universally unique identifiers (ex. UUIDv6, ULID, KSUID)
pg_uuidv7 pg_uuidv7 PGDG 1.6 FUNC MPLv2 pg_uuidv7: create UUIDv7 values in postgres
permuteseq permuteseq PIGSTY 1.2 FUNC PostgreSQL Pseudo-randomly permute sequences with a format-preserving encryption on elements
pg_hashids pg_hashids PIGSTY 1.3 FUNC MIT Short unique id generator for PostgreSQL, using hashids
sequential_uuids sequential_uuids PGDG 1.0.2 FUNC MIT generator of sequential UUIDs
pg_math pg_math PIGSTY 1.0 FUNC GPLv3 GSL statistical functions for postgresql
random pg_random PIGSTY 2.0.0-dev FUNC PostgreSQL random data generator
base36 pg_base36 PIGSTY 1.0.0 FUNC MIT Integer Base36 types
base62 pg_base62 PIGSTY 0.0.1 FUNC MIT Base62 extension for PostgreSQL
pg_base58 pg_base58 PIGSTY 0.0.1 FUNC MIT Base58 Encoder/Decoder Extension for PostgreSQL
floatvec floatvec PIGSTY 1.0.1 FUNC MIT Math for vectors (arrays) of numbers
financial pg_financial PIGSTY 1.0.1 FUNC PostgreSQL Financial aggregate functions
pgjwt pgjwt PIGSTY 0.2.0 FUNC MIT JSON Web Token API for Postgresql
pg_hashlib pg_hashlib PIGSTY 1.1 FUNC PostgreSQL Stable hash functions for Postgres
shacrypt shacrypt PIGSTY 1.1 FUNC PostgreSQL Implements SHA256-CRYPT and SHA512-CRYPT password encryption schemes
cryptint cryptint PIGSTY 1.0.0 FUNC PostgreSQL Encryption functions for int and bigint values
pguecc pg_ecdsa PIGSTY 1.0 FUNC BSD-2 uECC bindings for Postgres
pgpcre pgpcre PIGSTY 1 FUNC PostgreSQL Perl Compatible Regular Expression functions
icu_ext icu_ext PIGSTY 1.9 FUNC PostgreSQL Access ICU functions
pgqr pgqr PIGSTY 1.0 FUNC BSD-3 QR Code generator from PostgreSQL
envvar envvar PIGSTY 1.0.0 FUNC PostgreSQL Fetch the value of an environment variable
pg_protobuf pg_protobuf PIGSTY 1.0 FUNC MIT Protobuf support for PostgreSQL
url_encode url_encode PIGSTY 1.2 FUNC PostgreSQL url_encode, url_decode functions
refint refint CONTRIB 1.0 FUNC PostgreSQL functions for implementing referential integrity (obsolete)
autoinc autoinc CONTRIB 1.0 FUNC PostgreSQL functions for autoincrementing fields
insert_username insert_username CONTRIB 1.0 FUNC PostgreSQL functions for tracking who changed a table
moddatetime moddatetime CONTRIB 1.0 FUNC PostgreSQL functions for tracking last modification time
tsm_system_time tsm_system_time CONTRIB 1.0 FUNC PostgreSQL TABLESAMPLE method which accepts time in milliseconds as a limit
dict_xsyn dict_xsyn CONTRIB 1.0 FUNC PostgreSQL text search dictionary template for extended synonym processing
tsm_system_rows tsm_system_rows CONTRIB 1.0 FUNC PostgreSQL TABLESAMPLE method which accepts number of rows as a limit
tcn tcn CONTRIB 1.0 FUNC PostgreSQL Triggered change notifications
uuid-ossp uuid-ossp CONTRIB 1.1 FUNC PostgreSQL generate universally unique identifiers (UUIDs)
btree_gist btree_gist CONTRIB 1.7 FUNC PostgreSQL support for indexing common datatypes in GiST
btree_gin btree_gin CONTRIB 1.3 FUNC PostgreSQL support for indexing common datatypes in GIN
intarray intarray CONTRIB 1.5 FUNC PostgreSQL functions, operators, and index support for 1-D arrays of integers
intagg intagg CONTRIB 1.1 FUNC PostgreSQL integer aggregator and enumerator (obsolete)
dict_int dict_int CONTRIB 1.0 FUNC PostgreSQL text search dictionary template for integers
unaccent unaccent CONTRIB 1.1 FUNC PostgreSQL text search dictionary that removes accents
pg_repack pg_repack PGDG 1.5.0 ADMIN BSD 3 Reorganize tables in PostgreSQL databases with minimal locks
pg_squeeze pg_squeeze PGDG 1.7 ADMIN BSD 2 A tool to remove unused space from a relation.
pg_dirtyread pg_dirtyread PIGSTY 2 ADMIN BSD 3 Read dead but unvacuumed rows from table
pgfincore pgfincore PGDG 1.3.1 ADMIN BSD 3 examine and manage the os buffer cache
pgdd pgdd PIGSTY 0.5.2 ADMIN MIT An in-database data dictionary providing database introspection via standard SQL query syntax. Developed using pgx (https://github.com/zombodb/pgx).
ddlx ddlx PGDG 0.27 ADMIN PostgreSQL DDL eXtractor functions
prioritize pg_prioritize PGDG 1.0 ADMIN PostgreSQL get and set the priority of PostgreSQL backends
pg_checksums pg_checksums PGDG 1.1 ADMIN BSD 2 Activate/deactivate/verify checksums in offline Postgres clusters
pg_readonly pg_readonly PGDG 1.0.0 ADMIN PostgreSQL cluster database read only
safeupdate safeupdate PGDG 1.4 ADMIN ISC Require criteria for UPDATE and DELETE
pg_permissions pg_permissions PGDG 1.3 ADMIN BSD 2 view object permissions and compare them with the desired state
pgautofailover pgautofailover PGDG 2.1 ADMIN PostgreSQL pg_auto_failover
pg_catcheck pg_catcheck PGDG 1.4.0 ADMIN BSD 3 Diagnosing system catalog corruption
pre_prepare preprepare PIGSTY 0.4 ADMIN PostgreSQL Pre Prepare your Statement server side
pgcozy pgcozy PIGSTY 1.0 ADMIN PostgreSQL Pre-warming shared buffers according to previous pg_buffercache snapshots for PostgreSQL.
pg_orphaned pg_orphaned PIGSTY 1.0 ADMIN PostgreSQL Deal with orphaned files
pg_crash pg_crash PIGSTY 1.0 ADMIN BSD-3 Send random signals to random processes
pg_cheat_funcs pg_cheat_funcs PIGSTY 1.0 ADMIN PostgreSQL Provides cheat (but useful) functions
pg_savior pg_savior PIGSTY 0.0.1 ADMIN Apache-2.0 Postgres extension to save OOPS mistakes
table_log table_log PIGSTY 0.6.1 ADMIN PostgreSQL record table modification logs and PITR for table/row
pg_fio pg_fio PIGSTY 1.0 ADMIN BSD-3 PostgreSQL File I/O Functions
pgpool_adm pgpool PGDG 1.5 ADMIN PostgreSQL Administrative functions for pgPool
pgpool_recovery pgpool PGDG 1.4 ADMIN PostgreSQL recovery functions for pgpool-II for V4.3
pgpool_regclass pgpool PGDG 1.0 ADMIN PostgreSQL replacement for regclass
pgagent pgagent PGDG 4.2 ADMIN PostgreSQL A PostgreSQL job scheduler
vacuumlo vacuumlo CONTRIB 16.3 ADMIN PostgreSQL utility program that will remove any orphaned large objects from a PostgreSQL database
pg_prewarm pg_prewarm CONTRIB 1.2 ADMIN PostgreSQL prewarm relation data
oid2name oid2name CONTRIB 16.3 ADMIN PostgreSQL utility program that helps administrators to examine the file structure used by PostgreSQL
lo lo CONTRIB 1.1 ADMIN PostgreSQL Large Object maintenance
basic_archive basic_archive CONTRIB 16.3 ADMIN PostgreSQL an example of an archive module
basebackup_to_shell basebackup_to_shell CONTRIB 16.3 ADMIN PostgreSQL adds a custom basebackup target called shell
old_snapshot old_snapshot CONTRIB 1.0 ADMIN PostgreSQL utilities in support of old_snapshot_threshold
adminpack adminpack CONTRIB 2.1 ADMIN PostgreSQL administrative functions for PostgreSQL
amcheck amcheck CONTRIB 1.3 ADMIN PostgreSQL functions for verifying relation integrity
pg_surgery pg_surgery CONTRIB 1.0 ADMIN PostgreSQL extension to perform surgery on a damaged relation
pg_profile pg_profile PGDG 4.7 STAT BSD 2 PostgreSQL load profile repository and report builder
pg_show_plans pg_show_plans PGDG 2.1 STAT PostgreSQL show query plans of all currently running SQL statements
pg_stat_kcache pg_stat_kcache PGDG 2.3.0 STAT BSD 3 Kernel statistics gathering
pg_stat_monitor pg_stat_monitor PGDG 2.1 STAT BSD 3 The pg_stat_monitor is a PostgreSQL Query Performance Monitoring tool, based on PostgreSQL contrib module pg_stat_statements. pg_stat_monitor provides aggregated statistics, client information, plan details including plan, and histogram information.
pg_qualstats pg_qualstats PGDG 2.1.1 STAT BSD 3 An extension collecting statistics about quals
pg_store_plans pg_store_plans PGDG 1.8 STAT BSD 3 track plan statistics of all SQL statements executed
pg_track_settings pg_track_settings PGDG 2.1.2 STAT PostgreSQL Track settings changes
pg_wait_sampling pg_wait_sampling PGDG 1.1 STAT PostgreSQL sampling based statistics of wait events
system_stats system_stats PGDG 3.0 STAT PostgreSQL EnterpriseDB system statistics for PostgreSQL
meta pg_meta PIGSTY 0.4.0 STAT BSD-2 Normalized, friendlier system catalog for PostgreSQL
pgnodemx pgnodemx PIGSTY 1.7 STAT Apache-2.0 Capture node OS metrics via SQL queries
pg_proctab pgnodemx PIGSTY 0.0.10-compat STAT BSD 3 PostgreSQL extension to access the OS process table
pg_sqlog pg_sqlog PIGSTY 1.6 STAT BSD 3 Provide SQL interface to logs
bgw_replstatus bgw_replstatus PGDG 1.0.6 STAT PostgreSQL Small PostgreSQL background worker to report whether a node is a replication master or standby
pgmeminfo pgmeminfo PGDG 1.0 STAT MIT show memory usage
toastinfo toastinfo PIGSTY 1 STAT PostgreSQL show details on toasted datums
explain_ui pg_explain_ui PIGSTY 0.0.1 STAT PostgreSQL easily jump into a visual plan UI for any SQL query
pg_relusage pg_relusage PIGSTY 0.0.1 STAT PostgreSQL Log all the queries that reference a particular column
pg_mon pg_mon PIGSTY 1.0 STAT MIT PostgreSQL extension to enhance query monitoring
pg_statviz pg_statviz PGDG 0.6 STAT BSD 3 stats visualization and time series analysis
pgexporter_ext pgexporter_ext PGDG 0.2.3 STAT BSD 3 pgexporter extension for extra metrics
pg_top pg_top PGDG 3.7.0 STAT BSD 3 Monitor PostgreSQL processes similar to unix top
pagevis pagevis PIGSTY 0.1 STAT MIT Visualise database pages in ascii code
powa powa PGDG 4.2.2 STAT PostgreSQL PostgreSQL Workload Analyser-core
pageinspect pageinspect CONTRIB 1.12 STAT PostgreSQL inspect the contents of database pages at a low level
pgrowlocks pgrowlocks CONTRIB 1.2 STAT PostgreSQL show row-level locking information
sslinfo sslinfo CONTRIB 1.2 STAT PostgreSQL information about SSL certificates
pg_buffercache pg_buffercache CONTRIB 1.4 STAT PostgreSQL examine the shared buffer cache
pg_walinspect pg_walinspect CONTRIB 1.1 STAT PostgreSQL functions to inspect contents of PostgreSQL Write-Ahead Log
pg_freespacemap pg_freespacemap CONTRIB 1.2 STAT PostgreSQL examine the free space map (FSM)
pg_visibility pg_visibility CONTRIB 1.2 STAT PostgreSQL examine the visibility map (VM) and page-level visibility info
pgstattuple pgstattuple CONTRIB 1.5 STAT PostgreSQL show tuple-level statistics
auto_explain auto_explain CONTRIB 16.3 STAT PostgreSQL Provides a means for logging execution plans of slow statements automatically
pg_stat_statements pg_stat_statements CONTRIB 1.10 STAT PostgreSQL track planning and execution statistics of all SQL statements executed
passwordcheck_cracklib passwordcheck PGDG 3.0.0 SEC LGPLv2 Strengthen PostgreSQL user password checks with cracklib
supautils supautils PIGSTY 2.5.0 SEC Apache-2.0 Extension that secures a cluster on a cloud environment
pgsodium pgsodium PIGSTY 3.1.9 SEC BSD 3 Postgres extension for libsodium functions
supabase_vault pg_vault PIGSTY 0.2.8 SEC Apache-2.0 Supabase Vault Extension
anon anonymizer PGDG 1.3.2 SEC PostgreSQL Data anonymization tools
pg_tde pg_tde PIGSTY 1.0 SEC MIT pg_tde access method
pgsmcrypto pgsmcrypto PIGSTY 0.1.0 SEC MIT PostgreSQL SM Algorithm Extension
pgaudit pgaudit PGDG 16.0 SEC PostgreSQL provides auditing functionality
pgauditlogtofile pgauditlogtofile PGDG 1.6 SEC PostgreSQL pgAudit addon to redirect audit log to an independent file
pg_auth_mon pg_auth_mon PGDG 1.1 SEC MIT monitor connection attempts per user
credcheck credcheck PGDG 2.7.0 SEC MIT credcheck - postgresql plain text credential checker
pgcryptokey pgcryptokey PGDG 1.0 SEC PostgreSQL cryptographic key management
pg_jobmon pg_jobmon PGDG 1.4.1 SEC PostgreSQL Extension for logging and monitoring functions in PostgreSQL
logerrors logerrors PGDG 2.1 SEC BSD 3 Function for collecting statistics about messages in logfile
login_hook login_hook PGDG 1.6 SEC GPLv3 login_hook - hook to execute login_hook.login() at login time
set_user set_user PGDG 4.1.0 SEC PostgreSQL similar to SET ROLE but with added logging
pg_snakeoil pg_snakeoil PIGSTY 1 SEC PostgreSQL The PostgreSQL Antivirus
pgextwlist pgextwlist PIGSTY 1.17 SEC PostgreSQL PostgreSQL Extension Whitelisting
pg_auditor pg_auditor PIGSTY 0.2 SEC BSD-3 Audit data changes and provide flashback ability
sslutils sslutils PIGSTY 1.3 SEC PostgreSQL A Postgres extension for managing SSL certificates through SQL
noset noset PIGSTY 0.3.0 SEC AGPLv3 Module for blocking SET variables for non-super users.
sepgsql sepgsql CONTRIB 16.3 SEC PostgreSQL label-based mandatory access control (MAC) based on SELinux security policy.
auth_delay auth_delay CONTRIB 16.3 SEC PostgreSQL pause briefly before reporting authentication failure
pgcrypto pgcrypto CONTRIB 1.3 SEC PostgreSQL cryptographic functions
passwordcheck passwordcheck CONTRIB 16.3 SEC PostgreSQL checks user passwords and reject weak password
wrappers wrappers PIGSTY 0.4.3 FDW Apache-2.0 Foreign data wrappers developed by Supabase
multicorn multicorn PGDG 3.0 FDW PostgreSQL Fetch foreign data in Python in your PostgreSQL server.
odbc_fdw odbc_fdw PGDG 0.5.1 FDW PostgreSQL Foreign data wrapper for accessing remote databases using ODBC
jdbc_fdw jdbc_fdw PGDG 1.2 FDW PostgreSQL foreign-data wrapper for remote servers available over JDBC
mysql_fdw mysql_fdw PGDG 1.2 FDW BSD 3 Foreign data wrapper for querying a MySQL server
oracle_fdw oracle_fdw PGDG 1.2 FDW PostgreSQL foreign data wrapper for Oracle access
tds_fdw tds_fdw PGDG 2.0.4 FDW PostgreSQL Foreign data wrapper for querying a TDS database (Sybase or Microsoft SQL Server)
db2_fdw db2_fdw PGDG 6.0.1 FDW PostgreSQL foreign data wrapper for DB2 access
sqlite_fdw sqlite_fdw PGDG 1.1 FDW PostgreSQL SQLite Foreign Data Wrapper
pgbouncer_fdw pgbouncer_fdw PGDG 1.2.0 FDW PostgreSQL Extension for querying PgBouncer stats from normal SQL views & running pgbouncer commands from normal SQL functions
mongo_fdw mongo_fdw PGDG 1.1 FDW LGPLv3 foreign data wrapper for MongoDB access
redis_fdw redis_fdw PIGSTY 1.0 FDW PostgreSQL Foreign data wrapper for querying a Redis server
redis pg_redis_pubsub PIGSTY 0.0.1 FDW MIT Send redis pub/sub messages to Redis from PostgreSQL Directly
kafka_fdw kafka_fdw PIGSTY 0.0.3 FDW PostgreSQL kafka Foreign Data Wrapper for CSV formated messages
hdfs_fdw hdfs_fdw PGDG 2.0.5 FDW BSD 3 foreign-data wrapper for remote hdfs servers
firebird_fdw firebird_fdw PIGSTY 1.4.0 FDW PostgreSQL Foreign data wrapper for Firebird
aws_s3 aws_s3 PIGSTY 0.0.1 FDW Apache-2.0 aws_s3 postgres extension to import/export data from/to s3
log_fdw log_fdw PIGSTY 1.4 FDW Apache-2.0 foreign-data wrapper for Postgres log file access
dblink dblink CONTRIB 1.2 FDW PostgreSQL connect to other PostgreSQL databases from within a database
file_fdw file_fdw CONTRIB 1.0 FDW PostgreSQL foreign-data wrapper for flat file access
postgres_fdw postgres_fdw CONTRIB 1.1 FDW PostgreSQL foreign-data wrapper for remote PostgreSQL servers
orafce orafce PGDG 4.13 SIM BSD 0 Functions and operators that emulate a subset of functions and packages from the Oracle RDBMS
pgtt pgtt PGDG 4.0.0 SIM ISC Extension to add Global Temporary Tables feature to PostgreSQL
session_variable session_variable PIGSTY 3.4 SIM GPLv3 Registration and manipulation of session variables and constants
pg_statement_rollback pg_statement_rollback PGDG 1.4 SIM ISC Server side rollback at statement level for PostgreSQL like Oracle or DB2
pg_dbms_metadata pg_dbms_metadata PGDG 1.0.0 SIM PostgreSQL Extension to add Oracle DBMS_METADATA compatibility to PostgreSQL
pg_dbms_lock pg_dbms_lock PGDG 1.0.0 SIM PostgreSQL Extension to add Oracle DBMS_LOCK full compatibility to PostgreSQL
pg_dbms_job pg_dbms_job PGDG 1.5.0 SIM PostgreSQL Extension to add Oracle DBMS_JOB full compatibility to PostgreSQL
babelfishpg_common babelfishpg_common WILTON 3.3.3 SIM Apache-2.0 SQL Server Transact SQL Datatype Support
babelfishpg_tsql babelfishpg_tsql WILTON 3.3.1 SIM Apache-2.0 SQL Server Transact SQL compatibility
babelfishpg_tds babelfishpg_tds WILTON 1.0.0 SIM Apache-2.0 SQL Server TDS protocol extension
babelfishpg_money babelfishpg_money WILTON 1.1.0 SIM Apache-2.0 SQL Server Money Data Type
pgmemcache pgmemcache PGDG 2.3.0 SIM MIT memcached interface
pglogical pglogical PGDG 2.4.4 ETL PostgreSQL PostgreSQL Logical Replication
pglogical_origin pglogical PGDG 1.0.0 ETL PostgreSQL Dummy extension for compatibility when upgrading from Postgres 9.4
pglogical_ticker pglogical PGDG 1.4 ETL PostgreSQL Have an accurate view on pglogical replication delay
pgl_ddl_deploy pgl_ddl_deploy PGDG 2.2 ETL MIT automated ddl deployment using pglogical
pg_failover_slots pg_failover_slots PIGSTY 1.0.1 ETL PostgreSQL PG Failover Slots extension
wal2json wal2json PGDG 2.5.3 ETL BSD 3 Changing data capture in JSON format
wal2mongo wal2mongo PIGSTY 1.0.7 ETL Apache-2.0 PostgreSQL logical decoding output plugin for MongoDB
decoderbufs decoderbufs PGDG 0.1.0 ETL MIT Logical decoding plugin that delivers WAL stream changes using a Protocol Buffer format
decoder_raw decoder_raw PIGSTY 1.0 ETL PostgreSQL Output plugin for logical replication in Raw SQL format
test_decoding test_decoding CONTRIB 16.3 ETL PostgreSQL SQL-based test/example module for WAL logical decoding
mimeo mimeo PIGSTY 1.5.1 ETL PostgreSQL Extension for specialized, per-table replication between PostgreSQL instances
repmgr repmgr PGDG 5.4 ETL GPLv3 Replication manager for PostgreSQL
pgcopydb pgcopydb PGDG 0.15 ETL PostgreSQL Copy a Postgres database to a target Postgres server
pgloader pgloader PGDG 3.6.10 ETL PostgreSQL Migrate to PostgreSQL in a single command!
pg_fact_loader pg_fact_loader PGDG 2.0 ETL MIT build fact tables with Postgres
pg_bulkload pg_bulkload PGDG 3.1.21 ETL BSD 3 pg_bulkload is a high speed data loading utility for PostgreSQL
pg_comparator pg_comparator PGDG 2.2.5 ETL BSD 3 Comparation of testing and production services PostgreSQL databases.
pgimportdoc pgimportdoc PGDG 0.1.4 ETL BSD 2 command line utility for importing XML, JSON, BYTEA document to PostgreSQL
pgexportdoc pgexportdoc PGDG 0.1.4 ETL BSD 2 export XML, JSON and BYTEA documents from PostgreSQL

1.1 - Metadata Desc

Available Metadata for PostgreSQL Extensions, and explain each attribute.

Each extension comes with several metadata attributes. Below are the descriptions of these attributes:

  • id

    Extension identifier, an unique integer assigned to each extension for internal sorting.

  • name

    Extension name, the name of the extension in the PostgreSQL system catalog, used in CREATE EXTENSION.

    Extensions typically come with files like <name>.control, <name>*.so, and <name>*.sql.

  • alias

    Extension alias, a normalized name assigned by Pigsty to each extension, usually matching the extension name name. However, there are exceptions. For example, installing an RPM package that introduces multiple extensions will share a common alias, such as postgis.

  • version

    Default version of the extension, usually the latest version. In some special cases, the available versions in RPM and Debian may slightly differ.

  • category

    Extension category, used to distinguish the type of functionality provided by the extension, such as: gis, time, rag, fts, olap, feat, lang, type, func, admin, stat, sec, fdw, sim, etl

  • tags

    Tags describing the features of the extension.

  • repo

    The source repository of the extension, CONTRIB means it’s a PostgreSQL built-in extension, PGDG denotes a PGDG first-party extension, and PIGSTY indicates a Pigsty third-party extension.

  • lang

    The programming language used by the extension, usually C, but there are some written in C++ or Rust. There are also extensions purely composed of SQL and data.

  • need_load

    Marked with Load, meaning the extension uses PostgreSQL hooks, requiring dynamic loading and a PostgreSQL restart to take effect. Only a few extensions need dynamic loading, most are statically loaded.

  • need_ddl

    Marked with DDL, meaning the extension requires executing DDL statements: CREATE EXTENSION.

    Most extensions need the CREATE EXTENSION DDL statement for creation, but there are exceptions like pg_stat_statements and wal2json.

  • trusted

    Does installing this extension require superuser privileges? Or is the extension “trusted” — only providing functions internally within the database.

    A few extensions only provide functions internally within the database and thus do not require superuser privileges to install (trusted). Any user with CREATE privileges can install trusted extensions.

  • relocatable

    Can the extension be relocated? That is, can it be installed into other schemas? Most extensions are relocatable, but there are exceptions where extensions specify their schema explicitly.

  • schemas

    If the extension is relocatable, it can be installed into a specified schema. This attribute specifies the default schema for the extension. PostgreSQL typically allows extensions to use only one schema, but some extensions do not follow this rule, such as citus and timescaledb.

  • pg_ver

    The PostgreSQL versions supported by the extension, typically only considering versions within the support lifecycle, i.e., 12 - 16.

  • requires

    Other extensions this extension depends on, if any. An extension may depend on multiple other extensions, and these dependencies are usually declared in the requires field of the extension’s control file.

    When installing an extension, dependencies can be automatically installed with the CREATE EXTENSION xxx CASCADE statement.

  • pkg

    Extension package (RPM/DEB) name, using $v to replace the specific major PostgreSQL version number.

  • pkg_ver

    The version number of the extension package (RPM/DEB), usually consistent with the extension’s version (versionobtained from system views). However, there are rare exceptions where the package version and the extension version are inconsistent or independently managed.

  • pkg_deps

    The dependencies of the extension package (RPM/DEB), different from the extension’s dependencies (requires), here referring to the specific dependencies of the RPM/DEB package.

  • url

    The official website or source code repository of the extension.

  • license

    The open-source license used by the extension, typically PostgreSQL, MIT, Apache, GPL, etc.

  • en_desc

    The English description of the extension, describing its functions and uses.

  • zh_desc

    The Chinese description of the extension, describing its functions and uses.

  • comment

    Additional comments describing the features or considerations of the extension.

1.2 - RPM List

338 Available PostgreSQL Extension RPM in RHEL & Compatible Distributions

There are 338 extensions available on EL compatible systems, 19 of them are RPM exclusive, missing 7 DEB exclusive extensions.

There are 70 built-in contrib extensions, in addition to 134 rpm extensions provided by PGDG YUM repository, and 130 extensions provided by Pigsty. There are 333 extensions available in the current major version PostgreSQL 16, and 297 ready for PostgreSQL 17.

Name (URL) Alias PackageRepo Version Category License PG Versions LOAD DDL DBSU RELOC Description
timescaledb timescaledb timescaledb-2-postgresql-$v* PGDG 2.17.0 TIME Timescale 17,16,15,14,13,12 Enables scalable inserts and complex queries for time-series data (Apache 2 Edition)
timeseries pg_timeseries pg_timeseries_$v PIGSTY 0.1.6 TIME PostgreSQL 17,16,15,14,13,12 Convenience API for Tembo time series stack
periods periods periods_$v* PGDG 1.2 TIME PostgreSQL 17,16,15,14,13,12 Provide Standard SQL functionality for PERIODs and SYSTEM VERSIONING
temporal_tables temporal_tables temporal_tables_$v* PIGSTY 1.2.2 TIME BSD 2 16,15,14,13,12 temporal tables
emaj emaj e-maj_$v* PGDG 4.5.0 TIME GPLv3 16,15,14,13,12 E-Maj extension enables fine-grained write logging and time travel on subsets of the database.
table_version table_version table_version_$v* PGDG 1.10.3 TIME BSD 3 17,16,15,14,13,12 PostgreSQL table versioning extension
pg_cron pg_cron pg_cron_$v* PGDG 1.6 TIME PostgreSQL 17,16,15,14,13,12 Job scheduler for PostgreSQL
pg_later pg_later pg_later_$v PIGSTY 0.1.1 TIME PostgreSQL 16,15,14,13 pg_later: Run queries now and get results later
pg_background pg_background pg_background_$v* PGDG 1.0 TIME GPLv3 17,16,15,14,13,12 Run SQL queries in the background
pg_timetable pg_timetable pg_timetable PIGSTY 5.9.0 TIME PostgreSQL 17,16,15,14,13,12 Advanced scheduling for PostgreSQL
postgis postgis postgis34_$v* PGDG 3.5.0 GIS GPLv2 17,16,15,14,13,12 PostGIS geometry and geography spatial types and functions
postgis_topology postgis postgis34_$v* PGDG 3.5.0 GIS GPLv2 17,16,15,14,13,12 PostGIS topology spatial types and functions
postgis_raster postgis postgis34_$v* PGDG 3.5.0 GIS GPLv2 17,16,15,14,13,12 PostGIS raster types and functions
postgis_sfcgal postgis postgis34_$v* PGDG 3.5.0 GIS GPLv2 17,16,15,14,13,12 PostGIS SFCGAL functions
postgis_tiger_geocoder postgis postgis34_$v* PGDG 3.5.0 GIS GPLv2 17,16,15,14,13,12 PostGIS tiger geocoder and reverse geocoder
address_standardizer postgis postgis34_$v* PGDG 3.5.0 GIS GPLv2 17,16,15,14,13,12 Used to parse an address into constituent elements. Generally used to support geocoding address normalization step.
address_standardizer_data_us postgis postgis34_$v* PGDG 3.5.0 GIS GPLv2 17,16,15,14,13,12 Address Standardizer US dataset example
pgrouting pgrouting pgrouting_$v* PGDG 3.6.0 GIS GPLv2 17,16,15,14,13,12 pgRouting Extension
pointcloud pointcloud pointcloud_$v* PIGSTY 1.2.5 GIS BSD 3 17,16,15,14,13,12 data type for lidar point clouds
pointcloud_postgis pointcloud pointcloud_$v* PGDG 1.2.5 GIS BSD 3 17,16,15,14,13,12 integration for pointcloud LIDAR data and PostGIS geometry data
h3 pg_h3 h3-pg_$v* PGDG 4.1.3 GIS Apache-2.0 16,15,14,13,12 H3 bindings for PostgreSQL
h3_postgis pg_h3 h3-pg_$v* PGDG 4.1.3 GIS Apache-2.0 16,15,14,13,12 H3 PostGIS integration
q3c q3c q3c_$v* PIGSTY 2.0.1 GIS GPLv2 17,16,15,14,13,12 q3c sky indexing plugin
ogr_fdw ogr_fdw ogr_fdw_$v* PGDG 1.1 GIS MIT 16,15,14,13,12 foreign-data wrapper for GIS data access
geoip geoip geoip_$v* PGDG 0.3.0 GIS BSD 2 17,16,15,14,13,12 IP-based geolocation query
pg_polyline pg_polyline pg_polyline_$v PIGSTY 0.0.0 GIS MIT 17,16,15,14,13,12 Fast Google Encoded Polyline encoding & decoding for postgres
pg_geohash pg_geohash pg_geohash_$v* PIGSTY 1.0 GIS MIT 17,16,15,14,13,12 Handle geohash based functionality for spatial coordinates
earthdistance earthdistance postgresql$v-contrib CONTRIB 1.1 GIS PostgreSQL 17,16,15,14,13,12 calculate great-circle distances on the surface of the Earth
vector pgvector pgvector_$v* PGDG 0.7.4 RAG PostgreSQL 17,16,15,14,13,12 vector data type and ivfflat and hnsw access methods
vectorscale pgvectorscale pgvectorscale_$v PIGSTY 0.4.0 RAG PostgreSQL 17,16,15,14,13 pgvectorscale: Advanced indexing for vector data
vectorize pg_vectorize pg_vectorize_$v PIGSTY 0.18.3 RAG PostgreSQL 16,15,14 The simplest way to do vector search on Postgres
pg_similarity pg_similarity pg_similarity_$v* PIGSTY 1.0 RAG BSD 3 17,16,15,14,13,12 support similarity queries
smlar smlar smlar_$v* PIGSTY 1.0 RAG PostgreSQL 17,16,15,14,13 Effective similarity search
pg_summarize pg_summarize pg_summarize_$v PIGSTY 0.0.0 FUNC PostgreSQL 17,16,15,14,13,12 Text Summarization using LLMs. Built using pgrx
pg_tiktoken pg_tiktoken pg_tiktoken_$v PIGSTY 0.0.1 RAG Apache-2.0 17,16,15,14,13,12 pg_tictoken: tiktoken tokenizer for use with OpenAI models in postgres
pgml pgml pgml_$v PIGSTY 2.9.3 RAG MIT 16,15,14 PostgresML: Run AL/ML workloads with SQL interface
pg4ml pg4ml pg4ml_$v PIGSTY 2.0 RAG AGPLv3 17,16,15,14,13,12 Machine learning framework for PostgreSQL
pg_search pg_search pg_search_$v PIGSTY 0.11.1 FTS AGPLv3 17,16,15,14 pg_search: Full text search for PostgreSQL using BM25
pg_bigm pg_bigm pg_bigm_$v* PGDG 1.2 FTS PostgreSQL 17,16,15,14,13,12 create 2-gram (bigram) index for faster full text search.
zhparser zhparser zhparser_$v* PIGSTY 2.2 FTS PostgreSQL 17,16,15,14,13,12 a parser for full-text search of Chinese
hunspell_cs_cz hunspell_cs_cz hunspell_cs_cz_$v PIGSTY 1.0 FTS PostgreSQL 17,16,15,14,13,12 Czech Hunspell Dictionary
hunspell_de_de hunspell_de_de hunspell_de_de_$v PIGSTY 1.0 FTS PostgreSQL 17,16,15,14,13,12 German Hunspell Dictionary
hunspell_en_us hunspell_en_us hunspell_en_us_$v PIGSTY 1.0 FTS PostgreSQL 17,16,15,14,13,12 en_US Hunspell Dictionary
hunspell_fr hunspell_fr hunspell_fr_$v PIGSTY 1.0 FTS PostgreSQL 17,16,15,14,13,12 French Hunspell Dictionary
hunspell_ne_np hunspell_ne_np hunspell_ne_np_$v PIGSTY 1.0 FTS PostgreSQL 17,16,15,14,13,12 Nepali Hunspell Dictionary
hunspell_nl_nl hunspell_nl_nl hunspell_nl_nl_$v PIGSTY 1.0 FTS PostgreSQL 17,16,15,14,13,12 Dutch Hunspell Dictionary
hunspell_nn_no hunspell_nn_no hunspell_nn_no_$v PIGSTY 1.0 FTS PostgreSQL 17,16,15,14,13,12 Norwegian (norsk) Hunspell Dictionary
hunspell_pt_pt hunspell_pt_pt hunspell_pt_pt_$v PIGSTY 1.0 FTS PostgreSQL 17,16,15,14,13,12 Portuguese Hunspell Dictionary
hunspell_ru_ru hunspell_ru_ru hunspell_ru_ru_$v PIGSTY 1.0 FTS PostgreSQL 17,16,15,14,13,12 Russian Hunspell Dictionary
hunspell_ru_ru_aot hunspell_ru_ru_aot hunspell_ru_ru_aot_$v PIGSTY 1.0 FTS PostgreSQL 17,16,15,14,13,12 Russian Hunspell Dictionary (from AOT.ru group)
fuzzystrmatch fuzzystrmatch postgresql$v-contrib CONTRIB 1.2 FTS PostgreSQL 17,16,15,14,13,12 determine similarities and distance between strings
pg_trgm pg_trgm postgresql$v-contrib CONTRIB 1.6 FTS PostgreSQL 17,16,15,14,13,12 text similarity measurement and index searching based on trigrams
citus citus citus_$v* PGDG 12.1-1 OLAP AGPLv3 16,15,14,13,12 Distributed PostgreSQL as an extension
citus_columnar citus citus_$v* PGDG 11.3-1 OLAP AGPLv3 16,15,14,13,12 Citus columnar storage engine
columnar hydra hydra_$v* PIGSTY 11.1-11 OLAP AGPLv3 16,15,14,13 Hydra Columnar extension
pg_analytics pg_analytics pg_analytics_$v PIGSTY 0.2.1 OLAP AGPLv3 17,16,15,14 Postgres for analytics, powered by DuckDB
pg_duckdb pg_duckdb pg_duckdb_$v* PIGSTY 0.0.1 OLAP MIT 17,16,15 DuckDB Embedded in Postgres
duckdb_fdw duckdb_fdw duckdb_fdw_$v* PIGSTY 1.0.0 OLAP MIT 16,15,14,13,12 DuckDB Foreign Data Wrapper
pg_parquet pg_parquet pg_parquet_$v PIGSTY 0.1.0 OLAP PostgreSQL 17,16 copy data between Postgres and Parquet
pg_fkpart pg_fkpart pg_fkpart_$v* PGDG 1.7 OLAP GPLv2 17,16,15,14,13,12 Table partitioning by foreign key utility
pg_partman pg_partman pg_partman_$v* PGDG 5.1.0 OLAP PostgreSQL 17,16,15,14,13,12 Extension to manage partitioned tables by time or ID
plproxy plproxy plproxy_$v* PGDG 2.11.0 OLAP BSD 0 17,16,15,14,13,12 Database partitioning implemented as procedural language
pg_strom pg_strom pg_strom_$v* PGDG 5.1 OLAP PostgreSQL 17,16,15,14,13,12 PG-Strom - big-data processing acceleration using GPU and NVME
tablefunc tablefunc postgresql$v-contrib CONTRIB 1.0 OLAP PostgreSQL 17,16,15,14,13,12 functions that manipulate whole tables, including crosstab
age age apache-age_$v* PIGSTY 1.5.0 FEAT Apache-2.0 16,15,14,13,12 AGE graph database extension
hll hll hll_$v* PGDG 2.18 FEAT Apache-2.0 17,16,15,14,13,12 type for storing hyperloglog data
rum rum rum_$v PGDG 1.3 FEAT PostgreSQL 17,16,15,14,13,12 RUM index access method
pg_graphql pg_graphql pg_graphql_$v PIGSTY 1.5.9 FEAT Apache-2.0 17,16,15,14 pg_graphql: GraphQL support
pg_jsonschema pg_jsonschema pg_jsonschema_$v PIGSTY 0.3.3 FEAT Apache-2.0 17,16,15,14,13,12 PostgreSQL extension providing JSON Schema validation
jsquery jsquery jsquery_$v* PGDG 1.1 FEAT PostgreSQL 17,16,15,14,13,12 data type for jsonb inspection
pg_hint_plan pg_hint_plan pg_hint_plan_$v* PGDG 1.6.1 FEAT BSD 3 17,16,15,14,13,12 Give PostgreSQL ability to manually force some decisions in execution plans.
hypopg hypopg hypopg_$v* PGDG 1.4.1 FEAT PostgreSQL 17,16,15,14,13,12 Hypothetical indexes for PostgreSQL
index_advisor index_advisor index_advisor_$v PIGSTY 0.2.0 FEAT PostgreSQL 17,16,15,14,13,12 Query index advisor
plan_filter pg_plan_filter pg_plan_filter_$v* PIGSTY 0.0.1 FEAT PostgreSQL 17,16,15,14,13,12 filter statements by their execution plans.
imgsmlr imgsmlr imgsmlr_$v* PIGSTY 1.0 FEAT PostgreSQL 17,16,15,14,13,12 Image similarity with haar
pg_ivm pg_ivm pg_ivm_$v* PGDG 1.8 FEAT PostgreSQL 17,16,15,14,13,12 incremental view maintenance on PostgreSQL
pgmq pgmq pgmq_$v PIGSTY 1.4.4 FEAT PostgreSQL 17,16,15,14,13,12 A lightweight message queue. Like AWS SQS and RSMQ but on Postgres.
pgq pgq pgq_$v* PGDG 3.5.1 FEAT ISC 17,16,15,14,13,12 Generic queue for PostgreSQL
pg_cardano pg_cardano pg_cardano_$v PIGSTY 1.0.2 FEAT MIT 17,16,15,14,13,12 A suite of Cardano-related tools
bloom bloom postgresql$v-contrib CONTRIB 1.0 FEAT PostgreSQL 17,16,15,14,13,12 bloom access method - signature file based index
pg_tle pg_tle pg_tle_$v* PIGSTY 1.2.0 LANG Apache-2.0 17,16,15,14,13,12 Trusted Language Extensions for PostgreSQL
plv8 plv8 plv8_$v* PIGSTY 3.2.3 LANG PostgreSQL 17,16,15,14,13,12 PL/JavaScript (v8) trusted procedural language
plluau pllua pllua_$v* PGDG 2.0 LANG MIT 17,16,15,14,13,12 Lua as an untrusted procedural language
pllua pllua pllua_$v* PGDG 2.0 LANG MIT 17,16,15,14,13,12 Lua as a procedural language
plprql plprql plprql_$v PIGSTY 0.1.0 LANG Apache-2.0 16,15,14,13,12 Use PRQL in PostgreSQL - Pipelined Relational Query Language
pldbgapi pldebugger pldebugger_$v* PGDG 1.1 LANG Artistic 17,16,15,14,13,12 server-side support for debugging PL/pgSQL functions
plpgsql_check plpgsql_check plpgsql_check_$v* PGDG 2.7 LANG MIT 17,16,15,14,13,12 extended check for plpgsql functions
plprofiler plprofiler plprofiler_$v* PGDG 4.2 LANG Artistic 17,16,15,14,13,12 server-side support for profiling PL/pgSQL functions
plsh plsh plsh_$v* PGDG 2 LANG MIT 17,16,15,14,13,12 PL/sh procedural language
pljava pljava pljava_$v* PGDG 1.6.6 LANG BSD 3 16,15,14,13,12 PL/Java procedural language (https://tada.github.io/pljava/)
plr plr plr_$v* PGDG 8.4.6 LANG GPLv2 17,16,15,14,13,12 load R interpreter and execute R script from within a database
pgtap pgtap pgtap_$v* PGDG 1.3.1 LANG PostgreSQL 16,15,14,13,12 Unit testing for PostgreSQL
faker faker postgresql_faker_$v* PGDG 0.5.3 LANG PostgreSQL 17,16,15,14,13,12 Wrapper for the Faker Python library
dbt2 dbt2 dbt2-pg$v-extensions* PGDG 0.45.0 LANG Artistic 17,16,15,14,13,12 OSDL-DBT-2 test kit
pltcl pltcl postgresql$v-contrib CONTRIB 1.0 LANG PostgreSQL 17,16,15,14,13,12 PL/Tcl procedural language
pltclu pltcl postgresql$v-contrib CONTRIB 1.0 LANG PostgreSQL 17,16,15,14,13,12 PL/TclU untrusted procedural language
plperl plperl postgresql$v-contrib CONTRIB 1.0 LANG PostgreSQL 17,16,15,14,13,12 PL/Perl procedural language
bool_plperl plperl postgresql$v-contrib CONTRIB 1.0 LANG PostgreSQL 17,16,15,14,13,12 transform between bool and plperl
hstore_plperl plperl postgresql$v-contrib CONTRIB 1.0 LANG PostgreSQL 17,16,15,14,13,12 transform between hstore and plperl
jsonb_plperl plperl postgresql$v-contrib CONTRIB 1.0 LANG PostgreSQL 17,16,15,14,13,12 transform between jsonb and plperl
plperlu plperlu postgresql$v-contrib CONTRIB 1.0 LANG PostgreSQL 17,16,15,14,13,12 PL/PerlU untrusted procedural language
bool_plperlu plperlu postgresql$v-contrib CONTRIB 1.0 LANG PostgreSQL 17,16,15,14,13,12 transform between bool and plperlu
jsonb_plperlu plperlu postgresql$v-contrib CONTRIB 1.0 LANG PostgreSQL 17,16,15,14,13,12 transform between jsonb and plperlu
hstore_plperlu plperlu postgresql$v-contrib CONTRIB 1.0 LANG PostgreSQL 17,16,15,14,13,12 transform between hstore and plperlu
plpgsql plpgsql postgresql$v-contrib CONTRIB 1.0 LANG PostgreSQL 17,16,15,14,13,12 PL/pgSQL procedural language
plpython3u plpython3u postgresql$v-contrib CONTRIB 1.0 LANG PostgreSQL 17,16,15,14,13,12 PL/Python3U untrusted procedural language
jsonb_plpython3u plpython3u postgresql$v-contrib CONTRIB 1.0 LANG PostgreSQL 17,16,15,14,13,12 transform between jsonb and plpython3u
ltree_plpython3u plpython3u postgresql$v-contrib CONTRIB 1.0 LANG PostgreSQL 17,16,15,14,13,12 transform between ltree and plpython3u
hstore_plpython3u plpython3u postgresql$v-contrib CONTRIB 1.0 LANG PostgreSQL 17,16,15,14,13,12 transform between hstore and plpython3u
prefix prefix prefix_$v* PGDG 1.2.0 TYPE PostgreSQL 17,16,15,14,13,12 Prefix Range module for PostgreSQL
semver semver semver_$v* PGDG 0.32.1 TYPE PostgreSQL 17,16,15,14,13,12 Semantic version data type
unit pgunit postgresql-unit_$v* PGDG 7 TYPE GPLv3 17,16,15,14,13,12 SI units extension
md5hash md5hash md5hash_$v* PIGSTY 1.0.1 TYPE BSD 2 17,16,15,14,13,12 type for storing 128-bit binary data inline
asn1oid asn1oid asn1oid_$v* PIGSTY 1 TYPE GPLv3 17,16,15,14,13,12 asn1oid extension
roaringbitmap roaringbitmap pg_roaringbitmap_$v* PIGSTY 0.5 TYPE Apache-2.0 17,16,15,14,13,12 support for Roaring Bitmaps
pgfaceting pgfaceting pgfaceting_$v PIGSTY 0.2.0 TYPE BSD 3 17,16,15,14,13,12 fast faceting queries using an inverted index
pg_sphere pgsphere pgsphere_$v* PIGSTY 1.5.1 TYPE BSD 3 17,16,15,14,13,12 spherical objects with useful functions, operators and index support
country pg_country pg_country_$v* PIGSTY 0.0.3 TYPE PostgreSQL 17,16,15,14,13,12 Country data type, ISO 3166-1
currency pg_currency pg_currency_$v* PIGSTY 0.0.3 TYPE MIT 17,16,15,14,13,12 Custom PostgreSQL currency type in 1Byte
pgmp pgmp pgmp_$v* PGDG 1.1 TYPE LGPLv3 17,16,15,14,13,12 Multiple Precision Arithmetic extension
numeral numeral numeral_$v* PIGSTY 1 TYPE GPLv2 17,16,15,14,13,12 numeral datatypes extension
pg_rational pg_rational pg_rational_$v* PIGSTY 0.0.2 TYPE MIT 17,16,15,14,13,12 bigint fractions
uint pguint pguint_$v* PGDG 0 TYPE PostgreSQL 17,16,15,14,13,12 unsigned integer types
uint128 pg_uint128 pg_uint128_$v* PIGSTY 1.0.0 TYPE PostgreSQL 17,16,15,14,13,12 Native uint128 type
ip4r ip4r ip4r_$v* PGDG 2.4 TYPE PostgreSQL 17,16,15,14,13,12 IPv4/v6 and IPv4/v6 range index type for PostgreSQL
uri pg_uri pg_uri_$v* PIGSTY 1 TYPE PostgreSQL 17,16,15,14,13,12 URI Data type for PostgreSQL
pgemailaddr pgemailaddr pg_emailaddr_$v* PIGSTY 0 TYPE PostgreSQL 17,16,15,14,13,12 Email address type for PostgreSQL
acl acl acl_$v* PIGSTY 1.0.4 TYPE BSD-2 17,16,15,14,13,12 ACL Data type
timestamp9 timestamp9 timestamp9_$v* PGDG 1.4.0 TYPE MIT 17,16,15,14,13,12 timestamp nanosecond resolution
chkpass chkpass chkpass_$v* PIGSTY 1.0 TYPE PostgreSQL 17,16,15,14,13,12 data type for auto-encrypted passwords
isn isn postgresql$v-contrib CONTRIB 1.2 TYPE PostgreSQL 17,16,15,14,13,12 data types for international product numbering standards
seg seg postgresql$v-contrib CONTRIB 1.4 TYPE PostgreSQL 17,16,15,14,13,12 data type for representing line segments or floating-point intervals
cube cube postgresql$v-contrib CONTRIB 1.5 TYPE PostgreSQL 17,16,15,14,13,12 data type for multidimensional cubes
ltree ltree postgresql$v-contrib CONTRIB 1.2 TYPE PostgreSQL 17,16,15,14,13,12 data type for hierarchical tree-like structures
hstore hstore postgresql$v-contrib CONTRIB 1.8 TYPE PostgreSQL 17,16,15,14,13,12 data type for storing sets of (key, value) pairs
citext citext postgresql$v-contrib CONTRIB 1.6 TYPE PostgreSQL 17,16,15,14,13,12 data type for case-insensitive character strings
xml2 xml2 postgresql$v-contrib CONTRIB 1.1 TYPE PostgreSQL 17,16,15,14,13,12 XPath querying and XSLT
topn topn topn_$v* PGDG 2.6.0 FUNC AGPLv3 17,16,15,14,13,12 type for top-n JSONB
gzip pg_gzip pgsql_gzip_$v* PGDG 1.0 FUNC MIT 17,16,15,14,13,12 gzip and gunzip functions.
zstd pg_zstd pg_zstd_$v* PIGSTY 1.1.0 FUNC ISC 17,16,15,14,13,12 Zstandard compression algorithm implementation in PostgreSQL
http pg_http pgsql_http_$v* PGDG 1.6 FUNC MIT 17,16,15,14,13,12 HTTP client for PostgreSQL, allows web page retrieval inside the database.
pg_net pg_net pg_net_$v* PIGSTY 0.9.2 FUNC Apache-2.0 17,16,15,14,13,12 Async HTTP Requests
pg_html5_email_address pg_html5_email_address pg_html5_email_address_$v PIGSTY 1.2.3 FUNC PostgreSQL 17,16,15,14,13,12 PostgreSQL email validation that is consistent with the HTML5 spec
pgsql_tweaks pgsql_tweaks pgsql_tweaks_$v* PGDG 0.10.6 FUNC PostgreSQL 17,16,15,14,13,12 Some functions and views for daily usage
pg_extra_time pg_extra_time pg_extra_time_$v* PGDG 1.1.3 FUNC PostgreSQL 17,16,15,14,13,12 Some date time functions and operators that,
timeit pg_timeit pg_timeit_$v* PIGSTY 1.0 FUNC PostgreSQL 17,16,15,14,13,12 High-accuracy timing of SQL expressions
count_distinct count_distinct count_distinct_$v* PGDG 3.0.1 FUNC BSD 2 17,16,15,14,13,12 An alternative to COUNT(DISTINCT …) aggregate, usable with HashAggregate
extra_window_functions extra_window_functions extra_window_functions_$v* PGDG 1.0 FUNC PostgreSQL 17,16,15,14,13,12 Extra Window Functions for PostgreSQL
first_last_agg first_last_agg first_last_agg_$v PIGSTY 0.1.4 FUNC PostgreSQL 17,16,15,14,13,12 first() and last() aggregate functions
tdigest tdigest tdigest_$v* PGDG 1.4.1 FUNC Apache-2.0 17,16,15,14,13,12 Provides tdigest aggregate function.
aggs_for_vecs aggs_for_vecs aggs_for_vecs_$v* PIGSTY 1.3.0 FUNC MIT 17,16,15,14,13,12 Aggregate functions for array inputs
aggs_for_arrays aggs_for_arrays aggs_for_arrays_$v* PIGSTY 1.3.2 FUNC MIT 17,16,15,14,13,12 Various functions for computing statistics on arrays of numbers
arraymath pg_arraymath pg_arraymath_$v* PIGSTY 1.1 FUNC MIT 17,16,15,14,13,12 Array math and operators that work element by element on the contents of arrays
quantile quantile quantile_$v* PIGSTY 1.1.7 FUNC BSD 17,16,15,14,13,12 Quantile aggregation function
lower_quantile lower_quantile lower_quantile_$v* PIGSTY 1.0.0 FUNC BSD-2 17,16,15,14,13,12 Lower quantile aggregate function
pg_idkit pg_idkit pg_idkit_$v PIGSTY 0.2.4 FUNC Apache-2.0 17,16,15,14,13,12 multi-tool for generating new/niche universally unique identifiers (ex. UUIDv6, ULID, KSUID)
pg_uuidv7 pg_uuidv7 pg_uuidv7_$v* PGDG 1.6 FUNC MPLv2 17,16,15,14,13,12 pg_uuidv7: create UUIDv7 values in postgres
permuteseq permuteseq permuteseq_$v* PIGSTY 1.2 FUNC PostgreSQL 17,16,15,14,13,12 Pseudo-randomly permute sequences with a format-preserving encryption on elements
pg_hashids pg_hashids pg_hashids_$v* PIGSTY 1.3 FUNC MIT 17,16,15,14,13,12 Short unique id generator for PostgreSQL, using hashids
sequential_uuids sequential_uuids sequential_uuids_$v* PGDG 1.0.2 FUNC MIT 17,16,15,14,13,12 generator of sequential UUIDs
pg_math pg_math pg_math_$v* PIGSTY 1.0 FUNC GPLv3 17,16,15,14,13,12 GSL statistical functions for postgresql
random pg_random pg_random_$v* PIGSTY 2.0.0-dev FUNC PostgreSQL 17,16,15,14,13,12 random data generator
base36 pg_base36 pg_base36_$v* PIGSTY 1.0.0 FUNC MIT 17,16,15,14,13,12 Integer Base36 types
base62 pg_base62 pg_base62_$v* PIGSTY 0.0.1 FUNC MIT 17,16,15,14,13,12 Base62 extension for PostgreSQL
pg_base58 pg_base58 pg_base58_$v PIGSTY 0.0.1 FUNC MIT 17,16,15,14,13,12 Base58 Encoder/Decoder Extension for PostgreSQL
floatvec floatvec floatvec_$v* PIGSTY 1.0.1 FUNC MIT 17,16,15,14,13,12 Math for vectors (arrays) of numbers
financial pg_financial pg_financial_$v* PIGSTY 1.0.1 FUNC PostgreSQL 17,16,15,14,13,12 Financial aggregate functions
pgjwt pgjwt pgjwt_$v* PIGSTY 0.2.0 FUNC MIT 17,16,15,14,13,12 JSON Web Token API for Postgresql
pg_hashlib pg_hashlib pg_hashlib_$v PIGSTY 1.1 FUNC PostgreSQL 17,16,15,14,13,12 Stable hash functions for Postgres
shacrypt shacrypt postgres_shacrypt_$v* PIGSTY 1.1 FUNC PostgreSQL 17,16,15,14,13,12 Implements SHA256-CRYPT and SHA512-CRYPT password encryption schemes
cryptint cryptint cryptint_$v* PIGSTY 1.0.0 FUNC PostgreSQL 17,16,15,14,13,12 Encryption functions for int and bigint values
pguecc pg_ecdsa pg_ecdsa_$v* PIGSTY 1.0 FUNC BSD-2 17,16,15,14,13,12 uECC bindings for Postgres
pgpcre pgpcre pgpcre_$v PIGSTY 1 FUNC PostgreSQL 17,16,15,14,13,12 Perl Compatible Regular Expression functions
icu_ext icu_ext icu_ext_$v* PIGSTY 1.9 FUNC PostgreSQL 17,16,15,14,13,12 Access ICU functions
pgqr pgqr pgqr_$v* PIGSTY 1.0 FUNC BSD-3 17,16,15,14,13,12 QR Code generator from PostgreSQL
envvar envvar pg_envvar_$v* PIGSTY 1.0.0 FUNC PostgreSQL 17,16,15,14,13,12 Fetch the value of an environment variable
pg_protobuf pg_protobuf pg_protobuf_$v PIGSTY 1.0 FUNC MIT 17,16,15,14,13,12 Protobuf support for PostgreSQL
url_encode url_encode url_encode_$v* PIGSTY 1.2 FUNC PostgreSQL 17,16,15,14,13,12 url_encode, url_decode functions
refint refint postgresql$v-contrib CONTRIB 1.0 FUNC PostgreSQL 17,16,15,14,13,12 functions for implementing referential integrity (obsolete)
autoinc autoinc postgresql$v-contrib CONTRIB 1.0 FUNC PostgreSQL 17,16,15,14,13,12 functions for autoincrementing fields
insert_username insert_username postgresql$v-contrib CONTRIB 1.0 FUNC PostgreSQL 17,16,15,14,13,12 functions for tracking who changed a table
moddatetime moddatetime postgresql$v-contrib CONTRIB 1.0 FUNC PostgreSQL 17,16,15,14,13,12 functions for tracking last modification time
tsm_system_time tsm_system_time postgresql$v-contrib CONTRIB 1.0 FUNC PostgreSQL 17,16,15,14,13,12 TABLESAMPLE method which accepts time in milliseconds as a limit
dict_xsyn dict_xsyn postgresql$v-contrib CONTRIB 1.0 FUNC PostgreSQL 17,16,15,14,13,12 text search dictionary template for extended synonym processing
tsm_system_rows tsm_system_rows postgresql$v-contrib CONTRIB 1.0 FUNC PostgreSQL 17,16,15,14,13,12 TABLESAMPLE method which accepts number of rows as a limit
tcn tcn postgresql$v-contrib CONTRIB 1.0 FUNC PostgreSQL 17,16,15,14,13,12 Triggered change notifications
uuid-ossp uuid-ossp postgresql$v-contrib CONTRIB 1.1 FUNC PostgreSQL 17,16,15,14,13,12 generate universally unique identifiers (UUIDs)
btree_gist btree_gist postgresql$v-contrib CONTRIB 1.7 FUNC PostgreSQL 17,16,15,14,13,12 support for indexing common datatypes in GiST
btree_gin btree_gin postgresql$v-contrib CONTRIB 1.3 FUNC PostgreSQL 17,16,15,14,13,12 support for indexing common datatypes in GIN
intarray intarray postgresql$v-contrib CONTRIB 1.5 FUNC PostgreSQL 17,16,15,14,13,12 functions, operators, and index support for 1-D arrays of integers
intagg intagg postgresql$v-contrib CONTRIB 1.1 FUNC PostgreSQL 17,16,15,14,13,12 integer aggregator and enumerator (obsolete)
dict_int dict_int postgresql$v-contrib CONTRIB 1.0 FUNC PostgreSQL 17,16,15,14,13,12 text search dictionary template for integers
unaccent unaccent postgresql$v-contrib CONTRIB 1.1 FUNC PostgreSQL 17,16,15,14,13,12 text search dictionary that removes accents
pg_repack pg_repack pg_repack_$v* PGDG 1.5.0 ADMIN BSD 3 17,16,15,14,13,12 Reorganize tables in PostgreSQL databases with minimal locks
pg_squeeze pg_squeeze pg_squeeze_$v* PGDG 1.7 ADMIN BSD 2 17,16,15,14,13,12 A tool to remove unused space from a relation.
pg_dirtyread pg_dirtyread pg_dirtyread_$v* PIGSTY 2 ADMIN BSD 3 17,16,15,14,13,12 Read dead but unvacuumed rows from table
pgfincore pgfincore pgfincore_$v* PGDG 1.3.1 ADMIN BSD 3 17,16,15,14,13,12 examine and manage the os buffer cache
pgdd pgdd pgdd_$v PIGSTY 0.5.2 ADMIN MIT 16,15,14,13,12 An in-database data dictionary providing database introspection via standard SQL query syntax. Developed using pgx (https://github.com/zombodb/pgx).
ddlx ddlx ddlx_$v* PGDG 0.27 ADMIN PostgreSQL 17,16,15,14,13,12 DDL eXtractor functions
prioritize pg_prioritize pg_prioritize_$v* PGDG 1.0 ADMIN PostgreSQL 17,16,15,14,13,12 get and set the priority of PostgreSQL backends
pg_checksums pg_checksums pg_checksums_$v* PGDG 1.1 ADMIN BSD 2 16,15,14,13,12 Activate/deactivate/verify checksums in offline Postgres clusters
pg_readonly pg_readonly pg_readonly_$v* PGDG 1.0.0 ADMIN PostgreSQL 17,16,15,14,13,12 cluster database read only
safeupdate safeupdate safeupdate_$v* PGDG 1.4 ADMIN ISC 17,16,15,14,13,12 Require criteria for UPDATE and DELETE
pg_permissions pg_permissions pg_permissions_$v* PGDG 1.3 ADMIN BSD 2 17,16,15,14,13,12 view object permissions and compare them with the desired state
pgautofailover pgautofailover pg_auto_failover_$v* PGDG 2.1 ADMIN PostgreSQL 16,15,14,13,12 pg_auto_failover
pg_catcheck pg_catcheck pg_catcheck_$v* PGDG 1.4.0 ADMIN BSD 3 17,16,15,14,13,12 Diagnosing system catalog corruption
pre_prepare preprepare preprepare_$v* PIGSTY 0.4 ADMIN PostgreSQL 17,16,15,14,13,12 Pre Prepare your Statement server side
pgcozy pgcozy pgcozy_$v PIGSTY 1.0 ADMIN PostgreSQL 17,16,15,14,13,12 Pre-warming shared buffers according to previous pg_buffercache snapshots for PostgreSQL.
pg_orphaned pg_orphaned pg_orphaned_$v* PIGSTY 1.0 ADMIN PostgreSQL 17,16,15,14,13,12 Deal with orphaned files
pg_crash pg_crash pg_crash_$v* PIGSTY 1.0 ADMIN BSD-3 17,16,15,14,13,12 Send random signals to random processes
pg_cheat_funcs pg_cheat_funcs pg_cheat_funcs_$v* PIGSTY 1.0 ADMIN PostgreSQL 17,16,15,14,13,12 Provides cheat (but useful) functions
pg_savior pg_savior pg_savior_$v* PIGSTY 0.0.1 ADMIN Apache-2.0 17,16,15,14,13 Postgres extension to save OOPS mistakes
table_log table_log table_log_$v PIGSTY 0.6.1 ADMIN PostgreSQL 17,16,15,14,13,12 record table modification logs and PITR for table/row
pg_fio pg_fio pg_fio_$v PIGSTY 1.0 ADMIN BSD-3 17,16,15,14,13,12 PostgreSQL File I/O Functions
pgpool_adm pgpool pgpool-II-pg$v-extensions PGDG 1.5 ADMIN PostgreSQL 17,16,15,14,13,12 Administrative functions for pgPool
pgpool_recovery pgpool pgpool-II-pg$v-extensions PGDG 1.4 ADMIN PostgreSQL 17,16,15,14,13,12 recovery functions for pgpool-II for V4.3
pgpool_regclass pgpool pgpool-II-pg$v-extensions PGDG 1.0 ADMIN PostgreSQL 17,16,15,14,13,12 replacement for regclass
pgagent pgagent pgagent_$v* PGDG 4.2 ADMIN PostgreSQL 17,16,15,14,13,12 A PostgreSQL job scheduler
vacuumlo vacuumlo postgresql$v-contrib CONTRIB 16.3 ADMIN PostgreSQL 17,16,15,14,13,12 utility program that will remove any orphaned large objects from a PostgreSQL database
pg_prewarm pg_prewarm postgresql$v-contrib CONTRIB 1.2 ADMIN PostgreSQL 17,16,15,14,13,12 prewarm relation data
oid2name oid2name postgresql$v-contrib CONTRIB 16.3 ADMIN PostgreSQL 17,16,15,14,13,12 utility program that helps administrators to examine the file structure used by PostgreSQL
lo lo postgresql$v-contrib CONTRIB 1.1 ADMIN PostgreSQL 17,16,15,14,13,12 Large Object maintenance
basic_archive basic_archive postgresql$v-contrib CONTRIB 16.3 ADMIN PostgreSQL 17,16,15 an example of an archive module
basebackup_to_shell basebackup_to_shell postgresql$v-contrib CONTRIB 16.3 ADMIN PostgreSQL 17,16,15 adds a custom basebackup target called shell
old_snapshot old_snapshot postgresql$v-contrib CONTRIB 1.0 ADMIN PostgreSQL 17,16,15,14 utilities in support of old_snapshot_threshold
adminpack adminpack postgresql$v-contrib CONTRIB 2.1 ADMIN PostgreSQL 17,16,15,14,13,12 administrative functions for PostgreSQL
amcheck amcheck postgresql$v-contrib CONTRIB 1.3 ADMIN PostgreSQL 17,16,15,14,13,12 functions for verifying relation integrity
pg_surgery pg_surgery postgresql$v-contrib CONTRIB 1.0 ADMIN PostgreSQL 17,16,15,14 extension to perform surgery on a damaged relation
pg_profile pg_profile pg_profile_$v* PGDG 4.7 STAT BSD 2 17,16,15,14,13,12 PostgreSQL load profile repository and report builder
pg_show_plans pg_show_plans pg_show_plans_$v* PGDG 2.1 STAT PostgreSQL 17,16,15,14,13,12 show query plans of all currently running SQL statements
pg_stat_kcache pg_stat_kcache pg_stat_kcache_$v* PGDG 2.3.0 STAT BSD 3 17,16,15,14,13,12 Kernel statistics gathering
pg_stat_monitor pg_stat_monitor pg_stat_monitor_$v* PGDG 2.1 STAT BSD 3 17,16,15,14,13,12 The pg_stat_monitor is a PostgreSQL Query Performance Monitoring tool, based on PostgreSQL contrib module pg_stat_statements. pg_stat_monitor provides aggregated statistics, client information, plan details including plan, and histogram information.
pg_qualstats pg_qualstats pg_qualstats_$v* PGDG 2.1.1 STAT BSD 3 17,16,15,14,13,12 An extension collecting statistics about quals
pg_store_plans pg_store_plans pg_store_plans_$v* PGDG 1.8 STAT BSD 3 16,15,14,13,12 track plan statistics of all SQL statements executed
pg_track_settings pg_track_settings pg_track_settings_$v* PGDG 2.1.2 STAT PostgreSQL 17,16,15,14,13,12 Track settings changes
pg_wait_sampling pg_wait_sampling pg_wait_sampling_$v* PGDG 1.1 STAT PostgreSQL 17,16,15,14,13,12 sampling based statistics of wait events
system_stats system_stats system_stats_$v* PGDG 3.0 STAT PostgreSQL 17,16,15,14,13,12 EnterpriseDB system statistics for PostgreSQL
meta pg_meta pg_meta_$v PIGSTY 0.4.0 STAT BSD-2 17,16,15,14,13,12 Normalized, friendlier system catalog for PostgreSQL
pgnodemx pgnodemx pgnodemx_$v PIGSTY 1.7 STAT Apache-2.0 17,16,15,14,13,12 Capture node OS metrics via SQL queries
pg_proctab pgnodemx pgnodemx_$v PIGSTY 0.0.10-compat STAT BSD 3 17,16,15,14,13,12 PostgreSQL extension to access the OS process table
pg_sqlog pg_sqlog pg_sqlog_$v* PIGSTY 1.6 STAT BSD 3 17,16,15,14,13,12 Provide SQL interface to logs
bgw_replstatus bgw_replstatus bgw_replstatus_$v* PGDG 1.0.6 STAT PostgreSQL 17,16,15,14,13,12 Small PostgreSQL background worker to report whether a node is a replication master or standby
pgmeminfo pgmeminfo pgmeminfo_$v* PGDG 1.0 STAT MIT 17,16,15,14,13,12 show memory usage
toastinfo toastinfo toastinfo_$v* PIGSTY 1 STAT PostgreSQL 17,16,15,14,13,12 show details on toasted datums
explain_ui pg_explain_ui pg_explain_ui_$v PIGSTY 0.0.1 STAT PostgreSQL 17,16,15,14,13,12 easily jump into a visual plan UI for any SQL query
pg_relusage pg_relusage pg_relusage_$v PIGSTY 0.0.1 STAT PostgreSQL 17,16,15,14,13,12 Log all the queries that reference a particular column
pg_mon pg_mon pg_mon_$v* PIGSTY 1.0 STAT MIT 17,16,15,14,13,12 PostgreSQL extension to enhance query monitoring
pg_statviz pg_statviz pg_statviz_extension_$v PGDG 0.6 STAT BSD 3 16,15,14,13,12 stats visualization and time series analysis
pgexporter_ext pgexporter_ext pgexporter_ext_$v PGDG 0.2.3 STAT BSD 3 17,16,15,14,13,12 pgexporter extension for extra metrics
pg_top pg_top pg_top_$v* PGDG 3.7.0 STAT BSD 3 16,15,14,13,12 Monitor PostgreSQL processes similar to unix top
pagevis pagevis pagevis_$v PIGSTY 0.1 STAT MIT 17,16,15,14,13,12 Visualise database pages in ascii code
powa powa powa_$v* PGDG 4.2.2 STAT PostgreSQL 16,15,14,13,12 PostgreSQL Workload Analyser-core
pageinspect pageinspect postgresql$v-contrib CONTRIB 1.12 STAT PostgreSQL 17,16,15,14,13,12 inspect the contents of database pages at a low level
pgrowlocks pgrowlocks postgresql$v-contrib CONTRIB 1.2 STAT PostgreSQL 17,16,15,14,13,12 show row-level locking information
sslinfo sslinfo postgresql$v-contrib CONTRIB 1.2 STAT PostgreSQL 17,16,15,14,13,12 information about SSL certificates
pg_buffercache pg_buffercache postgresql$v-contrib CONTRIB 1.4 STAT PostgreSQL 17,16,15,14,13,12 examine the shared buffer cache
pg_walinspect pg_walinspect postgresql$v-contrib CONTRIB 1.1 STAT PostgreSQL 17,16,15 functions to inspect contents of PostgreSQL Write-Ahead Log
pg_freespacemap pg_freespacemap postgresql$v-contrib CONTRIB 1.2 STAT PostgreSQL 17,16,15,14,13,12 examine the free space map (FSM)
pg_visibility pg_visibility postgresql$v-contrib CONTRIB 1.2 STAT PostgreSQL 17,16,15,14,13,12 examine the visibility map (VM) and page-level visibility info
pgstattuple pgstattuple postgresql$v-contrib CONTRIB 1.5 STAT PostgreSQL 17,16,15,14,13,12 show tuple-level statistics
auto_explain auto_explain postgresql$v-contrib CONTRIB 16.3 STAT PostgreSQL 17,16,15,14,13,12 Provides a means for logging execution plans of slow statements automatically
pg_stat_statements pg_stat_statements postgresql$v-contrib CONTRIB 1.10 STAT PostgreSQL 17,16,15,14,13,12 track planning and execution statistics of all SQL statements executed
passwordcheck_cracklib passwordcheck passwordcheck_cracklib_$v* PGDG 3.0.0 SEC LGPLv2 17,16,15,14,13,12 Strengthen PostgreSQL user password checks with cracklib
supautils supautils supautils_$v* PIGSTY 2.5.0 SEC Apache-2.0 17,16,15,14,13 Extension that secures a cluster on a cloud environment
pgsodium pgsodium pgsodium_$v* PIGSTY 3.1.9 SEC BSD 3 17,16,15,14,13,12 Postgres extension for libsodium functions
supabase_vault pg_vault vault_$v* PIGSTY 0.2.8 SEC Apache-2.0 17,16,15,14,13,12 Supabase Vault Extension
anon anonymizer postgresql_anonymizer_$v* PGDG 1.3.2 SEC PostgreSQL 17,16,15,14,13,12 Data anonymization tools
pg_tde pg_tde pg_tde_$v* PIGSTY 1.0 SEC MIT 16 pg_tde access method
pgsmcrypto pgsmcrypto pgsmcrypto_$v PIGSTY 0.1.0 SEC MIT 17,16,15,14,13,12 PostgreSQL SM Algorithm Extension
pgaudit pgaudit pgaudit_$v* PGDG 16.0 SEC PostgreSQL 17,16,15,14,13,12 provides auditing functionality
pgauditlogtofile pgauditlogtofile pgauditlogtofile_$v* PGDG 1.6 SEC PostgreSQL 17,16,15,14,13,12 pgAudit addon to redirect audit log to an independent file
pg_auth_mon pg_auth_mon pg_auth_mon_$v* PGDG 1.1 SEC MIT 17,16,15,14,13,12 monitor connection attempts per user
credcheck credcheck credcheck_$v* PGDG 2.7.0 SEC MIT 17,16,15,14,13,12 credcheck - postgresql plain text credential checker
pgcryptokey pgcryptokey pgcryptokey_$v* PGDG 1.0 SEC PostgreSQL 17,16,15,14,13,12 cryptographic key management
pg_jobmon pg_jobmon pg_jobmon_$v* PGDG 1.4.1 SEC PostgreSQL 17,16,15,14,13,12 Extension for logging and monitoring functions in PostgreSQL
logerrors logerrors logerrors_$v* PGDG 2.1 SEC BSD 3 17,16,15,14,13,12 Function for collecting statistics about messages in logfile
login_hook login_hook login_hook_$v* PGDG 1.6 SEC GPLv3 17,16,15,14,13,12 login_hook - hook to execute login_hook.login() at login time
set_user set_user set_user_$v* PGDG 4.1.0 SEC PostgreSQL 17,16,15,14,13,12 similar to SET ROLE but with added logging
pg_snakeoil pg_snakeoil pg_snakeoil_$v* PIGSTY 1 SEC PostgreSQL 17,16,15,14,13,12 The PostgreSQL Antivirus
pgextwlist pgextwlist pgextwlist_$v* PIGSTY 1.17 SEC PostgreSQL 17,16,15,14,13,12 PostgreSQL Extension Whitelisting
pg_auditor pg_auditor pg_auditor_$v PIGSTY 0.2 SEC BSD-3 17,16,15,14,13,12 Audit data changes and provide flashback ability
sslutils sslutils sslutils_$v* PIGSTY 1.3 SEC PostgreSQL 17,16,15,14,13,12 A Postgres extension for managing SSL certificates through SQL
noset noset noset_$v* PIGSTY 0.3.0 SEC AGPLv3 17,16,15,14,13,12 Module for blocking SET variables for non-super users.
sepgsql sepgsql postgresql$v-contrib CONTRIB 16.3 SEC PostgreSQL 17,16,15,14,13,12 label-based mandatory access control (MAC) based on SELinux security policy.
auth_delay auth_delay postgresql$v-contrib CONTRIB 16.3 SEC PostgreSQL 17,16,15,14,13,12 pause briefly before reporting authentication failure
pgcrypto pgcrypto postgresql$v-contrib CONTRIB 1.3 SEC PostgreSQL 17,16,15,14,13,12 cryptographic functions
passwordcheck passwordcheck postgresql$v-contrib CONTRIB 16.3 SEC PostgreSQL 17,16,15,14,13,12 checks user passwords and reject weak password
wrappers wrappers wrappers_$v PIGSTY 0.4.3 FDW Apache-2.0 17,16,15,14 Foreign data wrappers developed by Supabase
multicorn multicorn multicorn2_$v* PGDG 3.0 FDW PostgreSQL 17,16,15,14,13,12 Fetch foreign data in Python in your PostgreSQL server.
odbc_fdw odbc_fdw odbc_fdw_$v* PGDG 0.5.1 FDW PostgreSQL 16,15,14,13 Foreign data wrapper for accessing remote databases using ODBC
jdbc_fdw jdbc_fdw jdbc_fdw_$v* PGDG 1.2 FDW PostgreSQL 16,15,14,13 foreign-data wrapper for remote servers available over JDBC
mysql_fdw mysql_fdw mysql_fdw_$v* PGDG 1.2 FDW BSD 3 17,16,15,14,13,12 Foreign data wrapper for querying a MySQL server
oracle_fdw oracle_fdw oracle_fdw_$v* PGDG 1.2 FDW PostgreSQL 17,16,15,14,13,12 foreign data wrapper for Oracle access
tds_fdw tds_fdw tds_fdw_$v* PGDG 2.0.4 FDW PostgreSQL 16,15,14,13,12 Foreign data wrapper for querying a TDS database (Sybase or Microsoft SQL Server)
db2_fdw db2_fdw db2_fdw_$v* PGDG 6.0.1 FDW PostgreSQL 16,15,14,13,12 foreign data wrapper for DB2 access
sqlite_fdw sqlite_fdw sqlite_fdw_$v* PGDG 1.1 FDW PostgreSQL 16,15,14,13,12 SQLite Foreign Data Wrapper
pgbouncer_fdw pgbouncer_fdw pgbouncer_fdw_$v* PGDG 1.2.0 FDW PostgreSQL 17,16,15,14,13,12 Extension for querying PgBouncer stats from normal SQL views & running pgbouncer commands from normal SQL functions
mongo_fdw mongo_fdw mongo_fdw_$v* PGDG 1.1 FDW LGPLv3 16,15,14,13,12 foreign data wrapper for MongoDB access
redis_fdw redis_fdw redis_fdw_$v* PIGSTY 1.0 FDW PostgreSQL 17,16,15,14,13,12 Foreign data wrapper for querying a Redis server
redis pg_redis_pubsub pg_redis_pubsub_$v* PIGSTY 0.0.1 FDW MIT 17,16,15,14,13,12 Send redis pub/sub messages to Redis from PostgreSQL Directly
kafka_fdw kafka_fdw kafka_fdw_$v PIGSTY 0.0.3 FDW PostgreSQL 16,15,14,13,12 kafka Foreign Data Wrapper for CSV formated messages
hdfs_fdw hdfs_fdw hdfs_fdw_$v* PGDG 2.0.5 FDW BSD 3 17,16,15,14,13,12 foreign-data wrapper for remote hdfs servers
firebird_fdw firebird_fdw firebird_fdw_$v PIGSTY 1.4.0 FDW PostgreSQL 17,16,15,14,13,12 Foreign data wrapper for Firebird
aws_s3 aws_s3 aws_s3_$v PIGSTY 0.0.1 FDW Apache-2.0 17,16,15,14,13,12 aws_s3 postgres extension to import/export data from/to s3
log_fdw log_fdw log_fdw_$v* PIGSTY 1.4 FDW Apache-2.0 17,16,15,14 foreign-data wrapper for Postgres log file access
dblink dblink postgresql$v-contrib CONTRIB 1.2 FDW PostgreSQL 17,16,15,14,13,12 connect to other PostgreSQL databases from within a database
file_fdw file_fdw postgresql$v-contrib CONTRIB 1.0 FDW PostgreSQL 17,16,15,14,13,12 foreign-data wrapper for flat file access
postgres_fdw postgres_fdw postgresql$v-contrib CONTRIB 1.1 FDW PostgreSQL 17,16,15,14,13,12 foreign-data wrapper for remote PostgreSQL servers
orafce orafce orafce_$v* PGDG 4.13 SIM BSD 0 17,16,15,14,13,12 Functions and operators that emulate a subset of functions and packages from the Oracle RDBMS
pgtt pgtt pgtt_$v* PGDG 4.0.0 SIM ISC 17,16,15,14,13,12 Extension to add Global Temporary Tables feature to PostgreSQL
session_variable session_variable session_variable_$v* PIGSTY 3.4 SIM GPLv3 17,16,15,14,13,12 Registration and manipulation of session variables and constants
pg_statement_rollback pg_statement_rollback pg_statement_rollback_$v* PGDG 1.4 SIM ISC 17,16,15,14,13,12 Server side rollback at statement level for PostgreSQL like Oracle or DB2
pg_dbms_metadata pg_dbms_metadata pg_dbms_metadata_$v* PGDG 1.0.0 SIM PostgreSQL 17,16,15,14,13,12 Extension to add Oracle DBMS_METADATA compatibility to PostgreSQL
pg_dbms_lock pg_dbms_lock pg_dbms_lock_$v* PGDG 1.0.0 SIM PostgreSQL 17,16,15,14,13,12 Extension to add Oracle DBMS_LOCK full compatibility to PostgreSQL
pg_dbms_job pg_dbms_job pg_dbms_job_$v* PGDG 1.5.0 SIM PostgreSQL 17,16,15,14,13,12 Extension to add Oracle DBMS_JOB full compatibility to PostgreSQL
babelfishpg_common babelfishpg_common babelfishpg-common* WILTON 3.3.3 SIM Apache-2.0 15 SQL Server Transact SQL Datatype Support
babelfishpg_tsql babelfishpg_tsql babelfishpg-tsql* WILTON 3.3.1 SIM Apache-2.0 15 SQL Server Transact SQL compatibility
babelfishpg_tds babelfishpg_tds babelfishpg-tds* WILTON 1.0.0 SIM Apache-2.0 15 SQL Server TDS protocol extension
babelfishpg_money babelfishpg_money babelfishpg-money* WILTON 1.1.0 SIM Apache-2.0 15 SQL Server Money Data Type
pgmemcache pgmemcache pgmemcache_$v* PGDG 2.3.0 SIM MIT 17,16,15,14,13,12 memcached interface
pglogical pglogical pglogical_$v* PGDG 2.4.4 ETL PostgreSQL 17,16,15,14,13,12 PostgreSQL Logical Replication
pglogical_origin pglogical pglogical_$v* PGDG 1.0.0 ETL PostgreSQL 17,16,15,14,13,12 Dummy extension for compatibility when upgrading from Postgres 9.4
pgl_ddl_deploy pgl_ddl_deploy pgl_ddl_deploy_$v* PGDG 2.2 ETL MIT 17,16,15,14,13,12 automated ddl deployment using pglogical
pg_failover_slots pg_failover_slots pg_failover_slots_$v* PIGSTY 1.0.1 ETL PostgreSQL 17,16,15,14,13,12 PG Failover Slots extension
wal2json wal2json wal2json_$v* PGDG 2.5.3 ETL BSD 3 17,16,15,14,13,12 Changing data capture in JSON format
wal2mongo wal2mongo wal2mongo_$v* PIGSTY 1.0.7 ETL Apache-2.0 16,15,14,13 PostgreSQL logical decoding output plugin for MongoDB
decoderbufs decoderbufs postgres-decoderbufs_$v* PGDG 0.1.0 ETL MIT 16,15,14,13,12 Logical decoding plugin that delivers WAL stream changes using a Protocol Buffer format
decoder_raw decoder_raw decoder_raw_$v* PIGSTY 1.0 ETL PostgreSQL 17,16,15,14,13,12 Output plugin for logical replication in Raw SQL format
test_decoding test_decoding postgresql$v-contrib CONTRIB 16.3 ETL PostgreSQL 17,16,15,14,13,12 SQL-based test/example module for WAL logical decoding
mimeo mimeo mimeo_$v PIGSTY 1.5.1 ETL PostgreSQL 17,16,15,14,13,12 Extension for specialized, per-table replication between PostgreSQL instances
repmgr repmgr repmgr_$v* PGDG 5.4 ETL GPLv3 16,15,14,13,12 Replication manager for PostgreSQL
pgcopydb pgcopydb pgcopydb PGDG 0.15 ETL PostgreSQL 17,16,15,14,13,12 Copy a Postgres database to a target Postgres server
pgloader pgloader pgloader PGDG 3.6.10 ETL PostgreSQL 17,16,15,14,13,12 Migrate to PostgreSQL in a single command!
pg_fact_loader pg_fact_loader pg_fact_loader_$v* PGDG 2.0 ETL MIT 17,16,15,14,13,12 build fact tables with Postgres
pg_bulkload pg_bulkload pg_bulkload_$v* PGDG 3.1.21 ETL BSD 3 16,15,14,13,12 pg_bulkload is a high speed data loading utility for PostgreSQL
pg_comparator pg_comparator pg_comparator_$v* PGDG 2.2.5 ETL BSD 3 16,15,14,13,12 Comparation of testing and production services PostgreSQL databases.
pgimportdoc pgimportdoc pgimportdoc_$v* PGDG 0.1.4 ETL BSD 2 17,16,15,14,13,12 command line utility for importing XML, JSON, BYTEA document to PostgreSQL
pgexportdoc pgexportdoc pgexportdoc_$v* PGDG 0.1.4 ETL BSD 2 17,16,15,14,13,12 export XML, JSON and BYTEA documents from PostgreSQL

1.3 - DEB List

326 Available PostgreSQL Extensions Deb in Debian / Ubuntu Distributions

There are 326 extensions available on Debian compatible systems, 7 of them are DEB only, missing 23 RPM only extensions.

There are 70 built-in contrib extensions, in addition to 109 deb extensions provided by PGDG APT repository, and 133 deb extensions provided by Pigsty. There are 318 extensions available in the current major version PostgreSQL 16, and 286 ready for PostgreSQL 17.

Name (URL) Alias PackageRepo Version Category License PG Versions LOAD DDL DBSU RELOC Description
timescaledb timescaledb timescaledb-2-postgresql-$v PGDG 2.17.0 TIME Timescale 17,16,15,14,13,12 Enables scalable inserts and complex queries for time-series data (Apache 2 Edition)
timeseries pg_timeseries postgresql-$v-pg-timeseries PIGSTY 0.1.6 TIME PostgreSQL 17,16,15,14,13,12 Convenience API for Tembo time series stack
periods periods postgresql-$v-periods PGDG 1.2 TIME PostgreSQL 17,16,15,14,13,12 Provide Standard SQL functionality for PERIODs and SYSTEM VERSIONING
temporal_tables temporal_tables postgresql-$v-temporal-tables PIGSTY 1.2.2 TIME BSD 2 16,15,14,13,12 temporal tables
emaj emaj postgresql-$v-emaj PIGSTY 4.5.0 TIME GPLv3 16,15,14,13,12 E-Maj extension enables fine-grained write logging and time travel on subsets of the database.
table_version table_version postgresql-$v-tableversion PIGSTY 1.10.3 TIME BSD 3 17,16,15,14,13,12 PostgreSQL table versioning extension
pg_cron pg_cron postgresql-$v-cron PGDG 1.6 TIME PostgreSQL 17,16,15,14,13,12 Job scheduler for PostgreSQL
pg_later pg_later postgresql-$v-pg-later PIGSTY 0.1.1 TIME PostgreSQL 16,15,14,13 pg_later: Run queries now and get results later
pg_background pg_background postgresql-$v-pg-background PIGSTY 1.0 TIME GPLv3 17,16,15,14,13,12 Run SQL queries in the background
pg_timetable pg_timetable pg-timetable PIGSTY 5.9.0 TIME PostgreSQL 17,16,15,14,13,12 Advanced scheduling for PostgreSQL
postgis postgis postgresql-$v-postgis-3* PGDG 3.5.0 GIS GPLv2 17,16,15,14,13,12 PostGIS geometry and geography spatial types and functions
postgis_topology postgis postgresql-$v-postgis-3* PGDG 3.5.0 GIS GPLv2 17,16,15,14,13,12 PostGIS topology spatial types and functions
postgis_raster postgis postgresql-$v-postgis-3* PGDG 3.5.0 GIS GPLv2 17,16,15,14,13,12 PostGIS raster types and functions
postgis_sfcgal postgis postgresql-$v-postgis-3* PGDG 3.5.0 GIS GPLv2 17,16,15,14,13,12 PostGIS SFCGAL functions
postgis_tiger_geocoder postgis postgresql-$v-postgis-3* PGDG 3.5.0 GIS GPLv2 17,16,15,14,13,12 PostGIS tiger geocoder and reverse geocoder
address_standardizer postgis postgresql-$v-postgis-3* PGDG 3.5.0 GIS GPLv2 17,16,15,14,13,12 Used to parse an address into constituent elements. Generally used to support geocoding address normalization step.
address_standardizer_data_us postgis postgresql-$v-postgis-3* PGDG 3.5.0 GIS GPLv2 17,16,15,14,13,12 Address Standardizer US dataset example
pgrouting pgrouting postgresql-$v-pgrouting* PGDG 3.6.0 GIS GPLv2 17,16,15,14,13,12 pgRouting Extension
pointcloud pointcloud postgresql-$v-pointcloud PGDG 1.2.5 GIS BSD 3 17,16,15,14,13,12 data type for lidar point clouds
pointcloud_postgis pointcloud postgresql-$v-pointcloud PGDG 1.2.5 GIS BSD 3 17,16,15,14,13,12 integration for pointcloud LIDAR data and PostGIS geometry data
h3 pg_h3 postgresql-$v-h3 PGDG 4.1.3 GIS Apache-2.0 16,15,14,13,12 H3 bindings for PostgreSQL
h3_postgis pg_h3 postgresql-$v-h3 PGDG 4.1.3 GIS Apache-2.0 16,15,14,13,12 H3 PostGIS integration
q3c q3c postgresql-$v-q3c PGDG 2.0.1 GIS GPLv2 17,16,15,14,13,12 q3c sky indexing plugin
ogr_fdw ogr_fdw postgresql-$v-ogr-fdw PGDG 1.1 GIS MIT 16,15,14,13,12 foreign-data wrapper for GIS data access
geoip geoip postgresql-$v-geoip PIGSTY 0.3.0 GIS BSD 2 17,16,15,14,13,12 IP-based geolocation query
pg_polyline pg_polyline postgresql-$v-pg-polyline PIGSTY 0.0.0 GIS MIT 17,16,15,14,13,12 Fast Google Encoded Polyline encoding & decoding for postgres
pg_geohash pg_geohash postgresql-$v-pg-geohash PIGSTY 1.0 GIS MIT 17,16,15,14,13,12 Handle geohash based functionality for spatial coordinates
mobilitydb mobilitydb postgresql-$v-mobilitydb PGDG 1.1.1 GIS GPLv3 16,15,14,13,12 MobilityDB geospatial trajectory data management & analysis platform
earthdistance earthdistance postgresql-$v CONTRIB 1.1 GIS PostgreSQL 17,16,15,14,13,12 calculate great-circle distances on the surface of the Earth
vector pgvector postgresql-$v-pgvector PGDG 0.7.4 RAG PostgreSQL 17,16,15,14,13,12 vector data type and ivfflat and hnsw access methods
vectorscale pgvectorscale postgresql-$v-pgvectorscale PIGSTY 0.4.0 RAG PostgreSQL 17,16,15,14,13 pgvectorscale: Advanced indexing for vector data
vectorize pg_vectorize postgresql-$v-pg-vectorize PIGSTY 0.18.3 RAG PostgreSQL 16,15,14 The simplest way to do vector search on Postgres
pg_similarity pg_similarity postgresql-$v-similarity PGDG 1.0 RAG BSD 3 17,16,15,14,13,12 support similarity queries
smlar smlar postgresql-$v-smlar PIGSTY 1.0 RAG PostgreSQL 17,16,15,14,13 Effective similarity search
pg_summarize pg_summarize postgresql-$v-pg-summarize PIGSTY 0.0.0 FUNC PostgreSQL 17,16,15,14,13,12 Text Summarization using LLMs. Built using pgrx
pg_tiktoken pg_tiktoken postgresql-$v-pg-tiktoken PIGSTY 0.0.1 RAG Apache-2.0 17,16,15,14,13,12 pg_tictoken: tiktoken tokenizer for use with OpenAI models in postgres
pgml pgml postgresql-$v-pgml PIGSTY 2.9.3 RAG MIT 16,15,14 PostgresML: Run AL/ML workloads with SQL interface
pg4ml pg4ml postgresql-$v-pg4ml PIGSTY 2.0 RAG AGPLv3 17,16,15,14,13,12 Machine learning framework for PostgreSQL
pg_search pg_search postgresql-$v-pg-search PIGSTY 0.11.1 FTS AGPLv3 17,16,15,14 pg_search: Full text search for PostgreSQL using BM25
pg_bigm pg_bigm postgresql-$v-pg-bigm PIGSTY 1.2 FTS PostgreSQL 17,16,15,14,13,12 create 2-gram (bigram) index for faster full text search.
zhparser zhparser postgresql-$v-zhparser PIGSTY 2.2 FTS PostgreSQL 17,16,15,14,13,12 a parser for full-text search of Chinese
hunspell_cs_cz hunspell_cs_cz postgresql-$v-hunspell-cs-cz PIGSTY 1.0 FTS PostgreSQL 17,16,15,14,13,12 Czech Hunspell Dictionary
hunspell_de_de hunspell_de_de postgresql-$v-hunspell-de-de PIGSTY 1.0 FTS PostgreSQL 17,16,15,14,13,12 German Hunspell Dictionary
hunspell_en_us hunspell_en_us postgresql-$v-hunspell-en-us PIGSTY 1.0 FTS PostgreSQL 17,16,15,14,13,12 en_US Hunspell Dictionary
hunspell_fr hunspell_fr postgresql-$v-hunspell-fr PIGSTY 1.0 FTS PostgreSQL 17,16,15,14,13,12 French Hunspell Dictionary
hunspell_ne_np hunspell_ne_np postgresql-$v-hunspell-ne-np PIGSTY 1.0 FTS PostgreSQL 17,16,15,14,13,12 Nepali Hunspell Dictionary
hunspell_nl_nl hunspell_nl_nl postgresql-$v-hunspell-nl-nl PIGSTY 1.0 FTS PostgreSQL 17,16,15,14,13,12 Dutch Hunspell Dictionary
hunspell_nn_no hunspell_nn_no postgresql-$v-hunspell-nn-no PIGSTY 1.0 FTS PostgreSQL 17,16,15,14,13,12 Norwegian (norsk) Hunspell Dictionary
hunspell_pt_pt hunspell_pt_pt postgresql-$v-hunspell-pt-pt PIGSTY 1.0 FTS PostgreSQL 17,16,15,14,13,12 Portuguese Hunspell Dictionary
hunspell_ru_ru hunspell_ru_ru postgresql-$v-hunspell-ru-ru PIGSTY 1.0 FTS PostgreSQL 17,16,15,14,13,12 Russian Hunspell Dictionary
hunspell_ru_ru_aot hunspell_ru_ru_aot postgresql-$v-hunspell-ru-ru-aot PIGSTY 1.0 FTS PostgreSQL 17,16,15,14,13,12 Russian Hunspell Dictionary (from AOT.ru group)
fuzzystrmatch fuzzystrmatch postgresql-$v CONTRIB 1.2 FTS PostgreSQL 17,16,15,14,13,12 determine similarities and distance between strings
pg_trgm pg_trgm postgresql-$v CONTRIB 1.6 FTS PostgreSQL 17,16,15,14,13,12 text similarity measurement and index searching based on trigrams
citus citus postgresql-$v-citus-12.1 PGDG 12.1-1 OLAP AGPLv3 16,15,14,13,12 Distributed PostgreSQL as an extension
citus_columnar citus postgresql-$v-citus-12.1 PGDG 11.3-1 OLAP AGPLv3 16,15,14,13,12 Citus columnar storage engine
columnar hydra postgresql-$v-hydra PIGSTY 11.1-11 OLAP AGPLv3 16,15,14,13 Hydra Columnar extension
pg_analytics pg_analytics postgresql-$v-pg-analytics PIGSTY 0.2.1 OLAP AGPLv3 17,16,15,14 Postgres for analytics, powered by DuckDB
pg_duckdb pg_duckdb postgresql-$v-pg-duckdb PIGSTY 0.0.1 OLAP MIT 17,16,15 DuckDB Embedded in Postgres
duckdb_fdw duckdb_fdw postgresql-$v-duckdb-fdw PIGSTY 1.0.0 OLAP MIT 16,15,14,13,12 DuckDB Foreign Data Wrapper
pg_parquet pg_parquet postgresql-$v-pg-parquet PIGSTY 0.1.0 OLAP PostgreSQL 17,16 copy data between Postgres and Parquet
pg_fkpart pg_fkpart postgresql-$v-pg-fkpart PIGSTY 1.7 OLAP GPLv2 17,16,15,14,13,12 Table partitioning by foreign key utility
pg_partman pg_partman postgresql-$v-partman PGDG 5.1.0 OLAP PostgreSQL 17,16,15,14,13,12 Extension to manage partitioned tables by time or ID
plproxy plproxy postgresql-$v-plproxy PGDG 2.11.0 OLAP BSD 0 17,16,15,14,13,12 Database partitioning implemented as procedural language
tablefunc tablefunc postgresql-$v CONTRIB 1.0 OLAP PostgreSQL 17,16,15,14,13,12 functions that manipulate whole tables, including crosstab
age age postgresql-$v-age PGDG 1.5.0 FEAT Apache-2.0 16,15,14,13,12 AGE graph database extension
hll hll postgresql-$v-hll PGDG 2.18 FEAT Apache-2.0 17,16,15,14,13,12 type for storing hyperloglog data
rum rum postgresql-$v-rum PGDG 1.3 FEAT PostgreSQL 17,16,15,14,13,12 RUM index access method
pg_graphql pg_graphql postgresql-$v-pg-graphql PIGSTY 1.5.9 FEAT Apache-2.0 17,16,15,14 pg_graphql: GraphQL support
pg_jsonschema pg_jsonschema postgresql-$v-pg-jsonschema PIGSTY 0.3.3 FEAT Apache-2.0 17,16,15,14,13,12 PostgreSQL extension providing JSON Schema validation
jsquery jsquery postgresql-$v-jsquery PGDG 1.1 FEAT PostgreSQL 17,16,15,14,13,12 data type for jsonb inspection
pg_hint_plan pg_hint_plan postgresql-$v-pg-hint-plan PGDG 1.6.1 FEAT BSD 3 17,16,15,14,13,12 Give PostgreSQL ability to manually force some decisions in execution plans.
hypopg hypopg postgresql-$v-hypopg PGDG 1.4.1 FEAT PostgreSQL 17,16,15,14,13,12 Hypothetical indexes for PostgreSQL
index_advisor index_advisor postgresql-$v-index-advisor PIGSTY 0.2.0 FEAT PostgreSQL 17,16,15,14,13,12 Query index advisor
plan_filter pg_plan_filter postgresql-$v-pg-plan-filter PIGSTY 0.0.1 FEAT PostgreSQL 17,16,15,14,13,12 filter statements by their execution plans.
imgsmlr imgsmlr postgresql-$v-imgsmlr PIGSTY 1.0 FEAT PostgreSQL 17,16,15,14,13,12 Image similarity with haar
pg_ivm pg_ivm postgresql-$v-pg-ivm PIGSTY 1.8 FEAT PostgreSQL 17,16,15,14,13,12 incremental view maintenance on PostgreSQL
pgmq pgmq postgresql-$v-pgmq PIGSTY 1.4.4 FEAT PostgreSQL 17,16,15,14,13,12 A lightweight message queue. Like AWS SQS and RSMQ but on Postgres.
pgq pgq postgresql-$v-pgq3 PGDG 3.5.1 FEAT ISC 17,16,15,14,13,12 Generic queue for PostgreSQL
pg_cardano pg_cardano postgresql-$v-pg-cardano PIGSTY 1.0.2 FEAT MIT 17,16,15,14,13,12 A suite of Cardano-related tools
rdkit rdkit postgresql-$v-rdkit PGDG 4.3.0 FEAT BSD 3 16,15,14,13,12 Cheminformatics functionality for PostgreSQL.
bloom bloom postgresql-$v CONTRIB 1.0 FEAT PostgreSQL 17,16,15,14,13,12 bloom access method - signature file based index
pg_tle pg_tle postgresql-$v-pg-tle PIGSTY 1.2.0 LANG Apache-2.0 17,16,15,14,13,12 Trusted Language Extensions for PostgreSQL
plv8 plv8 postgresql-$v-plv8 PIGSTY 3.2.3 LANG PostgreSQL 17,16,15,14,13,12 PL/JavaScript (v8) trusted procedural language
plluau pllua postgresql-$v-pllua PGDG 2.0 LANG MIT 17,16,15,14,13,12 Lua as an untrusted procedural language
hstore_plluau pllua postgresql-$v-pllua PGDG 1.0 LANG MIT 17,16,15,14,13,12 Hstore transform for untrusted Lua
pllua pllua postgresql-$v-pllua PGDG 2.0 LANG MIT 17,16,15,14,13,12 Lua as a procedural language
hstore_pllua pllua postgresql-$v-pllua PGDG 1.0 LANG MIT 17,16,15,14,13,12 Hstore transform for Lua
plprql plprql postgresql-$v-plprql PIGSTY 0.1.0 LANG Apache-2.0 16,15,14,13,12 Use PRQL in PostgreSQL - Pipelined Relational Query Language
pldbgapi pldebugger postgresql-$v-pldebugger PGDG 1.1 LANG Artistic 17,16,15,14,13,12 server-side support for debugging PL/pgSQL functions
plpgsql_check plpgsql_check postgresql-$v-plpgsql-check PGDG 2.7 LANG MIT 17,16,15,14,13,12 extended check for plpgsql functions
plprofiler plprofiler postgresql-$v-plprofiler PGDG 4.2 LANG Artistic 17,16,15,14,13,12 server-side support for profiling PL/pgSQL functions
plsh plsh postgresql-$v-plsh PGDG 2 LANG MIT 17,16,15,14,13,12 PL/sh procedural language
pljava pljava postgresql-$v-pljava PGDG 1.6.6 LANG BSD 3 16,15,14,13,12 PL/Java procedural language (https://tada.github.io/pljava/)
plr plr postgresql-$v-plr PGDG 8.4.6 LANG GPLv2 17,16,15,14,13,12 load R interpreter and execute R script from within a database
pgtap pgtap postgresql-$v-pgtap PGDG 1.3.1 LANG PostgreSQL 16,15,14,13,12 Unit testing for PostgreSQL
pltcl pltcl postgresql-$v CONTRIB 1.0 LANG PostgreSQL 17,16,15,14,13,12 PL/Tcl procedural language
pltclu pltcl postgresql-$v CONTRIB 1.0 LANG PostgreSQL 17,16,15,14,13,12 PL/TclU untrusted procedural language
plperl plperl postgresql-$v CONTRIB 1.0 LANG PostgreSQL 17,16,15,14,13,12 PL/Perl procedural language
bool_plperl plperl postgresql-$v CONTRIB 1.0 LANG PostgreSQL 17,16,15,14,13,12 transform between bool and plperl
hstore_plperl plperl postgresql-$v CONTRIB 1.0 LANG PostgreSQL 17,16,15,14,13,12 transform between hstore and plperl
jsonb_plperl plperl postgresql-$v CONTRIB 1.0 LANG PostgreSQL 17,16,15,14,13,12 transform between jsonb and plperl
plperlu plperlu postgresql-$v CONTRIB 1.0 LANG PostgreSQL 17,16,15,14,13,12 PL/PerlU untrusted procedural language
bool_plperlu plperlu postgresql-$v CONTRIB 1.0 LANG PostgreSQL 17,16,15,14,13,12 transform between bool and plperlu
jsonb_plperlu plperlu postgresql-$v CONTRIB 1.0 LANG PostgreSQL 17,16,15,14,13,12 transform between jsonb and plperlu
hstore_plperlu plperlu postgresql-$v CONTRIB 1.0 LANG PostgreSQL 17,16,15,14,13,12 transform between hstore and plperlu
plpgsql plpgsql postgresql-$v CONTRIB 1.0 LANG PostgreSQL 17,16,15,14,13,12 PL/pgSQL procedural language
plpython3u plpython3u postgresql-$v CONTRIB 1.0 LANG PostgreSQL 17,16,15,14,13,12 PL/Python3U untrusted procedural language
jsonb_plpython3u plpython3u postgresql-$v CONTRIB 1.0 LANG PostgreSQL 17,16,15,14,13,12 transform between jsonb and plpython3u
ltree_plpython3u plpython3u postgresql-$v CONTRIB 1.0 LANG PostgreSQL 17,16,15,14,13,12 transform between ltree and plpython3u
hstore_plpython3u plpython3u postgresql-$v CONTRIB 1.0 LANG PostgreSQL 17,16,15,14,13,12 transform between hstore and plpython3u
prefix prefix postgresql-$v-prefix PGDG 1.2.0 TYPE PostgreSQL 17,16,15,14,13,12 Prefix Range module for PostgreSQL
semver semver postgresql-$v-semver PGDG 0.32.1 TYPE PostgreSQL 17,16,15,14,13,12 Semantic version data type
unit pgunit postgresql-$v-unit PGDG 7 TYPE GPLv3 17,16,15,14,13,12 SI units extension
md5hash md5hash postgresql-$v-md5hash PIGSTY 1.0.1 TYPE BSD 2 17,16,15,14,13,12 type for storing 128-bit binary data inline
asn1oid asn1oid postgresql-$v-asn1oid PGDG 1 TYPE GPLv3 17,16,15,14,13,12 asn1oid extension
roaringbitmap roaringbitmap postgresql-$v-roaringbitmap PGDG 0.5 TYPE Apache-2.0 17,16,15,14,13,12 support for Roaring Bitmaps
pgfaceting pgfaceting postgresql-$v-pgfaceting PGDG 0.2.0 TYPE BSD 3 17,16,15,14,13,12 fast faceting queries using an inverted index
pg_sphere pgsphere postgresql-$v-pgsphere PGDG 1.5.1 TYPE BSD 3 17,16,15,14,13,12 spherical objects with useful functions, operators and index support
country pg_country postgresql-$v-pg-country PIGSTY 0.0.3 TYPE PostgreSQL 17,16,15,14,13,12 Country data type, ISO 3166-1
currency pg_currency postgresql-$v-pg-currency PIGSTY 0.0.3 TYPE MIT 17,16,15,14,13,12 Custom PostgreSQL currency type in 1Byte
pgmp pgmp postgresql-$v-pgmp PGDG 1.1 TYPE LGPLv3 17,16,15,14,13,12 Multiple Precision Arithmetic extension
numeral numeral postgresql-$v-numeral PGDG 1 TYPE GPLv2 17,16,15,14,13,12 numeral datatypes extension
pg_rational pg_rational postgresql-$v-rational PGDG 0.0.2 TYPE MIT 17,16,15,14,13,12 bigint fractions
uint pguint postgresql-$v-pguint PIGSTY 0 TYPE PostgreSQL 17,16,15,14,13,12 unsigned integer types
uint128 pg_uint128 postgresql-$v-pg-uint128 PIGSTY 1.0.0 TYPE PostgreSQL 17,16,15,14,13,12 Native uint128 type
ip4r ip4r postgresql-$v-ip4r PGDG 2.4 TYPE PostgreSQL 17,16,15,14,13,12 IPv4/v6 and IPv4/v6 range index type for PostgreSQL
uri pg_uri postgresql-$v-pg-uri PIGSTY 1 TYPE PostgreSQL 17,16,15,14,13,12 URI Data type for PostgreSQL
pgemailaddr pgemailaddr postgresql-$v$v-pg-emailaddr PIGSTY 0 TYPE PostgreSQL 17,16,15,14,13,12 Email address type for PostgreSQL
acl acl postgresql-$v-acl PIGSTY 1.0.4 TYPE BSD-2 17,16,15,14,13,12 ACL Data type
debversion debversion postgresql-$v-debversion PGDG 1.2 TYPE PostgreSQL 17,16,15,14,13,12 Debian version number data type
pg_rrule pg_rrule postgresql-$v-pg-rrule PGDG 0.2.0 TYPE MIT 17,16,15,14,13,12 RRULE field type for PostgreSQL
timestamp9 timestamp9 postgresql-$v-timestamp9 PIGSTY 1.4.0 TYPE MIT 17,16,15,14,13,12 timestamp nanosecond resolution
chkpass chkpass postgresql-$v-chkpass PIGSTY 1.0 TYPE PostgreSQL 17,16,15,14,13,12 data type for auto-encrypted passwords
isn isn postgresql-$v CONTRIB 1.2 TYPE PostgreSQL 17,16,15,14,13,12 data types for international product numbering standards
seg seg postgresql-$v CONTRIB 1.4 TYPE PostgreSQL 17,16,15,14,13,12 data type for representing line segments or floating-point intervals
cube cube postgresql-$v CONTRIB 1.5 TYPE PostgreSQL 17,16,15,14,13,12 data type for multidimensional cubes
ltree ltree postgresql-$v CONTRIB 1.2 TYPE PostgreSQL 17,16,15,14,13,12 data type for hierarchical tree-like structures
hstore hstore postgresql-$v CONTRIB 1.8 TYPE PostgreSQL 17,16,15,14,13,12 data type for storing sets of (key, value) pairs
citext citext postgresql-$v CONTRIB 1.6 TYPE PostgreSQL 17,16,15,14,13,12 data type for case-insensitive character strings
xml2 xml2 postgresql-$v CONTRIB 1.1 TYPE PostgreSQL 17,16,15,14,13,12 XPath querying and XSLT
topn topn postgresql-$v-topn PGDG 2.6.0 FUNC AGPLv3 17,16,15,14,13,12 type for top-n JSONB
gzip pg_gzip postgresql-$v-gzip PIGSTY 1.0 FUNC MIT 17,16,15,14,13,12 gzip and gunzip functions.
zstd pg_zstd postgresql-$v-pg-zstd PIGSTY 1.1.0 FUNC ISC 17,16,15,14,13,12 Zstandard compression algorithm implementation in PostgreSQL
http pg_http postgresql-$v-http PGDG 1.6 FUNC MIT 17,16,15,14,13,12 HTTP client for PostgreSQL, allows web page retrieval inside the database.
pg_net pg_net postgresql-$v-pg-net PIGSTY 0.9.2 FUNC Apache-2.0 17,16,15,14,13,12 Async HTTP Requests
pg_html5_email_address pg_html5_email_address postgresql-$v-pg-html5-email-address PIGSTY 1.2.3 FUNC PostgreSQL 17,16,15,14,13,12 PostgreSQL email validation that is consistent with the HTML5 spec
pgsql_tweaks pgsql_tweaks postgresql-$v-pgsql-tweaks PIGSTY 0.10.6 FUNC PostgreSQL 17,16,15,14,13,12 Some functions and views for daily usage
pg_extra_time pg_extra_time postgresql-$v-pg-extra-time PIGSTY 1.1.3 FUNC PostgreSQL 17,16,15,14,13,12 Some date time functions and operators that,
timeit pg_timeit postgresql-$v-pg-timeit PIGSTY 1.0 FUNC PostgreSQL 17,16,15,14,13,12 High-accuracy timing of SQL expressions
count_distinct count_distinct postgresql-$v-count-distinct PIGSTY 3.0.1 FUNC BSD 2 17,16,15,14,13,12 An alternative to COUNT(DISTINCT …) aggregate, usable with HashAggregate
extra_window_functions extra_window_functions postgresql-$v-extra-window-functions PGDG 1.0 FUNC PostgreSQL 17,16,15,14,13,12 Extra Window Functions for PostgreSQL
first_last_agg first_last_agg postgresql-$v-first-last-agg PGDG 0.1.4 FUNC PostgreSQL 17,16,15,14,13,12 first() and last() aggregate functions
tdigest tdigest postgresql-$v-tdigest PGDG 1.4.1 FUNC Apache-2.0 17,16,15,14,13,12 Provides tdigest aggregate function.
aggs_for_vecs aggs_for_vecs postgresql-$v-aggs-for-vecs PIGSTY 1.3.0 FUNC MIT 17,16,15,14,13,12 Aggregate functions for array inputs
aggs_for_arrays aggs_for_arrays postgresql-$v-aggs-for-arrays PIGSTY 1.3.2 FUNC MIT 17,16,15,14,13,12 Various functions for computing statistics on arrays of numbers
arraymath pg_arraymath postgresql-$v-pg-arraymath PIGSTY 1.1 FUNC MIT 17,16,15,14,13,12 Array math and operators that work element by element on the contents of arrays
quantile quantile postgresql-$v-quantile PIGSTY 1.1.7 FUNC BSD 17,16,15,14,13,12 Quantile aggregation function
lower_quantile lower_quantile postgresql-$v-lower-quantile PIGSTY 1.0.0 FUNC BSD-2 17,16,15,14,13,12 Lower quantile aggregate function
pg_idkit pg_idkit postgresql-$v-pg-idkit PIGSTY 0.2.4 FUNC Apache-2.0 17,16,15,14,13,12 multi-tool for generating new/niche universally unique identifiers (ex. UUIDv6, ULID, KSUID)
pg_uuidv7 pg_uuidv7 postgresql-$v-pg-uuidv7 PIGSTY 1.6 FUNC MPLv2 17,16,15,14,13,12 pg_uuidv7: create UUIDv7 values in postgres
permuteseq permuteseq postgresql-$v-permuteseq PIGSTY 1.2 FUNC PostgreSQL 17,16,15,14,13,12 Pseudo-randomly permute sequences with a format-preserving encryption on elements
pg_hashids pg_hashids postgresql-$v-pg-hashids PIGSTY 1.3 FUNC MIT 17,16,15,14,13,12 Short unique id generator for PostgreSQL, using hashids
sequential_uuids sequential_uuids postgresql-$v-sequential-uuids PIGSTY 1.0.2 FUNC MIT 17,16,15,14,13,12 generator of sequential UUIDs
pg_math pg_math postgresql-$v-pg-math PIGSTY 1.0 FUNC GPLv3 17,16,15,14,13,12 GSL statistical functions for postgresql
random pg_random postgresql-$v-random PIGSTY 2.0.0-dev FUNC PostgreSQL 17,16,15,14,13,12 random data generator
base36 pg_base36 postgresql-$v-base36 PIGSTY 1.0.0 FUNC MIT 17,16,15,14,13,12 Integer Base36 types
base62 pg_base62 postgresql-$v-base62 PIGSTY 0.0.1 FUNC MIT 17,16,15,14,13,12 Base62 extension for PostgreSQL
pg_base58 pg_base58 postgresql-$v-pg-base58 PIGSTY 0.0.1 FUNC MIT 17,16,15,14,13,12 Base58 Encoder/Decoder Extension for PostgreSQL
floatvec floatvec postgresql-$v-floatvec PIGSTY 1.0.1 FUNC MIT 17,16,15,14,13,12 Math for vectors (arrays) of numbers
financial pg_financial postgresql-$v-pg-financial PIGSTY 1.0.1 FUNC PostgreSQL 17,16,15,14,13,12 Financial aggregate functions
pgjwt pgjwt postgresql-$v-pgjwt PIGSTY 0.2.0 FUNC MIT 17,16,15,14,13,12 JSON Web Token API for Postgresql
pg_hashlib pg_hashlib postgresql-$v-pg-hashlib PIGSTY 1.1 FUNC PostgreSQL 17,16,15,14,13,12 Stable hash functions for Postgres
shacrypt shacrypt postgresql-$v-shacrypt PIGSTY 1.1 FUNC PostgreSQL 17,16,15,14,13,12 Implements SHA256-CRYPT and SHA512-CRYPT password encryption schemes
cryptint cryptint postgresql-$v-cryptint PIGSTY 1.0.0 FUNC PostgreSQL 17,16,15,14,13,12 Encryption functions for int and bigint values
pguecc pg_ecdsa postgresql-$v-pg-ecdsa PIGSTY 1.0 FUNC BSD-2 17,16,15,14,13,12 uECC bindings for Postgres
pgpcre pgpcre postgresql-$v-pgpcre PGDG 1 FUNC PostgreSQL 17,16,15,14,13,12 Perl Compatible Regular Expression functions
icu_ext icu_ext postgresql-$v-icu-ext PGDG 1.9 FUNC PostgreSQL 17,16,15,14,13,12 Access ICU functions
pgqr pgqr postgresql-$v-pgqr PIGSTY 1.0 FUNC BSD-3 17,16,15,14,13,12 QR Code generator from PostgreSQL
envvar envvar postgresql-$v-pg-envvar PIGSTY 1.0.0 FUNC PostgreSQL 17,16,15,14,13,12 Fetch the value of an environment variable
pg_protobuf pg_protobuf postgresql-$v-pg-protobuf PIGSTY 1.0 FUNC MIT 17,16,15,14,13,12 Protobuf support for PostgreSQL
url_encode url_encode postgresql-$v-url-encode PIGSTY 1.2 FUNC PostgreSQL 17,16,15,14,13,12 url_encode, url_decode functions
refint refint postgresql-$v CONTRIB 1.0 FUNC PostgreSQL 17,16,15,14,13,12 functions for implementing referential integrity (obsolete)
autoinc autoinc postgresql-$v CONTRIB 1.0 FUNC PostgreSQL 17,16,15,14,13,12 functions for autoincrementing fields
insert_username insert_username postgresql-$v CONTRIB 1.0 FUNC PostgreSQL 17,16,15,14,13,12 functions for tracking who changed a table
moddatetime moddatetime postgresql-$v CONTRIB 1.0 FUNC PostgreSQL 17,16,15,14,13,12 functions for tracking last modification time
tsm_system_time tsm_system_time postgresql-$v CONTRIB 1.0 FUNC PostgreSQL 17,16,15,14,13,12 TABLESAMPLE method which accepts time in milliseconds as a limit
dict_xsyn dict_xsyn postgresql-$v CONTRIB 1.0 FUNC PostgreSQL 17,16,15,14,13,12 text search dictionary template for extended synonym processing
tsm_system_rows tsm_system_rows postgresql-$v CONTRIB 1.0 FUNC PostgreSQL 17,16,15,14,13,12 TABLESAMPLE method which accepts number of rows as a limit
tcn tcn postgresql-$v CONTRIB 1.0 FUNC PostgreSQL 17,16,15,14,13,12 Triggered change notifications
uuid-ossp uuid-ossp postgresql-$v CONTRIB 1.1 FUNC PostgreSQL 17,16,15,14,13,12 generate universally unique identifiers (UUIDs)
btree_gist btree_gist postgresql-$v CONTRIB 1.7 FUNC PostgreSQL 17,16,15,14,13,12 support for indexing common datatypes in GiST
btree_gin btree_gin postgresql-$v CONTRIB 1.3 FUNC PostgreSQL 17,16,15,14,13,12 support for indexing common datatypes in GIN
intarray intarray postgresql-$v CONTRIB 1.5 FUNC PostgreSQL 17,16,15,14,13,12 functions, operators, and index support for 1-D arrays of integers
intagg intagg postgresql-$v CONTRIB 1.1 FUNC PostgreSQL 17,16,15,14,13,12 integer aggregator and enumerator (obsolete)
dict_int dict_int postgresql-$v CONTRIB 1.0 FUNC PostgreSQL 17,16,15,14,13,12 text search dictionary template for integers
unaccent unaccent postgresql-$v CONTRIB 1.1 FUNC PostgreSQL 17,16,15,14,13,12 text search dictionary that removes accents
pg_repack pg_repack postgresql-$v-repack PGDG 1.5.0 ADMIN BSD 3 17,16,15,14,13,12 Reorganize tables in PostgreSQL databases with minimal locks
pg_squeeze pg_squeeze postgresql-$v-squeeze PGDG 1.7 ADMIN BSD 2 17,16,15,14,13,12 A tool to remove unused space from a relation.
pg_dirtyread pg_dirtyread postgresql-$v-dirtyread PGDG 2 ADMIN BSD 3 17,16,15,14,13,12 Read dead but unvacuumed rows from table
pgfincore pgfincore postgresql-$v-pgfincore PGDG 1.3.1 ADMIN BSD 3 17,16,15,14,13,12 examine and manage the os buffer cache
pgdd pgdd postgresql-$v-pgdd PIGSTY 0.5.2 ADMIN MIT 16,15,14,13,12 An in-database data dictionary providing database introspection via standard SQL query syntax. Developed using pgx (https://github.com/zombodb/pgx).
ddlx ddlx postgresql-$v-ddlx PIGSTY 0.27 ADMIN PostgreSQL 17,16,15,14,13,12 DDL eXtractor functions
prioritize pg_prioritize postgresql-16-prioritize PGDG 1.0 ADMIN PostgreSQL 17,16,15,14,13,12 get and set the priority of PostgreSQL backends
pg_checksums pg_checksums postgresql-$v-pg-checksums PGDG 1.1 ADMIN BSD 2 16,15,14,13,12 Activate/deactivate/verify checksums in offline Postgres clusters
pg_readonly pg_readonly postgresql-$v-pg-readonly PGDG 1.0.0 ADMIN PostgreSQL 17,16,15,14,13,12 cluster database read only
safeupdate safeupdate postgresql-$v-pg-safeupdate PGDG 1.4 ADMIN ISC 17,16,15,14,13,12 Require criteria for UPDATE and DELETE
pg_permissions pg_permissions postgresql-$v-pg-permissions PIGSTY 1.3 ADMIN BSD 2 17,16,15,14,13,12 view object permissions and compare them with the desired state
pgautofailover pgautofailover postgresql-16-auto-failover PGDG 2.1 ADMIN PostgreSQL 16,15,14,13,12 pg_auto_failover
pg_catcheck pg_catcheck postgresql-$v-pg-catcheck PGDG 1.4.0 ADMIN BSD 3 17,16,15,14,13,12 Diagnosing system catalog corruption
pre_prepare preprepare postgresql-$v-preprepare PGDG 0.4 ADMIN PostgreSQL 17,16,15,14,13,12 Pre Prepare your Statement server side
pgcozy pgcozy postgresql-$v-pgcozy PIGSTY 1.0 ADMIN PostgreSQL 17,16,15,14,13,12 Pre-warming shared buffers according to previous pg_buffercache snapshots for PostgreSQL.
pg_orphaned pg_orphaned postgresql-$v-pg-orphaned PIGSTY 1.0 ADMIN PostgreSQL 17,16,15,14,13,12 Deal with orphaned files
pg_crash pg_crash postgresql-$v-pg-crash PIGSTY 1.0 ADMIN BSD-3 17,16,15,14,13,12 Send random signals to random processes
pg_cheat_funcs pg_cheat_funcs postgresql-$v-pg-cheat-funcs PIGSTY 1.0 ADMIN PostgreSQL 17,16,15,14,13,12 Provides cheat (but useful) functions
pg_savior pg_savior postgresql-$v-pg-savior PIGSTY 0.0.1 ADMIN Apache-2.0 17,16,15,14,13 Postgres extension to save OOPS mistakes
table_log table_log postgresql-$v-tablelog PGDG 0.6.1 ADMIN PostgreSQL 17,16,15,14,13,12 record table modification logs and PITR for table/row
pg_fio pg_fio postgresql-$v-pg-fio PIGSTY 1.0 ADMIN BSD-3 17,16,15,14,13,12 PostgreSQL File I/O Functions
pgpool_adm pgpool postgresql-$v-pgpool2 PGDG 1.5 ADMIN PostgreSQL 17,16,15,14,13,12 Administrative functions for pgPool
pgpool_recovery pgpool postgresql-$v-pgpool2 PGDG 1.4 ADMIN PostgreSQL 17,16,15,14,13,12 recovery functions for pgpool-II for V4.3
pgpool_regclass pgpool postgresql-$v-pgpool2 PGDG 1.0 ADMIN PostgreSQL 17,16,15,14,13,12 replacement for regclass
pgagent pgagent pgagent PGDG 4.2 ADMIN PostgreSQL 17,16,15,14,13,12 A PostgreSQL job scheduler
vacuumlo vacuumlo postgresql-$v CONTRIB 16.3 ADMIN PostgreSQL 17,16,15,14,13,12 utility program that will remove any orphaned large objects from a PostgreSQL database
pg_prewarm pg_prewarm postgresql-$v CONTRIB 1.2 ADMIN PostgreSQL 17,16,15,14,13,12 prewarm relation data
oid2name oid2name postgresql-$v CONTRIB 16.3 ADMIN PostgreSQL 17,16,15,14,13,12 utility program that helps administrators to examine the file structure used by PostgreSQL
lo lo postgresql-$v CONTRIB 1.1 ADMIN PostgreSQL 17,16,15,14,13,12 Large Object maintenance
basic_archive basic_archive postgresql-$v CONTRIB 16.3 ADMIN PostgreSQL 17,16,15 an example of an archive module
basebackup_to_shell basebackup_to_shell postgresql-$v CONTRIB 16.3 ADMIN PostgreSQL 17,16,15 adds a custom basebackup target called shell
old_snapshot old_snapshot postgresql-$v CONTRIB 1.0 ADMIN PostgreSQL 17,16,15,14 utilities in support of old_snapshot_threshold
adminpack adminpack postgresql-$v CONTRIB 2.1 ADMIN PostgreSQL 17,16,15,14,13,12 administrative functions for PostgreSQL
amcheck amcheck postgresql-$v CONTRIB 1.3 ADMIN PostgreSQL 17,16,15,14,13,12 functions for verifying relation integrity
pg_surgery pg_surgery postgresql-$v CONTRIB 1.0 ADMIN PostgreSQL 17,16,15,14 extension to perform surgery on a damaged relation
pg_profile pg_profile postgresql-$v-pg-profile PIGSTY 4.7 STAT BSD 2 17,16,15,14,13,12 PostgreSQL load profile repository and report builder
pg_show_plans pg_show_plans postgresql-$v-show-plans PGDG 2.1 STAT PostgreSQL 17,16,15,14,13,12 show query plans of all currently running SQL statements
pg_stat_kcache pg_stat_kcache postgresql-$v-pg-stat-kcache PGDG 2.3.0 STAT BSD 3 17,16,15,14,13,12 Kernel statistics gathering
pg_stat_monitor pg_stat_monitor postgresql-$v-pg-stat-monitor PIGSTY 2.1 STAT BSD 3 17,16,15,14,13,12 The pg_stat_monitor is a PostgreSQL Query Performance Monitoring tool, based on PostgreSQL contrib module pg_stat_statements. pg_stat_monitor provides aggregated statistics, client information, plan details including plan, and histogram information.
pg_qualstats pg_qualstats postgresql-$v-pg-qualstats PGDG 2.1.1 STAT BSD 3 17,16,15,14,13,12 An extension collecting statistics about quals
pg_store_plans pg_store_plans postgresql-$v-pg-store-plan PIGSTY 1.8 STAT BSD 3 16,15,14,13,12 track plan statistics of all SQL statements executed
pg_track_settings pg_track_settings postgresql-$v-pg-track-settings PGDG 2.1.2 STAT PostgreSQL 17,16,15,14,13,12 Track settings changes
pg_wait_sampling pg_wait_sampling postgresql-$v-pg-wait-sampling PGDG 1.1 STAT PostgreSQL 17,16,15,14,13,12 sampling based statistics of wait events
system_stats system_stats postgresql-$v-system-stats PIGSTY 3.0 STAT PostgreSQL 17,16,15,14,13,12 EnterpriseDB system statistics for PostgreSQL
meta pg_meta postgresql-$v-pg-meta PIGSTY 0.4.0 STAT BSD-2 17,16,15,14,13,12 Normalized, friendlier system catalog for PostgreSQL
pgnodemx pgnodemx postgresql-$v-pgnodemx PIGSTY 1.7 STAT Apache-2.0 17,16,15,14,13,12 Capture node OS metrics via SQL queries
pg_proctab pgnodemx postgresql-$v-pgnodemx PIGSTY 0.0.10-compat STAT BSD 3 17,16,15,14,13,12 PostgreSQL extension to access the OS process table
pg_sqlog pg_sqlog postgresql-$v-pg-sqlog PIGSTY 1.6 STAT BSD 3 17,16,15,14,13,12 Provide SQL interface to logs
bgw_replstatus bgw_replstatus postgresql-$v-bgw-replstatus PGDG 1.0.6 STAT PostgreSQL 17,16,15,14,13,12 Small PostgreSQL background worker to report whether a node is a replication master or standby
pgmeminfo pgmeminfo postgresql-$v-pgmeminfo PIGSTY 1.0 STAT MIT 17,16,15,14,13,12 show memory usage
toastinfo toastinfo postgresql-$v-toastinfo PIGSTY 1 STAT PostgreSQL 17,16,15,14,13,12 show details on toasted datums
explain_ui pg_explain_ui postgresql-$v-pg-explain-ui PIGSTY 0.0.1 STAT PostgreSQL 17,16,15,14,13,12 easily jump into a visual plan UI for any SQL query
pg_relusage pg_relusage postgresql-$v-pg-relusage PIGSTY 0.0.1 STAT PostgreSQL 17,16,15,14,13,12 Log all the queries that reference a particular column
pg_mon pg_mon postgresql-$v-pg-mon PIGSTY 1.0 STAT MIT 17,16,15,14,13,12 PostgreSQL extension to enhance query monitoring
pg_statviz pg_statviz postgresql-$v-statviz PGDG 0.6 STAT BSD 3 16,15,14,13,12 stats visualization and time series analysis
pagevis pagevis postgresql-$v-pagevis PIGSTY 0.1 STAT MIT 17,16,15,14,13,12 Visualise database pages in ascii code
powa powa postgresql-$v-powa PGDG 4.2.2 STAT PostgreSQL 16,15,14,13,12 PostgreSQL Workload Analyser-core
pageinspect pageinspect postgresql-$v CONTRIB 1.12 STAT PostgreSQL 17,16,15,14,13,12 inspect the contents of database pages at a low level
pgrowlocks pgrowlocks postgresql-$v CONTRIB 1.2 STAT PostgreSQL 17,16,15,14,13,12 show row-level locking information
sslinfo sslinfo postgresql-$v CONTRIB 1.2 STAT PostgreSQL 17,16,15,14,13,12 information about SSL certificates
pg_buffercache pg_buffercache postgresql-$v CONTRIB 1.4 STAT PostgreSQL 17,16,15,14,13,12 examine the shared buffer cache
pg_walinspect pg_walinspect postgresql-$v CONTRIB 1.1 STAT PostgreSQL 17,16,15 functions to inspect contents of PostgreSQL Write-Ahead Log
pg_freespacemap pg_freespacemap postgresql-$v CONTRIB 1.2 STAT PostgreSQL 17,16,15,14,13,12 examine the free space map (FSM)
pg_visibility pg_visibility postgresql-$v CONTRIB 1.2 STAT PostgreSQL 17,16,15,14,13,12 examine the visibility map (VM) and page-level visibility info
pgstattuple pgstattuple postgresql-$v CONTRIB 1.5 STAT PostgreSQL 17,16,15,14,13,12 show tuple-level statistics
auto_explain auto_explain postgresql-$v CONTRIB 16.3 STAT PostgreSQL 17,16,15,14,13,12 Provides a means for logging execution plans of slow statements automatically
pg_stat_statements pg_stat_statements postgresql-$v CONTRIB 1.10 STAT PostgreSQL 17,16,15,14,13,12 track planning and execution statistics of all SQL statements executed
passwordcheck_cracklib passwordcheck postgresql-$v-passwordcheck-cracklib PIGSTY 3.0.0 SEC LGPLv2 17,16,15,14,13,12 Strengthen PostgreSQL user password checks with cracklib
supautils supautils postgresql-$v-supautils PIGSTY 2.5.0 SEC Apache-2.0 17,16,15,14,13 Extension that secures a cluster on a cloud environment
pgsodium pgsodium postgresql-$v-pgsodium PIGSTY 3.1.9 SEC BSD 3 17,16,15,14,13,12 Postgres extension for libsodium functions
supabase_vault pg_vault postgresql-$v-vault PIGSTY 0.2.8 SEC Apache-2.0 17,16,15,14,13,12 Supabase Vault Extension
anon anonymizer postgresql-$v-anonymizer PIGSTY 1.3.2 SEC PostgreSQL 17,16,15,14,13,12 Data anonymization tools
pg_tde pg_tde postgresql-$v-pg-tde PIGSTY 1.0 SEC MIT 16 pg_tde access method
pgsmcrypto pgsmcrypto postgresql-$v-pgsmcrypto PIGSTY 0.1.0 SEC MIT 17,16,15,14,13,12 PostgreSQL SM Algorithm Extension
pgaudit pgaudit postgresql-$v-pgaudit PGDG 16.0 SEC PostgreSQL 17,16,15,14,13,12 provides auditing functionality
pgauditlogtofile pgauditlogtofile postgresql-$v-pgauditlogtofile PGDG 1.6 SEC PostgreSQL 17,16,15,14,13,12 pgAudit addon to redirect audit log to an independent file
pg_auth_mon pg_auth_mon postgresql-$v-pg-auth-mon PIGSTY 1.1 SEC MIT 17,16,15,14,13,12 monitor connection attempts per user
credcheck credcheck postgresql-$v-credcheck PGDG 2.7.0 SEC MIT 17,16,15,14,13,12 credcheck - postgresql plain text credential checker
pgcryptokey pgcryptokey postgresql-$v-pgcryptokey PIGSTY 1.0 SEC PostgreSQL 17,16,15,14,13,12 cryptographic key management
pg_jobmon pg_jobmon postgresql-$v-pg-jobmon PIGSTY 1.4.1 SEC PostgreSQL 17,16,15,14,13,12 Extension for logging and monitoring functions in PostgreSQL
logerrors logerrors postgresql-$v-logerrors PIGSTY 2.1 SEC BSD 3 17,16,15,14,13,12 Function for collecting statistics about messages in logfile
login_hook login_hook postgresql-$v-login-hook PIGSTY 1.6 SEC GPLv3 17,16,15,14,13,12 login_hook - hook to execute login_hook.login() at login time
set_user set_user postgresql-$v-set-user PGDG 4.1.0 SEC PostgreSQL 17,16,15,14,13,12 similar to SET ROLE but with added logging
pg_snakeoil pg_snakeoil postgresql-$v-snakeoil PGDG 1 SEC PostgreSQL 17,16,15,14,13,12 The PostgreSQL Antivirus
pgextwlist pgextwlist postgresql-$v-pgextwlist PIGSTY 1.17 SEC PostgreSQL 17,16,15,14,13,12 PostgreSQL Extension Whitelisting
pg_auditor pg_auditor postgresql-$v-pg-auditor PIGSTY 0.2 SEC BSD-3 17,16,15,14,13,12 Audit data changes and provide flashback ability
sslutils sslutils postgresql-$v-sslutils PIGSTY 1.3 SEC PostgreSQL 17,16,15,14,13,12 A Postgres extension for managing SSL certificates through SQL
noset noset postgresql-$v-noset PIGSTY 0.3.0 SEC AGPLv3 17,16,15,14,13,12 Module for blocking SET variables for non-super users.
sepgsql sepgsql postgresql-$v CONTRIB 16.3 SEC PostgreSQL 17,16,15,14,13,12 label-based mandatory access control (MAC) based on SELinux security policy.
auth_delay auth_delay postgresql-$v CONTRIB 16.3 SEC PostgreSQL 17,16,15,14,13,12 pause briefly before reporting authentication failure
pgcrypto pgcrypto postgresql-$v CONTRIB 1.3 SEC PostgreSQL 17,16,15,14,13,12 cryptographic functions
passwordcheck passwordcheck postgresql-$v CONTRIB 16.3 SEC PostgreSQL 17,16,15,14,13,12 checks user passwords and reject weak password
wrappers wrappers postgresql-$v-wrappers PIGSTY 0.4.3 FDW Apache-2.0 17,16,15,14 Foreign data wrappers developed by Supabase
mysql_fdw mysql_fdw postgresql-$v-mysql-fdw PGDG 1.2 FDW BSD 3 17,16,15,14,13,12 Foreign data wrapper for querying a MySQL server
oracle_fdw oracle_fdw postgresql-$v-oracle-fdw PGDG 1.2 FDW PostgreSQL 17,16,15,14,13,12 foreign data wrapper for Oracle access
tds_fdw tds_fdw postgresql-$v-tds-fdw PGDG 2.0.4 FDW PostgreSQL 16,15,14,13,12 Foreign data wrapper for querying a TDS database (Sybase or Microsoft SQL Server)
sqlite_fdw sqlite_fdw postgresql-$v-sqlite-fdw PGDG 1.1 FDW PostgreSQL 16,15,14,13,12 SQLite Foreign Data Wrapper
redis_fdw redis_fdw postgresql-$v-redis-fdw PIGSTY 1.0 FDW PostgreSQL 17,16,15,14,13,12 Foreign data wrapper for querying a Redis server
redis pg_redis_pubsub postgresql-$v-pg-redis-pubsub PIGSTY 0.0.1 FDW MIT 17,16,15,14,13,12 Send redis pub/sub messages to Redis from PostgreSQL Directly
kafka_fdw kafka_fdw postgresql-$v-kafka-fdw PIGSTY 0.0.3 FDW PostgreSQL 16,15,14,13,12 kafka Foreign Data Wrapper for CSV formated messages
aws_s3 aws_s3 postgresql-$v-aws-s3 PIGSTY 0.0.1 FDW Apache-2.0 17,16,15,14,13,12 aws_s3 postgres extension to import/export data from/to s3
log_fdw log_fdw postgresql-$v-log-fdw PIGSTY 1.4 FDW Apache-2.0 17,16,15,14 foreign-data wrapper for Postgres log file access
dblink dblink postgresql-$v CONTRIB 1.2 FDW PostgreSQL 17,16,15,14,13,12 connect to other PostgreSQL databases from within a database
file_fdw file_fdw postgresql-$v CONTRIB 1.0 FDW PostgreSQL 17,16,15,14,13,12 foreign-data wrapper for flat file access
postgres_fdw postgres_fdw postgresql-$v CONTRIB 1.1 FDW PostgreSQL 17,16,15,14,13,12 foreign-data wrapper for remote PostgreSQL servers
orafce orafce postgresql-$v-orafce PGDG 4.13 SIM BSD 0 17,16,15,14,13,12 Functions and operators that emulate a subset of functions and packages from the Oracle RDBMS
pgtt pgtt postgresql-$v-pgtt PGDG 4.0.0 SIM ISC 17,16,15,14,13,12 Extension to add Global Temporary Tables feature to PostgreSQL
session_variable session_variable postgresql-$v-session-variable PIGSTY 3.4 SIM GPLv3 17,16,15,14,13,12 Registration and manipulation of session variables and constants
pg_statement_rollback pg_statement_rollback postgresql-$v-pg-statement-rollback PIGSTY 1.4 SIM ISC 17,16,15,14,13,12 Server side rollback at statement level for PostgreSQL like Oracle or DB2
babelfishpg_common babelfishpg_common babelfishpg-common WILTON 3.3.3 SIM Apache-2.0 15 SQL Server Transact SQL Datatype Support
babelfishpg_tsql babelfishpg_tsql babelfishpg-tsql WILTON 3.3.1 SIM Apache-2.0 15 SQL Server Transact SQL compatibility
babelfishpg_tds babelfishpg_tds babelfishpg-tds WILTON 1.0.0 SIM Apache-2.0 15 SQL Server TDS protocol extension
babelfishpg_money babelfishpg_money babelfishpg-money WILTON 1.1.0 SIM Apache-2.0 15 SQL Server Money Data Type
pgmemcache pgmemcache postgresql-$v-pgmemcache PGDG 2.3.0 SIM MIT 17,16,15,14,13,12 memcached interface
pglogical pglogical postgresql-$v-pglogical* PGDG 2.4.4 ETL PostgreSQL 17,16,15,14,13,12 PostgreSQL Logical Replication
pglogical_origin pglogical postgresql-$v-pglogical* PGDG 1.0.0 ETL PostgreSQL 17,16,15,14,13,12 Dummy extension for compatibility when upgrading from Postgres 9.4
pglogical_ticker pglogical postgresql-$v-pglogical* PGDG 1.4 ETL PostgreSQL 17,16,15,14,13,12 Have an accurate view on pglogical replication delay
pgl_ddl_deploy pgl_ddl_deploy postgresql-$v-pgl-ddl-deploy PGDG 2.2 ETL MIT 17,16,15,14,13,12 automated ddl deployment using pglogical
pg_failover_slots pg_failover_slots postgresql-$v-pg-failover-slots PIGSTY 1.0.1 ETL PostgreSQL 17,16,15,14,13,12 PG Failover Slots extension
wal2json wal2json postgresql-$v-wal2json PGDG 2.5.3 ETL BSD 3 17,16,15,14,13,12 Changing data capture in JSON format
wal2mongo wal2mongo postgresql-$v-wal2mongo PIGSTY 1.0.7 ETL Apache-2.0 16,15,14,13 PostgreSQL logical decoding output plugin for MongoDB
decoderbufs decoderbufs postgresql-$v-decoderbufs PGDG 0.1.0 ETL MIT 16,15,14,13,12 Logical decoding plugin that delivers WAL stream changes using a Protocol Buffer format
decoder_raw decoder_raw postgresql-$v-decoder-raw PIGSTY 1.0 ETL PostgreSQL 17,16,15,14,13,12 Output plugin for logical replication in Raw SQL format
test_decoding test_decoding postgresql-$v CONTRIB 16.3 ETL PostgreSQL 17,16,15,14,13,12 SQL-based test/example module for WAL logical decoding
mimeo mimeo postgresql-$v-mimeo PGDG 1.5.1 ETL PostgreSQL 17,16,15,14,13,12 Extension for specialized, per-table replication between PostgreSQL instances
repmgr repmgr postgresql-$v-repmgr PGDG 5.4 ETL GPLv3 16,15,14,13,12 Replication manager for PostgreSQL
pgcopydb pgcopydb pgcopydb PIGSTY 0.15 ETL PostgreSQL 17,16,15,14,13,12 Copy a Postgres database to a target Postgres server
pgloader pgloader pgloader PGDG 3.6.10 ETL PostgreSQL 17,16,15,14,13,12 Migrate to PostgreSQL in a single command!
pg_fact_loader pg_fact_loader postgresql-$v-pg-fact-loader PGDG 2.0 ETL MIT 17,16,15,14,13,12 build fact tables with Postgres
pg_bulkload pg_bulkload postgresql-$v-pg-bulkload PIGSTY 3.1.21 ETL BSD 3 16,15,14,13,12 pg_bulkload is a high speed data loading utility for PostgreSQL

1.4 - Contrib List

PostgreSQL built-in extension list

The latest PostgreSQL 16/17 comes with 70 Contrib extensions, from the PGDG repo under PostgreSQL license.

Name (URL) Alias Version Category PG Versions LOAD DDL DBSU RELOC Description
earthdistance earthdistance 1.1 GIS 17,16,15,14,13,12 calculate great-circle distances on the surface of the Earth
fuzzystrmatch fuzzystrmatch 1.2 FTS 17,16,15,14,13,12 determine similarities and distance between strings
pg_trgm pg_trgm 1.6 FTS 17,16,15,14,13,12 text similarity measurement and index searching based on trigrams
tablefunc tablefunc 1.0 OLAP 17,16,15,14,13,12 functions that manipulate whole tables, including crosstab
bloom bloom 1.0 FEAT 17,16,15,14,13,12 bloom access method - signature file based index
pltcl pltcl 1.0 LANG 17,16,15,14,13,12 PL/Tcl procedural language
pltclu pltcl 1.0 LANG 17,16,15,14,13,12 PL/TclU untrusted procedural language
plperl plperl 1.0 LANG 17,16,15,14,13,12 PL/Perl procedural language
bool_plperl plperl 1.0 LANG 17,16,15,14,13,12 transform between bool and plperl
hstore_plperl plperl 1.0 LANG 17,16,15,14,13,12 transform between hstore and plperl
jsonb_plperl plperl 1.0 LANG 17,16,15,14,13,12 transform between jsonb and plperl
plperlu plperlu 1.0 LANG 17,16,15,14,13,12 PL/PerlU untrusted procedural language
bool_plperlu plperlu 1.0 LANG 17,16,15,14,13,12 transform between bool and plperlu
jsonb_plperlu plperlu 1.0 LANG 17,16,15,14,13,12 transform between jsonb and plperlu
hstore_plperlu plperlu 1.0 LANG 17,16,15,14,13,12 transform between hstore and plperlu
plpgsql plpgsql 1.0 LANG 17,16,15,14,13,12 PL/pgSQL procedural language
plpython3u plpython3u 1.0 LANG 17,16,15,14,13,12 PL/Python3U untrusted procedural language
jsonb_plpython3u plpython3u 1.0 LANG 17,16,15,14,13,12 transform between jsonb and plpython3u
ltree_plpython3u plpython3u 1.0 LANG 17,16,15,14,13,12 transform between ltree and plpython3u
hstore_plpython3u plpython3u 1.0 LANG 17,16,15,14,13,12 transform between hstore and plpython3u
isn isn 1.2 TYPE 17,16,15,14,13,12 data types for international product numbering standards
seg seg 1.4 TYPE 17,16,15,14,13,12 data type for representing line segments or floating-point intervals
cube cube 1.5 TYPE 17,16,15,14,13,12 data type for multidimensional cubes
ltree ltree 1.2 TYPE 17,16,15,14,13,12 data type for hierarchical tree-like structures
hstore hstore 1.8 TYPE 17,16,15,14,13,12 data type for storing sets of (key, value) pairs
citext citext 1.6 TYPE 17,16,15,14,13,12 data type for case-insensitive character strings
xml2 xml2 1.1 TYPE 17,16,15,14,13,12 XPath querying and XSLT
refint refint 1.0 FUNC 17,16,15,14,13,12 functions for implementing referential integrity (obsolete)
autoinc autoinc 1.0 FUNC 17,16,15,14,13,12 functions for autoincrementing fields
insert_username insert_username 1.0 FUNC 17,16,15,14,13,12 functions for tracking who changed a table
moddatetime moddatetime 1.0 FUNC 17,16,15,14,13,12 functions for tracking last modification time
tsm_system_time tsm_system_time 1.0 FUNC 17,16,15,14,13,12 TABLESAMPLE method which accepts time in milliseconds as a limit
dict_xsyn dict_xsyn 1.0 FUNC 17,16,15,14,13,12 text search dictionary template for extended synonym processing
tsm_system_rows tsm_system_rows 1.0 FUNC 17,16,15,14,13,12 TABLESAMPLE method which accepts number of rows as a limit
tcn tcn 1.0 FUNC 17,16,15,14,13,12 Triggered change notifications
uuid-ossp uuid-ossp 1.1 FUNC 17,16,15,14,13,12 generate universally unique identifiers (UUIDs)
btree_gist btree_gist 1.7 FUNC 17,16,15,14,13,12 support for indexing common datatypes in GiST
btree_gin btree_gin 1.3 FUNC 17,16,15,14,13,12 support for indexing common datatypes in GIN
intarray intarray 1.5 FUNC 17,16,15,14,13,12 functions, operators, and index support for 1-D arrays of integers
intagg intagg 1.1 FUNC 17,16,15,14,13,12 integer aggregator and enumerator (obsolete)
dict_int dict_int 1.0 FUNC 17,16,15,14,13,12 text search dictionary template for integers
unaccent unaccent 1.1 FUNC 17,16,15,14,13,12 text search dictionary that removes accents
vacuumlo vacuumlo 16.3 ADMIN 17,16,15,14,13,12 utility program that will remove any orphaned large objects from a PostgreSQL database
pg_prewarm pg_prewarm 1.2 ADMIN 17,16,15,14,13,12 prewarm relation data
oid2name oid2name 16.3 ADMIN 17,16,15,14,13,12 utility program that helps administrators to examine the file structure used by PostgreSQL
lo lo 1.1 ADMIN 17,16,15,14,13,12 Large Object maintenance
basic_archive basic_archive 16.3 ADMIN 17,16,15 an example of an archive module
basebackup_to_shell basebackup_to_shell 16.3 ADMIN 17,16,15 adds a custom basebackup target called shell
old_snapshot old_snapshot 1.0 ADMIN 17,16,15,14 utilities in support of old_snapshot_threshold
adminpack adminpack 2.1 ADMIN 17,16,15,14,13,12 administrative functions for PostgreSQL
amcheck amcheck 1.3 ADMIN 17,16,15,14,13,12 functions for verifying relation integrity
pg_surgery pg_surgery 1.0 ADMIN 17,16,15,14 extension to perform surgery on a damaged relation
pageinspect pageinspect 1.12 STAT 17,16,15,14,13,12 inspect the contents of database pages at a low level
pgrowlocks pgrowlocks 1.2 STAT 17,16,15,14,13,12 show row-level locking information
sslinfo sslinfo 1.2 STAT 17,16,15,14,13,12 information about SSL certificates
pg_buffercache pg_buffercache 1.4 STAT 17,16,15,14,13,12 examine the shared buffer cache
pg_walinspect pg_walinspect 1.1 STAT 17,16,15 functions to inspect contents of PostgreSQL Write-Ahead Log
pg_freespacemap pg_freespacemap 1.2 STAT 17,16,15,14,13,12 examine the free space map (FSM)
pg_visibility pg_visibility 1.2 STAT 17,16,15,14,13,12 examine the visibility map (VM) and page-level visibility info
pgstattuple pgstattuple 1.5 STAT 17,16,15,14,13,12 show tuple-level statistics
auto_explain auto_explain 16.3 STAT 17,16,15,14,13,12 Provides a means for logging execution plans of slow statements automatically
pg_stat_statements pg_stat_statements 1.10 STAT 17,16,15,14,13,12 track planning and execution statistics of all SQL statements executed
sepgsql sepgsql 16.3 SEC 17,16,15,14,13,12 label-based mandatory access control (MAC) based on SELinux security policy.
auth_delay auth_delay 16.3 SEC 17,16,15,14,13,12 pause briefly before reporting authentication failure
pgcrypto pgcrypto 1.3 SEC 17,16,15,14,13,12 cryptographic functions
passwordcheck passwordcheck 16.3 SEC 17,16,15,14,13,12 checks user passwords and reject weak password
dblink dblink 1.2 FDW 17,16,15,14,13,12 connect to other PostgreSQL databases from within a database
file_fdw file_fdw 1.0 FDW 17,16,15,14,13,12 foreign-data wrapper for flat file access
postgres_fdw postgres_fdw 1.1 FDW 17,16,15,14,13,12 foreign-data wrapper for remote PostgreSQL servers
test_decoding test_decoding 16.3 ETL 17,16,15,14,13,12 SQL-based test/example module for WAL logical decoding

2 - Use Extension

How to install, load, create, update, remove PostgreSQL extensions in Pigsty?

2.1 - Get Started

How to use PostgreSQL extension in an out-of-the-box manner with Pigsty!

Pigsty allows you to manage PostgreSQL extension in a declarative way


Overview

To use an extension in Pigsty managed PostgreSQL cluster, you need to deal with four issues: download, install, load, and create:

  • How to Download?: repo_upstream & repo_packages

    When performing the default online installation in Pigsty, all available extensions for the current primary PostgreSQL version (16) are automatically downloaded. If you do not need additional or niche extensions, you don’t need to worry about repo_upstream, repo_packages, or any issues related to extension downloads.

  • How to Install?: pg_extensions & pg_packages

    In the config template, a complete list of available extension alias is already included. To install additional extensions, simply add/uncomment them to pg_packages and pg_extensions.

  • How to Load?: pg_libs & pg_parameters

    A small number of extensions that utilize PostgreSQL HOOKs need to be dynamically loaded and will only take effect after restarting the database server.

  • You should add these extensions to pg_libs, or manually overwrite shared_preload_libraries in pg_parameters or DCS, and ensure they are loaded upon restart.

  • How to Create: pg_databases.extensions

    Most extensions require the execution of the CREATE EXTENSION DDL statement after installation to actually create and enable them in a specific database.

  • You can manually execute this DDL, or explicitly specify the extensions in pg_databases.extensions, and the database will automatically enable these extensions during initialization.


Out-Of-The-Box

Pigsty seals the complexity of extension management for users. You don’t need to know the RPM package names of these extensions, nor how to download, install, load, or enable them. You only need to declare the extensions you require in the configuration file.

For example, the following configuration snippet declares a PostgreSQL cluster that installs all available extension plugins, dynamically loads three extensions, and enables these 3 extensions.

pg-meta:
  hosts:
    10.10.10.10: { pg_seq: 1, pg_role: primary }
  vars:
    pg_cluster: pg-meta
    pg_databases:
      - name: meta
        extensions:
          - { name: postgis     }
          - { name: timescaledb }
          - { name: vector      }
    pg_libs: 'timescaledb, pg_stat_statements, auto_explain'
    pg_extensions: # extensions to be installed on this cluster
      - timescaledb periods temporal_tables emaj table_version pg_cron pg_later pg_background pg_timetable
      - postgis pgrouting pointcloud pg_h3 q3c ogr_fdw geoip #pg_geohash #mobilitydb
      - pgvector pgvectorscale pg_vectorize pg_similarity pg_tiktoken pgml #smlar
      - pg_search pg_bigm zhparser hunspell
      - hydra pg_lakehouse pg_duckdb duckdb_fdw pg_fkpart pg_partman plproxy #pg_strom citus
      - pg_hint_plan age hll rum pg_graphql pg_jsonschema jsquery index_advisor hypopg imgsmlr pg_ivm pgmq pgq #rdkit
      - pg_tle plv8 pllua plprql pldebugger plpgsql_check plprofiler plsh #pljava plr pgtap faker dbt2
      - prefix semver pgunit md5hash asn1oid roaringbitmap pgfaceting pgsphere pg_country pg_currency pgmp numeral pg_rational pguint ip4r timestamp9 chkpass #pg_uri #pgemailaddr #acl #debversion #pg_rrule
      - topn pg_gzip pg_http pg_net pg_html5_email_address pgsql_tweaks pg_extra_time pg_timeit count_distinct extra_window_functions first_last_agg tdigest aggs_for_arrays pg_arraymath pg_idkit pg_uuidv7 permuteseq pg_hashids
      - sequential_uuids pg_math pg_random pg_base36 pg_base62 floatvec pg_financial pgjwt pg_hashlib shacrypt cryptint pg_ecdsa pgpcre icu_ext envvar url_encode #pg_zstd #aggs_for_vecs #quantile #lower_quantile #pgqr #pg_protobuf
      - pg_repack pg_squeeze pg_dirtyread pgfincore pgdd ddlx pg_prioritize pg_checksums pg_readonly safeupdate pg_permissions pgautofailover pg_catcheck preprepare pgcozy pg_orphaned pg_crash pg_cheat_funcs pg_savior table_log pg_fio #pgpool pgagent
      - pg_profile pg_show_plans pg_stat_kcache pg_stat_monitor pg_qualstats pg_store_plans pg_track_settings pg_wait_sampling system_stats pg_meta pgnodemx pg_sqlog bgw_replstatus pgmeminfo toastinfo pagevis powa pg_top #pg_statviz #pgexporter_ext #pg_mon
      - passwordcheck supautils pgsodium pg_vault anonymizer pg_tde pgsmcrypto pgaudit pgauditlogtofile pg_auth_mon credcheck pgcryptokey pg_jobmon logerrors login_hook set_user pg_snakeoil pgextwlist pg_auditor noset #sslutils
      - wrappers multicorn mysql_fdw tds_fdw sqlite_fdw pgbouncer_fdw mongo_fdw redis_fdw pg_redis_pubsub kafka_fdw hdfs_fdw firebird_fdw aws_s3 log_fdw #oracle_fdw #db2_fdw
      - orafce pgtt session_variable pg_statement_rollback pg_dbms_metadata pg_dbms_lock pgmemcache #pg_dbms_job #wiltondb
      - pglogical pgl_ddl_deploy pg_failover_slots wal2json wal2mongo decoderbufs decoder_raw mimeo pgcopydb pgloader pg_fact_loader pg_bulkload pg_comparator pgimportdoc pgexportdoc #repmgr #slony
      - gis-stack rag-stack fdw-stack fts-stack etl-stack feat-stack olap-stack supa-stack stat-stack json-stack

You might have noticed that the extension names here are not the RPM/DEB package names but rather normalized extension aliases that have been simplified and encapsulated by Pigsty.

Pigsty translates these standardized aliases into the corresponding RPM/DEB package names for the specific PostgreSQL major version on different operating system distributions. This way, you don’t have to worry about the differences in extension package names across various OS distributions.

During the Pigsty configure process, the default configuration generated for your specific OS distro will already include the above list. To install these extensions, you only need to uncomment the ones you need in the configuration file.

Please note that you can still directly use OS-specific RPM/DEB package names here if you prefer.


Predefined Stacks

If you are not sure which extensions to install, Pigsty provides you with some predefined extension collections (Stacks). You can choose one of them and any combination according to your needs, and add them to pg_extensions.

  • gis-stack: postgis, pgrouting, pointcloud, h3, q3c, ogr_fdw
  • rag-stack: pgvector, pgvectorscale, pg_vectorize, pg_similarity, pg_tiktoken, pgml
  • fts-stack: pg_search, pg_bigm, zhparser, hunspell
  • fdw-stack: wrappers, mysql_fdw, tds_fdw, sqlite_fdw
  • etl-stack: pglogical, pgl_ddl_deploy, wal2json, wal2mongo, decoderbufs, pg_fact_loader, pg_bulkload, pgloader, pgcopydb
  • feat-stack: age, hll, rum, pg_graphql, pg_jsonschema, jsquery, pg_ivm, pgq3, gzip, http, topn, pgjwt
  • olap-stack: duckdb, duckdb_fdw, pg-lakehouse, hydra, timescaledb, pg-fkpart, pg-partman, plproxy
  • supa-stack: pg-graphql, pg-jsonschema, wrappers, pgvector, cron, supautils, pgsodium, vault, pgjwt, http, pg-net, index_advisor
  • stat-stack: show-plans, pg-stat-kcache, pg-qualstats, pg-track-settings, pg-wait-sampling, pg-sqlog
  • json-stack: plv8, pg-jsonschema, pgjwt, jsquery, pg-graphql, ferretdb

When you specify these extension stack names in pg_extensions or pg_packages, Pigsty will automatically translate, expand, and install all the extension plugins in them.


Install, Load, and Create

Pigsty not only allows you to declare the extensions you need to install in the configuration file, but it also lets you directly specify the extensions that need to be loaded and enabled.

Here’s a concrete example: Supabase. Supabase is an “upstream abstract database” built on top of PostgreSQL, which heavily utilizes PostgreSQL’s extension mechanism. Below is a sample configuration file for creating a PostgreSQL cluster required for Supabase using Pigsty:

# supabase example cluster: pg-meta
# this cluster needs to be migrated with app/supabase/migration.sql :
# psql postgres://supabase_admin:[email protected]:5432/supa -v ON_ERROR_STOP=1 --no-psqlrc -f ~pigsty/app/supabase/migration.sql
pg-meta:
  hosts: { 10.10.10.10: { pg_seq: 1, pg_role: primary } }
  vars:
    pg_cluster: pg-meta
    pg_users:
      - { name: supabase_admin ,password: 'DBUser.Supa' ,pgbouncer: true ,inherit: true   ,superuser: true ,replication: true ,createdb: true ,createrole: true ,bypassrls: true }
    pg_databases:
      - name: supa
        baseline: supa.sql    # the init-scripts: https://github.com/supabase/postgres/tree/develop/migrations/db/init-scripts
        owner: supabase_admin
        comment: supabase postgres database
        schemas: [ extensions ,auth ,realtime ,storage ,graphql_public ,supabase_functions ,_analytics ,_realtime ]
        extensions:
          - { name: pgcrypto  ,schema: extensions  } # 1.3   : cryptographic functions
          - { name: pg_net    ,schema: extensions  } # 0.9.2 : async HTTP
          - { name: pgjwt     ,schema: extensions  } # 0.2.0 : json web token API for postgres
          - { name: uuid-ossp ,schema: extensions  } # 1.1   : generate universally unique identifiers (UUIDs)
          - { name: pgsodium        }                # 3.1.9 : pgsodium is a modern cryptography library for Postgres.
          - { name: supabase_vault  }                # 0.2.8 : Supabase Vault Extension
          - { name: pg_graphql      }                # 1.5.7 : pg_graphql: GraphQL support
          - { name: pg_jsonschema   }                # 0.3.1 : pg_jsonschema: Validate json schema
          - { name: wrappers        }                # 0.4.1 : wrappers: FDW collections
          - { name: http            }                # 1.6   : http: allows web page retrieval inside the database.
          - { name: pg_cron         }
    # supabase required extensions
    pg_libs: 'pg_net, pg_cron, pg_stat_statements, auto_explain'    # add pg_net to shared_preload_libraries
    pg_extensions:
      - wal2json pg_repack
      - supa-stack # pgvector pg_cron pgsodium pg_graphql pg_jsonschema wrappers pgjwt pgsql_http pg_net supautils
    pg_parameters:
      cron.database_name: supa
      pgsodium.enable_event_trigger: off
    pg_hba_rules: # supabase hba rules, require access from docker network
      - { user: all ,db: supa ,addr: intra       ,auth: pwd ,title: 'allow supa database access from intranet'      }
      - { user: all ,db: supa ,addr: 172.0.0.0/8 ,auth: pwd ,title: 'allow supa database access from docker network'}
      - { user: all ,db: supa ,addr: all         ,auth: pwd ,title: 'allow supa database access from entire world'  }  # not safe!

In this example, we declare a PostgreSQL cluster named pg-meta, which contains a database called supa along with a set of extension plugins.

The supa-stack defined in pg_extensions translates to pgvector pg_cron pgsodium pg_graphql pg_jsonschema wrappers pgjwt pgsql_http pg_net supautils, which are automatically installed. Meanwhile, pg_libs specifies two extensions that need to be dynamically loaded: pg_net and pg_cron. Additionally, the necessary configuration parameters for the pgsodium and pg_cron extensions are pre-configured via pg_parameters.

Following that, these extensions are sequentially created and enabled in the specified or default schemas within pg_databases.extensions.

Finally, this out-of-the-box, highly available PostgreSQL cluster, ready to be used by stateless Supabase containers, can be fully launched with a single ./pgsql.yml command, providing a seamless experience.

2.2 - Download Extension

How to download new extension packages to Pigsty’s local software repository?

In Pigsty’s default installation mode, the downloading and installation of extension plugins are handled separately. Before installing extensions, you must ensure that the appropriate software repositories are added to the target node. Otherwise, the installation may fail due to missing packages.

During the installation process, Pigsty downloads all available extensions for the current major PG version (16) to the INFRA node and sets up a local software repository. This repository is used by all nodes, including the local machine. This approach accelerates installation, avoids redundant downloads, reduces network traffic, improves delivery reliability, and mitigates the risk of inconsistent version installations.

Alternatively, you can opt to add the upstream PostgreSQL software repository and its dependencies (OS software sources) directly to the target node managed by Pigsty. This method allows you to easily update plugins to the latest versions but requires internet access or an HTTP proxy. It may also be subject to network conditions and carries the potential risk of inconsistent installation versions.


Software Repo

During the initial installation, Pigsty downloads the packages specified by repo_upstream from the upstream software repository. The package names differ between EL systems and Debian/Ubuntu systems. The complete list can be found at the following links:

A few plugins are excluded by default due to various reasons. If you need these extensions, refer to the RPM/DEB package names in the extension list and add them to repo_upstream for download.

  • Heavy dependencies: pljava, plr
  • Niche overlap: repmgr, pgexporterext, pgpool
  • EL9 exclusives: pljava

Download Extension

To download new extension plugins, you can add them to repo_upstream and run the following tasks to update the local software repository and refresh the package cache on all nodes:

./infra.yml -t repo       # Re-download the specified packages to the local software repository
./node.yml  -t node_repo  # Refresh the metadata cache of the local software repository on all nodes

By default, Pigsty uses the local software source located on the INFRA node. If you prefer not to download these extensions to the local repository but instead use an online software repository for installation, you can directly add the upstream software source to the nodes:

./node.yml -t node_repo -e node_repo_modules=node,pgsql  # Add the Postgres plugin repository and OS software sources (dependencies)

After completing these tasks, you can install PostgreSQL extension plugins using the standard OS package manager (yum/apt).

2.3 - Extension Repo

How to

YUM Repo

Pigsty currently offers a supplementary PG extension repository for EL systems, providing 121 additional RPM plugins in addition to the official PGDG YUM repository (135).

The Pigsty YUM repository only includes extensions not present in the PGDG YUM repository. Once an extension is added to the PGDG YUM repository, Pigsty YUM repository will either remove it or align with the PGDG repository.

For EL 7/8/9 and compatible systems, use the following commands to add the GPG public key and the upstream repository file of the Pigsty repository:

curl -fsSL https://repo.pigsty.io/key      | sudo tee /etc/pki/rpm-gpg/RPM-GPG-KEY-pigsty >/dev/null  # add gpg key
curl -fsSL https://repo.pigsty.io/yum/repo | sudo tee /etc/yum.repos.d/pigsty.repo        >/dev/null  # add repo file

All RPMs are signed with the GPG key fingerprint 9592A7BC7A682E7333376E09E7935D8DB9BD8B20 (B9BD8B20).

Write Repo File Manually
sudo tee /etc/yum.repos.d/pigsty-io.repo > /dev/null <<-'EOF'
[pigsty-infra]
name=Pigsty Infra for $basearch
baseurl=https://repo.pigsty.io/yum/infra/$basearch
skip_if_unavailable = 1
enabled = 1
priority = 1
gpgcheck = 1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-pigsty
module_hotfixes=1

[pigsty-pgsql]
name=Pigsty PGSQL For el$releasever.$basearch
baseurl=https://repo.pigsty.io/yum/pgsql/el$releasever.$basearch
skip_if_unavailable = 1
enabled = 1
priority = 1
gpgcheck = 1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-pigsty
module_hotfixes=1
EOF
sudo yum makecache;

APT Repo

Pigsty currently offers a supplementary PG extension repository for Debian/Ubuntu systems, providing 133 additional DEB packages in addition to the official PGDG APT repository (109).

The Pigsty APT repository only includes extensions not present in the PGDG APT repository. Once an extension is added to the PGDG APT repository, Pigsty APT repository will either remove it or align with the PGDG repository.

For Debian/Ubuntu and compatible systems, use the following commands to sequentially add the GPG public key and the upstream repository file of the Pigsty repository:

# add GPG key to keyring
curl -fsSL https://repo.pigsty.io/key | sudo gpg --dearmor -o /etc/apt/keyrings/pigsty.gpg

# get debian codename, distro_codename=jammy, focal, bullseye, bookworm
distro_codename=$(lsb_release -cs)
sudo tee /etc/apt/sources.list.d/pigsty-io.list > /dev/null <<EOF
deb [signed-by=/etc/apt/keyrings/pigsty.gpg] https://repo.pigsty.io/apt/infra generic main 
deb [signed-by=/etc/apt/keyrings/pigsty.gpg] https://repo.pigsty.io/apt/pgsql/${distro_codename} ${distro_codename} main
EOF

# refresh APT repo cache
sudo apt update

All DEBs are signed with the GPG key fingerprint 9592A7BC7A682E7333376E09E7935D8DB9BD8B20 (B9BD8B20).


Repo of Repo

The building recipes and specs, metadata are all open-sourced, related GitHub repos:

  • pkg: The repository of RPM/DEB packages for PostgreSQL extensions
  • infra_pkg: Building observability stack & modules from tarball
  • pgsql-rpm: Building PostgreSQL RPM packages from source code
  • pgsql-deb: Building PostgreSQL DEB packages from source code

2.4 - Install Extension

How to install a extension from local repo, or directly from the Internet upstream repo.

Pigsty uses the standard OS package managers (yum/apt) to install PostgreSQL extension plugins.


Parameters

You can specify which extensions to install using the following variables, both of which have similar effects:

Generally, pg_packages is used to globally specify the software packages that need to be installed across all PostgreSQL clusters in the environment. This includes essential components like the PostgreSQL core, high-availability setup with Patroni, connection pooling with pgBouncer, monitoring with pgExporter, etc. By default, Pigsty also includes two essential extensions here: pg_repack for bloat management and wal2json for CDC (Change Data Capture).

On the other hand, pg_extensions is typically used to specify extension plugins that need to be installed for a specific cluster. Pigsty defaults to installing three key PostgreSQL ecosystem extensions: postgis, timescaledb, and pgvector. You can also specify any additional extensions you need in this list.

pg_packages:                      # pg packages to be installed, alias can be used
  - postgresql
  - patroni pgbouncer pgbackrest pg_exporter pgbadger vip-manager wal2json pg_repack
pg_extensions:                    # pg extensions to be installed, alias can be used
  - postgis timescaledb pgvector

Another important distinction is that packages installed via pg_packages are merely ensured to be present, whereas those installed via pg_extensions are automatically upgraded to the latest available version. This is not an issue when using a local software repository, but when using upstream online repositories, consider this carefully and move extensions you do not want to be upgraded to pg_packages.

During PGSQL cluster initialization, Pigsty will automatically install the extensions specified in both pg_packages and pg_extensions.


Install on Existing Cluster

For a PostgreSQL cluster that has already been provisioned and initialized, you can first add the desired extensions to either pg_packages or pg_extensions, and then install the extensions using the following command:

./pgsql.yml -t pg_extension  # install extensions specified in pg_extensions 

Alias Translation

When specifying extensions in Pigsty, you can use the following formats in pg_packages and pg_extensions:

  • The original OS package name
  • A normalized extension name (alias)
postgis                    # Installs the PostGIS package for the current major PG version
postgis34_$v*              # Installs the PostGIS RPM package for the current major PG version
postgis34_15*              # Installs the PostGIS RPM package for PG 15
postgresql-$v-postgis-3*   # Installs the PostGIS DEB package for the current major PG version
postgresql-14-postgis-3*   # Installs the PostGIS DEB package for PG 14

We recommend using the standardized extension names (aliases) provided by Pigsty. Pigsty will translate these aliases into the appropriate RPM/DEB package names corresponding to the PG major version for different OS distributions. This way, users don’t need to worry about the differences in extension package names across various OS distributions:

Pigsty strives to align the PostgreSQL extensions available for EL and Debian-based systems. However, a few extensions may be difficult to migrate or have not yet been ported due to various reasons. For more information, please refer to the RPM Extension List and DEB Extension List.

2.5 - Load Extension

Some extensions that use hook mechanism must be preloaded and restarted to take effect.

After installing PostgreSQL extensions, you can view them in the pg_available_extensions view in PostgreSQL.

Aside from extensions written purely in SQL, most extensions provide a .so file, which is a dynamic shared library.

Most extensions do not require explicit loading and can be enabled simply with CREATE EXTENSION. However, a small subset of extensions use PostgreSQL’s hook mechanism. These extensions must be preloaded using the shared_preload_libraries parameter and require a PostgreSQL restart to take effect. Attempting to execute CREATE EXTENSION without preloading and restarting will result in an error.

In Pigsty, you can predefine the extensions that need to be loaded in the cluster by specifying them in the cluster’s pg_libs parameter, or modify the cluster configuration after initializing the cluster.


Extensions that Need Loading

In the Extension List, extensions marked with LOAD are the ones that need to be dynamically loaded and require a restart. These include:

Extension Alias Description
timescaledb timescaledb Enables scalable inserts and complex queries for time-series data (Apache 2 Edition)
pgml pgml PostgresML: Run AL/ML workloads with SQL interface
citus citus Distributed PostgreSQL as an extension
pg_squeeze pg_squeeze A tool to remove unused space from a relation.
pgautofailover pgautofailover auto failover for PostgreSQL
pg_prewarm pg_prewarm prewarm relation data
pg_stat_kcache pg_stat_kcache Kernel statistics gathering
bgw_replstatus bgw_replstatus Small PostgreSQL background worker to report whether a node is a replication master or standby
auto_explain auto_explain Provides a means for logging execution plans of slow statements automatically
pg_stat_statements pg_stat_statements track planning and execution statistics of all SQL statements executed
passwordcheck_cracklib passwordcheck Strengthen PostgreSQL user password checks with cracklib
supautils supautils Extension that secures a cluster on a cloud environment
pg_tde pg_tde pg_tde access method
pgaudit pgaudit provides auditing functionality
pg_snakeoil pg_snakeoil The PostgreSQL Antivirus
pgextwlist pgextwlist PostgreSQL Extension Whitelisting
sepgsql sepgsql label-based mandatory access control (MAC) based on SELinux security policy.
auth_delay auth_delay pause briefly before reporting authentication failure
passwordcheck passwordcheck Server side rollback at statement level for PostgreSQL like Oracle or DB2
pg_statement_rollback pg_statement_rollback SQL Server Transact SQL compatibility
babelfishpg_tsql babelfishpg_tsql

Loading Order

In shared_preload_libraries, if multiple extensions need to be loaded, they can be separated by commas, for example:

  • 'timescaledb, pg_stat_statements, auto_explain'

Note that both Citus and TimescaleDB explicitly require preloading in shared_preload_libraries, meaning they should be listed first.

While it is rare to use both Citus and TimescaleDB simultaneously, in such cases, it is recommended to list citus before timescaledb.

Pigsty, by default, will load two extensions: pg_stat_statements and auto_explain. These extensions are very useful for optimizing database performance and are strongly recommended.

2.6 - Create Extension

How to use CREATE EXTENSION to actually enable a PostgreSQL extensions.

After installing PostgreSQL extensions, you can view them in the pg_available_extensions view. However, enabling these extensions typically requires additional steps:

  1. Some extensions must be added to the shared_preload_libraries for dynamic loading, such as timescaledb and citus.
  2. Most extensions need to be activated by running the SQL statement: CREATE EXTENSION <name>;. A few, like wal2json, do not require this step.

Modifying shared_preload_libraries:

  • Before initializing the database cluster: You can manually specify the required libraries using the pg_libsparameter.
  • After the database cluster has been initialized: You can modify the cluster configuration by directly editing the shared_preload_libraries parameter and applying the changes (no restart required).
  • Typical extensions that require dynamic loading: citus, timescaledb, pg_cron, pg_net, pg_tle

Executing CREATE EXTENSION:

  • Before initializing the database cluster: You can specify the required extensions in the extensions list within pg_databases.
  • After the database cluster has been initialized: You can directly connect to the database and execute the SQL command, or manage extensions using other schema management tools.

Conceptually: PostgreSQL extensions usually consist of three parts: a control file (metadata, always present), an SQL file (optional SQL statements), and a .so file (optional binary shared library). Extensions that provide a .so file may need to be added to shared_preload_libraries to function properly, such as citus and timescaledb. However, many extensions do not require this, such as postgis and pgvector. Extensions that do not expose a SQL interface do not need a CREATE EXTENSION command to be executed, such as the wal2json extension, which provides CDC extraction capabilities.

To complete the extension creation, execute the CREATE EXTENSION SQL statement in the database where you wish to enable the extension.

CREATE EXTENSION vector;  -- create & enable vector extension
CREATE EXTENSION hydra;   -- create & enable columnar extension

2.7 - Update Extension

How to update an existing extension?

To update an existing extension, you can use the OS package manager

yum upgrade pg_lakehouse_16*

And then perform the ALTER EXTENSION ... UPDATE command in the database to update the extension to the new version:

ALTER EXTENSION name UPDATE [ TO new_version ]
ALTER EXTENSION name SET SCHEMA new_schema
ALTER EXTENSION name ADD member_object
ALTER EXTENSION name DROP member_object

where member_object is:

  ACCESS METHOD object_name |
  AGGREGATE aggregate_name ( aggregate_signature ) |
  CAST (source_type AS target_type) |
  COLLATION object_name |
  CONVERSION object_name |
  DOMAIN object_name |
  EVENT TRIGGER object_name |
  FOREIGN DATA WRAPPER object_name |
  FOREIGN TABLE object_name |
  FUNCTION function_name [ ( [ [ argmode ] [ argname ] argtype [, ...] ] ) ] |
  MATERIALIZED VIEW object_name |
  OPERATOR operator_name (left_type, right_type) |
  OPERATOR CLASS object_name USING index_method |
  OPERATOR FAMILY object_name USING index_method |
  [ PROCEDURAL ] LANGUAGE object_name |
  PROCEDURE procedure_name [ ( [ [ argmode ] [ argname ] argtype [, ...] ] ) ] |
  ROUTINE routine_name [ ( [ [ argmode ] [ argname ] argtype [, ...] ] ) ] |
  SCHEMA object_name |
  SEQUENCE object_name |
  SERVER object_name |
  TABLE object_name |
  TEXT SEARCH CONFIGURATION object_name |
  TEXT SEARCH DICTIONARY object_name |
  TEXT SEARCH PARSER object_name |
  TEXT SEARCH TEMPLATE object_name |
  TRANSFORM FOR type_name LANGUAGE lang_name |
  TYPE object_name |
  VIEW object_name

and aggregate_signature is:

* |
[ argmode ] [ argname ] argtype [ , ... ] |
[ [ argmode ] [ argname ] argtype [ , ... ] ] ORDER BY [ argmode ] [ argname ] argtype [ , ... ]

2.8 - Remove Extension

How to safely remove a PostgreSQL extension from a database cluster?

To uninstall an extension, you typically need to perform the following steps:

DROP EXTENSION "<extname>";

Note that if there are other extensions or database objects dependent on this extension, you will need to uninstall/remove those dependencies first before uninstalling the extension.

Alternatively, you can use the following statement to forcefully uninstall the extension and its dependencies in one go:

DROP EXTENSION "<extname>" CASCADE;

Note: The CASCADE option will delete all objects that depend on this extension, including database objects, functions, views, etc. Use with caution!

If you wish to remove the extension’s package, you can use your operating system’s package manager to uninstall it:

2.9 - Pre-defined Stacks

How to use the predefined extension stacks in Pigsty?

3 - Build & Packaging

Prepare PostgreSQL rpm/deb pacakge building environment, and some packaging hints

3.1 - Building Environment

How to prepare VM env for building PostgreSQL RPM/DEB extensions, EL 8/9,Debian12,Ubuntu22。

VM

To build PGML RPM packages in EL / Debian environment, you need to prepare a virtual machine environment. Pigsty provides a ext.yml template that can be used to prepare the virtual machine environment required for building.

cd pigsty
make build
./node.yml -i files/pigsty/build-ext.yml -t node_repo,node_pkg

It will launch four virtual machines with EL8, EL9, Debian12, and Ubuntu22 respectively, and install the necessary dependencies for building.


Proxy

If you are in a network environment that requires a proxy, you need to configure the proxy environment variables.

Here we assume that you have a proxy server available in your local environment: http://192.168.0.106:8118 (replace with your OWN proxy server).

PROXY=http://192.168.0.106:8118
export HTTP_PROXY=${PROXY}
export HTTPS_PROXY=${PROXY}
export ALL_PROXY=${PROXY}
export NO_PROXY="localhost,127.0.0.1,10.0.0.0/8,192.168.0.0/16,*.pigsty,*.aliyun.com,mirrors.*,*.myqcloud.com,*.tsinghua.edu.cn"
alias build="HTTPS_PROXY=${PROXY} cargo pgrx package -v"

Adding the following lines to ~/.ssh/config will make git clone via HTTPS proxy (optional):

Host github.com
    Hostname ssh.github.com
    Port 443
    User git

If the following command can connect to GitHub, then the proxy is correctly configured:


Alias

You can use the following Alias to switch between different PG versions environment in the EL environment:

alias pg16="export PATH=/usr/pgsql-16/bin:/root/.cargo/bin:/usr/lib64/ccache:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin"
alias pg15="export PATH=/usr/pgsql-15/bin:/root/.cargo/bin:/usr/lib64/ccache:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin"
alias pg14="export PATH=/usr/pgsql-14/bin:/root/.cargo/bin:/usr/lib64/ccache:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin"
alias pg13="export PATH=/usr/pgsql-13/bin:/root/.cargo/bin:/usr/lib64/ccache:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin"
alias pg12="export PATH=/usr/pgsql-12/bin:/root/.cargo/bin:/usr/lib64/ccache:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin"

And the following Alias for Debian environment:

alias pg16="export PATH=/usr/lib/postgresql/16/bin:/home/vagrant/.cargo/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin;"
alias pg15="export PATH=/usr/lib/postgresql/15/bin:/home/vagrant/.cargo/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin;"
alias pg14="export PATH=/usr/lib/postgresql/14/bin:/home/vagrant/.cargo/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin;"
alias pg13="export PATH=/usr/lib/postgresql/13/bin:/home/vagrant/.cargo/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin;"
alias pg12="export PATH=/usr/lib/postgresql/12/bin:/home/vagrant/.cargo/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin;"

Tools

You’ll have to group install additional 'Development Tools' components in EL 8 / EL 9 environment. In EL8, you need to add the --nobest option to complete the installation due to dependency errors.

sudo yum groupinstall --nobest -y 'Development Tools';
rpmdev-setuptree  # setup rpmbuild environment

3.2 - Prepare rust & pgrx

It is necessary to install rust and pgrx before building Rust extensions.

Install Rust

To build Rust extensions, you need to install rust and pgrx

curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
source "$HOME/.cargo/env"

Install pgrx, beware of version

cargo install --locked cargo-pgrx@${PGRX_VER-'0.11.3'}
cargo pgrx init

Rust Extension List

Vendor Name Version PGRX License PG Ver Deps
PostgresML pgml v2.9.3 v0.11.3 MIT 16,15,14
ParadeDB pg_search v0.8.6 v0.11.3 AGPLv3 16,15,14,13,12
ParadeDB pg_lakehouse v0.8.6 v0.11.3 AGPLv3 16,15
Supabase pg_graphql v1.5.7 v0.11.3 Apache-2.0 16,15
Supabase pg_jsonschema v0.3.1 v0.11.3 Apache-2.0 16,15,14,13,12
Supabase wrappers v0.4.1 v0.11.3 Apache-2.0 16,15,14
Tembo pgmq v1.2.1 v0.11.3 PostgreSQL 16,15,14,13,12
Tembo pg_vectorize v0.17.0 v0.11.3 PostgreSQL 16,15,14 pgmq, pg_cron
Tembo pg_later v0.1.1 v0.11.3 PostgreSQL 16,15,14,13 pgmq
VADOSWARE pg_idkit v0.2.3 v0.11.3 Apache-2.0 16,15,14,13,12
pgsmcrypto pgsmcrypto v0.1.0 v0.11.3 MIT 16,15,14,13,12
kelvich pg_tiktoken v0.0.1 v0.10.2 Apache-2.0 16,15,14,13,12
rustprooflabs pgdd v0.5.2 v0.10.2 MIT 16,15,14,13,12
timescale vectorscale v0.2.0 v0.11.4 PostgreSQL 16,15,14,13,12
kaspermarstal plprql v0.1.0 v0.11.4 Apache-2.0 16,15,14,13,12

Download

cd ~;
cd ~; git clone --recursive [email protected]:postgresml/postgresml.git  ; cd ~/postgresml     && git checkout v2.9.3
cd ~; git clone --recursive https://github.com/paradedb/paradedb.git  ; cd ~/paradedb       && git checkout v0.8.6
cd ~; git clone [email protected]:supabase/pg_graphql.git                ; cd ~/pg_graphql     && git checkout v1.5.7                 
cd ~; git clone [email protected]:supabase/pg_jsonschema.git             ; cd ~/pg_jsonschema  && git checkout v0.3.1                    
cd ~; git clone [email protected]:supabase/wrappers.git                  ; cd ~/wrappers       && git checkout v0.4.1               
cd ~; git clone [email protected]:tembo-io/pgmq.git                      ; cd ~/pgmq           && git checkout v1.2.1 #v1.3.3                        
cd ~; git clone [email protected]:tembo-io/pg_vectorize.git              ; cd ~/pg_vectorize   && git checkout v0.17.0 
cd ~; git clone [email protected]:tembo-io/pg_later.git                  ; cd ~/pg_later       && git checkout v0.1.1               
cd ~; git clone [email protected]:VADOSWARE/pg_idkit.git                 ; cd ~/pg_idkit       && git checkout v0.2.3               
cd ~; git clone [email protected]:zhuobie/pgsmcrypto.git 
cd ~; git clone [email protected]:kelvich/pg_tiktoken.git
cd ~; git clone [email protected]:rustprooflabs/pgdd.git                 ; cd ~/pgdd           && git checkout 0.5.2           
cd ~; git clone [email protected]:kaspermarstal/plprql.git               ; cd ~/plprql         && git checkout v0.1.0             
cd ~; git clone [email protected]:timescale/pgvectorscale.git            ; cd ~/pgvectorscale  && git checkout 0.2.0                    

cd ~/paradedb;     cargo update
cd ~/pgmq/pgmq-rs; cargo update

Build

cd ~/paradedb/pg_search;       pg16 build;    pg15 build;    pg14 build;    pg13 build;  pg12 build; 
cd ~/paradedb/pg_lakehouse;    pg16 build;    pg15 build;                    
cd ~/pg_graphql;               pg16 build;    pg15 build;    pg14 build;     
cd ~/pg_jsonschema;            pg16 build;    pg15 build;    pg14 build;    pg13 build;  pg12 build; 
cd ~/wrappers/wrappers;        pg16 build;    pg15 build;    pg14 build;     
cd ~/pgmq;                     pg16 build;    pg15 build;    pg14 build;    pg13 build;  pg12 build; 
cd ~/pg_tier;                  pg16 build;                                   
cd ~/pg_vectorize/extension;   pg16 build;    pg15 build;    pg14 build;                
cd ~/pg_later;                 pg16 build;    pg15 build;    pg14 build;    pg13 build; 
cd ~/pgsmcrypto;               pg16 build;    pg15 build;    pg14 build;    pg13 build;  pg12 build; 
cd ~/pg_idkit;                 pg16 build;    pg15 build;    pg14 build;    pg13 build;  pg12 build; 
cd ~/plprql/plprql;            pg16 build;    pg15 build;    pg14 build;    pg13 build;  pg12 build; 

export RUSTFLAGS="-C target-feature=+avx2,+fma" cd ~/pgvectorscale/pgvectorscale;
pg16 build;    pg15 build;

# pgrx 0.10.2
cd ~/pgdd;                     pg16 build;    pg15 build;    pg14 build;       # 16,15,14
cd ~/pg_tiktoken;              pg16 build;    pg15 build;    pg14 build;       # 16,15,14

3.3 - Build PLv8

Build the Javascript procedural language extension PLv8 for PostgreSQL.

Build plv8

Install Deps (EL)

sudo yum groupinstall --nobest -y 'Development Tools'; 
sudo yum install git cmake

Clone the source

rpmdev-setuptree
cd ~/rpmbuild/SOURCES/
git clone [email protected]:plv8/plv8.git

cd plv8; git checkout v3.2.2
make -j16

Make RPM:

rpmbuild --define "pgmajorversion 16"  -ba ~/rpmbuild/SPECS/plv8.spec
rpmbuild --define "pgmajorversion 15"  -ba ~/rpmbuild/SPECS/plv8.spec
rpmbuild --define "pgmajorversion 14"  -ba ~/rpmbuild/SPECS/plv8.spec
rpmbuild --define "pgmajorversion 13"  -ba ~/rpmbuild/SPECS/plv8.spec
rpmbuild --define "pgmajorversion 12"  -ba ~/rpmbuild/SPECS/plv8.spec

或者:

cd ~/rpmbuild/SPECS && make plv8

3.4 - Build PostgresML

There are some extra settings to build PostgresML on EL8 and EL9.

It’s quite tricky to build PostgresML on EL8 and EL9, here is the tutorial.

First of all, configure the RPM build environment, install rust and pgrx according to the instructions.


Python3

Install Python and setup alternatives:

sudo yum install python3.11 python3.11-devel python3-virtualenv openssl openssl-devel cmake pkg-config libomp libomp-devel openblas* llvm llvm-devel lld openblas*
sudo alternatives --install /usr/bin/python3 python3 /usr/bin/python3.11 1
sudo alternatives --set python3 /usr/bin/python3.11
sudo alternatives --set python /usr/bin/python3.11

Clone Repo

Clone pgml with git then checkout to the latest release:

cd ~; git clone --recursive [email protected]:postgresml/postgresml.git; 
cd ~/postgresml && git checkout v2.9.3
cd ~/postgresml/pgml-extension

EL8 Ad hoc

This part is only for EL8, EL9 is not affected.

sudo dnf install gcc-toolset-13
source /opt/rh/gcc-toolset-13/enable
source /opt/rh/gcc-toolset-13/enable
export CC=/opt/rh/gcc-toolset-13/root/usr/bin/gcc
export CXX=/opt/rh/gcc-toolset-13/root/usr/bin/g++
export LD_LIBRARY_PATH=/opt/rh/gcc-toolset-13/root/usr/lib64:$LD_LIBRARY_PATH

You have to change build.rs, add stdc++fs and gcc-toolset-13:

println!("cargo:rustc-link-lib=static=stdc++fs");
println!("cargo:rustc-link-search=native=/opt/rh/gcc-toolset-13/root/usr/lib/gcc/x86_64-redhat-linux/13");

The whole file should be like this:

fn main() {
    #[cfg(target_os = "macos")]
    {
        println!("cargo:rustc-link-search=/opt/homebrew/opt/openblas/lib");
        println!("cargo:rustc-link-search=/opt/homebrew/opt/libomp/lib");
    }

    // PostgreSQL is using dlopen(RTLD_GLOBAL). this will parse some
    // of symbols into the previous opened .so file, but the others will use a
    // relative offset in pgml.so, and will cause a null-pointer crash.
    //
    // hide all symbol to avoid symbol conflicts.
    //
    // append mode (link-args) only works with clang ld (lld)
    println!(
        "cargo:link-args=-Wl,--version-script={}/ld.map",
        std::env::current_dir().unwrap().to_string_lossy(),
    );

    println!("cargo:rustc-link-lib=static=stdc++fs");
    println!("cargo:rustc-link-search=native=/opt/rh/gcc-toolset-13/root/usr/lib/gcc/x86_64-redhat-linux/13");

    vergen::EmitBuilder::builder().all_git().emit().unwrap();
}

Then change the Cargo.toml

Add cc = "1.0" to the [build-dependencies] section:

[build-dependencies]
+++ cc = "1.0"

Building

To build PostgresML against PostgreSQL 16, 15, 14:

cd ~/postgresml/pgml-extension; pg16 build; pg15 build; pg14 build;

The rpm package will be placed in ~/rpmbuild/RPMS/x86_64/ directory.

rm -rf ~/rpmbuild/SOURCES/pgml_16; cp -r ~/postgresml/pgml-extension/target/release/pgml-pg16 ~/rpmbuild/SOURCES/pgml_16;
rm -rf ~/rpmbuild/SOURCES/pgml_15; cp -r ~/postgresml/pgml-extension/target/release/pgml-pg15 ~/rpmbuild/SOURCES/pgml_15;
rm -rf ~/rpmbuild/SOURCES/pgml_14; cp -r ~/postgresml/pgml-extension/target/release/pgml-pg14 ~/rpmbuild/SOURCES/pgml_14;
cd ~/rpmbuild/SPECS && make pgml

# 或手工进行构建:
rm -rf ~/rpmbuild/RPMS/x86_64/pgml*.rpm;
rpmbuild --without debuginfo --define "pgmajorversion 16" -ba ~/rpmbuild/SPECS/pgml.spec
rpmbuild --without debuginfo --define "pgmajorversion 15" -ba ~/rpmbuild/SPECS/pgml.spec
rpmbuild --without debuginfo --define "pgmajorversion 14" -ba ~/rpmbuild/SPECS/pgml.spec

3.5 - Build ParadeDB

There are some important ParadeDB extensions that need to be built and packaged.

Setup the environment, rustpgrx

Beware of the pgrx version.

Clone paradedb repo and checkout the latest version:

cd ~; git clone --recursive [email protected]:paradedb/paradedb.git;
cd ~/paradedb; git checkout v0.8.6

cd ~/paradedb/pg_search/
cargo update

# build pg_search
pg16 build
pg15 build
pg14 build
pg13 build
pg12 build

# move to rpmbuild SOURCES dir
rm -rf ~/rpmbuild/SOURCES/pg_search_16; cp -r ~/paradedb/target/release/pg_search-pg16 ~/rpmbuild/SOURCES/pg_search_16;
rm -rf ~/rpmbuild/SOURCES/pg_search_15; cp -r ~/paradedb/target/release/pg_search-pg15 ~/rpmbuild/SOURCES/pg_search_15;
rm -rf ~/rpmbuild/SOURCES/pg_search_14; cp -r ~/paradedb/target/release/pg_search-pg14 ~/rpmbuild/SOURCES/pg_search_14;
rm -rf ~/rpmbuild/SOURCES/pg_search_13; cp -r ~/paradedb/target/release/pg_search-pg13 ~/rpmbuild/SOURCES/pg_search_13;
rm -rf ~/rpmbuild/SOURCES/pg_search_12; cp -r ~/paradedb/target/release/pg_search-pg12 ~/rpmbuild/SOURCES/pg_search_12;

# packaging with rpmbuild
cd ~/rpmbuild/SPECS && make pg_search
rpmbuild --without debuginfo --define "pgmajorversion 16" -ba ~/rpmbuild/SPECS/pg_search.spec
rpmbuild --without debuginfo --define "pgmajorversion 15" -ba ~/rpmbuild/SPECS/pg_search.spec
rpmbuild --without debuginfo --define "pgmajorversion 14" -ba ~/rpmbuild/SPECS/pg_search.spec
rpmbuild --without debuginfo --define "pgmajorversion 13" -ba ~/rpmbuild/SPECS/pg_search.spec
rpmbuild --without debuginfo --define "pgmajorversion 12" -ba ~/rpmbuild/SPECS/pg_search.spec

pg_lakehouse

cd ~/paradedb/pg_lakehouse/
cargo update

# build pg_lakehouse
pg16 build
pg15 build

# move to rpmbuild SOURCES dir
rm -rf ~/rpmbuild/SOURCES/pg_lakehouse_16;  cp -r ~/paradedb/target/release/pg_lakehouse-pg16   ~/rpmbuild/SOURCES/pg_lakehouse_16;
rm -rf ~/rpmbuild/SOURCES/pg_lakehouse_15;  cp -r ~/paradedb/target/release/pg_lakehouse-pg15   ~/rpmbuild/SOURCES/pg_lakehouse_15;

# packaging with rpmbuild
cd ~/rpmbuild/SPECS && make pg_lakehouse
rpmbuild --without debuginfo --define "pgmajorversion 16" -ba ~/rpmbuild/SPECS/pg_lakehouse.spec
rpmbuild --without debuginfo --define "pgmajorversion 15" -ba ~/rpmbuild/SPECS/pg_lakehouse.spec

3.6 - Build DuckDB FDW

How to build DuckDB FDW extension and its dependencies libduckdb.so

DuckDB FDW depends on the libduckdb.so dynamic library. On Ubuntu and Debian, you can directly use the precompiled binaries provided by DuckDB.

On EL-based operating systems, you need to compile libduckdb from scratch and use this version to compile duckdb_fdw.

Pigsty’s github.com/pgsty/pgsql-rpm repository offers pre-built templates:

DuckDB has provided the libduckdb-src.zip source code, making it convenient for building.


Build Notes

You can only build this on EL8 & EL9 (EL7 not supported), to build duckdb_fdw, you also need to build libduckdb from source.

To build libduckdb-src, use the same building args as building duckdb_fdw:

clang++ -c -fPIC -std=c++11 -D_GLIBCXX_USE_CXX11_ABI=0 duckdb.cpp -o duckdb.o
clang++ -shared -o libduckdb.so *.o

To build libduckdb:

cd ~/rpmbuild/SPECS && make libduckdb

To build duckdb_fdw:

cd ~/rpmbuild/SPECS && make duckdb_fdw

3.7 - Build Parquet S3 FDW

Build Parquet S3 FDW extension alone with its deps: libarrow, libparquet, 以及 libaws-cpp

There are two major deps for parquet_s3_fdw: arrowawssdk


Build arrow

Clone arrow repo and build it with cmake:

cd ~ ; git clone [email protected]:apache/arrow.git;
mkdir -p ~/arrow/cpp/release; cd ~/arrow/cpp/release;
cmake .. -DARROW_PARQUET=ON -DARROW_S3=ON; make -j8
sudo make install

Build libaws

There are many drivers in libaws-cpp, but we only need two: core and s3:

# install building deps
sudo yum install libcurl-devel openssl-devel libuuid-devel pulseaudio-libs-devel
# sudo apt-get install libcurl4-openssl-dev libssl-dev uuid-dev libpulse-dev # debian/ubuntu

# clone libaws repo (very big!)
cd ~; git clone --recurse-submodules [email protected]:aws/aws-sdk-cpp.git

mkdir -p ~/aws-sdk-cpp/release; cd ~/aws-sdk-cpp/release;
cmake .. -DBUILD_ONLY="s3"; make -j20
sudo make install

build libarrow-s3

Collect the generated .so files, then package them into an RPM / DEB package:

mkdir -p ~/libarrow-s3
cp -d ~/arrow/cpp/release/release/libarrow.so*                                     ~/libarrow-s3/
cp -d ~/arrow/cpp/release/release/libparquet.so*                                   ~/libarrow-s3/
cp -f ~/aws-sdk-cpp/release/generated/src/aws-cpp-sdk-s3/libaws-cpp-sdk-s3.so      ~/libarrow-s3/
cp -f ~/aws-sdk-cpp/release/src/aws-cpp-sdk-core/libaws-cpp-sdk-core.so            ~/libarrow-s3/
cp -d ~/aws-sdk-cpp/release/lib/libaws-c-event-stream.so*                          ~/libarrow-s3/
cp -d ~/aws-sdk-cpp/release/lib/libs2n.so*                                         ~/libarrow-s3/
cp -d ~/aws-sdk-cpp/release/crt/aws-crt-cpp/libaws-crt-cpp.so                        ~/libarrow-s3/
cp -d ~/aws-sdk-cpp/release/crt/aws-crt-cpp/crt/aws-c-common/libaws-c-common.so*     ~/libarrow-s3/
cp -d ~/aws-sdk-cpp/release/crt/aws-crt-cpp/crt/aws-checksums/libaws-checksums.so*   ~/libarrow-s3/
cp -d ~/aws-sdk-cpp/release/crt/aws-crt-cpp/crt/aws-c-io/libaws-c-io.so*             ~/libarrow-s3/
cp -d ~/aws-sdk-cpp/release/crt/aws-crt-cpp/crt/aws-c-mqtt/libaws-c-mqtt.so*         ~/libarrow-s3/
cp -d ~/aws-sdk-cpp/release/crt/aws-crt-cpp/crt/aws-c-cal/libaws-c-cal.so*           ~/libarrow-s3/
cp -d ~/aws-sdk-cpp/release/crt/aws-crt-cpp/crt/aws-checksums/libaws-checksums.so*   ~/libarrow-s3/
cp -d ~/aws-sdk-cpp/release/crt/aws-crt-cpp/crt/aws-c-s3/libaws-c-s3.so*             ~/libarrow-s3/
cp -d ~/aws-sdk-cpp/release/crt/aws-crt-cpp/crt/aws-c-common/libaws-c-common.so*     ~/libarrow-s3/
cp -d ~/aws-sdk-cpp/release/crt/aws-crt-cpp/crt/aws-c-http/libaws-c-http.so*         ~/libarrow-s3/
cp -d ~/aws-sdk-cpp/release/crt/aws-crt-cpp/crt/aws-c-sdkutils/libaws-c-sdkutils.so* ~/libarrow-s3/
cp -d ~/aws-sdk-cpp/release/crt/aws-crt-cpp/crt/aws-c-auth/libaws-c-auth.so*         ~/libarrow-s3/
cp -d ~/aws-sdk-cpp/release/crt/aws-crt-cpp/crt/aws-c-compression/libaws-c-compression.so* ~/libarrow-s3/

Remove empty RPATH from generated so files (EL system), using patchelf binary:

cd ~/libarrow-s3/
patchelf --remove-rpath libarrow.so.1800.0.0
patchelf --remove-rpath libparquet.so.1800.0.0
patchelf --remove-rpath libaws-cpp-sdk-core.so
patchelf --remove-rpath libaws-cpp-sdk-s3.so

And finally package these so files into a libarrow-s3 package:

cd ~/rpmbuild/SPECS
rpmbuild -ba ~/rpmbuild/SPECS/libarrow-s3.spec
sudo rpm -ivh ~/rpmbuild/RPMS/x86_64/libarrow-s3-17.0.0-1PIGSTY.*