| 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 |
| 64-bit large objects | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No |
| Advisory locks | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No |
| Autovacuum enabled by default | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No |
| Custom background workers | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No |
| Disk based FSM | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No |
| Dollar Quoting | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes |
| Dynamic Background Workers | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | No |
| EXPLAIN (BUFFERS) support | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No |
| EXPLAIN (WAL) support | Yes | Yes | No | No | No | No | No | No | No | No | No | No | No | No | No | No |
| Holdable cursors | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes |
| Inserted data can trigger autovacuum | Yes | Yes | No | No | No | No | No | No | No | No | No | No | No | No | No | No |
| Integrated autovacuum daemon | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes |
| Loadable plugin infrastructure for monitoring the planner | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No |
| Multiple autovacuum workers | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No |
| Named restore points | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No |
| Parallelized VACUUM for Indexes | Yes | Yes | No | No | No | No | No | No | No | No | No | No | No | No | No | No |
| Parallel vacuumdb jobs | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No |
| Payload support for LISTEN/NOTIFY | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No |
| Prefix support for text search synonym dictionary | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No |
| Savepoints | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes |
| Serializable Snapshot Isolation | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No |
| SQLDA support for ECPG | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No |
| SQL-standard information schema | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes |
| Support for anonymous shared memory | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No |
| Two Phase commit | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes |
| unnest/array_agg | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No |
| Updateable cursors | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No |
| Vacuum "emergency mode" | Yes | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No |
| Version aware psql | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No |
| Visibility Map for Vacuuming | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No |
| XML, JSON and YAML output for EXPLAIN | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No |
| 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 |
| Block-range (BRIN) indexes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No |
| B-tree bottom-up index deletion | Yes | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No |
| B-tree deduplication | Yes | Yes | No | No | No | No | No | No | No | No | No | No | No | No | No | No |
| Concurrent GiST indexes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes |
| Covering Indexes for B-trees (INCLUDE) | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No | No | No | No |
| Covering indexes for GiST (INCLUDE) | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No | No | No | No | No |
| Deferrable unique constraints | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No |
| Exclusion constraints | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No |
| GIN (Generalized Inverted Index) Indexes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No |
| GIN indexes partial match | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No |
| GIN Index performance and size improvements | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | No |
| GiST (Generalized Search Tree) Indexes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes |
| Indexes on expressions | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes |
| Index-only scans | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No |
| Index-only scans on GiST | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No |
| Index support for IS NULL | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No |
| In-memory Bitmap Indexes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes |
| K-nearest neighbor SP-GiST Support | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No | No | No | No | No |
| Non-blocking CREATE INDEX | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No |
| Parallel B-tree index scans | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No | No | No |
| Parallelized CREATE INDEX for B-tree indexes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No | No | No | No |
| Space-Partitioned GiST (SP-GiST) Indexes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No |
| SP-GiST indexes for range types | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No |
| WAL support for hash indexes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No | No | No |
| 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 |
| FETCH FIRST .. WITH TIES | Yes | Yes | No | No | No | No | No | No | No | No | No | No | No | No | No | No |
| GROUPING SETS, CUBE and ROLLUP support | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No |
| INSERT/UPDATE/DELETE RETURNING | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No |
| LATERAL clause | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No |
| Multirow VALUES | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No |
| ORDER BY NULLS FIRST/LAST | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No |
| Recursive Queries | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No |
| Row-wise comparison | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No |
| SELECT FOR NO KEY UPDATE/SELECT FOR KEY SHARE lock modes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No |
| SQL/JSON path expressions | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No | No | No | No | No |
| SQL standard interval handling | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No |
| TABLE statement | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No |
| Upsert (INSERT ... ON CONFLICT DO ...) | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No |
| Window functions | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No |
| WITHIN GROUP clause | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | No |
| WITH ORDINALITY clause | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | No |
| WITH Queries (Common Table Expressions) | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No |
| Writable WITH Queries (Common Table Expressions) | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No |
| 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 |
| Abbreviated Keys | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No |
| Accelerated partition pruning | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No | No | No | No | No |
| Asynchronous Commit | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No |
| Automatic plan invalidation | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No |
| Background Checkpointer | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No |
| Background Writer | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes |
| Base backup throttling | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | No |
| CREATE STATISTICS - most-common values (MCV) statistics | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No | No | No | No | No |
| CREATE STATISTICS - multicolumn | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No | No | No |
| CREATE STATISTICS - "OR" and "IN/ANY" statistics | Yes | Yes | No | No | No | No | No | No | No | No | No | No | No | No | No | No |
| Cross datatype hashing support | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No |
| Distributed checkpointing | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No |
| Foreign keys marked as NOT VALID | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No |
| Frozen page map | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No | No |
| Full Text Search | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No |
| Hash aggregation can use disk | Yes | Yes | No | No | No | No | No | No | No | No | No | No | No | No | No | No |
| Hashing support for DISTINCT/UNION/INTERSECT/EXCEPT | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No |
| Hashing support for FULL OUTER JOIN, LEFT OUTER JOIN and RIGHT OUTER JOIN | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No |
| Heap Only Tuples (HOT) | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No |
| Incremental sort | Yes | Yes | No | No | No | No | No | No | No | No | No | No | No | No | No | No |
| Incremental sort for window functions | Yes | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No |
| Inlined WITH Queries (Common Table Expressions) | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No | No | No | No | No |
| Inlining of SQL-functions | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes |
| Just-in-Time (JIT) compilation for expression evaluation and tuple deforming | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No | No | No | No |
| K-nearest neighbor GiST support | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No |
| LZ4 compression for TOAST tables | Yes | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No |
| Multi-core scalability for read-only workloads | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No |
| Multiple temporary tablespaces | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No |
| Outer Join reordering | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No |
| Parallel bitmap heap scans | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No | No | No |
| Parallel full table scans (sequential scans) | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No | No |
| Parallel hash joins | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No | No | No | No |
| Parallel JOIN, aggregate | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No | No |
| Parallel merge joins | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No | No | No |
| Parallel query | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No | No |
| Parallel restore | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No |
| Partial sort capability (top-n sorting) | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No |
| Partition pruning during query execution | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No | No | No | No |
| pg_prewarm | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | No |
| Query pipelining | Yes | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No |
| Reduced lock levels for ALTER TABLE commands | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | No |
| SELECT ... FOR UPDATE/SHARE NOWAIT | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes |
| Set costs specific to TABLESPACEs | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No |
| Shared row level locking | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes |
| SKIP LOCKED clause | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No |
| Synchronized sequential scanning | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No |
| TABLESAMPLE clause | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No |
| Tablespaces | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes |
| Unlogged tables | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No |
| WAL Buffer auto-tuning | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No |
| 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 |
| Cascading streaming replication | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No |
| Checksum on data pages | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No |
| Configure max WAL retention for replication slots | Yes | Yes | No | No | No | No | No | No | No | No | No | No | No | No | No | No |
| Enable/Disable page checksums in an offline cluster | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No | No | No | No | No |
| Generic WAL facility | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No | No |
| Hot Standby | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No |
| Logical Replication | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No | No | No |
| Logical replication stream in-progress transactions | Yes | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No |
| min_wal_size / max_wal_size | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No |
| Multiple synchronous standbys | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No | No |
| Parallel pg_dump | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No |
| pg_basebackup tool | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No |
| pg_receivewal (formerly pg_receivexlog) | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No |
| Point-in-Time Recovery | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes |
| Quorum commit for synchronous replication | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No | No | No |
| remote_apply mode | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No | No |
| Replication Slots | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | No |
| Streaming-only cascading replication | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No |
| Streaming Replication | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No |
| Synchronous replication | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No |
| Time-delayed Standbys | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | No |
| Verify backup integrity (pg_verifybackup) | Yes | Yes | No | No | No | No | No | No | No | No | No | No | No | No | No | No |
| Warm Standby | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No |
| 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 |
| Channel binding for SCRAM authentication | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No | No | No | No |
| Client can require SCRAM channel binding | Yes | Yes | No | No | No | No | No | No | No | No | No | No | No | No | No | No |
| Column level permissions | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No |
| Default permissions | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No |
| GRANT/REVOKE ON ALL TABLES/SEQUENCES/FUNCTIONS | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No |
| GSSAPI client and server-side encryption | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No | No | No | No | No |
| GSSAPI support | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No |
| krb5 authentication (without gssapi) | Obsolete | Obsolete | Obsolete | Obsolete | Obsolete | Obsolete | Obsolete | Obsolete | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes |
| Large object access controls | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No |
| LDAP server discovery | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No | No | No | No | No |
| Multifactor authentication via valid client SSL/TLS certificate | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No | No | No | No | No |
| Native LDAP authentication | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No |
| Native RADIUS authentication | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No |
| Per user/database connection limits | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes |
| ROLES | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes |
| Row-Level Security | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No |
| SCRAM-SHA-256 Authentication | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No | No | No |
| Search+bind mode operation for LDAP authentication | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No |
| security_barrier option on views | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No |
| Security Service Provider Interface (SSPI) | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No |
| SSL certificate validation in libpq | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No |
| SSL client certificate authentication | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No |
| SSPI authentication via GSSAPI | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No |
| 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 |
| ALTER TABLE ENABLE/DISABLE TRIGGER | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes |
| ALTER TABLE / ENABLE REPLICA TRIGGER/RULE | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No |
| CALL syntax for executing procedures | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No | No | No | No |
| Column level triggers | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No |
| CREATE PROCEDURE syntax for SQL stored procedures | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No | No | No | No |
| Event triggers | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No |
| FILTER clause for aggregate functions | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | No |
| ORDER BY support within aggregates | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No |
| Per function GUC settings | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No |
| Per function statistics | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No |
| RETURN QUERY EXECUTE | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No |
| RETURNS TABLE | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No |
| Statement level triggers | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes |
| Statement level TRUNCATE triggers | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No |
| Triggers on views | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No |
| Variadic functions | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No |
| WHEN clause for CREATE TRIGGER | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No |
| 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 |
| CASE in pl/pgsql | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No |
| CONTINUE statement for PL/pgSQL | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes |
| CREATE TRANSFORM | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No |
| DO statement for pl/perl | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No |
| DO statement for pl/pgsql | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No |
| EXCEPTION support in PL/pgSQL | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes |
| EXECUTE USING in PL/pgSQL | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No |
| FOREACH IN ARRAY in pl/pgsql | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No |
| IN/OUT/INOUT parameters for pl/pgsql and PL/SQL | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes |
| Named parameters | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes |
| Non-superuser language creation | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No |
| pl/pgsql installed by default | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No |
| Polymorphic functions | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes |
| Python 3 support for pl/python | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No |
| Qualified function parameters | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No |
| Query parallelism for RETURN QUERY | Yes | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No |
| RETURN QUERY in pl/pgsql | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No |
| ROWS and COST specification for functions | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No |
| Scrollable and updatable cursor support for pl/pgsql | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No |
| SQLERRM/SQLSTATE for pl/pgsql | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes |
| Unicode object support in PL/python | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No |
| User defined exceptions | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No |
| Validator function for pl/perl | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes |