PostgreSQL Supported Extensions

Leverage any open source extension for your fully managed PostgreSQL deployments at ScaleGrid.

At ScaleGrid, all of our fully managed PostgreSQL hosting plans include superuser access which allows you to install and leverage custom PostgreSQL extensions for your deployments.

Below is a list of common extensions used by our customers. If you need any extension that is not already installed, please email [email protected] and we can get it enabled for you.

Supported PostgreSQL ExtensionsDescription
address_standardizerThe address standardizer is a single line address parser that takes an input address and normalizes it based on a set of rules stored in a table and helper lex and gaz tables.
address_standardizer_data_usA sample data extension which contains gaz, lex, and rules tables for US data. This extensions can be installed via: CREATE EXTENSION address_standardizer_data_us;
adminpackadminpack provides a number of support functions which pgAdmin and other administration and management tools can use to provide additional functionality, such as remote management of server log files. Use of all these functions is restricted to superusers.
amcheck_nextThe amcheck module provides functions that allow you to verify the logical consistency of the structure of indexes. If the structure appears to be valid, no error is raised.
autoincA trigger that stores the next value of a sequence into an integer field. This has some overlap with the built-in "serial column" feature, but it is not the same: autoinc() will override attempts to substitute a different field value during inserts, and optionally it can be used to increment the field during updates, too.
bloombloom provides an index access method based on Bloom filters. A Bloom filter is a space-efficient data structure that is used to test whether an element is a member of a set. In the case of an index access method, it allows fast exclusion of non-matching tuples via signatures whose size is determined at index creation.
btree_ginbtree_gin provides sample GIN operator classes that implement B-Tree equivalent behavior for the data types int2, int4, int8, float4, float8, timestamp with time zone, timestamp without time zone, time with time zone, time without time zone, date, interval, oid, money, "char", varchar, text, bytea, bit, varbit, macaddr, inet, and cidr.
btree_gistbtree_gist provides GiST index operator classes that implement B-tree equivalent behavior for the data types int2, int4, int8, float4, float8, numeric, timestamp with time zone, timestamp without time zone, time with time zone, time without time zone, date, interval, oid, money, char, varchar, text, bytea, bit, varbit, macaddr, inet, and cidr.
chkpassThis module implements a data type chkpass that is designed for storing encrypted passwords. Each password is automatically converted to encrypted form upon entry, and is always stored encrypted.
citextThe citext module provides a case-insensitive character string type, citext. Essentially, it internally calls lower when comparing values. Otherwise, it behaves almost exactly like text.
cubeThis module implements a data type cube for representing multidimensional cubes.
dblinkdblink is a module that supports connections to other PostgreSQL databases from within a database session.
dict_intdict_int is an example of an add-on dictionary template for full-text search. The motivation for this example dictionary is to control the indexing of integers (signed and unsigned), allowing such numbers to be indexed while preventing excessive growth in the number of unique words, which greatly affects the performance of searching.
dict_xsyndict_xsyn (Extended Synonym Dictionary) is an example of an add-on dictionary template for full-text search. This dictionary type replaces words with groups of their synonyms, and so makes it possible to search for a word using any of its synonyms.
earthdistanceThe earthdistance module provides two different approaches to calculating great circle distances on the surface of the Earth. One depends on the cube package (which must be installed first), and the other is based on the built-in point datatype, using longitude and latitude for the coordinates.
file_fdwThe file_fdw module provides the foreign-data wrapper file_fdw, which can be used to access data files in the server's file system.
fuzzystrmatchThe fuzzystrmatch module provides several functions to determine similarities and distance between strings.
hllPostgreSQL extension adding HyperLogLog data structures as a native data type.
hstoreThis module implements the hstore data type for storing sets of key/value pairs within a single PostgreSQL value. This can be useful in various scenarios, such as rows with many attributes that are rarely examined, or semi-structured data. Keys and values are simply text strings.
hstore_plperlAdditional extension available that implements transforms for the hstore type for the language PL/Perl.
hstore_plperluAdditional extension available that implements transforms for the hstore type for the language PL/Python.
hstore_plpython2uExtension for PL/Python.
hstore_plpythonuExtension for PL/Python.
insert_usernameinsert_username() is a trigger that stores the current user's name into a text field. This can be useful for tracking who last modified a particular row within a table.
intaggThe intagg module provides an integer aggregator and an enumerator.
intarrayThe intarray module provides a number of useful functions and operators for manipulating null-free arrays of integers. There is also support for indexed searches using some of the operators.
ip4rIPv4/v6 and IPv4/v6 range index type for PostgreSQL.
isnThe isn module provides data types for the following international product numbering standards: EAN13, UPC, ISBN (books), ISMN (music), and ISSN (serials).
loThe lo module provides support for managing Large Objects (also called LOs or BLOBs). This includes a data type lo and a trigger lo_manage.
ltreeThis module implements a data type ltree for representing labels of data stored in a hierarchical tree-like structure. Extensive facilities for searching through label trees are provided.
ltree_plpython2uFix out-of-tree build for transform modules.
ltree_plpythonuAvoid direct cross-module links in hstore_plperl and ltree_plpython.
moddatetimemoddatetime() is a trigger that stores the current time into a timestamp field. This can be useful for tracking the last modification time of a particular row within a table.
orafceThe "orafce" project implements of some functions from the Oracle database. The functionality was verified on Oracle 10g, and the module is useful for production work.
pageinspectThe pageinspect module provides functions that allow you to inspect the contents of database pages at a low level, which is useful for debugging purposes (only by superusers).
pg_buffercacheThe pg_buffercache module provides a means for examining what's happening in the shared buffer cache in real time.
pg_cronThe pg_cron extension is cron-based job scheduler for PostgreSQL. It uses the same syntax as regular cron, but it allows you to schedule PostgreSQL commands directly from the database.
pg_freespacemapThe pg_freespacemap module provides a means for examining the free space map (FSM). It provides a function called pg_freespace, or two overloaded functions, to be precise. The functions show the value recorded in the free space map for a given page, or for all pages in the relation.
pg_prewarmThe pg_prewarm module provides a convenient way to load relation data into either the operating system buffer cache or the PostgreSQL buffer cache.
pg_repackReorganize tables in PostgreSQL databases with minimal locks.
pg_stat_statementsThe pg_stat_statements module provides a means for tracking execution statistics of all SQL statements executed by a server.
pg_trgmThe pg_trgm module provides functions and operators for determining the similarity of alphanumeric text based on trigram matching, as well as index operator classes that support fast searching for similar strings.
pg_visibilityThe pg_visibility module provides a means for examining the visibility map (VM) and page-level visibility information of a table. It also provides functions to check the integrity of a visibility map and to force it to be rebuilt.
pgauditThe PostgreSQL Audit Extension (pgaudit) provides detailed session and/or object audit logging via the standard logging facility provided by PostgreSQL. The goal of PostgreSQL Audit to provide the tools needed to produce audit logs required to pass certain government, financial, or ISO certification audits.
pgcryptoThe pgcrypto module provides cryptographic functions for PostgreSQL.
pglogicalLogical Replication extension for PostgreSQL 10, 9.6, 9.5, 9.4 (Postgres), providing much faster replication than Slony, Bucardo or Londiste, as well as cross-version upgrades.
pglogical_originIf using PostgreSQL 9.4, then the pglogical_origin extension also has to be installed on that node:
pgrowlocksThe pgrowlocks module provides a function to show row locking information for a specified table.
pgstattupleThe pgstattuple module provides various functions to obtain tuple-level statistics.
pgVectorpgVector is a leading open-source PostgreSQL extension for storing vector data commonly used with AI/ML weightings. It provides mechanisms to find nearest neighbors for use cases including search results or product recommendations.
PL/pgSQLPL/pgSQL is a loadable procedural language for the PostgreSQL database system.
plpython2uThe PostgreSQL language named plpython2u implements PL/Python based on the Python 2 language variant.
plpythonuThe PL/Python procedural language allows PostgreSQL functions to be written in the Python language.
postgisPostGIS is a spatial database extender for PostgreSQL object-relational database. It adds support for geographic objects allowing location queries to be run in SQL.
postgis_tiger_geocoderIf you are using PostgreSQL 9.1+ and PostGIS 2.1+, you can take advantage of the new extension model for installing tiger geocoder.
postgis_topologyThe PostGIS Topology types and functions are used to manage topological objects such as faces, edges and nodes.
postgres_fdwThe postgres_fdw module provides the foreign-data wrapper postgres_fdw, which can be used to access data stored in external PostgreSQL servers.
prefixPrefix Range module for PostgreSQL.
refintFunctions for Implementing Referential Integrity
segThis module implements a data type seg for representing line segments, or floating point intervals. seg can represent uncertainty in the interval endpoints, making it especially useful for representing laboratory measurements.
sslinfoThe sslinfo module provides information about the SSL certificate that the current client provided when connecting to PostgreSQL. The module is useless (most functions will return NULL) if the current connection does not use SSL.
tablefuncThe tablefunc module includes various functions that return tables (that is, multiple rows). These functions are useful both in their own right and as examples of how to write C functions that return multiple rows.
tcnThe tcn module provides a trigger function that notifies listeners of changes to any table on which it is attached. It must be used as an AFTER trigger FOR EACH ROW.
timetravelLong ago, PostgreSQL had a built-in time travel feature that kept the insert and delete times for each tuple. This can be emulated using these functions. To use these functions, you must add to a table two columns of abstime type to store the date when a tuple was inserted (start_date) and changed/deleted (stop_date).
tsearch2The tsearch2 module provides backwards-compatible text search functionality for applications that used tsearch2 before text searching was integrated into core PostgreSQL in release 8.3.
tsm_system_rowsThe tsm_system_rows module provides the table sampling method SYSTEM_ROWS, which can be used in the TABLESAMPLE clause of a SELECT command.
tsm_system_timeThe tsm_system_time module provides the table sampling method SYSTEM_TIME, which can be used in the TABLESAMPLE clause of a SELECT command.
unaccentunaccent is a text search dictionary that removes accents (diacritic signs) from lexemes. It's a filtering dictionary, which means its output is always passed to the next dictionary (if any), unlike the normal behavior of dictionaries. This allows accent-insensitive processing for full text search.
uuid-osspThe uuid-ossp module provides functions to generate universally unique identifiers (UUIDs) using one of several standard algorithms. There are also functions to produce certain special UUID constants.
xml2The xml2 module provides XPath querying and XSLT functionality.