PostgreSQL feature capabilities
Recorded source states and original language descriptions. Missing version evidence stays unknown.
The source snapshot records transitions for PostgreSQL 8.1–18. The historical matrix records independent cells for 7.4–18. Neither records support for PostgreSQL 19 or 20; newer versions remain unknown. These source claims are distinct from runtime measurements.
This table outlines which features were added in which version. To get more information about a feature, click the link or hover over its name.
Groups
- Backend
- Data Types, Functions, & Operators
- Indexing & Constraints
- SQL
- Data Definition Language (DDL)
- Performance
- JSON
- Partitioning & Inheritance
- Views & Materialized Views
- Replication
- Backup, Restore, & Data Integrity
- Upgrade
- Data Import & Export
- Configuration Management
- Security
- Transactions and Visibility
- VACUUM and Maintenance
- Foreign Data Wrappers
- Custom Functions, Stored Procedures, & Triggers
- Procedural Languages
- Extensions
- Internationalisation
- Client Applications
- Additional Modules (contrib)
- Network
- Platforms
420 source capabilities
Backend
| Capability | 20 | 19 | 18 | 17 | 16 | 15 | 14 | 13 | 12 | 11 | 10 | 9.6 | 9.5 | 9.4 | 9.3 | 9.2 | 9.1 | 9.0 | 8.4 | 8.3 | 8.2 | 8.1 | 8.0 | 7.4 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 64-bit large objects | Unknown | Unknown | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | Unknown | Unknown |
| Advisory locks | Unknown | Unknown | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | Unknown | Unknown |
| Custom background workers | Unknown | Unknown | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | Unknown | Unknown |
| Disk based FSM | Unknown | Unknown | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | Unknown | Unknown |
| Dynamic Background Workers | Unknown | Unknown | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | No | Unknown | Unknown |
| EXPLAIN (BUFFERS) support | Unknown | Unknown | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | Unknown | Unknown |
| EXPLAIN (MEMORY) | Unknown | Unknown | Yes | Yes | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | Unknown | Unknown |
| EXPLAIN (SERIALIZE) support | Unknown | Unknown | Yes | Yes | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | Unknown | Unknown |
| EXPLAIN (WAL) support | Unknown | Unknown | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No | No | No | No | No | No | Unknown | Unknown |
| "jsonlog" logging format | Unknown | Unknown | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | Unknown | Unknown |
| Loadable plugin infrastructure for monitoring the planner | Unknown | Unknown | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | Unknown | Unknown |
| Payload support for LISTEN/NOTIFY | Unknown | Unknown | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | Unknown | Unknown |
| pg_stat_checkpointer system view | Unknown | Unknown | Yes | Yes | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | Unknown | Unknown |
| pg_stat_io - I/O metrics view | Unknown | Unknown | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | Unknown | Unknown |
| pg_wait_events system view | Unknown | Unknown | Yes | Yes | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | Unknown | Unknown |
| Server statistics in shared memory | Unknown | Unknown | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | Unknown | Unknown |
| SQL-standard information schema | Unknown | Unknown | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Unknown | Unknown |
| Support for anonymous shared memory | Unknown | Unknown | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | Unknown | Unknown |
| XML, JSON and YAML output for EXPLAIN | Unknown | Unknown | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | Unknown | Unknown |
Data Types, Functions, & Operators
| Capability | 20 | 19 | 18 | 17 | 16 | 15 | 14 | 13 | 12 | 11 | 10 | 9.6 | 9.5 | 9.4 | 9.3 | 9.2 | 9.1 | 9.0 | 8.4 | 8.3 | 8.2 | 8.1 | 8.0 | 7.4 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Arrays of compound types | Unknown | Unknown | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | Unknown | Unknown |
| Array support | Unknown | Unknown | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Unknown | Unknown |
| ENUM data type | Unknown | Unknown | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | Unknown | Unknown |
| GUID/UUID data type | Unknown | Unknown | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | Unknown | Unknown |
| macaddr8 data type | Unknown | Unknown | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No | No | No | Unknown | Unknown |
| Multiranges | Unknown | Unknown | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | Unknown | Unknown |
| NULLs in Array | Unknown | Unknown | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | Unknown | Unknown |
| Phrase search | Unknown | Unknown | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No | No | Unknown | Unknown |
| Range types | Unknown | Unknown | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | Unknown | Unknown |
| smallserial type | Unknown | Unknown | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | Unknown | Unknown |
| Type modifier support | Unknown | Unknown | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | Unknown | Unknown |
| UUIDv7 | Unknown | Unknown | Yes | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | Unknown | Unknown |
| XML data type | Unknown | Unknown | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | Unknown | Unknown |
Indexing & Constraints
| Capability | 20 | 19 | 18 | 17 | 16 | 15 | 14 | 13 | 12 | 11 | 10 | 9.6 | 9.5 | 9.4 | 9.3 | 9.2 | 9.1 | 9.0 | 8.4 | 8.3 | 8.2 | 8.1 | 8.0 | 7.4 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Block-range (BRIN) indexes | Unknown | Unknown | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No | Unknown | Unknown |
| B-tree bottom-up index deletion | Unknown | Unknown | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | Unknown | Unknown |
| B-tree deduplication | Unknown | Unknown | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No | No | No | No | No | No | Unknown | Unknown |
| Concurrent GiST indexes | Unknown | Unknown | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Unknown | Unknown |
| Covering Indexes for B-trees (INCLUDE) | Unknown | Unknown | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No | No | No | No | Unknown | Unknown |
| Covering indexes for GiST (INCLUDE) | Unknown | Unknown | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No | No | No | No | No | Unknown | Unknown |
| Deferrable unique constraints | Unknown | Unknown | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | Unknown | Unknown |
| Exclusion constraints | Unknown | Unknown | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | Unknown | Unknown |
| GIN (Generalized Inverted Index) Indexes | Unknown | Unknown | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | Unknown | Unknown |
| GIN indexes partial match | Unknown | Unknown | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | Unknown | Unknown |
| GIN Index performance and size improvements | Unknown | Unknown | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | No | Unknown | Unknown |
| GiST (Generalized Search Tree) Indexes | Unknown | Unknown | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Unknown | Unknown |
| Indexes on expressions | Unknown | Unknown | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Unknown | Unknown |
| Index-only scans | Unknown | Unknown | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | Unknown | Unknown |
| Index-only scans on GiST | Unknown | Unknown | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No | Unknown | Unknown |
| Index support for IS NULL | Unknown | Unknown | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | Unknown | Unknown |
| In-memory Bitmap Indexes | Unknown | Unknown | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Unknown | Unknown |
| K-nearest neighbor GiST support | Unknown | Unknown | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | Unknown | Unknown |
| K-nearest neighbor SP-GiST Support | Unknown | Unknown | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No | No | No | No | No | Unknown | Unknown |
| Non-blocking CREATE INDEX | Unknown | Unknown | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | Unknown | Unknown |
| Parallel B-tree index scans | Unknown | Unknown | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No | No | No | Unknown | Unknown |
| Parallelized CREATE INDEX for BRIN indexes | Unknown | Unknown | Yes | Yes | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | Unknown | Unknown |
| Parallelized CREATE INDEX for B-tree indexes | Unknown | Unknown | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No | No | No | No | Unknown | Unknown |
| Parallelized CREATE INDEX for GIN indexes | Unknown | Unknown | Yes | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | Unknown | Unknown |
| Skip scan on multicolumn B-tree indexes | Unknown | Unknown | Yes | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | Unknown | Unknown |
| Space-Partitioned GiST (SP-GiST) Indexes | Unknown | Unknown | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | Unknown | Unknown |
| SP-GiST indexes for range types | Unknown | Unknown | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | Unknown | Unknown |
| UNIQUE NULLS NOT DISTINCT | Unknown | Unknown | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | Unknown | Unknown |
| WAL support for hash indexes | Unknown | Unknown | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No | No | No | Unknown | Unknown |
SQL
| Capability | 20 | 19 | 18 | 17 | 16 | 15 | 14 | 13 | 12 | 11 | 10 | 9.6 | 9.5 | 9.4 | 9.3 | 9.2 | 9.1 | 9.0 | 8.4 | 8.3 | 8.2 | 8.1 | 8.0 | 7.4 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ANY_VALUE aggregate | Unknown | Unknown | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | Unknown | Unknown |
| FETCH FIRST .. WITH TIES | Unknown | Unknown | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No | No | No | No | No | No | Unknown | Unknown |
| GROUPING SETS, CUBE and ROLLUP support | Unknown | Unknown | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No | Unknown | Unknown |
| INSERT/UPDATE/DELETE RETURNING | Unknown | Unknown | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | Unknown | Unknown |
| LATERAL clause | Unknown | Unknown | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | Unknown | Unknown |
| MERGE | Unknown | Unknown | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | Unknown | Unknown |
| MERGE ... RETURNING | Unknown | Unknown | Yes | Yes | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | Unknown | Unknown |
| Multirow VALUES | Unknown | Unknown | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | Unknown | Unknown |
| Non-decimal integer literals | Unknown | Unknown | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | Unknown | Unknown |
| ORDER BY NULLS FIRST/LAST | Unknown | Unknown | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | Unknown | Unknown |
| range_agg range type aggregation function | Unknown | Unknown | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | Unknown | Unknown |
| Recursive Queries | Unknown | Unknown | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | Unknown | Unknown |
| regexp_count, regexp_instr, regexp_like | Unknown | Unknown | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | Unknown | Unknown |
| Return OLD and NEW values from modified rows | Unknown | Unknown | Yes | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | Unknown | Unknown |
| Row-wise comparison | Unknown | Unknown | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | Unknown | Unknown |
| SELECT FOR NO KEY UPDATE/SELECT FOR KEY SHARE lock modes | Unknown | Unknown | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | Unknown | Unknown |
| SQL standard interval handling | Unknown | Unknown | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | Unknown | Unknown |
| SYSTEM_USER | Unknown | Unknown | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | Unknown | Unknown |
| TABLE statement | Unknown | Unknown | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | Unknown | Unknown |
| Underscores (_) for thousands separators | Unknown | Unknown | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | Unknown | Unknown |
| unnest/array_agg | Unknown | Unknown | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | Unknown | Unknown |
| Upsert (INSERT ... ON CONFLICT DO ...) | Unknown | Unknown | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No | Unknown | Unknown |
| Window functions | Unknown | Unknown | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | Unknown | Unknown |
| WITHIN GROUP clause | Unknown | Unknown | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | No | Unknown | Unknown |
| WITH ORDINALITY clause | Unknown | Unknown | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | No | Unknown | Unknown |
| WITH Queries (Common Table Expressions) | Unknown | Unknown | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | Unknown | Unknown |
| Writable WITH Queries (Common Table Expressions) | Unknown | Unknown | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | Unknown | Unknown |
Data Definition Language (DDL)
| Capability | 20 | 19 | 18 | 17 | 16 | 15 | 14 | 13 | 12 | 11 | 10 | 9.6 | 9.5 | 9.4 | 9.3 | 9.2 | 9.1 | 9.0 | 8.4 | 8.3 | 8.2 | 8.1 | 8.0 | 7.4 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ALTER object IF EXISTS | Unknown | Unknown | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | Unknown | Unknown |
| ALTER TABLE ... ADD UNIQUE/PRIMARY KEY USING INDEX | Unknown | Unknown | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | Unknown | Unknown |
| ALTER TABLE ... SET ACCESS METHOD | Unknown | Unknown | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | Unknown | Unknown |
| ALTER TABLE ... SET LOGGED / UNLOGGED | Unknown | Unknown | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No | Unknown | Unknown |
| Changing column types (ALTER TABLE .. ALTER COLUMN TYPE) | Unknown | Unknown | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Unknown | Unknown |
| CREATE ACCESS METHOD | Unknown | Unknown | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No | No | No | No | No | Unknown | Unknown |
| CREATE TABLE ... (LIKE) with foreign tables, views and composite types | Unknown | Unknown | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | Unknown | Unknown |
| DROP object IF EXISTS | Unknown | Unknown | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | Unknown | Unknown |
| ON COMMIT clause for CREATE TEMPORARY TABLE | Unknown | Unknown | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Unknown | Unknown |
| REINDEX CONCURRENTLY | Unknown | Unknown | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No | No | No | No | No | Unknown | Unknown |
| Stored Generated Columns | Unknown | Unknown | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No | No | No | No | No | Unknown | Unknown |
| Temporal constraints | Unknown | Unknown | Yes | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | Unknown | Unknown |
| Typed tables | Unknown | Unknown | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | Unknown | Unknown |
| Virtual Generated Columns | Unknown | Unknown | Yes | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | Unknown | Unknown |
Performance
| Capability | 20 | 19 | 18 | 17 | 16 | 15 | 14 | 13 | 12 | 11 | 10 | 9.6 | 9.5 | 9.4 | 9.3 | 9.2 | 9.1 | 9.0 | 8.4 | 8.3 | 8.2 | 8.1 | 8.0 | 7.4 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Abbreviated Keys | Unknown | Unknown | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No | Unknown | Unknown |
| Asynchronous Commit | Unknown | Unknown | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | Unknown | Unknown |
| Asynchronous I/O (AIO) | Unknown | Unknown | Yes | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | Unknown | Unknown |
| Automatic plan invalidation | Unknown | Unknown | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | Unknown | Unknown |
| Background Checkpointer | Unknown | Unknown | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | Unknown | Unknown |
| Background Writer | Unknown | Unknown | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Unknown | Unknown |
| Base backup throttling | Unknown | Unknown | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | No | Unknown | Unknown |
| CREATE STATISTICS - most-common values (MCV) statistics | Unknown | Unknown | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No | No | No | No | No | Unknown | Unknown |
| CREATE STATISTICS - multicolumn | Unknown | Unknown | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No | No | No | Unknown | Unknown |
| CREATE STATISTICS - "OR" and "IN/ANY" statistics | Unknown | Unknown | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No | No | No | No | No | No | Unknown | Unknown |
| Cross datatype hashing support | Unknown | Unknown | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | Unknown | Unknown |
| Distributed checkpointing | Unknown | Unknown | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | Unknown | Unknown |
| Foreign keys marked as NOT VALID | Unknown | Unknown | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | Unknown | Unknown |
| Frozen page map | Unknown | Unknown | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No | No | Unknown | Unknown |
| Full Text Search | Unknown | Unknown | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | Unknown | Unknown |
| Hash aggregation can use disk | Unknown | Unknown | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No | No | No | No | No | No | Unknown | Unknown |
| Hashing support for DISTINCT/UNION/INTERSECT/EXCEPT | Unknown | Unknown | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | Unknown | Unknown |
| Hashing support for FULL OUTER JOIN, LEFT OUTER JOIN and RIGHT OUTER JOIN | Unknown | Unknown | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | Unknown | Unknown |
| Heap Only Tuples (HOT) | Unknown | Unknown | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | Unknown | Unknown |
| Improved performance for sorts exceeding working memory | Unknown | Unknown | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | Unknown | Unknown |
| Improved window function performance | Unknown | Unknown | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | Unknown | Unknown |
| Incremental sort | Unknown | Unknown | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No | No | No | No | No | No | Unknown | Unknown |
| Incremental sort for SELECT DISTINCT | Unknown | Unknown | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | Unknown | Unknown |
| Incremental sort for window functions | Unknown | Unknown | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | Unknown | Unknown |
| Inlined WITH Queries (Common Table Expressions) | Unknown | Unknown | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No | No | No | No | No | Unknown | Unknown |
| Inlining of SQL-functions | Unknown | Unknown | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Unknown | Unknown |
| Just-in-Time (JIT) compilation for expression evaluation and tuple deforming | Unknown | Unknown | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No | No | No | No | Unknown | Unknown |
| Load balancing for libpq / psql | Unknown | Unknown | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | Unknown | Unknown |
| LZ4 compression for TOAST tables | Unknown | Unknown | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | Unknown | Unknown |
| Multi-core scalability for read-only workloads | Unknown | Unknown | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | Unknown | Unknown |
| Multiple temporary tablespaces | Unknown | Unknown | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | Unknown | Unknown |
| Outer Join reordering | Unknown | Unknown | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | Unknown | Unknown |
| Parallel bitmap heap scans | Unknown | Unknown | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No | No | No | Unknown | Unknown |
| Parallel FULL and RIGHT joins | Unknown | Unknown | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | Unknown | Unknown |
| Parallel full table scans (sequential scans) | Unknown | Unknown | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No | No | Unknown | Unknown |
| Parallel hash joins | Unknown | Unknown | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No | No | No | No | Unknown | Unknown |
| Parallel JOIN, aggregate | Unknown | Unknown | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No | No | Unknown | Unknown |
| Parallel merge joins | Unknown | Unknown | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No | No | No | Unknown | Unknown |
| Parallel query | Unknown | Unknown | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No | No | Unknown | Unknown |
| Parallel "SELECT DISTINCT" | Unknown | Unknown | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | Unknown | Unknown |
| Partial sort capability (top-n sorting) | Unknown | Unknown | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | Unknown | Unknown |
| Query pipelining | Unknown | Unknown | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | Unknown | Unknown |
| Reduced lock levels for ALTER TABLE commands | Unknown | Unknown | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | No | Unknown | Unknown |
| SELECT ... FOR UPDATE/SHARE NOWAIT | Unknown | Unknown | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Unknown | Unknown |
| Set costs specific to TABLESPACEs | Unknown | Unknown | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | Unknown | Unknown |
| Shared row level locking | Unknown | Unknown | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Unknown | Unknown |
| SIMD support for ARM | Unknown | Unknown | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | Unknown | Unknown |
| SIMD support for x86 | Unknown | Unknown | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | Unknown | Unknown |
| SKIP LOCKED clause | Unknown | Unknown | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No | Unknown | Unknown |
| Synchronized sequential scanning | Unknown | Unknown | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | Unknown | Unknown |
| TABLESAMPLE clause | Unknown | Unknown | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No | Unknown | Unknown |
| Tablespaces | Unknown | Unknown | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Unknown | Unknown |
| Unlogged tables | Unknown | Unknown | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | Unknown | Unknown |
| WAL Buffer auto-tuning | Unknown | Unknown | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | Unknown | Unknown |
JSON
| Capability | 20 | 19 | 18 | 17 | 16 | 15 | 14 | 13 | 12 | 11 | 10 | 9.6 | 9.5 | 9.4 | 9.3 | 9.2 | 9.1 | 9.0 | 8.4 | 8.3 | 8.2 | 8.1 | 8.0 | 7.4 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Improved set of JSON functions and operators | Unknown | Unknown | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | Unknown | Unknown |
| JSONB data type | Unknown | Unknown | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | No | Unknown | Unknown |
| JSONB-modifying operators and functions | Unknown | Unknown | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No | Unknown | Unknown |
| JSONB Subscripting | Unknown | Unknown | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | Unknown | Unknown |
| JSON data type | Unknown | Unknown | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | Unknown | Unknown |
| SQL/JSON constructors | Unknown | Unknown | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | Unknown | Unknown |
| SQL/JSON: datetime() | Unknown | Unknown | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No | No | No | No | No | No | Unknown | Unknown |
| SQL/JSON IS JSON | Unknown | Unknown | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | Unknown | Unknown |
| SQL/JSON JSON_TABLE | Unknown | Unknown | Yes | Yes | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | Unknown | Unknown |
| SQL/JSON path expressions | Unknown | Unknown | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No | No | No | No | No | Unknown | Unknown |
| SQL/JSON query functions | Unknown | Unknown | Yes | Yes | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | Unknown | Unknown |
Partitioning & Inheritance
| Capability | 20 | 19 | 18 | 17 | 16 | 15 | 14 | 13 | 12 | 11 | 10 | 9.6 | 9.5 | 9.4 | 9.3 | 9.2 | 9.1 | 9.0 | 8.4 | 8.3 | 8.2 | 8.1 | 8.0 | 7.4 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Accelerated partition pruning | Unknown | Unknown | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No | No | No | No | No | Unknown | Unknown |
| Declarative table partitioning | Unknown | Unknown | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No | No | No | Unknown | Unknown |
| Default Partition | Unknown | Unknown | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No | No | No | No | Unknown | Unknown |
| Foreign Key references for partitioned tables | Unknown | Unknown | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No | No | No | No | No | Unknown | Unknown |
| Foreign table inheritance | Unknown | Unknown | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No | Unknown | Unknown |
| Partitioning by a hash key | Unknown | Unknown | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No | No | No | No | Unknown | Unknown |
| Partition pruning during query execution | Unknown | Unknown | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No | No | No | No | Unknown | Unknown |
| Support for PRIMARY KEY, FOREIGN KEY, indexes, and triggers on partitioned tables | Unknown | Unknown | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No | No | No | No | Unknown | Unknown |
| Table Partitioning | Unknown | Unknown | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Unknown | Unknown |
| UPDATE on a partition key | Unknown | Unknown | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No | No | No | No | Unknown | Unknown |
Views & Materialized Views
| Capability | 20 | 19 | 18 | 17 | 16 | 15 | 14 | 13 | 12 | 11 | 10 | 9.6 | 9.5 | 9.4 | 9.3 | 9.2 | 9.1 | 9.0 | 8.4 | 8.3 | 8.2 | 8.1 | 8.0 | 7.4 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Materialized Views | Unknown | Unknown | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | Unknown | Unknown |
| Materialized views with concurrent refresh | Unknown | Unknown | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | No | Unknown | Unknown |
| SECURITY INVOKER views | Unknown | Unknown | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | Unknown | Unknown |
| Temporary VIEWs | Unknown | Unknown | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Unknown | Unknown |
| Updatable views | Unknown | Unknown | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | Unknown | Unknown |
| WITH CHECK clause | Unknown | Unknown | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | No | Unknown | Unknown |
Replication
| Capability | 20 | 19 | 18 | 17 | 16 | 15 | 14 | 13 | 12 | 11 | 10 | 9.6 | 9.5 | 9.4 | 9.3 | 9.2 | 9.1 | 9.0 | 8.4 | 8.3 | 8.2 | 8.1 | 8.0 | 7.4 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ALTER SUBSCRIPTION ... SKIP | Unknown | Unknown | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | Unknown | Unknown |
| Cascading streaming replication | Unknown | Unknown | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | Unknown | Unknown |
| Configure max WAL retention for replication slots | Unknown | Unknown | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No | No | No | No | No | No | Unknown | Unknown |
| Failover support for logical replication slots | Unknown | Unknown | Yes | Yes | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | Unknown | Unknown |
| Logical replication | Unknown | Unknown | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No | No | No | Unknown | Unknown |
| Logical replication avoids replication loops | Unknown | Unknown | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | Unknown | Unknown |
| Logical replication column lists | Unknown | Unknown | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | Unknown | Unknown |
| Logical replication for partitioned tables | Unknown | Unknown | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No | No | No | No | No | No | Unknown | Unknown |
| Logical replication from standbys | Unknown | Unknown | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | Unknown | Unknown |
| Logical replication of stored generated columns | Unknown | Unknown | Yes | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | Unknown | Unknown |
| Logical replication initial sync using binary protocol | Unknown | Unknown | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | Unknown | Unknown |
| Logical replication lookups with additional indexes | Unknown | Unknown | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | Unknown | Unknown |
| Logical replication parallel apply of transactions | Unknown | Unknown | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | Unknown | Unknown |
| Logical replication publish all tables in schema | Unknown | Unknown | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | Unknown | Unknown |
| Logical replication row filtering | Unknown | Unknown | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | Unknown | Unknown |
| Logical replication slots migrate through pg_upgrade migrate | Unknown | Unknown | Yes | Yes | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | Unknown | Unknown |
| Logical replication stream in-progress transactions | Unknown | Unknown | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | Unknown | Unknown |
| Logical replication subscriber can disable on error | Unknown | Unknown | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | Unknown | Unknown |
| Logical replication write conflict logging | Unknown | Unknown | Yes | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | Unknown | Unknown |
| Quorum commit for synchronous replication | Unknown | Unknown | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No | No | No | Unknown | Unknown |
| Replication Slots | Unknown | Unknown | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | No | Unknown | Unknown |
| Streaming-only cascading replication | Unknown | Unknown | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | Unknown | Unknown |
| Streaming Replication | Unknown | Unknown | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | Unknown | Unknown |
| Synchronous replication | Unknown | Unknown | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | Unknown | Unknown |
Backup, Restore, & Data Integrity
| Capability | 20 | 19 | 18 | 17 | 16 | 15 | 14 | 13 | 12 | 11 | 10 | 9.6 | 9.5 | 9.4 | 9.3 | 9.2 | 9.1 | 9.0 | 8.4 | 8.3 | 8.2 | 8.1 | 8.0 | 7.4 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Archive modules | Unknown | Unknown | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | Unknown | Unknown |
| Checksum on data pages | Unknown | Unknown | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | Unknown | Unknown |
| Enable/Disable page checksums in an offline cluster | Unknown | Unknown | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No | No | No | No | No | Unknown | Unknown |
| Generic WAL facility | Unknown | Unknown | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No | No | Unknown | Unknown |
| Hot Standby | Unknown | Unknown | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | Unknown | Unknown |
| lz4 and Zstandard (zstd) compression for WAL full page writes | Unknown | Unknown | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | Unknown | Unknown |
| min_wal_size / max_wal_size | Unknown | Unknown | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No | Unknown | Unknown |
| Multiple synchronous standbys | Unknown | Unknown | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No | No | Unknown | Unknown |
| Named restore points | Unknown | Unknown | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | Unknown | Unknown |
| Parallel pg_dump | Unknown | Unknown | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | Unknown | Unknown |
| Parallel restore | Unknown | Unknown | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | Unknown | Unknown |
| pg_basebackup client decompression | Unknown | Unknown | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | Unknown | Unknown |
| pg_basebackup incremental backup | Unknown | Unknown | Yes | Yes | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | Unknown | Unknown |
| pg_basebackup server-side compression | Unknown | Unknown | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | Unknown | Unknown |
| pg_basebackup tool | Unknown | Unknown | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | Unknown | Unknown |
| pg_dump, pg_dumpall, pg_restore --filter | Unknown | Unknown | Yes | Yes | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | Unknown | Unknown |
| pg_receivewal (formerly pg_receivexlog) | Unknown | Unknown | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | Unknown | Unknown |
| Point-in-Time Recovery | Unknown | Unknown | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Unknown | Unknown |
| Pre-fetch WAL during recovery | Unknown | Unknown | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | Unknown | Unknown |
| remote_apply mode | Unknown | Unknown | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No | No | Unknown | Unknown |
| Time-delayed Standbys | Unknown | Unknown | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | No | Unknown | Unknown |
| Verify backup integrity (pg_verifybackup) | Unknown | Unknown | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No | No | No | No | No | No | Unknown | Unknown |
| Warm Standby | Unknown | Unknown | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | Unknown | Unknown |
Upgrade
| Capability | 20 | 19 | 18 | 17 | 16 | 15 | 14 | 13 | 12 | 11 | 10 | 9.6 | 9.5 | 9.4 | 9.3 | 9.2 | 9.1 | 9.0 | 8.4 | 8.3 | 8.2 | 8.1 | 8.0 | 7.4 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| pg_upgrade --swap | Unknown | Unknown | Yes | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | Unknown | Unknown |
| Planner statistics preserved on major version upgrade | Unknown | Unknown | Yes | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | Unknown | Unknown |
Data Import & Export
| Capability | 20 | 19 | 18 | 17 | 16 | 15 | 14 | 13 | 12 | 11 | 10 | 9.6 | 9.5 | 9.4 | 9.3 | 9.2 | 9.1 | 9.0 | 8.4 | 8.3 | 8.2 | 8.1 | 8.0 | 7.4 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| COPY from/to STDIN/STDOUT | Unknown | Unknown | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | Unknown | Unknown |
| COPY FROM ... WHERE | Unknown | Unknown | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No | No | No | No | No | Unknown | Unknown |
| COPY ... ON_ERROR | Unknown | Unknown | Yes | Yes | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | Unknown | Unknown |
| COPY with arbitrary SELECT | Unknown | Unknown | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | Unknown | Unknown |
| CSV support for COPY | Unknown | Unknown | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Unknown | Unknown |
Configuration Management
| Capability | 20 | 19 | 18 | 17 | 16 | 15 | 14 | 13 | 12 | 11 | 10 | 9.6 | 9.5 | 9.4 | 9.3 | 9.2 | 9.1 | 9.0 | 8.4 | 8.3 | 8.2 | 8.1 | 8.0 | 7.4 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ALTER SYSTEM | Unknown | Unknown | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | No | Unknown | Unknown |
| Fractional input for "integer" values | Unknown | Unknown | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No | No | No | No | No | Unknown | Unknown |
| Include directives for pg_hba.conf and pg_ident.conf | Unknown | Unknown | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | Unknown | Unknown |
| Per user/database server configuration settings | Unknown | Unknown | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | Unknown | Unknown |
| pg_config system view | Unknown | Unknown | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No | No | Unknown | Unknown |
| Regular expression matching in pg_hba.conf and pg_ident.conf | Unknown | Unknown | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | Unknown | Unknown |
Security
| Capability | 20 | 19 | 18 | 17 | 16 | 15 | 14 | 13 | 12 | 11 | 10 | 9.6 | 9.5 | 9.4 | 9.3 | 9.2 | 9.1 | 9.0 | 8.4 | 8.3 | 8.2 | 8.1 | 8.0 | 7.4 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Channel binding for SCRAM authentication | Unknown | Unknown | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No | No | No | No | Unknown | Unknown |
| Client can require SCRAM channel binding | Unknown | Unknown | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No | No | No | No | No | No | Unknown | Unknown |
| Client-specified requirements for authentication | Unknown | Unknown | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | Unknown | Unknown |
| Column level permissions | Unknown | Unknown | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | Unknown | Unknown |
| Default permissions | Unknown | Unknown | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | Unknown | Unknown |
| Direct TLS negotiation ("sslnegotiation") | Unknown | Unknown | Yes | Yes | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | Unknown | Unknown |
| FIPS mode validation | Unknown | Unknown | Yes | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | Unknown | Unknown |
| GRANT/REVOKE ON ALL TABLES/SEQUENCES/FUNCTIONS | Unknown | Unknown | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | Unknown | Unknown |
| GSSAPI client and server-side encryption | Unknown | Unknown | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No | No | No | No | No | Unknown | Unknown |
| GSSAPI support | Unknown | Unknown | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | Unknown | Unknown |
| Kerberos credential delegation | Unknown | Unknown | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | Unknown | Unknown |
| krb5 authentication (without gssapi) | Unknown | Unknown | Obsolete | Obsolete | Obsolete | Obsolete | Obsolete | Obsolete | Obsolete | Obsolete | Obsolete | Obsolete | Obsolete | Obsolete | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Unknown | Unknown |
| Large object access controls | Unknown | Unknown | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | Unknown | Unknown |
| LDAP server discovery | Unknown | Unknown | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No | No | No | No | No | Unknown | Unknown |
| Multifactor authentication via valid client SSL/TLS certificate | Unknown | Unknown | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No | No | No | No | No | Unknown | Unknown |
| Native LDAP authentication | Unknown | Unknown | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | Unknown | Unknown |
| Native RADIUS authentication | Unknown | Unknown | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | Unknown | Unknown |
| OAuth Authentication / Authorization | Unknown | Unknown | Yes | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | Unknown | Unknown |
| Per user/database connection limits | Unknown | Unknown | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Unknown | Unknown |
| Predefined roles | Unknown | Unknown | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No | No | Unknown | Unknown |
| Privileges for setting configuration parameters | Unknown | Unknown | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | Unknown | Unknown |
| ROLES | Unknown | Unknown | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Unknown | Unknown |
| Row-Level Security | Unknown | Unknown | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No | Unknown | Unknown |
| SCRAM-SHA-256 Authentication | Unknown | Unknown | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No | No | No | Unknown | Unknown |
| Search+bind mode operation for LDAP authentication | Unknown | Unknown | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | Unknown | Unknown |
| security_barrier option on views | Unknown | Unknown | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | Unknown | Unknown |
| Security Service Provider Interface (SSPI) | Unknown | Unknown | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | Unknown | Unknown |
| SHA-2 encryption for password hashing | Unknown | Unknown | Yes | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | Unknown | Unknown |
| SSL certificate validation in libpq | Unknown | Unknown | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | Unknown | Unknown |
| SSL client certificate authentication | Unknown | Unknown | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | Unknown | Unknown |
| SSPI authentication via GSSAPI | Unknown | Unknown | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | Unknown | Unknown |
| Support using the client's OS trusted CA. | Unknown | Unknown | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | Unknown | Unknown |
| TLS v1.3 cipher suite allowlisting | Unknown | Unknown | Yes | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | Unknown | Unknown |
Transactions and Visibility
| Capability | 20 | 19 | 18 | 17 | 16 | 15 | 14 | 13 | 12 | 11 | 10 | 9.6 | 9.5 | 9.4 | 9.3 | 9.2 | 9.1 | 9.0 | 8.4 | 8.3 | 8.2 | 8.1 | 8.0 | 7.4 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Cursors | Unknown | Unknown | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Unknown | Unknown |
| Savepoints | Unknown | Unknown | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Unknown | Unknown |
| Serializable Snapshot Isolation | Unknown | Unknown | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | Unknown | Unknown |
| Two Phase commit | Unknown | Unknown | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Unknown | Unknown |
| Updatable cursors | Unknown | Unknown | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | Unknown | Unknown |
VACUUM and Maintenance
| Capability | 20 | 19 | 18 | 17 | 16 | 15 | 14 | 13 | 12 | 11 | 10 | 9.6 | 9.5 | 9.4 | 9.3 | 9.2 | 9.1 | 9.0 | 8.4 | 8.3 | 8.2 | 8.1 | 8.0 | 7.4 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Inserted data can trigger autovacuum | Unknown | Unknown | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No | No | No | No | No | No | Unknown | Unknown |
| Integrated autovacuum daemon | Unknown | Unknown | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Unknown | Unknown |
| Page freezing optimizations | Unknown | Unknown | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | Unknown | Unknown |
| Parallelized VACUUM for Indexes | Unknown | Unknown | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No | No | No | No | No | No | Unknown | Unknown |
| Parallel vacuumdb jobs | Unknown | Unknown | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No | Unknown | Unknown |
| Radix tree memory structure for vacuum | Unknown | Unknown | Yes | Yes | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | Unknown | Unknown |
| Vacuum "emergency mode" | Unknown | Unknown | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | Unknown | Unknown |
| Visibility Map for Vacuuming | Unknown | Unknown | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | Unknown | Unknown |
Foreign Data Wrappers
| Capability | 20 | 19 | 18 | 17 | 16 | 15 | 14 | 13 | 12 | 11 | 10 | 9.6 | 9.5 | 9.4 | 9.3 | 9.2 | 9.1 | 9.0 | 8.4 | 8.3 | 8.2 | 8.1 | 8.0 | 7.4 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Certificate authentication with postgres_fdw | Unknown | Unknown | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No | No | No | No | No | No | Unknown | Unknown |
| CREATE FOREIGN TABLE ... LIKE | Unknown | Unknown | Yes | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | Unknown | Unknown |
| Foreign data wrapper query parallelism | Unknown | Unknown | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | Unknown | Unknown |
| Foreign data wrappers | Unknown | Unknown | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | Unknown | Unknown |
| Foreign Tables | Unknown | Unknown | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | Unknown | Unknown |
| IMPORT FOREIGN SCHEMA | Unknown | Unknown | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No | Unknown | Unknown |
| Import foreign table partitions | Unknown | Unknown | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | Unknown | Unknown |
| Parallel query execution on remote databases | Unknown | Unknown | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | Unknown | Unknown |
| postgres_fdw parallel commit | Unknown | Unknown | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | Unknown | Unknown |
| postgres_fdw pushdown | Unknown | Unknown | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No | No | Unknown | Unknown |
| postgres_fdw SCRAM authentication passthrough | Unknown | Unknown | Yes | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | Unknown | Unknown |
| PostgreSQL Foreign Data Wrapper | Unknown | Unknown | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | Unknown | Unknown |
| Writable Foreign Data Wrappers | Unknown | Unknown | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | Unknown | Unknown |
Custom Functions, Stored Procedures, & Triggers
| Capability | 20 | 19 | 18 | 17 | 16 | 15 | 14 | 13 | 12 | 11 | 10 | 9.6 | 9.5 | 9.4 | 9.3 | 9.2 | 9.1 | 9.0 | 8.4 | 8.3 | 8.2 | 8.1 | 8.0 | 7.4 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ALTER TABLE ENABLE/DISABLE TRIGGER | Unknown | Unknown | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Unknown | Unknown |
| ALTER TABLE / ENABLE REPLICA TRIGGER/RULE | Unknown | Unknown | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | Unknown | Unknown |
| BEGIN ATOMIC function bodies | Unknown | Unknown | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | Unknown | Unknown |
| CALL syntax for executing procedures | Unknown | Unknown | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No | No | No | No | Unknown | Unknown |
| Column level triggers | Unknown | Unknown | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | Unknown | Unknown |
| CREATE PROCEDURE syntax for SQL stored procedures | Unknown | Unknown | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No | No | No | No | Unknown | Unknown |
| Event triggers | Unknown | Unknown | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | Unknown | Unknown |
| FILTER clause for aggregate functions | Unknown | Unknown | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | No | Unknown | Unknown |
| ORDER BY support within aggregates | Unknown | Unknown | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | Unknown | Unknown |
| Per function GUC settings | Unknown | Unknown | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | Unknown | Unknown |
| Per function statistics | Unknown | Unknown | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | Unknown | Unknown |
| RETURN QUERY EXECUTE | Unknown | Unknown | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | Unknown | Unknown |
| RETURNS TABLE | Unknown | Unknown | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | Unknown | Unknown |
| Statement level triggers | Unknown | Unknown | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Unknown | Unknown |
| Statement level TRUNCATE triggers | Unknown | Unknown | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | Unknown | Unknown |
| Triggers on views | Unknown | Unknown | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | Unknown | Unknown |
| Variadic functions | Unknown | Unknown | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | Unknown | Unknown |
| WHEN clause for CREATE TRIGGER | Unknown | Unknown | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | Unknown | Unknown |
Procedural Languages
| Capability | 20 | 19 | 18 | 17 | 16 | 15 | 14 | 13 | 12 | 11 | 10 | 9.6 | 9.5 | 9.4 | 9.3 | 9.2 | 9.1 | 9.0 | 8.4 | 8.3 | 8.2 | 8.1 | 8.0 | 7.4 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| CASE in pl/pgsql | Unknown | Unknown | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | Unknown | Unknown |
| CONTINUE statement for PL/pgSQL | Unknown | Unknown | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Unknown | Unknown |
| CREATE TRANSFORM | Unknown | Unknown | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No | Unknown | Unknown |
| DO statement for pl/perl | Unknown | Unknown | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | Unknown | Unknown |
| DO statement for pl/pgsql | Unknown | Unknown | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | Unknown | Unknown |
| EXCEPTION support in PL/pgSQL | Unknown | Unknown | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Unknown | Unknown |
| EXECUTE USING in PL/pgSQL | Unknown | Unknown | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | Unknown | Unknown |
| FOREACH IN ARRAY in pl/pgsql | Unknown | Unknown | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | Unknown | Unknown |
| IN/OUT/INOUT parameters for pl/pgsql and PL/SQL | Unknown | Unknown | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Unknown | Unknown |
| Named parameters | Unknown | Unknown | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Unknown | Unknown |
| Non-superuser language creation | Unknown | Unknown | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | Unknown | Unknown |
| pl/pgsql installed by default | Unknown | Unknown | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | Unknown | Unknown |
| Polymorphic functions | Unknown | Unknown | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Unknown | Unknown |
| Python 3 support for pl/python | Unknown | Unknown | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | Unknown | Unknown |
| Qualified function parameters | Unknown | Unknown | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | Unknown | Unknown |
| Query parallelism for RETURN QUERY | Unknown | Unknown | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | Unknown | Unknown |
| RETURN QUERY in pl/pgsql | Unknown | Unknown | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | Unknown | Unknown |
| ROWS and COST specification for functions | Unknown | Unknown | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | Unknown | Unknown |
| Scrollable and updatable cursor support for pl/pgsql | Unknown | Unknown | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | Unknown | Unknown |
| SQLERRM/SQLSTATE for pl/pgsql | Unknown | Unknown | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Unknown | Unknown |
| Unicode object support in PL/python | Unknown | Unknown | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | Unknown | Unknown |
| User defined exceptions | Unknown | Unknown | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | Unknown | Unknown |
| Validator function for pl/perl | Unknown | Unknown | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Unknown | Unknown |
Extensions
| Capability | 20 | 19 | 18 | 17 | 16 | 15 | 14 | 13 | 12 | 11 | 10 | 9.6 | 9.5 | 9.4 | 9.3 | 9.2 | 9.1 | 9.0 | 8.4 | 8.3 | 8.2 | 8.1 | 8.0 | 7.4 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| CREATE EXTENSION .. CASCADE | Unknown | Unknown | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No | No | Unknown | Unknown |
| Extension Installation | Unknown | Unknown | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | Unknown | Unknown |
| Trusted Extensions | Unknown | Unknown | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No | No | No | No | No | No | Unknown | Unknown |
Internationalisation
| Capability | 20 | 19 | 18 | 17 | 16 | 15 | 14 | 13 | 12 | 11 | 10 | 9.6 | 9.5 | 9.4 | 9.3 | 9.2 | 9.1 | 9.0 | 8.4 | 8.3 | 8.2 | 8.1 | 8.0 | 7.4 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Built-in, platform independent immutable collation | Unknown | Unknown | Yes | Yes | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | Unknown | Unknown |
| casefold | Unknown | Unknown | Yes | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | Unknown | Unknown |
| Column-level collation support | Unknown | Unknown | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | Unknown | Unknown |
| Database level Collation | Unknown | Unknown | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | Unknown | Unknown |
| Default ICU collations for clusters/databases | Unknown | Unknown | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | Unknown | Unknown |
| EUC_JIS_2004/ SHIFT_JIS_2004 support | Unknown | Unknown | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | Unknown | Unknown |
| ICU collations | Unknown | Unknown | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No | No | No | Unknown | Unknown |
| LIKE comparisons for nondeterministic collations | Unknown | Unknown | Yes | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | Unknown | Unknown |
| Multibyte encoding support, incl. UTF8 | Unknown | Unknown | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Unknown | Unknown |
| Multiple language support | Unknown | Unknown | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Unknown | Unknown |
| Nondeterministic collations | Unknown | Unknown | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No | No | No | No | No | Unknown | Unknown |
| pg_unicode_fast collation | Unknown | Unknown | Yes | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | Unknown | Unknown |
| Unicode string literals and identifiers | Unknown | Unknown | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | Unknown | Unknown |
| UTF8 support on Windows | Unknown | Unknown | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Unknown | Unknown |
Client Applications
| Capability | 20 | 19 | 18 | 17 | 16 | 15 | 14 | 13 | 12 | 11 | 10 | 9.6 | 9.5 | 9.4 | 9.3 | 9.2 | 9.1 | 9.0 | 8.4 | 8.3 | 8.2 | 8.1 | 8.0 | 7.4 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| pgbench | Unknown | Unknown | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Unknown | Unknown |
| pg_combinebackup | Unknown | Unknown | Yes | Yes | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | Unknown | Unknown |
| pg_createsubscriber | Unknown | Unknown | Yes | Yes | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | Unknown | Unknown |
| pg_prewarm | Unknown | Unknown | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | No | Unknown | Unknown |
| pg_rewind | Unknown | Unknown | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No | Unknown | Unknown |
| pg_standby | Unknown | Unknown | Obsolete | Obsolete | Obsolete | Obsolete | Obsolete | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | Unknown | Unknown |
| pg_upgrade | Unknown | Unknown | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | Unknown | Unknown |
| pg_waldump | Unknown | Unknown | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No | No | No | Unknown | Unknown |
| pg_walsummary | Unknown | Unknown | Yes | Yes | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | Unknown | Unknown |
| pg_xlogdump | Unknown | Unknown | Obsolete | Obsolete | Obsolete | Obsolete | Obsolete | Obsolete | Obsolete | Obsolete | Obsolete | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | Unknown | Unknown |
| psql \bind | Unknown | Unknown | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | Unknown | Unknown |
| psql \dconfig | Unknown | Unknown | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | Unknown | Unknown |
| psql pipeline queries | Unknown | Unknown | Yes | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | Unknown | Unknown |
| psql named prepared statements | Unknown | Unknown | Yes | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | Unknown | Unknown |
| Version aware psql | Unknown | Unknown | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | Unknown | Unknown |
Additional Modules (contrib)
| Capability | 20 | 19 | 18 | 17 | 16 | 15 | 14 | 13 | 12 | 11 | 10 | 9.6 | 9.5 | 9.4 | 9.3 | 9.2 | 9.1 | 9.0 | 8.4 | 8.3 | 8.2 | 8.1 | 8.0 | 7.4 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| adminpack | Unknown | Unknown | No | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | Unknown | Unknown |
| auth_delay | Unknown | Unknown | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | Unknown | Unknown |
| auto_explain | Unknown | Unknown | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | Unknown | Unknown |
| btree_gin | Unknown | Unknown | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | Unknown | Unknown |
| btree_gist | Unknown | Unknown | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Unknown | Unknown |
| citext | Unknown | Unknown | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | Unknown | Unknown |
| dblink | Unknown | Unknown | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Unknown | Unknown |
| dblink asyncronous notification support | Unknown | Unknown | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | Unknown | Unknown |
| file_fdw | Unknown | Unknown | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | Unknown | Unknown |
| fuzzystrmatch | Unknown | Unknown | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Unknown | Unknown |
| hstore | Unknown | Unknown | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | Unknown | Unknown |
| intarray | Unknown | Unknown | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Unknown | Unknown |
| isn (ISBN) | Unknown | Unknown | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | Unknown | Unknown |
| KNN support for CUBE | Unknown | Unknown | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No | No | Unknown | Unknown |
| ltree | Unknown | Unknown | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Unknown | Unknown |
| pageinspect | Unknown | Unknown | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | Unknown | Unknown |
| passwordcheck | Unknown | Unknown | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | Unknown | Unknown |
| pg_buffercache | Unknown | Unknown | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Unknown | Unknown |
| pg_freespacemap | Unknown | Unknown | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | Unknown | Unknown |
| pg_logicalinspect | Unknown | Unknown | Yes | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | Unknown | Unknown |
| pg_overexplain | Unknown | Unknown | Yes | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | Unknown | Unknown |
| pg_stat_statements | Unknown | Unknown | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | Unknown | Unknown |
| pg_stat_statements improvements | Unknown | Unknown | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | Unknown | Unknown |
| pgstattuple | Unknown | Unknown | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Unknown | Unknown |
| pg_trgm | Unknown | Unknown | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Unknown | Unknown |
| pg_trgm regular expressions indexing | Unknown | Unknown | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | Unknown | Unknown |
| pg_walinspect | Unknown | Unknown | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | Unknown | Unknown |
| seg | Unknown | Unknown | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Unknown | Unknown |
| sepgsql | Unknown | Unknown | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | Unknown | Unknown |
| sslinfo | Unknown | Unknown | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | Unknown | Unknown |
| tablefunc | Unknown | Unknown | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Unknown | Unknown |
| tcn | Unknown | Unknown | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | Unknown | Unknown |
| tsearch2 compatibility wrapper | Unknown | Unknown | Obsolete | Obsolete | Obsolete | Obsolete | Obsolete | Obsolete | Obsolete | Obsolete | Obsolete | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | Unknown | Unknown |
| unaccent | Unknown | Unknown | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | Unknown | Unknown |
| uuid-ossp | Unknown | Unknown | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | Unknown | Unknown |
| xml2 | Unknown | Unknown | Obsolete | Obsolete | Obsolete | Obsolete | Obsolete | Obsolete | Obsolete | Obsolete | Obsolete | Obsolete | Obsolete | Obsolete | Obsolete | Obsolete | Obsolete | Obsolete | Obsolete | Yes | Yes | Yes | Unknown | Unknown |
Network
| Capability | 20 | 19 | 18 | 17 | 16 | 15 | 14 | 13 | 12 | 11 | 10 | 9.6 | 9.5 | 9.4 | 9.3 | 9.2 | 9.1 | 9.0 | 8.4 | 8.3 | 8.2 | 8.1 | 8.0 | 7.4 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Full SSL support | Unknown | Unknown | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Unknown | Unknown |
| IPv6 Support | Unknown | Unknown | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Unknown | Unknown |
| V2 client protocol | Unknown | Unknown | No | No | No | No | No | Obsolete | Obsolete | Obsolete | Obsolete | Obsolete | Obsolete | Obsolete | Obsolete | Obsolete | Obsolete | Obsolete | Obsolete | Obsolete | Obsolete | Obsolete | Unknown | Unknown |
| V3 client protocol | Unknown | Unknown | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Unknown | Unknown |
Platforms
| Capability | 20 | 19 | 18 | 17 | 16 | 15 | 14 | 13 | 12 | 11 | 10 | 9.6 | 9.5 | 9.4 | 9.3 | 9.2 | 9.1 | 9.0 | 8.4 | 8.3 | 8.2 | 8.1 | 8.0 | 7.4 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Microsoft Visual C++ Support | Unknown | Unknown | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | Unknown | Unknown |
| Native Windows Port | Unknown | Unknown | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Unknown | Unknown |
| Spinlock support for the SuperH hardware platform | Unknown | Unknown | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | Unknown | Unknown |
| Sun Studio compiler on Linux | Unknown | Unknown | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | Unknown | Unknown |
| Windows x64 support | Unknown | Unknown | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | Unknown | Unknown |