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: May 29, 2026
47
Supported extensions
1
Pre-enabled
1
Vendor-specific
Not supported
Custom extensions
47 extensions
1
timescaledb
22.7k+235 30d

Enables scalable inserts and complex queries for time-series data

Time-series & Temporal·TSL·C
2
pgvector
21.5k+511 30d

vector data type and ivfflat and hnsw access methods

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

Job scheduler for PostgreSQL

Time-series & Temporal·PostgreSQL·C
4
pgvectorscale
3.0k+46 30d

Advanced indexing for vector data with DiskANN

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

Extension to manage partitioned tables by time or ID

Analytics & Columnar·PostgreSQL·C
6
pg_repack
2.2k+13 30d

Reorganize tables in PostgreSQL databases with minimal locks

Administration·BSD-3-Clause·C
7
pgaudit
1.6k+17 30d

provides auditing functionality

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

pgRouting Extension

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

type for storing hyperloglog data

Database Features·Apache-2.0·C++
10
rum
829+3 30d

RUM index access method

Database Features·PostgreSQL·C
11

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 — 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 — 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 — an 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 — native compression and helpers such as 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