Supported PostgreSQL Extensions
Validated on 26 Feb 2023 • Last edited on 23 May 2025
PostgreSQL is an open source, object-relational database built for extensibility, data integrity, and speed. Its concurrency support makes it fully ACID-compliant, and it supports dynamic loading and catalog-driven operations to let users customize its data types, functions, and more.
To expand the functionality of your PostgreSQL cluster, you can use extensions, which are bundled packages of SQL objects.
Install, Upgrade, or Disable Extensions
You can install supported extensions with psql’s CREATE EXTENSION
command:
CREATE EXTENSION <extension-name>;
You can upgrade extensions to their latest version with psql’s ALTER EXTENSION
command:
ALTER EXTENSION <extension-name> UPDATE;
You can disable extensions with psql’s DROP EXTENSION
command:
DROP EXTENSION <extension-name>;
To see a list of extensions currently installed, use the following command:
\dx
Supported Extensions
DigitalOcean PostgreSQL managed databases supports the following extensions. This list is current as of the Validated date on this page.
You can also see a list of available extensions from the psql’s command line, use the following command:
SELECT * FROM pg_available_extensions;
Not all extensions listed in pg_available_extensions
are installable. To access superuser-only extensions, refer to the superuser-only extensions list. If required, assign superuser privileges to enable their use.
Request support for a new extension by voting for an existing request or submitting a new idea.
Extension Name | Description |
---|---|
address_standardizer |
Use to parse an address into constituent elements and support geocoding address normalization |
address_standardizer_data_us |
A US sample dataset for Address standardizer |
amcheck |
Functions for verifying relation |
autoinc |
Functions for auto-incrementing fields |
bloom |
An index access method based on Bloom filters |
bool_plperl |
Use to transform between bool and plperl (PostgreSQL 13 and newer) |
btree_gin |
Support for indexing common data types in GIN |
btree_gist |
Support for indexing common data types in GiST |
citext |
A data type for case-insensitive character strings |
cube |
A data type for multi-dimensional cubes |
dblink |
Connect to other PostgreSQL databases |
dict_int |
Text search dictionary template for integers |
dict_xsyn |
Text search dictionary template for extended synonym processing |
earthdistance |
Use to calculate distances across the surface of the Earth |
file_fdw |
Foreign-data wrapper for flat file access |
fuzzystrmatch |
Use to determine similarities and distance between strings |
h3 |
Bindings for H3, a hierarchical hexagonal geospatial indexing system |
h3_postgis |
Integration for H3 PostGIS |
hstore_plperl |
Transform between hstore and plperl |
hll |
A data type for HyperLogLog data (PostgreSQL 11 and newer) |
hstore |
A data type for sets of (key, value) pairs |
insert_username |
Functions for tracking who changed a table |
intagg |
Integer aggregator and enumerator (obsolete) |
intarray |
Functions, operators, and index support for 1-D arrays of integers |
isn |
Data types for international product-numbering standards |
jsonb_plperl |
Transforms between jsonb and plperl |
lo |
Use for large object maintenance |
ltree |
A data type for hierarchical tree-like structures |
moddatetime |
Functions for tracking last modification time |
pageinspect |
Inspect database pages at a low level |
pgaudit |
Provides session and object audit logging for legal or certification compliance |
pg_buffercache |
Use to examine the shared buffer cache |
pg_cron |
Job scheduling tool |
pg_freespacemap |
Examine the free space map (FSM) |
pg_partman |
Use to manage partitioned tables by time or ID |
pg_prewarm |
Prewarm relation data (PostgreSQL 11 and newer) |
pg_repack |
Use to reorganize tables with minimal locks |
pg_similarity |
Support similarity queries (PostgreSQL 13 and newer) |
pg_stat_monitor |
Provides aggregated stats, client info, plan details, and histogram info |
pg_stat_statements |
Use to track planning and execution statistics of all SQL statements executed |
pg_surgery |
Extension to perform surgery on a damaged relation |
pg_trgm |
Text similarity measurement and index searching based on trigrams |
pg_visibility |
Examine the visibility map (VM) and page-level visibility info |
pg_walinspect |
Functions to inspect contents of PostgreSQL Write-Ahead Log |
pgcrypto |
Cryptographic functions |
pgrouting |
Provide geospatial routing and other network analysis functionality |
pgrowlocks |
Show row-level locking information |
pgstattuple |
Show tuple-level statistics |
pgvector |
Type for vector similarity search (PostgreSQL 13 and newer) |
pgvectorscale |
Type for vector similarity search (PostgreSQL 16 and newer) |
plperl |
PL/Perl procedural language |
plpgsql |
PL/pgSQL procedural language |
postgis |
PostGIS geometry and geography spatial types and functions |
postgis_legacy |
Legacy functions for PostGIS |
postigs_raster |
PostGIS raster types and functions |
postgis_sfcgal |
PostGIS SFCGAL functions |
postgis_tiger_geocoder |
PostGIS tiger geocoder and reverse geocoder |
postgis_topology |
PostGIS topology spatial types and functions |
postgres_fdw |
Foreign-data wrapper for remote servers |
refint |
Functions for implementing referential integrity (obsolete) |
rum |
RUM index access method |
seg |
Data type for representing line segments or floating-point intervals |
sslinfo |
Info about SSL certificates |
tablefunc |
Functions that manipulate entire tables, including crosstab |
tcn |
Triggered change notifications |
timescaledb |
Enables scalable inserts and complex queries for time-series data |
tsm_system_rows |
TABLESAMPLE method which accepts number of rows as a limit |
tsm_system_time |
TABLESAMPLE method which accepts time in milliseconds as a limit |
unaccent |
Text search dictionary that removes accents |
unit |
SI units |
uuid-ossp |
Use to generate UUIDs |
xml2 |
XPath querying and XSLT |