Azure Database for PostgreSQL — Flexible Server is Microsoft's managed Postgres, with pgvector, postgis and Azure's own pg_diskann vector index plus the azure_ai integration — enable each one by adding it to the azure.extensions allow-list, then running CREATE EXTENSION.
Enables scalable inserts and complex queries for time-series data
Enables scalable inserts and complex queries for time-series data
vector data type and ivfflat and hnsw access methods
Job scheduler for PostgreSQL
Extension to manage partitioned tables by time or ID
Extension to manage partitioned tables by time or ID
Reorganize tables in PostgreSQL databases with minimal locks
Reorganize tables in PostgreSQL databases with minimal locks
PL/JavaScript (v8) trusted procedural language
provides auditing functionality
Changing data capture in JSON format
incremental view maintenance on PostgreSQL
type for storing hyperloglog data
Give PostgreSQL ability to manually force some decisions in execution plans.
Give PostgreSQL ability to manually force some decisions in execution plans.
A tool to remove unused space from a relation.
foreign data wrapper for Oracle access
Functions and operators that emulate a subset of functions and packages from the Oracle RDBMS
Functions and operators that emulate a subset of functions and packages from the Oracle RDBMS
Foreign data wrapper for querying a TDS database (Sybase or Microsoft SQL Server)
Foreign data wrapper for querying a TDS database (Sybase or Microsoft SQL Server)
IPv4/v6 and IPv4/v6 range index type for PostgreSQL
Provides functions to query, convert, and extract fields from Protocol Buffer columns stored in PostgreSQL.
Provides functions to query, convert, and extract fields from Protocol Buffer columns stored in PostgreSQL.
PG Failover Slots extension
credcheck - postgresql plain text credential checker
login_hook - hook to execute login_hook.login() at login time
login_hook - hook to execute login_hook.login() at login time
Registration and manipulation of session variables and constants
Registration and manipulation of session variables and constants
Provides a means for logging execution plans of slow statements automatically
Provides a means for logging execution plans of slow statements automatically
bloom access method - signature file based index
support for indexing common datatypes in GIN
support for indexing common datatypes in GiST
data type for case-insensitive character strings
connect to other PostgreSQL databases from within a database
connect to other PostgreSQL databases from within a database
text search dictionary template for integers
text search dictionary template for extended synonym processing
calculate great-circle distances on the surface of the Earth
determine similarities and distance between strings
data type for storing sets of (key, value) pairs
functions, operators, and index support for 1-D arrays of integers
data types for international product numbering standards
data type for hierarchical tree-like structures
inspect the contents of database pages at a low level
track planning and execution statistics of all SQL statements executed
track planning and execution statistics of all SQL statements executed
text similarity measurement and index searching based on trigrams
text similarity measurement and index searching based on trigrams
examine the visibility map (VM) and page-level visibility info
examine the visibility map (VM) and page-level visibility info
PostGIS geometry and geography spatial types and functions
foreign-data wrapper for remote PostgreSQL servers
functions that manipulate whole tables, including crosstab
functions that manipulate whole tables, including crosstab
TABLESAMPLE method which accepts number of rows as a limit
TABLESAMPLE method which accepts time in milliseconds as a limit
TABLESAMPLE method which accepts time in milliseconds as a limit
generate universally unique identifiers (UUIDs)
Azure gates extensions behind an allow-list. Before CREATE EXTENSION will succeed, the extension must be added to the azure.extensions server parameter. Preload extensions (pg_cron, pgaudit, timescaledb, pg_partman, and others) additionally need to be listed in shared_preload_libraries, which is a static parameter that requires a server restart.
Run from psql or any client once the extension is allow-listed (and preloaded + restarted, if required).
-- Enable pgvector (after adding 'vector' to azure.extensions)
CREATE EXTENSION IF NOT EXISTS vector;
-- Verify it's installed
SELECT extname, extversion FROM pg_extension WHERE extname = 'vector';Use the Azure CLI to set the allow-list and, for preload extensions, shared_preload_libraries followed by a restart.
# Allow-list the extension(s)
az postgres flexible-server parameter set \
--resource-group <rg> --server-name <server> \
--name azure.extensions --value vector,postgis
# For preload extensions (e.g. pg_cron, timescaledb), also set
# shared_preload_libraries — a static parameter — then restart
az postgres flexible-server parameter set \
--resource-group <rg> --server-name <server> \
--name shared_preload_libraries --value pg_cron,timescaledb
az postgres flexible-server restart \
--resource-group <rg> --name <server>
# Then connect and run: CREATE EXTENSION <name>;These extensions ship enabled by default — no CREATE EXTENSION needed.
Proprietary extensions that exist only on Azure Database for PostgreSQL — Flexible Server, not part of the open-source PostgreSQL ecosystem.
Call Azure OpenAI and Azure AI Services directly from SQL — generate embeddings, run completions, and invoke language/vision models inside the database.
DocsRead from and write to Azure Blob Storage from SQL, so you can import/export data between Postgres tables and blob containers without an external pipeline.
DocsMicrosoft's DiskANN-based approximate-nearest-neighbor vector index, an alternative to HNSW/IVFFlat for high-recall similarity search at scale (PostgreSQL 14+).
DocsGenerate text embeddings locally inside the database using a model that runs on the server, avoiding round-trips to an external AI endpoint.
DocsExtensions you might expect that aren't available on Azure Database for PostgreSQL — Flexible Server, with workarounds where they exist.
citusWhy missing: citus is not a user-installable extension on Flexible Server's by-engine list. Horizontal scale-out is delivered as a separate product feature — Elastic clusters (the managed evolution of the Hyperscale/Citus offering) — rather than something you enable on a single Flexible Server.
Alternative: For distributed, sharded Postgres on Azure, provision an Elastic cluster instead of a single Flexible Server; the Citus engine is built in there.
pg_failover_slotsWhy missing: pg_failover_slots is supported on older engines but is not available on PostgreSQL 18 or 17 on Flexible Server, so the newest majors can't use it to preserve logical replication slots across a failover.
Alternative: On PG 17/18, rely on Flexible Server's high-availability failover (which fails over physical replication) and recreate logical slots after a failover, or pin a project to PG 16 or earlier if slot survival is a hard requirement.
Flexible Server is allow-list only. An extension can be enabled only if Azure has it on the platform's supported list and you have added it to the azure.extensions server parameter. There is no mechanism to install arbitrary or custom-compiled C extensions, upload your own binaries, or load shared libraries outside the platform-approved set — only the extensions Microsoft lists for your engine version can be created.
1bench is a modern GUI client for PostgreSQL — connect to your Azure Database for PostgreSQL — Flexible Server instance, install extensions, write queries, and inspect schemas without leaving the IDE.
Try 1bench for PostgreSQL