Guides - PostgreSQL Extensions

Fully managed cloud database clusters built on top of Linode’s trusted and reliable platform.

Create a Linode account to try this guide with a $ credit.
This credit will be applied to any valid services used during your first  days.

The functionality of PostgreSQL can be enhanced through the use of extensions. Linode’s PostgreSQL Managed Database service supports many of these extensions.

Manage Extensions

Many extensions can be viewed, installed, and removed directly from the PostgreSQL command-line prompt. To access this prompt, connect to your database using the psql tool. See Connect to a PostgreSQL Database > psql.

View Installed Extensions

To view the extensions that are currently installed on your PostgreSQL Managed Database, run the \dx command at the prompt. The output should be similar to the following, displaying each extension along with its version number, schema, and a short description.

     Name      | Version |   Schema   |          Description
---------------+---------+------------+--------------------------------
 plpgsql       | 1.0     | pg_catalog | PL/pgSQL procedural language

View Available Extensions

To see a full list of all the extensions available for your version of PostgreSQL, run the following query. You can also review the List of Available Extensions below.

SELECT * FROM pg_available_extensions;
Caution
Linode does not provide superuser access to PostgreSQL Managed Databases. As such, some extensions may not function properly or may otherwise encounter permissions issues.

Install an Extension

To install one of the available extensions on your database, use the CREATE EXTENSION command, replacing [extension_name] with the name of the extension you wish to install.

CREATE EXTENSION IF NOT EXISTS [extension_name];

If this command does not work, the extension may either not be compatible or it may need to be manually enabled on your Managed Database by our team. Review the extensions list below.

Remove an Extension

To remove an extension, use the DROP EXTENSION command, replacing [extension_name] with the name of the extension you wish to install.

DROP EXTENSION [extension_name];

List of Available Extensions

The table below lists all of the PostgreSQL extensions that may be supported by our Managed Database service, along with the compatible PostgreSQL versions.

Caution
Linode does not provide superuser access to PostgreSQL Managed Databases. As such, some extensions may not function properly or may otherwise encounter permissions issues. Extensions that are known not to work, such as adminpack, have been marked as incompatible in the list below. If you encounter an extension that isn’t working as expected due to permissions issues, our team can review the extension. Reach out to Support with the extension name, the name of the database for which you wish to use the extension, and your use case.
ExtensionCompatible PostgreSQL Version(s)Description
address_standardizer11, 12, 13Used to parse an address into constituent elements. Generally used to support geocoding address normalization step.
address_standardizer_data_us11, 12, 13Example dataset for address_standardizer.
adminpack (incompatible)10, 11, 12, 13Administrative functions for PostgreSQL
amcheck10, 11, 12, 13Functions for verifying relation integrity
amcheck_next10, 11Functions for verifying relation integrity
autoinc10, 11, 12, 13Functions for auto incrementing fields
bloom10, 11, 12, 13Bloom access method - signature file based index
btree_gin10, 11, 12, 13Support for indexing common data types in GIN
btree_gist10, 11, 12, 13Support for indexing common data types in GiST
chkpass10Data type for auto-encrypted passwords
citext10, 11, 12, 13Data type for case-insensitive character strings
cube10, 11, 12, 13Data type for multidimensional cubes
dblink10, 11, 12, 13Connect to other PostgreSQL databases from within a database
dict_int10, 11, 12, 13Text search dictionary template for integers
dict_xsyn10, 11, 12, 13Text search dictionary template for extended synonym processing
earthdistance10, 11, 12, 13Calculate great-circle distances on the surface of the Earth
file_fdw10, 11, 12, 13Foreign-data wrapper for flat file access
fuzzystrmatch*10, 11, 12, 13Determine similarities and distance between strings
hll10, 11, 12, 13Type for storing HyperLogLog data
hstore10, 11, 12, 13Data type for storing sets of (key, value) pairs
hstore_plperl10, 11, 12, 13Transform between hstore and plperl
hstore_plperlu10, 11, 12, 13Transform between hstore and plperlu
hypopg11, 12, 13Hypothetical indexes for PostgreSQL
insert_username10, 11, 12, 13Functions for tracking who changed a table
intagg10, 11, 12, 13Integer aggregator and enumerator (obsolete)
intarray10, 11, 12, 13Functions, operators, and index support for 1-D arrays of integers
ip4r10, 11, 12, 13
isn10, 11, 12, 13Data types for international product numbering standards
jsonb_plperl11, 12, 13Transform between jsonb and plperl
jsonb_plperlu11, 12, 13Transform between jsonb and plperlu
lo10, 11, 12, 13Large Object maintenance
ltree10, 11, 12, 13Data type for hierarchical tree-like structures
moddatetime10, 11, 12, 13Functions for tracking last modification time
orafce10, 11, 12, 13Functions and operators that emulate a subset of functions and packages from the Oracle RDBMS
pageinspect10, 11, 12, 13Inspect the contents of database pages at a low level
pg_buffercache10, 11, 12, 13Examine the shared buffer cache
pg_cron11, 12, 13Job scheduler for PostgreSQL
pg_freespacemap10, 11, 12, 13Examine the free space map (FSM)
pg_prewarm10, 11, 12, 13Prewarm relation data
pg_repack10, 11, 12, 13Reorganize tables in PostgreSQL databases with minimal locks
pg_stat_statements10, 11, 12, 13Track execution statistics of all SQL statements executed
pg_trgm10, 11, 12, 13Text similarity measurement and index searching based on trigrams
pg_visibility10, 11, 12, 13Examine the visibility map (VM) and page-level visibility info
pgaudit10, 11, 12, 13Provides auditing functionality
pgcrypto10, 11, 12, 13Cryptographic functions
pglogical10, 11, 12, 13PostgreSQL Logical Replication
pglogical_origin10, 11, 12, 13Dummy extension for compatibility when upgrading from Postgres 9.4
pgrowlocks10, 11, 12, 13Show row-level locking information
pgstattuple10, 11, 12, 13Show tuple-level statistics
plpgsql10, 11, 12, 13PL/pgSQL procedural language
postgis*10, 11, 12, 13PostGIS geometry and geography spatial types and functions
postgis_sfcgal10, 11, 12, 13PostGIS SFCGAL functions
postgis_tiger_geocoder10, 11, 12, 13PostGIS tiger geocoder and reverse geocoder
postgis_topology10, 11, 12, 13PostGIS topology spatial types and functions
postgres_fdw10, 11, 12, 13Foreign-data wrapper for remote PostgreSQL servers
prefix10, 11, 12, 13Prefix Range module for PostgreSQL
refint10, 11, 12, 13Functions for implementing referential integrity (obsolete)
seg10, 11, 12, 13Data type for representing line segments or floating-point intervals
sslinfo10, 11, 12, 13Information about SSL certificates
tablefunc10, 11, 12, 13Functions that manipulate whole tables, including crosstab
tcn10, 11, 12, 13Triggered change notifications
timescaledb11, 12, 13Enables scalable inserts and complex queries for time-series data
timetravel10, 11Functions for implementing time travel
tsm_system_rows10, 11, 12, 13TABLESAMPLE method which accepts number of rows as a limit
tsm_system_time10, 11, 12, 13TABLESAMPLE method which accepts time in milliseconds as a limit
unaccent10, 11, 12, 13Text search dictionary that removes accents
uuid-ossp10, 11, 12, 13Generate universally unique identifiers (UUIDs)
xml210, 11, 12, 13XPath querying and XSLT

* This extension may need to be manually enabled by our team. Contact Support with the name of the extension and the name of the Managed Database you wish to enable it on.

If you would like to use an extension that’s not currently listed here, contact our Support team and they’ll be able to send your feedback to our developers.

This page was originally published on


Your Feedback Is Important

Let us know if this guide was helpful to you.