Skip to main content
Managed Service for PostgreSQL clusters are created with pre-installed PostgreSQL extensions. You can enable any of these extensions for your databases, but you cannot install any other extensions. See the full list of available extensions below, or you can request the list.

How to enable an extension for a database

To enable an extension for a database, execute the CREATE EXTENSION statement:
CREATE EXTENSION <extension_name>;
This command does not affect other databases in the cluster. To use an extension in other databases, execute CREATE EXTENSION in each one as needed.

Example: pgvector extension

To get started with the pgvector open-source extension, which provides vector operations, follow these steps:
  1. Add the extension:
    CREATE EXTENSION vector;
    
  2. Create a table with a vector column:
    CREATE TABLE items (id bigserial PRIMARY KEY, embedding vector(3));
    
  3. Insert some vectors into the new table:
    INSERT INTO items (embedding) VALUES ('[1,2,3]'), ('[4,5,6]');
    
  4. Get the contents of the table sorted by how close each value is to a given vector (that is, sorted by Euclidean distance):
    SELECT * FROM items ORDER BY embedding <-> '[3,1,2]' LIMIT 5;
    

How to request the list of installed extensions

To get the list of extensions available on your cluster, execute the following statement:
SELECT * FROM pg_available_extensions;
To look for a particular extension, execute the following statement:
SELECT * FROM pg_available_extensions WHERE name LIKE '<extension_name>';

Available extensions

ExtensionVersionDescription
adminpack2.1Provides support functions for administration and management tools.
amcheck1.3Provides functions that verify the logical consistency of the structure of relations.
autoinc1.0Provides functions that autoincrement fields.
bloom1.0Implements an index access method based on Bloom filters.
btree_gin1.3Supports indexing common data types by using GIN (generalized inverted index).
btree_gist1.7Supports indexing common data types by using GiST (generalized search tree).
citext1.6Defines a data type for case-insensitive character strings.
cube1.5Defines a data type for multidimensional cubes.
dblink1.2Allows connections to other PostgreSQL databases from within a database.
dict_int1.0Defines a text search dictionary template for processing integers.
dict_xsyn1.0Defines a text search dictionary template for extended synonym processing.
earthdistance1.1Calculates great-circle distances on the surface of the Earth.
file_fdw1.0Provides a foreign-data wrapper to access data files in the server’s file system.
fuzzystrmatch1.2Provides functions that determine similarities and distances between strings.
hstore1.8Defines a data type that stores sets of key-value pairs.
insert_username1.0Provides functions that track which user changed a table.
intagg1.1Defines an integer aggregator and enumerator.
The module is provided for compatibility and is obsolete.
intarray1.5Provides functions and operators that manipulate null-free arrays of integers.
isn1.2Defines data types for international product numbering standards.
lo1.1Supports large object management.
ltree1.2Defines a data type for hierarchical tree-like structures.
moddatetime1.0Provides functions that track the last modification time of records.
old_snapshot1.0Provides utilities that manage old snapshot thresholds.
pageinspect1.12Provides functions that inspect the contents of database pages at a low level.
pg_buffercache1.4Provides a means of examining the shared buffer cache.
pg_freespacemap1.2Provides a means of examining the free space map.
pg_prewarm1.2Loads relation data into the buffer cache.
pg_repack1.5.2Reorganizes tables and indexes with minimal locks. See how to run pg_repack on a Managed Service for PostgreSQL cluster.
pg_stat_statements1.10Tracks planning and execution statistics for SQL statements.
pg_surgery1.0Provides functions that perform “surgery” on damaged relations.
pg_trgm1.6Measures text similarity and supports index searching based on trigram matching.
pg_visibility1.2Provides a means of examining the visibility map and page-level visibility information.
pg_walinspect1.1Provides functions that inspect the PostgreSQL write-ahead log.
pgaudit16.0Provides detailed session and object audit logging via the standard PostgreSQL logging facility.
pgcrypto1.3Provides cryptographic functions.
pgrowlocks1.2Displays row-level locking information.
pgstattuple1.5Provides functions to obtain tuple-level statistics.
plpgsql1.0PL/pgSQL procedural language for PostgreSQL.
postgres_fdw1.1Provides a foreign-data wrapper for connecting to external PostgreSQL servers.
refint1.0Provides functions for referential integrity.
The module is provided for compatibility and is obsolete.
rum1.3Provides an access method for working with RUM indexes.
seg1.4Defines a data type that represents line segments or floating-point intervals.
sslinfo1.2Provides information about SSL certificates.
tablefunc1.0Implements functions that manipulate whole tables, including crosstab operations.
tcn1.0Provides a trigger function that notifies listeners of changes.
tsm_system_rows1.0Provides a TABLESAMPLE method that reads no more than the given number of rows.
tsm_system_time1.0Provides a TABLESAMPLE method that spends no longer than the given time to read the table.
unaccent1.1Defines a text search dictionary that removes diacritics.
uuid-ossp1.1Generates universally unique identifiers (UUIDs).
vector (pgvector)0.8Defines a vector data type with ivfflat and hnsw access methods for vector searches.
xml21.1Provides functions for XPath querying and XSLT processing.

How to run pg_repack

Managed Service for PostgreSQL clusters do not provide superuser access. Therefore, run the pg_repack extension only on the tables that you own and include the --no-superuser-check option. For example:
pg_repack \
  --host=<cluster_endpoint> \
  --dbname=<DB_name> \
  --username=<username> \
  --table=<table_name> \
  --jobs=4 \
  --wait-timeout=600 \
  --no-superuser-check
In this command, specify the same parameters that you use for connecting to the cluster. Ensure that <username> owns <table_name>.
Postgres, PostgreSQL and the Slonik Logo are trademarks or registered trademarks of the PostgreSQL Community Association of Canada, and used with their permission.