74+ PostgreSQL Extensions on Google Cloud AlloyDB for PostgreSQL

AlloyDB is Google's PostgreSQL-compatible database built for HTAP and AI workloads — pair pgvector with the alloydb_scann index for ScaNN-powered vector search and the columnar engine for analytics, all enabled with a database flag plus a CREATE EXTENSION call.

Last reviewed: May 29, 2026
74
Supported extensions
1
Pre-enabled
4
Vendor-specific
Not supported
Custom extensions
74 extensions
1
pgvector
21.5k+511 30d

vector data type and ivfflat and hnsw access methods

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

Job scheduler for PostgreSQL

Time-series & Temporal·PostgreSQL·C
3
rdkit
3.4k+37 30d

Cheminformatics functionality for PostgreSQL.

Database Features·BSD-3-Clause·C++
4
pg_partman
2.7k+30 30d

Extension to manage partitioned tables by time or ID

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

Reorganize tables in PostgreSQL databases with minimal locks

Administration·BSD-3-Clause·C
6
plv8
2.0k+3 30d

PL/JavaScript (v8) trusted procedural language

Procedural Languages·PostgreSQL·C++
7
hypopg
1.7k+11 30d

Hypothetical indexes for PostgreSQL

Database Features·PostgreSQL·C
8
pgaudit
1.6k+17 30d

provides auditing functionality

Security & Audit·PostgreSQL·C
9
wal2json
1.5k+3 30d

Changing data capture in JSON format

Replication & ETL·BSD-3-Clause·C
10
pg_ivm
1.4k+11 30d

incremental view maintenance on PostgreSQL

Database Features·PostgreSQL·C
11
pgrouting
1.4k+11 30d

pgRouting Extension

Geospatial·GPL-2.0·C++
12
pglogical
1.2k+6 30d

PostgreSQL Logical Replication

Replication & ETL·PostgreSQL·C
13
postgresql-hll
1.2k+4 30d

type for storing hyperloglog data

Database Features·Apache-2.0·C++
14
pgtap
1.1k+4 30d

Unit testing for PostgreSQL

Procedural Languages·PostgreSQL·C
15
pg_hint_plan
900+9 30d

Give PostgreSQL ability to manually force some decisions in execution plans.

Database Features·BSD-3-Clause·C
16
rum
829+3 30d

RUM index access method

Database Features·PostgreSQL·C
17
pg_squeeze
669+4 30d

A tool to remove unused space from a relation.

Administration·BSD-2-Clause·C
18
oracle_fdw
541+2 30d

foreign data wrapper for Oracle access

Foreign Data Wrappers·PostgreSQL·C
19
orafce
5350 30d

Functions and operators that emulate a subset of functions and packages from the Oracle RDBMS

Compatibility (Oracle/MSSQL)·BSD 0-Clause·C
20
tds_fdw
426+1 30d

Foreign data wrapper for querying a TDS database (Sybase or Microsoft SQL Server)

Foreign Data Wrappers·PostgreSQL·C
21

support similarity queries

Vector & AI·BSD-3-Clause·C
22

Logical decoding plugin that delivers WAL stream changes using a Protocol Buffer format

Replication & ETL·MIT·C
23
pg_background
248+1 30d

Run SQL queries in the background

Time-series & Temporal·GPL-3.0·C
24
plproxy
1920 30d

Database partitioning implemented as procedural language

Analytics & Columnar·BSD 0-Clause·C
25

sampling based statistics of wait events

Monitoring & Stats·PostgreSQL·C
26
ip4r
166+1 30d

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

Data Types·PostgreSQL·C
27
pg_bigm
148+4 30d

create 2-gram (bigram) index for faster full text search.

Full-text Search·PostgreSQL·C
28
pgfincore
1090 30d

examine and manage the os buffer cache

Administration·BSD-3-Clause·C
29
pgtt
96+1 30d

Extension to add Global Temporary Tables feature to PostgreSQL

Compatibility (Oracle/MSSQL)·ISC·C
30
pg_proctab
290 30d

Exposes the Linux operating-system process table through SQL so load, memory, CPU, and I/O stats can be queried from PostgreSQL.

Monitoring & Stats·PostgreSQL·C
31

functions for verifying relation integrity

Administration·PostgreSQL·C
32

Provides a means for logging execution plans of slow statements automatically

Monitoring & Stats·PostgreSQL·C
33

functions for autoincrementing fields

Functions·PostgreSQL·C
34

bloom access method - signature file based index

Database Features·PostgreSQL·C
35

support for indexing common datatypes in GIN

Functions·PostgreSQL·C
36

support for indexing common datatypes in GiST

Functions·PostgreSQL·C
37

data type for case-insensitive character strings

Data Types·PostgreSQL·C
38

data type for multidimensional cubes

Data Types·PostgreSQL·C
39

connect to other PostgreSQL databases from within a database

Foreign Data Wrappers·PostgreSQL·C
40

text search dictionary template for integers

Functions·PostgreSQL·C
41

calculate great-circle distances on the surface of the Earth

Geospatial·PostgreSQL·C
42

determine similarities and distance between strings

Full-text Search·PostgreSQL·C
43

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

Data Types·PostgreSQL·C
44

functions for tracking who changed a table

Functions·PostgreSQL·C
45

integer aggregator and enumerator (obsolete)

Functions·PostgreSQL·C
46

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

Functions·PostgreSQL·C
47

data types for international product numbering standards

Data Types·PostgreSQL·C
48

Large Object maintenance

Administration·PostgreSQL·C
49

data type for hierarchical tree-like structures

Data Types·PostgreSQL·C
50

functions for tracking last modification time

Functions·PostgreSQL·C
51

inspect the contents of database pages at a low level

Monitoring & Stats·PostgreSQL·C
52

examine the shared buffer cache

Monitoring & Stats·PostgreSQL·C
53

examine the free space map (FSM)

Monitoring & Stats·PostgreSQL·C
54

prewarm relation data

Administration·PostgreSQL·C
55

track planning and execution statistics of all SQL statements executed

Monitoring & Stats·PostgreSQL·C
56

text similarity measurement and index searching based on trigrams

Full-text Search·PostgreSQL·C
57

examine the visibility map (VM) and page-level visibility info

Monitoring & Stats·PostgreSQL·C
58

cryptographic functions

Security & Audit·PostgreSQL·C
59

Logical Replication output plugin

Replication & ETL·PostgreSQL·C
60

show row-level locking information

Monitoring & Stats·PostgreSQL·C
61

show tuple-level statistics

Monitoring & Stats·PostgreSQL·C
62
Pre-enabled

PL/pgSQL procedural language

Procedural Languages·PostgreSQL·C
63

PostGIS geometry and geography spatial types and functions

Geospatial·GPL-2.0·C
64

foreign-data wrapper for remote PostgreSQL servers

Foreign Data Wrappers·PostgreSQL·C
65

functions for implementing referential integrity (obsolete)

Functions·PostgreSQL·C
66

information about SSL certificates

Monitoring & Stats·PostgreSQL·C
67

functions that manipulate whole tables, including crosstab

Analytics & Columnar·PostgreSQL·C
68

Triggered change notifications

Functions·PostgreSQL·C
69

temporal tables

Time-series & Temporal·BSD-2-Clause·C
70

SQL-based test/example module for WAL logical decoding

Replication & ETL·PostgreSQL·C
71

TABLESAMPLE method which accepts number of rows as a limit

Functions·PostgreSQL·C
72

TABLESAMPLE method which accepts time in milliseconds as a limit

Functions·PostgreSQL·C
73

text search dictionary that removes accents

Functions·PostgreSQL·C
74

generate universally unique identifiers (UUIDs)

Functions·PostgreSQL·C

How to enable extensions on AlloyDB for PostgreSQL

AlloyDB ships with a fixed allow-list of extensions, none of them auto-created. You connect to the primary instance and run CREATE EXTENSION — but a handful of extensions first need an instance-level database flag (for example alloydb.enable_pg_cron or google_columnar_engine.enabled) set before the CREATE EXTENSION call will succeed.

SQL

Run from a psql session connected to the primary instance as a user with the alloydbsuperuser role.

-- pgvector needs no flag — just create it
CREATE EXTENSION IF NOT EXISTS vector;

-- ScaNN vector index (depends on vector; CASCADE pulls it in)
CREATE EXTENSION IF NOT EXISTS alloydb_scann CASCADE;

-- Verify what's installed
SELECT extname, extversion FROM pg_extension ORDER BY extname;

CLI

Flag-gated extensions need the flag set first. Note: --database-flags OVERWRITES the instance's entire flag list, so include every flag you want to keep in one call.

# Set the database flags an extension requires, then CREATE EXTENSION in SQL.
# Example: turn on the columnar engine and pg_cron.
gcloud alloydb instances update INSTANCE_ID \
  --database-flags=google_columnar_engine.enabled=on,alloydb.enable_pg_cron=on \
  --region=REGION \
  --cluster=CLUSTER_ID \
  --project=PROJECT_ID

# Then, connected to the primary instance:
#   CREATE EXTENSION IF NOT EXISTS pg_cron;

Infrastructure as Code

Terraform provisions the cluster/instance; extensions themselves are still enabled via the gcloud/API flag mechanism plus CREATE EXTENSION (e.g. through a provisioner or migration step).

resource "google_alloydb_cluster" "default" {
  cluster_id       = "my-cluster"
  location         = "us-central1"
  database_version = "POSTGRES_16"
}

resource "google_alloydb_instance" "primary" {
  cluster       = google_alloydb_cluster.default.name
  instance_id   = "my-primary"
  instance_type = "PRIMARY"

  # Flag-gated extensions: set their database flags here, then run
  # CREATE EXTENSION against the instance (migration/provisioner).
  database_flags = {
    "google_columnar_engine.enabled" = "on"
  }
}

Pre-enabled on Google Cloud AlloyDB for PostgreSQL

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

Google Cloud AlloyDB for PostgreSQL-specific extensions

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

alloydb_scann

Google's ScaNN-based nearest-neighbor vector index for pgvector columns — high-recall, low-latency similarity search at scale. Available on PG 14-17.

Docs
google_columnar_engine

In-memory columnar acceleration that transparently speeds up analytical and HTAP queries; enable it with the google_columnar_engine.enabled=on database flag.

Docs
google_ml_integration

Call machine-learning models and generate embeddings or predictions directly from SQL, using models hosted by Google, OpenAI, or Anthropic.

Docs
alloydb_ai_nl

AlloyDB AI natural-language-to-SQL — turn plain-English questions into SQL against your schema using built-in LLM tooling.

Docs

Notable absences

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

timescaledb

Why missing: timescaledb is not part of the AlloyDB extension allow-list, and managed AlloyDB only lets you enable extensions Google has vetted — there is no way to install it yourself.

Alternative: For time-series workloads, lean on native Postgres partitioning with pg_partman (which AlloyDB does support), or run TimescaleDB self-hosted or on a provider like Crunchy Bridge that ships it.

citus

Why missing: citus (distributed/sharded Postgres) is not in the AlloyDB catalog. AlloyDB takes a different scaling approach — a disaggregated storage layer with read pool instances and a columnar engine rather than horizontal sharding.

Alternative: Scale reads with AlloyDB read pool instances and accelerate analytics with the built-in columnar engine; for true sharding, use a dedicated distributed Postgres such as Citus on Azure Cosmos DB for PostgreSQL.

pgsql_http

Why missing: The http/pgsql-http extension, along with pg_graphql and Supabase's wrappers FDW framework, is not on the AlloyDB allow-list — outbound HTTP and auto-generated GraphQL are not part of the managed surface.

Alternative: Call external services from your application tier, or use google_ml_integration for managed model/embedding calls and the available FDWs (postgres_fdw, oracle_fdw, bigquery_fdw) for cross-system queries.

Can you install custom extensions on Google Cloud AlloyDB for PostgreSQL?

No — managed allow-list only

Managed AlloyDB exposes a fixed allow-list of extensions — every extension on that list is available on every AlloyDB instance, and nothing outside it can be installed. Only a user with the alloydbsuperuser role can run CREATE EXTENSION, and even then only against the vetted list. (AlloyDB Omni, the self-hosted variant, is different — it permits some manual installs such as orafce and PostGIS — but managed AlloyDB does not.)

Learn more

Frequently Asked Questions

What is alloydb_scann?
alloydb_scann is an AlloyDB-only extension that adds a ScaNN-based vector index — the same approximate-nearest-neighbor technology Google uses internally — on top of pgvector columns. It delivers higher recall and lower latency than the standard pgvector HNSW/IVFFlat indexes for large vector sets. Enable it with `CREATE EXTENSION IF NOT EXISTS alloydb_scann CASCADE;` (the CASCADE pulls in vector). It is available on PostgreSQL 14 through 17.
How do I enable vector search (pgvector) on AlloyDB?
Connect to your primary instance and run `CREATE EXTENSION IF NOT EXISTS vector;` — pgvector needs no database flag. AlloyDB ships its own build of pgvector with scalar quantization, and you can add the ScaNN index with `CREATE EXTENSION IF NOT EXISTS alloydb_scann CASCADE;`. For embeddings, google_ml_integration can generate vectors in SQL via Google, OpenAI, or Anthropic models.
Does AlloyDB support timescaledb?
No. timescaledb is not on the AlloyDB extension allow-list, and managed AlloyDB does not let you install extensions yourself. For time-series workloads, use native Postgres partitioning with pg_partman (which AlloyDB supports), or run TimescaleDB self-hosted or on a provider like Crunchy Bridge that ships it.
How is AlloyDB different from Cloud SQL for extensions?
Both are managed Google Postgres services with fixed allow-lists, but AlloyDB adds proprietary extensions Cloud SQL doesn't have — alloydb_scann for ScaNN vector search, google_columnar_engine for HTAP/analytics acceleration, and alloydb_ai_nl for natural-language-to-SQL. AlloyDB also says every listed extension is available on every instance (no per-version gating, except alloydb_scann being PG 14-17 only). Cloud SQL targets general-purpose OLTP, while AlloyDB targets HTAP and AI workloads.
Can I install custom extensions on AlloyDB?
Not on managed AlloyDB. You can only enable extensions from Google's vetted allow-list, and only a user with the alloydbsuperuser role can run CREATE EXTENSION. There is no trusted-language-extension or bring-your-own-binary path. AlloyDB Omni (the self-hosted variant) is more flexible and permits some manual installs, but the managed service does not.

Manage your Google Cloud AlloyDB for PostgreSQL database with 1bench

1bench is a modern GUI client for PostgreSQL — connect to your Google Cloud AlloyDB for PostgreSQL instance, install extensions, write queries, and inspect schemas without leaving the IDE.

Try 1bench for PostgreSQL