47+ PostgreSQL Extensions on Aiven for PostgreSQL

Aiven for PostgreSQL is a multi-cloud managed Postgres service with a broad pre-approved extension allow-list. Enable pgvector, postgis, timescaledb and more with a single CREATE EXTENSION command.

Last reviewed: August 27, 2026
47
Supported extensions
1
Pre-enabled
1
Vendor-specific
Not supported
Custom extensions
47 extensions
1
timescaledb
23.4k+224 30d

Enables scalable inserts and complex queries for time-series data

Time-series & Temporal·TSL·C
2
pgvector
22.8k+390 30d

vector data type and ivfflat and hnsw access methods

Vector & AI·PostgreSQL·C
3
pg_cron
3.9k+20 30d

Job scheduler for PostgreSQL

Time-series & Temporal·PostgreSQL·C
4
pgvectorscale
3.1k+22 30d

Advanced indexing for vector data with DiskANN

Vector & AI·PostgreSQL·Rust
5
pg_partman
2.8k+21 30d

Extension to manage partitioned tables by time or ID

Analytics & Columnar·PostgreSQL·C
6
pg_repack
2.3k+8 30d

Reorganize tables in PostgreSQL databases with minimal locks

Administration·BSD-3-Clause·C
7
pgaudit
1.7k+14 30d

provides auditing functionality

Security & Audit·PostgreSQL·C
8
pgrouting
1.4k+9 30d

pgRouting Extension

Geospatial·GPL-2.0·C++
9
postgresql-hll
1.2k+3 30d

type for storing hyperloglog data

Database Features·Apache-2.0·C++
10
rum
840+4 30d

RUM index access method

Database Features·PostgreSQL·C
11
pg_similarity
402+1 30d

support similarity queries

Vector & AI·BSD-3-Clause·C
12
ip4r
166+1 30d

IPv4/v6 and IPv4/v6 range index type for PostgreSQL

Data Types·PostgreSQL·C
13

bloom access method - signature file based index

Database Features·PostgreSQL·C
14

support for indexing common datatypes in GIN

Functions·PostgreSQL·C
15

support for indexing common datatypes in GiST

Functions·PostgreSQL·C
16

data type for case-insensitive character strings

Data Types·PostgreSQL·C
17

data type for multidimensional cubes

Data Types·PostgreSQL·C
18

connect to other PostgreSQL databases from within a database

Foreign Data Wrappers·PostgreSQL·C
19

text search dictionary template for integers

Functions·PostgreSQL·C
20

calculate great-circle distances on the surface of the Earth

Geospatial·PostgreSQL·C
21

determine similarities and distance between strings

Full-text Search·PostgreSQL·C
22

data type for storing sets of (key, value) pairs

Data Types·PostgreSQL·C
23

integer aggregator and enumerator (obsolete)

Functions·PostgreSQL·C
24

functions, operators, and index support for 1-D arrays of integers

Functions·PostgreSQL·C
25

data types for international product numbering standards

Data Types·PostgreSQL·C
26

Large Object maintenance

Administration·PostgreSQL·C
27

data type for hierarchical tree-like structures

Data Types·PostgreSQL·C
28

inspect the contents of database pages at a low level

Monitoring & Stats·PostgreSQL·C
29

examine the shared buffer cache

Monitoring & Stats·PostgreSQL·C
30

prewarm relation data

Administration·PostgreSQL·C
31

track planning and execution statistics of all SQL statements executed

Monitoring & Stats·PostgreSQL·C
32

text similarity measurement and index searching based on trigrams

Full-text Search·PostgreSQL·C
33

cryptographic functions

Security & Audit·PostgreSQL·C
34

show row-level locking information

Monitoring & Stats·PostgreSQL·C
35

show tuple-level statistics

Monitoring & Stats·PostgreSQL·C
36

PL/Perl procedural language

Procedural Languages·PostgreSQL·C
37
Pre-enabled

PL/pgSQL procedural language

Procedural Languages·PostgreSQL·C
38

PostGIS geometry and geography spatial types and functions

Geospatial·GPL-2.0·C
39

foreign-data wrapper for remote PostgreSQL servers

Foreign Data Wrappers·PostgreSQL·C
40

data type for representing line segments or floating-point intervals

Data Types·PostgreSQL·C
41

information about SSL certificates

Monitoring & Stats·PostgreSQL·C
42

functions that manipulate whole tables, including crosstab

Analytics & Columnar·PostgreSQL·C
43

Triggered change notifications

Functions·PostgreSQL·C
44

TABLESAMPLE method which accepts number of rows as a limit

Functions·PostgreSQL·C
45

TABLESAMPLE method which accepts time in milliseconds as a limit

Functions·PostgreSQL·C
46

text search dictionary that removes accents

Functions·PostgreSQL·C
47

generate universally unique identifiers (UUIDs)

Functions·PostgreSQL·C
Source: aiven.io

How to enable extensions on Aiven for PostgreSQL

Aiven manages extensions with plain SQL, with no console toggle. Any database user can run CREATE EXTENSION, but only extensions on Aiven's pre-approved allow-list (enforced by the extwlist module) will install. A few extensions have extra steps, noted below.

SQL

Connect with psql (or any client) and run the standard extension commands. CASCADE pulls in any required dependencies.

-- Enable an extension (CASCADE installs dependencies too)
CREATE EXTENSION extension_name CASCADE;

-- Upgrade an installed extension to the latest available version
ALTER EXTENSION extension_name UPDATE;

-- Remove an extension
DROP EXTENSION extension_name;

-- List which extensions the allow-list permits on this service
SELECT * FROM pg_available_extension_versions
WHERE name = ANY(string_to_array(current_setting('extwlist.extensions'), ','));

CLI

Some extensions need a specific connection or sequence. timescaledb installs with CASCADE; pg_cron must be created as the avnadmin user in the defaultdb database.

-- TimescaleDB (Apache edition — see Notable absences re: TSL features)
CREATE EXTENSION timescaledb CASCADE;

-- pg_cron: connect as avnadmin to the defaultdb database, then:
CREATE EXTENSION pg_cron;
-- grant usage so your application role can schedule jobs
GRANT USAGE ON SCHEMA cron TO your_app_role;

Pre-enabled on Aiven for PostgreSQL

These extensions ship enabled by default, no CREATE EXTENSION needed.

Aiven for PostgreSQL-specific extensions

Proprietary extensions that exist only on Aiven for PostgreSQL, not part of the open-source PostgreSQL ecosystem.

aiven_extras

Aiven's helper extension that lets non-superusers perform certain elevated database operations, notably logical-replication management (creating publications/subscriptions), that would otherwise require a superuser Aiven does not grant.

Docs

Notable absences

Extensions you might expect that aren't available on Aiven for PostgreSQL, with workarounds where they exist.

timescaledb

Why missing: timescaledb is available, but only the Apache 2.0 (open-source) edition. The advanced TSL-licensed features, such as continuous-aggregate helpers like time_bucket_gapfill and native compression, are blocked and fail with an error like "not supported under license ApacheOnly".

Alternative: For TSL features, self-host TimescaleDB or use Timescale Cloud. On Aiven, native Postgres partitioning plus pg_partman covers many time-series use cases.

plpythonu

Why missing: Untrusted procedural languages such as plpython / plpythonu are not supported. They can run arbitrary code on the host, which Aiven's managed, no-true-superuser model does not allow. Attempts to create them are refused.

Alternative: Use a trusted language (PL/pgSQL or PL/Perl) for in-database logic, or move untrusted Python work to your application tier.

postgis

Why missing: On PostgreSQL 18 the PostGIS family (along with pgrouting, hll, rum and pg_similarity) is not yet on Aiven's published per-version extension list. That reflects ecosystem lag following the PG18 launch, not a permanent removal.

Alternative: Create the service on PostgreSQL 17, where the full PostGIS family is available, until Aiven publishes the PG18 set.

Can you install custom extensions on Aiven for PostgreSQL?

No, managed allow-list only

Aiven for PostgreSQL allows a series of pre-approved extensions. There is no facility to upload arbitrary or custom-compiled extensions. The allow-list is enforced by the extwlist module, and superuser-only or untrusted languages (for example plpythonu) are refused. If you need an extension that isn't on the list, request it through Aiven Ideas. For elevated operations that normally need a superuser, the bundled aiven_extras extension exposes a safe subset to non-superusers.

Learn more

Frequently asked questions

Does Aiven for PostgreSQL support pgvector?
Yes. pgvector is on Aiven's allow-list. Enable it with `CREATE EXTENSION vector;` and start storing embeddings for similarity search. Aiven also offers pgvectorscale (on PostgreSQL 16 and newer) for higher-performance, disk-backed vector indexes.
Does Aiven support timescaledb, including compression?
timescaledb is supported, but only the Apache 2.0 edition. The TSL-licensed features, such as native compression and helpers like time_bucket_gapfill, are blocked and error out with "not supported under license ApacheOnly". For those features, self-host TimescaleDB or use Timescale Cloud.
How do I enable pg_cron on Aiven for PostgreSQL?
pg_cron must be created by the avnadmin superuser-equivalent role in the defaultdb database: connect as avnadmin to defaultdb and run `CREATE EXTENSION pg_cron;`. Then `GRANT USAGE ON SCHEMA cron` to the role that will schedule jobs. The cron metadata lives in defaultdb even though jobs can target other databases.
Can I install custom extensions on Aiven for PostgreSQL?
No. Aiven allows only a series of pre-approved extensions, enforced by the extwlist module. You can't upload arbitrary or custom-compiled extensions, and untrusted languages like plpythonu are refused. If you need an unsupported extension, request it through Aiven Ideas.
What is the aiven_extras extension?
aiven_extras is Aiven's helper extension that lets non-superusers run certain elevated operations, most commonly managing logical replication (publications and subscriptions), since Aiven does not grant a true superuser account. Enable it with `CREATE EXTENSION aiven_extras;`.

Manage your Aiven for PostgreSQL database with 1bench

1bench is a modern GUI client for PostgreSQL. Connect to your Aiven for PostgreSQL instance, install extensions, write queries, and inspect schemas without leaving the IDE.

Try 1bench for PostgreSQL