Supported Postgres extensions
Neon supports the Postgres extensions shown in the following table. The supported version of the extension sometimes differs by Postgres version. A dash (-
) indicates that an extension is not yet supported.
Postgres 17 extension support
Postgres 17, released in September 2024, currently lacks support for several extensions. These extensions will become available once maintainers add Postgres 17 compatibility and after Neon completes validation testing. Newly supported extensions are announced in the Neon Changelog, which is published weekly.
Extension | PG14 | PG15 | PG16 | PG17 | Notes |
---|---|---|---|---|---|
address_standardizer | 3.3.3 | 3.3.3 | 3.3.3 | 3.5.0 | |
address_standardizer_data_us | 3.3.3 | 3.3.3 | 3.3.3 | 3.5.0 | |
autoinc (spi) | 1.0 | 1.0 | 1.0 | 1.0 | |
bloom | 1.0 | 1.0 | 1.0 | 1.0 | |
btree_gin | 1.3 | 1.3 | 1.3 | 1.3 | |
btree_gist | 1.6 | 1.7 | 1.7 | 1.7 | |
citext | 1.6 | 1.6 | 1.6 | 1.6 | |
cube | 1.5 | 1.5 | 1.5 | 1.5 | |
dict_int | 1.0 | 1.0 | 1.0 | 1.0 | |
earthdistance | 1.1 | 1.1 | 1.1 | 1.1 | |
fuzzystrmatch | 1.1 | 1.1 | 1.1 | 1.2 | |
h3 | 4.1.3 | 4.1.3 | 4.1.3 | 4.1.3 | Some components have been split out into the h3_postgis extension. Install both the h3 and h3_postgis extensions. |
h3_postgis | 4.1.2 | 4.1.3 | 4.1.3 | 4.1.3 | Install with CREATE EXTENSION h3_postgis CASCADE; (requires postgis and postgis_raster ) |
hll | 2.18 | 2.18 | 2.18 | 2.18 | |
hstore | 1.8 | 1.8 | 1.8 | 1.8 | |
hypopg | 1.4.1 | 1.4.1 | 1.4.1 | 1.4.1 | |
insert_username (spi) | 1.0 | 1.0 | 1.0 | 1.0 | |
intagg | 1.1 | 1.1 | 1.1 | 1.1 | |
intarray | 1.5 | 1.5 | 1.5 | 1.5 | |
ip4r | 2.4 | 2.4 | 2.4 | 2.4 | |
isn | 1.2 | 1.2 | 1.2 | 1.2 | |
lo | 1.1 | 1.1 | 1.1 | 1.1 | |
ltree | 1.2 | 1.2 | 1.2 | 1.3 | |
moddatetime (spi) | 1.0 | 1.0 | 1.0 | 1.0 | |
neon | 1.5 | 1.5 | 1.5 | 1.5 | |
neon_utils | 1.0 | 1.0 | 1.0 | 1.0 | |
pg_graphql | 1.5.9 | 1.5.9 | 1.5.9 | 1.5.9 | |
pg_hashids | 1.2.1 | 1.2.1 | 1.2.1 | 1.2.1 | |
pg_hint_plan | 1.4.1 | 1.5.0 | 1.6.0 | 1.7.0 | |
pg_ivm | 1.9 | 1.9 | 1.9 | 1.9 | |
pg_jsonschema | 0.3.3 | 0.3.3 | 0.3.3 | 0.3.3 | |
pg_mooncake | - | 0.0.1 | 0.0.1 | 0.0.1 | This extension is experimental. Using a separate, dedicated Neon project is recommended. Run SET neon.allow_unstable_extensions='true'; before installing. See the YouTube demo. |
pg_partman | 5.1.0 | 5.1.0 | 5.1.0 | 5.1.0 | |
pg_prewarm | 1.2 | 1.2 | 1.2 | 1.2 | |
pg_roaringbitmap | 0.5 | 0.5 | 0.5 | 0.5 | Install with CREATE EXTENSION roaringbitmap; |
pg_session_jwt | 0.1.2 | 0.1.2 | 0.1.2 | - | |
pg_stat_statements | 1.9 | 1.10 | 1.10 | 1.11 | |
pg_tiktoken | 0.0.1 | 0.0.1 | 0.0.1 | 0.0.1 | The neon_superuser role has EXECUTE privilege on the pg_stat_statements_reset() function. |
pg_trgm | 1.6 | 1.6 | 1.6 | 1.6 | |
pg_uuidv7 | 1.6 | 1.6 | 1.6 | 1.6 | |
pgcrypto | 1.3 | 1.3 | 1.3 | 1.3 | |
pgjwt | 0.2.0 | 0.2.0 | 0.2.0 | 0.2.0 | |
pgrag | 0.0.0 | 0.0.0 | 0.0.0 | 0.0.0 | This extension is experimental. Using a separate, dedicated Neon project is recommended. Run SET neon.allow_unstable_extensions='true'; before installing. |
pgrouting | 3.4.2 | 3.4.2 | 3.4.2 | 3.6.2 | The PostGIS extension must be installed first. |
pgrowlocks | 1.2 | 1.2 | 1.2 | 1.2 | |
pgstattuple | 1.5 | 1.5 | 1.5 | 1.5 | |
pgtap | 1.3.3 | 1.3.3 | 1.3.3 | 1.3.3 | |
pgvector | 0.7.4 | 0.7.4 | 0.7.4 | 0.7.4 | Install with CREATE EXTENSION vector; |
pgx_ulid | 0.1.5 | 0.1.5 | 0.1.5 | - | Install with CREATE EXTENSION ulid; |
plcoffee | 3.1.5 | 3.1.5 | 3.1.8 | - | |
plls | 3.1.5 | 3.1.5 | 3.1.8 | - | |
plpgsql | 1.0 | 1.0 | 1.0 | 1.0 | Pre-installed with Postgres. |
plpgsql_check | 2.7.11 | 2.7.11 | 2.7.11 | - | |
plv8 | 3.1.10 | 3.1.10 | 3.1.10 | 3.2.3 | |
postgis | 3.3.3 | 3.3.3 | 3.3.3 | 3.5.0 | |
postgis_raster | 3.3.3 | 3.3.3 | 3.3.3 | 3.5.0 | |
postgis_sfcgal | 1.3.8 | 1.3.8 | 1.3.8 | 3.5.0 | |
postgis_tiger_geocoder | 3.3.3 | 3.3.3 | 3.3.3 | 3.5.0 | Cannot be installed using the Neon SQL Editor. Use your psql user credentials to install this extension. |
postgis_topology | 3.3.3 | 3.3.3 | 3.3.3 | 3.5.0 | |
prefix | 1.2.0 | 1.2.0 | 1.2.0 | 1.2.0 | |
rdkit | 4.3.0 | 4.3.0 | 4.3.0 | 4.6.0 | |
refint (spi) | 1.0 | 1.0 | 1.0 | 1.0 | |
rum | 1.3 | 1.3 | 1.3 | 1.3.1 | |
seg | 1.4 | 1.4 | 1.4 | 1.4 | |
semver | 0.32.1 | 0.32.1 | 0.32.1 | 0.40.0 | |
tablefunc | 1.0 | 1.0 | 1.0 | 1.0 | |
tcn | 1.0 | 1.0 | 1.0 | 1.0 | |
timescaledb | 2.10.1 | 2.10.1 | 2.13.0 | 2.17.1 | Only Apache-2 licensed features are supported. Compression is not supported. |
tsm_system_rows | 1.0 | 1.0 | 1.0 | 1.0 | |
tsm_system_time | 1.0 | 1.0 | 1.0 | 1.0 | |
unaccent | 1.1 | 1.1 | 1.1 | 1.1 | |
unit | 7 | 7 | 7 | 7 | |
uuid-ossp | 1.1 | 1.1 | 1.1 | 1.1 | Double-quote the extension name when installing: CREATE EXTENSION "uuid-ossp" |
wal2json | 2.6 | 2.6 | 2.6 | 2.6 | CREATE EXTENSION not required. This decoder plugin is available by default but requires enabling logical replication in Neon. |
xml2 | 1.1 | 1.1 | 1.1 | 1.1 |
Install an extension
Unless otherwise noted, supported extensions can be installed using CREATE EXTENSION syntax.
You can install extensions from the Neon SQL Editor or from a client such as psql
that permits running SQL queries. For information about using the Neon SQL Editor, see Query with Neon's SQL Editor. For information about using the psql
client with Neon, see Connect with psql.
Update an extension version
Neon updates supported extensions as new versions become available. Version updates are communicated in the Changelog. To check the current version of extensions you have installed, query the pg_extension
table:
You can update an extension to the latest version using ALTER EXTENSION <extension_name> UPDATE TO <new_version>
syntax. For example:
important
When Neon releases a new extension or new extension version, a compute restart is required to make the new extension or extension version available for installation or update. A compute restart may occur on its own due to Neon's default Autosuspend behavior. However, if your compute never restarts because you disabled Autosuspend or because your compute is constantly active, you may need to force a restart. To force a restart, users on paid plans can temporarily set a compute's Suspend compute after a period of inactivity setting to 1 second (the default is 5 minutes). See Autosuspend configuration for instructions. After doing so, check the Operations page in the Neon Console to see if your compute restarted. Look for suspend_compute
and start_compute
actions. Alternatively, all Neon users can issue Suspend endpoint and Start endpoint API calls. Please be aware that restarting a compute temporarily interrupts any connections currently using the compute.
Extension support notes
- Neon supports the
uuid-ossp
extension for generating UUIDs instead of theuuid
extension. - The
sslinfo
extension is not supported. Neon handles connections via a proxy that checks SSL. - The
pg_cron
extension is not supported. Neon scales to zero when it is not being used, which means that a scheduler that runs inside the database cannot be implemented. Consider using an scheduler that runs externally instead. - The
file_fdw
extension is not supported. Files would not remain accessible when Neon scales to zero. - The
pg_search
extension is not supported. The extension's storage and change management is built on Tantivy, which is currently not supported by Neon.
Request extension support
To request support for a Postgres extension, paid plan users can open a support ticket. Free plan users can submit a request via the feedback channel on our Discord Server.
Custom-built extensions
For Enterprise plan customers, Neon supports custom-built Postgres extensions for exclusive use with your Neon account. If you developed your own Postgres extension and want to use it with Neon, please reach out to us as described above. Please include the following information in your request:
- A repository link or archive file containing the source code for your extension
- A description of what the extension does, instructions for compiling it, and any prerequisites
- Whether an NDA or licensing agreement is necessary for Neon to provide support for your extension
Please keep in mind that certain restrictions may apply with respect to Postgres privileges and local file system access. Additionally, Neon features such as Autoscaling and Autosuspend may limit the types of extensions we can support.
Depending on the nature of your extension, Neon may also request a liability waiver.
Custom-built extensions are not yet supported for Neon projects provisioned on Azure.
Need help?
Join our Discord Server to ask questions or see what others are doing with Neon. Users on paid plans can open a support ticket from the console. For more details, see Getting Support.