Postgres extensions
Explore supported Postgres extensions by category. Also see:
- List view of supported extensions and versions
- Install an extension
- Update an extension
- Request extension support
AI / Machine Learning
pg_tiktoken
Tokenize data in Postgres using the OpenAI tiktoken library
pgvector
Store vector embeddings and perform vector similarity search in Postgres
Analytics
pg_mooncake
An experimental Postgres extension that adds native columnstore tables with DuckDB execution
hll
Implements a HyperLogLog data structure as a native data type for efficient and tunable distinct value counting
timescaledb
Enables Postgres as a time-series database for efficient storage and retrieval of time-series data
Auditing / Logging
insert_username
Implements a trigger that stores the current user's name into a text field, useful for tracking who modified a particular row within a table
moddatetime
Implements a trigger that automatically updates a timestamp column to the current timestamp whenever a row is modified
pgrowlocks
Provides a function that shows row locking information for a specified table, useful in concurrency and deadlock debugging
tcn
Provides a trigger function to notify listeners of changes to a table, allowing applications to respond to changes in the database
Data / Transformations
address_standardizer
A single-line address parser that takes an input address and normalizes it based on a set of rules
address_standardizer_data_us
Provides data for standardizing US addresses, for use with the address_standardizer extension
citext
Provides a case-insensitive character string type that internally calls lower when comparing values in Postgres
cube
Implements the cube data type for representing multidimensional cubes in Postgres
earthdistance
Provides cube-based and point-based approaches to calculating great circle distances on the surface of the Earth
hstore
Implements an hstore data type for storing and manipulating sets of key-value pairs within a single Postgres value
intagg
Provides an integer aggregator and enumerator for Postgres
intarray
Offers functions and operators for manipulating and searching arrays of integers within Postgres
isn
Implements data types for international product numbering standards: EAN13, UPC, ISBN (books), ISMN (music), and ISSN (serials)
ltree
Provides data types for representing labels of data stored in a hierarchical tree-like structure and facilities for searching through label trees
pg_graphql
Adds GraphQL support to Postgres, allowing you to query your database via GraphQL
pg_hashids
Enables the generation of short, unique hash ids from integers, useful for obfuscating internal ids
pg_jsonschema
Provides support for JSON schema validation on json and jsonb data types
pg_uuidv7
Enables creating valid UUID Version 7 values in Postgres, enabling globally unique identifiers with temporal ordering
pgx_ulid
A full-featured extension for generating and working with ULID (Universally Unique Lexicographically Sortable Identifiers)
seg
Implements the seg data type for storage and manipulation of line segments or floating-point ranges, useful for geometric and scientific applications
semver
A Postgres data type for the Semantic Version format with support for btree and hash indexing
tablefunc
Contains functions that return tables (multiple rows), including crosstab, which can pivot row data into columns dynamically
unaccent
A text search dictionary that removes accents from characters, simplifying text search in Postgres
unit
Implements a data type for SI units, plus byte, for storage, manipulation, and calculation of scientific units
uuid-ossp
Provides functions to generate universally unique identifiers (UUIDs) in Postgres, supporting various UUID standards
wal2json
A Postgres logical decoding plugin that converts Write-Ahead Log (WAL) changes into JSON objects
xml2
Enables XPath queries and XSLT functionality directly within Postgres, enabling XML data processing
Debugging
moddatetime
Automatically updates a timestamp column to the current timestamp whenever a row is modified in Postgres
pgrowlocks
Provides a function that shows row locking information for a specified table, which can aid in concurrency and deadlock debugging
pgTap
A unit testing framework for Postgres, enabling sophisticated testing of database queries and functions
plpgsql_check
Provides a linter and debugger for PL/pgSQL code, helping identify errors and optimize PL/pgSQL functions
Geospatial
cube
Implements a data type for representing multidimensional cubes in Postgres
earthdistance
Provides cube-based and point-based approaches to calculating great circle distances on the surface of the Earth
h3
Integrates Uber's H3 geospatial indexing system that combines the benefits of a hexagonal grid with S2's hierarchical subdivisions
h3_postgis
A PostGIS extension for H3, enabling advanced spatial analysis and indexing
pgrouting
Extends PostGIS/Postgres databases, providing geospatial routing and other network analysis functionality
postgis
Extends Postgres to allow GIS (Geographic Information Systems) objects to be stored in the database, enabling spatial queries directly in SQL
postgis_raster
Adds support for raster data to PostGIS, enabling advanced geospatial analysis on raster images
postgis_sfcgal
Provides support for advanced 3D geometries in PostGIS, based on the SFCGAL library
postgis_tiger_geocoder
Enables geocoding and reverse geocoding capabilities in PostGIS using TIGER/Line data
postgis_topology
Extends PostGIS with support for topological data types and functions, facilitating the analysis of spatial relationships
Index / Table optimization
bloom
Provides an index access method for Postgres based on Bloom filters
btree_gin
Provides GIN operator classes that implement B-tree equivalent behavior
btree_gist
Provides GiST index operator classes that implement B-tree equivalent behavior
ip4r
Provides a range index type and functions for efficiently storing and querying IPv4 and IPv6 ranges and addresses in Postgres
pg_ivm
Provides an Incremental View Maintenance (IVM) feature for Postgres
pg_partman
A partition manager extension that enables creating and managing time-based and number-based table partition sets in Postgres
pg_prewarm
Allows manual preloading of relation data into the Postgres buffer cache, reducing access times for frequently queried tables
pg_roaringbitmap
Implements Roaring Bitmaps in Postgres for efficient storage and manipulation of bit sets
rum
Provides an access method to work with a RUM index, designed to speed up full-text searches
Metrics
neon
Provides functions and views designed to gather Neon-specific metrics
pg_stat_statements
Tracks planning and execution statistics for all SQL statements executed, aiding in performance analysis and tuning
pgstattuple
Offers functions to show tuple-level statistics for tables, helping identify bloat and efficiency opportunities
tsm_system_rows
Provides a table sampling method that selects a fixed number of table rows randomly
tsm_system_time
Offers a table sampling method based on system time, enabling consistent sample data retrieval over time
Orchestration
tcn
Provides a trigger function to notify listeners of changes to a table, allowing applications to respond to changes in the database
pg_partman
A partition manager extension that enables creating and managing time-based and number-based table partition sets in Postgres
Procedural languages
plcoffee
Enables writing functions in CoffeeScript, a Javascript dialect with a syntax similar to Ruby
plls
Enables writing functions in LiveScript, a Javascript dialect that serves as a more powerful successor to CoffeeScript
plv8
A Postgres procedural language powered by V8 Javascript Engine for writing functions in Javascript that are callable from SQL
plpgsql
The default procedural language for Postgres, enabling the creation of complex functions and triggers
Query optimization
hypopg
Provides the ability to create hypothetical (virtual) indexes in Postgres for performance testing
pg_hint_plan
Allows developers to influence query plans with hints in SQL comments, improving performance and control over query execution
Scientific computing
cube
Implements the cube data type for representing multidimensional cubes in Postgres
rdkit
Integrates the RDKit cheminformatics toolkit with Postgres, enabling chemical informatics operations directly in the database
seg
Implements the seg data type for storage and manipulation of line segments or floating-point intervals, useful for representing laboratory measurements
unit
Implements a data type for SI units, plus byte, for storage, manipulation, and calculation of scientific units
Search
citext
Provides a case-insensitive character string type that internally calls lower when comparing values in Postgres
dict_int
Provides a text search dictionary template for indexing integer data in Postgres
fuzzystrmatch
Provides several functions to determine similarities and distance between strings in Postgres
pg_trgm
Provides functions and operators for determining the similarity of alphanumeric text based on trigram matching, and index operator classes for fast string similarity search
prefix
A prefix range module that supports efficient queries on text columns with prefix-based searching and matching capabilities
unaccent
A text search dictionary that removes accents from characters, simplifying text search in Postgres
Security
pgcrypto
Offers cryptographic functions, allowing for encryption and hashing of data within Postgres
pgjwt
Implements JSON Web Tokens (JWT) in Postgres, allowing for secure token creation and verification
Tooling / Admin
autoinc
Provides an autoinc() function that stores the next value of a sequence into an integer field
hypopg
Provides the ability to create hypothetical (virtual) indexes in Postgres for performance testing
insert_username
Automatically inserts the username of the person executing an insert operation into a specified table in Postgres
lo
Provides support for managing large objects (LOBs) in Postgres, including a data type lo and a trigger lo_manage
neon_utils
Provides a function for monitoring how Neon's Autoscaling feature allocates vCPU in response to workload
pgtap
A unit testing framework for Postgres, enabling sophisticated testing of database queries and functions
refint
Provides functions for maintaining foreign key constraints