PostgreSQL extensions

PostgreSQL extensions

PostgreSQL extensions provide a way to extend the functionality of a database by bundling SQL objects into a package and using them as a unit. YugabyteDB supports a variety of PostgreSQL extensions.

Supported extensions are either pre-bundled with YugabyteDB, or require installation:

  • Pre-bundled extensions are included in the standard YugabyteDB distribution and can be enabled in YSQL by running the CREATE EXTENSION statement.
  • Requires installation - you must install these extensions manually before you can enable them using CREATE EXTENSION. Refer to Install extensions.

You can install only extensions that are supported by YugabyteDB. If you are interested in an extension that is not yet supported, contact Yugabyte Support, or reach out on Slack.

Supported extensions

PostgreSQL modules

YugabyteDB supports the following PostgreSQL modules. All of these modules are pre-bundled.

Module Description
auto_explain Provides a means for logging execution plans of slow statements automatically.
file_fdw Provides the foreign-data wrapper file_fdw, which can be used to access data files in the server's file system.
fuzzystrmatch Provides several functions to determine similarities and distance between strings.
hstore Implements the hstore data type for storing sets of key-value pairs in a single PostgreSQL value.
For more information, see hstore in the PostgreSQL documentation.
passwordcheck Checks user passwords whenever they are set with CREATE ROLE or ALTER ROLE. If a password is considered too weak, it is rejected.
pgcrypto Provides various cryptographic functions.
pg_stat_statements Provides a means for tracking execution statistics of all SQL statements executed by a server.
pg_trgm 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.
For more information, see pg_trgm in the PostgreSQL documentation.
postgres_fdw Provides the foreign-data wrapper postgres_fdw, which can be used to access data stored in external PostgreSQL servers.
spi Lets you use the Server Programming Interface (SPI) to create user-defined functions and stored procedures in C, and to run YSQL queries directly against YugabyteDB.
sslinfo Provides information about the SSL certificate that the current client provided when connecting to PostgreSQL.
For more information, see sslinfo in the PostgreSQL documentation.
tablefunc Provides several table functions. For example, normal_rand() creates values, picked using a pseudorandom generator, from an ideal normal distribution. You specify how many values you want, and the mean and standard deviation of the ideal distribution. You use it in the same way that you use generate_series()
uuid-ossp Provides functions to generate universally unique identifiers (UUIDs), and functions to produce certain special UUID constants.

Other extensions

YugabyteDB supports the following additional extensions, some of which you must install manually.

Extension Status Description
HypoPG Pre-bundled Create hypothetical indexes to test whether an index can increase performance for problematic queries without consuming any actual resources.
Orafce Pre-bundled Provides compatibility with Oracle functions and packages that are either missing or implemented differently in YugabyteDB and PostgreSQL. This compatibility layer can help you port your Oracle applications to YugabyteDB.
For more information, see the Orafce documentation.
PGAudit Pre-bundled The PostgreSQL Audit Extension (pgaudit) provides detailed session and/or object audit logging via the standard PostgreSQL logging facility.
pg_hint_plan Pre-bundled Tweak execution plans using "hints", which are descriptions in the form of SQL comments.
For more information, see the pg_hint_plan documentation.
pg_stat_monitor Pre-bundled A PostgreSQL query performance monitoring tool, based on the PostgreSQL pg_stat_statements module.
For more information, see the pg_stat_monitor documentation.
pgvector Pre-bundled Allows you to store and query vectors, for use in vector similarity searching.
postgresql-hll Pre-bundled Adds the data type hll, which is a HyperLogLog data structure.