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 Extensions
The 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.
A 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;
adminpack 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.
The 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.
A 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.
bloom 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_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_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.
This 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.
The 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.
This module implements a data type cube for representing multidimensional cubes.
dblink is a module that supports connections to other PostgreSQL databases from within a database session.
dict_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_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.
The 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.
The file_fdw module provides the foreign-data wrapper file_fdw, which can be used to access data files in the server's file system.
The fuzzystrmatch module provides several functions to determine similarities and distance between strings.
PostgreSQL extension adding HyperLogLog data structures as a native data type.
This 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.
Additional extension available that implements transforms for the hstore type for the language PL/Perl.
Additional extension available that implements transforms for the hstore type for the language PL/Python.
Extension for PL/Python.
Extension for PL/Python.
insert_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.
The intagg module provides an integer aggregator and an enumerator.
The 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.
IPv4/v6 and IPv4/v6 range index type for PostgreSQL.
The isn module provides data types for the following international product numbering standards: EAN13, UPC, ISBN (books), ISMN (music), and ISSN (serials).
The lo module provides support for managing Large Objects (also called LOs or BLOBs). This includes a data type lo and a trigger lo_manage.
This 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.
Fix out-of-tree build for transform modules.
Avoid direct cross-module links in hstore_plperl and ltree_plpython.
moddatetime() 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.
The "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.
The 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).
The pg_buffercache module provides a means for examining what's happening in the shared buffer cache in real time.
The 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.
The pg_prewarm module provides a convenient way to load relation data into either the operating system buffer cache or the PostgreSQL buffer cache.
Reorganize tables in PostgreSQL databases with minimal locks.
The pg_stat_statements module provides a means for tracking execution statistics of all SQL statements executed by a server.
The 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.
The 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.
The 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.
The pgcrypto module provides cryptographic functions for PostgreSQL.
Logical 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.
If using PostgreSQL 9.4, then the pglogical_origin extension also has to be installed on that node:
The pgrowlocks module provides a function to show row locking information for a specified table.
The pgstattuple module provides various functions to obtain tuple-level statistics.
PL/pgSQL is a loadable procedural language for the PostgreSQL database system.
The PostgreSQL language named plpython2u implements PL/Python based on the Python 2 language variant.
The PL/Python procedural language allows PostgreSQL functions to be written in the Python language.
PostGIS is a spatial database extender for PostgreSQL object-relational database. It adds support for geographic objects allowing location queries to be run in SQL.
If you are using PostgreSQL 9.1+ and PostGIS 2.1+, you can take advantage of the new extension model for installing tiger geocoder.
The PostGIS Topology types and functions are used to manage topological objects such as faces, edges and nodes.
The postgres_fdw module provides the foreign-data wrapper postgres_fdw, which can be used to access data stored in external PostgreSQL servers.
Prefix Range module for PostgreSQL.
Functions for Implementing Referential Integrity
This 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.
The 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.
The 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.
The 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.
Long 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).
The 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.
The tsm_system_rows module provides the table sampling method SYSTEM_ROWS, which can be used in the TABLESAMPLE clause of a SELECT command.
The tsm_system_time module provides the table sampling method SYSTEM_TIME, which can be used in the TABLESAMPLE clause of a SELECT command.
unaccent 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.
The 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.
The xml2 module provides XPath querying and XSLT functionality.
Updated about a year ago