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_cron | Pre-bundled | Provides a cron-based job scheduler that runs inside the database. |
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. |