PostgreSQL is an open source, object-relational database built with a focus on 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;
You can request support for an extension on ideas.digitalocean.com by either voting for an existing request or adding a new idea for Managed Databases.
Extension Name | Description |
---|---|
address_standardizer | Used to parse an address into constituent elements. Generally used to support geocoding address normalization step |
address_standardizer_data_us | Address Standardizer US dataset example |
bloom | Bloom access method - signature file based index |
btree_gin | Support for indexing common datatypes in GIN |
btree_gist | Support for indexing common datatypes in GiST |
chkpass | Data type for auto-encrypted passwords |
citext | Data type for case-insensitive character strings |
cube | Data type for multidimensional cubes |
dblink | Connect to other PostgreSQL databases from within a database |
dict_int | Text search dictionary template for integers |
earthdistance | Calculate great-circle distances on the surface of the Earth |
fuzzystrmatch | Determine similarities and distance between strings |
hll | Algorithm for the count-distinct problem, approximating the number of distinct elements in a multiset |
hstore | Data type for storing sets of (key |
intagg | Integer aggregator and enumerator (obsolete) |
intarray | Functions |
isn | Data types for international product numbering standards |
ltree | Data type for hierarchical tree-like structures |
pg_buffercache | Examine the shared buffer cache |
pg_cron | Job scheduler for PostgreSQL |
pg_partman (PostgreSQL 10 only) | Extension to manage partitioned tables by time or ID |
pg_prometheus (PostgreSQL 10-12) | Prometheus metrics for PostgreSQL. The pg_prometheus extension has been sunset by Timescale in favor of promscale and is not supported for PostgreSQL 13. |
pg_repack | Reorganize tables in PostgreSQL databases with minimal locks |
pg_stat_statements | Track execution statistics of all SQL statements executed |
pg_trgm | Text similarity measurement and index searching based on trigrams |
pgcrypto | Cryptographic functions |
pgrouting | pgRouting Extension |
pgrowlocks | Show row-level locking information |
pgstattuple | Show tuple-level statistics |
plcoffee | PL/CoffeeScript (v8) trusted procedural language |
plls | PL/LiveScript (v8) trusted procedural language |
plperl | PL/Perl procedural language |
plperlu | PL/PerlU untrusted procedural language |
plpgsql | PL/pgSQL procedural language |
plv8 (PostgreSQL 10 only) | PL/JavaScript (v8) trusted procedural language |
postgis | PostGIS geometry |
postgis_legacy | Legacy functions for PostGIS |
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 PostgreSQL servers |
rum | RUM index access method |
sslinfo | Information about SSL certificates |
tablefunc | Functions that manipulate whole tables |
timescaledb | Enables scalable inserts and complex queries for time-series data |
tsearch2 | Provides backwards-compatible text search functionality |
tsm_system_rows | TABLESAMPLE method which accepts number of rows as a limit |
unaccent | Text search dictionary that removes accents |
unit | SI units extension |
uuid-ossp | Generate universally unique identifiers (UUIDs) |
wal2json | Logical decoding extensio |