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.
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
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 |
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 |
chkpass |
A data type for auto-encrypted passwords (PostgreSQL 10 only) |
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 |
earthdistance |
Use to calculate distances across the surface of the Earth |
fuzzystrmatch |
Use to determine similarities and distance between strings |
hll |
A data type for HyperLogLog data (PostgreSQL 11 and newer) |
hstore |
A data type for sets of (key, value) pairs |
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 |
lo |
Use for large object maintenance |
ltree |
A data type for hierarchical tree-like structures |
pg_buffercache |
Use to examine the shared buffer cache |
pg_cron |
Job scheduling tool |
pg_partman |
Use to manage partitioned tables by time or ID |
pg_prewarm |
Prewarm relation data (PostgreSQL 11 and newer) |
pg_prometheus |
Prometheus metrics (PostgreSQL 12) |
pg_repack |
Use to reorganize tables with minimal locks |
pg_similarity |
Support similarity queries (PostgreSQL 13 and newer) |
pg_stat_statements |
Use to track planning and execution statistics of all SQL statements executed |
pg_trgm |
Text similarity measurement and index searching based on trigrams |
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) |
plcoffee |
PL/CoffeeScript trusted procedural language (PostgreSQL 10 only) |
plls |
PL/LiveScript trusted procedural language (PostgreSQL 10 only) |
plperl |
PL/Perl procedural language |
plpgsql |
PL/pgSQL procedural language |
plv8 |
PL/JavaScript trusted procedural language (PostgreSQL 10 only) |
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 |
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 |