73+ PostgreSQL Extensions on Google Cloud SQL for PostgreSQL

Google Cloud SQL for PostgreSQL is Google's fully managed Postgres — enable pgvector, postgis, and pg_cron from SQL, with a two-step flag-then-CREATE-EXTENSION model for extensions that need a preloaded shared library.

Last reviewed: May 29, 2026
73
Supported extensions
1
Pre-enabled
2
Vendor-specific
Not supported
Custom extensions
73 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
pgaudit
1.6k+17 30d

provides auditing functionality

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

incremental view maintenance on PostgreSQL

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

pgRouting Extension

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

PostgreSQL Logical Replication

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

type for storing hyperloglog data

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

Unit testing for PostgreSQL

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

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

Database Features·BSD-3-Clause·C
14
plpgsql_check
755+3 30d

extended check for plpgsql functions

Procedural Languages·MIT·C
15
pg_squeeze
669+4 30d

A tool to remove unused space from a relation.

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

foreign data wrapper for Oracle access

Foreign Data Wrappers·PostgreSQL·C
17
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
18
tds_fdw
426+1 30d

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

Foreign Data Wrappers·PostgreSQL·C
19

support similarity queries

Vector & AI·BSD-3-Clause·C
20
pg_qualstats
3310 30d

An extension collecting statistics about quals

Monitoring & Stats·BSD-3-Clause·C
21

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

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

Run SQL queries in the background

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

Database partitioning implemented as procedural language

Analytics & Columnar·BSD 0-Clause·C
24

sampling based statistics of wait events

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

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

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

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

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

examine and manage the os buffer cache

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

Extension to add Global Temporary Tables feature to PostgreSQL

Compatibility (Oracle/MSSQL)·ISC·C
29
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
30
chkpass
20 30d

data type for auto-encrypted passwords

Data Types·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

TABLESAMPLE method which accepts number of rows as a limit

Functions·PostgreSQL·C
71

TABLESAMPLE method which accepts time in milliseconds as a limit

Functions·PostgreSQL·C
72

text search dictionary that removes accents

Functions·PostgreSQL·C
73

generate universally unique identifiers (UUIDs)

Functions·PostgreSQL·C

How to enable extensions on Google Cloud SQL for PostgreSQL

Extensions on Cloud SQL come in two flavors. Most just need a single CREATE EXTENSION, run as the cloudsqlsuperuser (the default `postgres` user). A handful — pg_cron, pgaudit, pg_hint_plan, pg_squeeze, pglogical, auto_explain, postgresql_anonymizer, pg_bigm, and pg_wait_sampling — preload a shared library, so you must first set a `cloudsql.enable_<name>` database flag (which restarts the instance) and then run CREATE EXTENSION.

SQL

Plain extensions need only CREATE EXTENSION, run as the cloudsqlsuperuser (default `postgres` user).

-- Plain extension (no flag required) — e.g. pgvector
CREATE EXTENSION IF NOT EXISTS vector;

-- Verify it's installed
SELECT extname, extversion FROM pg_extension WHERE extname = 'vector';

CLI

Flag-gated extensions need the cloudsql.enable_<name> flag set first (this restarts the instance), then CREATE EXTENSION. NOTE: --database-flags REPLACES the entire flag set, so comma-join every flag you want to keep.

# 1. Set the preload flag (restarts the instance).
#    --database-flags REPLACES all flags — list every flag you want to keep.
gcloud sql instances patch INSTANCE_NAME \
  --database-flags=cloudsql.enable_pg_cron=on

# 2. After the restart, create the extension:
#    CREATE EXTENSION pg_cron;

Infrastructure as Code

Terraform manages flags as settings.database_flags blocks on google_sql_database_instance. Add one block per flag, then run CREATE EXTENSION once the instance has restarted.

resource "google_sql_database_instance" "postgres" {
  name             = "INSTANCE_NAME"
  database_version = "POSTGRES_18"

  settings {
    tier = "db-custom-2-7680"

    database_flags {
      name  = "cloudsql.enable_pg_cron"
      value = "on"
    }
  }
}

# Then, against the instance:  CREATE EXTENSION pg_cron;

Pre-enabled on Google Cloud SQL for PostgreSQL

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

Google Cloud SQL for PostgreSQL-specific extensions

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

google_ml_integration

Google's proprietary extension for in-database machine learning — generate embeddings and call Vertex AI model endpoints directly from SQL, with model endpoint management built in.

Docs
Vector assist (cloudsql.enable_vector_assist)

A Cloud SQL database flag that enables vector-query assistance for pgvector workloads, improving the planning and execution of similarity search.

Docs

Notable absences

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

timescaledb

Why missing: Cloud SQL for PostgreSQL does not include timescaledb in its managed extension allow-list, and you can't install it yourself. Google's AlloyDB for PostgreSQL doesn't offer it either.

Alternative: For time-series workloads, use native Postgres partitioning with pg_partman (which Cloud SQL does support), run TimescaleDB self-managed on a Compute Engine VM, or use a provider that ships it such as Timescale Cloud or Crunchy Bridge.

citus

Why missing: Cloud SQL does not support citus — distributed/sharded Postgres isn't part of the Cloud SQL extension allow-list, and it can't be added manually.

Alternative: For scale-out beyond a single primary, use AlloyDB for PostgreSQL (Google's analytics-optimized managed Postgres), run Citus self-managed, or choose a managed Citus offering.

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

No — managed allow-list only

Cloud SQL runs a managed allow-list: you can install only the extensions that Cloud SQL supports, and you cannot create your own extensions in Cloud SQL. Extensions are creatable only by the cloudsqlsuperuser (the default `postgres` user) via CREATE EXTENSION, and there is no trusted-language or bring-your-own mechanism for native C extensions. To get a new extension added, file a request on the Cloud SQL public issue tracker.

Learn more

Frequently Asked Questions

What are the cloudsql.enable_* flags on Cloud SQL?
They are Cloud SQL database flags that preload an extension's shared library at server start. Extensions like pg_cron, pgaudit, auto_explain, pg_hint_plan, pglogical, pg_squeeze, pg_bigm, pg_wait_sampling, and postgresql_anonymizer (the anon flag) require their `cloudsql.enable_<name>` flag set to `on` before CREATE EXTENSION will work. Setting the flag restarts the instance; the flag alone does not create the extension — you still run CREATE EXTENSION afterward.
How do I enable pg_cron on Cloud SQL?
It's a two-step process. First set the flag: `gcloud sql instances patch INSTANCE_NAME --database-flags=cloudsql.enable_pg_cron=on`, which restarts the instance (note that --database-flags replaces the entire flag set, so comma-join any flags you want to keep). Once it's back up, connect as the postgres user and run `CREATE EXTENSION pg_cron;`, then schedule jobs with `cron.schedule()`.
Does Cloud SQL support pgvector?
Yes. pgvector is supported and installs with `CREATE EXTENSION vector;` — no database flag required. Cloud SQL also offers the optional `cloudsql.enable_vector_assist` flag and the proprietary google_ml_integration extension for generating embeddings from Vertex AI directly in SQL.
Does Cloud SQL support timescaledb or citus?
No. Neither timescaledb nor citus is in the Cloud SQL extension allow-list, and you can't install them manually — Google's AlloyDB doesn't offer them either. For time-series, use pg_partman with native partitioning or Timescale Cloud / Crunchy Bridge; for distributed Postgres, consider AlloyDB or a self-managed Citus deployment.
Can I install custom extensions on Cloud SQL?
No. You can install only the extensions Cloud SQL supports, and you cannot create your own. Extensions are creatable only by the cloudsqlsuperuser (the default postgres user), and there is no trusted-language framework for bringing your own. To request a new extension, file an issue on the Cloud SQL public issue tracker.

Manage your Google Cloud SQL for PostgreSQL database with 1bench

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

Try 1bench for PostgreSQL