postgresql历史版本特性
Feature Matrix
This table outlines which features were added in which version. To get more information about a feature, click the link or hover the mouse pointer over the text.
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
- 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
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 | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
64-bit large objects | Yes | 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 | Yes | No |
Custom background workers | Yes | 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 | Yes | No | No | No |
Dynamic Background Workers | Yes | 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 | Yes | No | No | No | No |
EXPLAIN (WAL) support | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No | No | No | No | No | No |
"jsonlog" logging format | Yes | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No |
Loadable plugin infrastructure for monitoring the planner | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No |
Payload support for LISTEN/NOTIFY | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No |
Server statistics in shared memory | Yes | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No |
SQL-standard information schema | Yes | 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 | Yes | No | No | No | No | No | No | No |
XML, JSON and YAML output for EXPLAIN | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No |
Data Types, Functions, & Operators
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 | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Arrays of compound types | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No |
Array support | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes |
ENUM data type | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No |
GUID/UUID data type | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No |
macaddr8 data type | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No | No | No |
Multiranges | Yes | Yes | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No |
NULLs in Array | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No |
Phrase search | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No | No |
Range types | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No |
smallserial type | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No |
Type modifier support | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No |
XML data type | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No |
Indexing & Constraints
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 | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Block-range (BRIN) indexes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No |
B-tree bottom-up index deletion | Yes | Yes | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No |
B-tree deduplication | Yes | 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 | Yes |
Covering Indexes for B-trees (INCLUDE) | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No | No | No | No |
Covering indexes for GiST (INCLUDE) | Yes | 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 | Yes | No | No | No | No |
Exclusion constraints | Yes | 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 | Yes | No |
GIN indexes partial match | Yes | 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 | 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 | Yes |
Indexes on expressions | Yes | 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 | Yes | No | No | No | No | No | No |
Index-only scans on GiST | Yes | 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 | Yes | No | No |
In-memory Bitmap Indexes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes |
K-nearest neighbor GiST support | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No |
K-nearest neighbor SP-GiST Support | Yes | 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 | Yes | No |
Parallel B-tree index scans | Yes | 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 | 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 | Yes | No | No | No | No | No | No |
SP-GiST indexes for range types | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No |
UNIQUE NULLS NOT DISTINCT | Yes | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No |
WAL support for hash indexes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No | No | No |
SQL
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 | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
FETCH FIRST .. WITH TIES | Yes | 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 | 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 | Yes | No |
LATERAL clause | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No |
MERGE | Yes | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No |
Multirow VALUES | Yes | 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 | Yes | No | No |
range_agg range type aggregation function | Yes | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No |
Recursive Queries | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No |
regexp_count, regexp_instr, regexp_like | Yes | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No |
Row-wise comparison | Yes | 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 | Yes | No | No | No | No | No | No | No |
SQL standard interval handling | Yes | 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 | Yes | No | No | No |
unnest/array_agg | Yes | 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 | 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 | Yes | No | No | No |
WITHIN GROUP clause | Yes | 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 | 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 | Yes | No | No | No |
Writable WITH Queries (Common Table Expressions) | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No |
Data Definition Language (DDL)
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 | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
ALTER object IF EXISTS | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No |
ALTER TABLE ... ADD UNIQUE/PRIMARY KEY USING INDEX | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No |
ALTER TABLE ... SET ACCESS METHOD | Yes | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No |
ALTER TABLE ... SET LOGGED / UNLOGGED | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No |
Changing column types (ALTER TABLE .. ALTER COLUMN TYPE) | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes |
CREATE ACCESS METHOD | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No | No | No | No | No |
CREATE TABLE ... (LIKE) with foreign tables, views and composite types | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No |
DROP object IF EXISTS | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No |
ON COMMIT clause for CREATE TEMPORARY TABLE | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes |
REINDEX CONCURRENTLY | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No | No | No | No | No |
Stored Generated Columns | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No | No | No | No | No |
Typed tables | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No |
Performance
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 | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Abbreviated Keys | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | 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 | Yes | No | No |
Automatic plan invalidation | Yes | 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 | 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 | Yes |
Base backup throttling | Yes | 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 | Yes | No | No | No | No | No | No | No | No | No | No | No | No | No |
CREATE STATISTICS - multicolumn | Yes | 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 | 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 | Yes | No | No |
Distributed checkpointing | Yes | 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 | Yes | No | No | No | No | No |
Frozen page map | Yes | 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 | Yes | No | No |
Hash aggregation can use disk | Yes | 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 | 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 | Yes | No | No | No | No | No |
Heap Only Tuples (HOT) | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No |
Improved performance for sorts exceeding working memory | Yes | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No |
Improved window function performance | Yes | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No |
Incremental sort | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No | No | No | No | No | No |
Incremental sort for window functions | Yes | 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 | 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 | Yes |
Just-in-Time (JIT) compilation for expression evaluation and tuple deforming | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No | No | No | No |
LZ4 compression for TOAST tables | Yes | 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 | Yes | No | No | No | No | No | No |
Multiple temporary tablespaces | Yes | 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 | Yes | No |
Parallel bitmap heap scans | Yes | 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 | Yes | No | No | No | No | No | No | No | No | No | No |
Parallel hash joins | Yes | 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 | Yes | No | No | No | No | No | No | No | No | No | No |
Parallel merge joins | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No | No | No |
Parallel query | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No | No |
Parallel "SELECT DISTINCT" | Yes | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No |
Partial sort capability (top-n sorting) | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No |
Query pipelining | Yes | 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 | 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 | Yes |
Set costs specific to TABLESPACEs | Yes | 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 | Yes |
SKIP LOCKED clause | Yes | 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 | Yes | No | No |
TABLESAMPLE clause | Yes | 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 | Yes |
Unlogged tables | Yes | 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 | Yes | No | No | No | No | No |
JSON
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 | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Improved set of JSON functions and operators | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No |
JSONB data type | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | No |
JSONB-modifying operators and functions | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No |
JSONB Subscripting | Yes | Yes | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No |
JSON data type | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No |
SQL/JSON: datetime() | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No | No | No | No | No | No |
SQL/JSON path expressions | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No | No | No | No | No |
Partitioning & Inheritance
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 | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Accelerated partition pruning | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No | No | No | No | No |
Declarative table partitioning | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No | No | No |
Default Partition | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No | No | No | No |
Foreign Key references for partitioned tables | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No | No | No | No | No |
Foreign table inheritance | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No |
Partitioning by a hash key | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No | No | No | No |
Partition pruning during query execution | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No | No | No | No |
Support for PRIMARY KEY, FOREIGN KEY, indexes, and triggers on partitioned tables | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No | No | No | No |
Table Partitioning | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes |
UPDATE on a partition key | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No | No | No | No |
Views & Materialized Views
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 | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Materialized Views | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No |
Materialized views with concurrent refresh | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | No |
SECURITY INVOKER views | Yes | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No |
Temporary VIEWs | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes |
Updatable views | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No |
WITH CHECK clause | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | No |
Replication
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 | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
ALTER SUBSCRIPTION ... SKIP | Yes | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No |
Cascading streaming replication | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No |
Configure max WAL retention for replication slots | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No | No | No | No | No | No |
Logical replication | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No | No | No |
Logical replication column lists | Yes | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No |
Logical replication for partitioned tables | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No | No | No | No | No | No |
Logical replication publish all tables in schema | Yes | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No |
Logical replication row filtering | Yes | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No |
Logical replication stream in-progress transactions | Yes | Yes | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No |
Logical replication subscriber can disable on error | Yes | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No |
Quorum commit for synchronous replication | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No | No | No |
Replication Slots | Yes | 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 | Yes | No | No | No | No | No | No | No |
Streaming Replication | Yes | 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 | Yes | No | No | No | No | No |
Backup, Restore, & Data Integrity
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 | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Archive modules | Yes | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No |
Checksum on data pages | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No |
Enable/Disable page checksums in an offline cluster | Yes | 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 | 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 | Yes | No | No | No | No |
lz4 and Zstandard (zstd) compression for WAL full page writes | Yes | No | 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 | Yes | No | No | No | No | No | No | No | No | No |
Multiple synchronous standbys | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No | No |
Named restore points | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No |
Parallel pg_dump | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No |
Parallel restore | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No |
pg_basebackup client decompression | Yes | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No |
pg_basebackup server-side compression | Yes | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No |
pg_basebackup tool | Yes | 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 | 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 | Yes |
Pre-fetch WAL during recovery | Yes | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No |
remote_apply mode | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No | No |
Time-delayed Standbys | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | No |
Verify backup integrity (pg_verifybackup) | Yes | 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 | Yes | No |
Data Import & Export
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 | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
COPY from/to STDIN/STDOUT | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No |
COPY FROM ... WHERE | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No | No | No | No | No |
COPY with arbitrary SELECT | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No |
CSV support for COPY | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes |
Configuration Management
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 | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
ALTER SYSTEM | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | No |
Fractional input for "integer" values | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No | No | No | No | No |
Per user/database server configuration settings | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No |
pg_config system view | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No | No |
Security
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 | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Channel binding for SCRAM authentication | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No | No | No | No |
Client can require SCRAM channel binding | Yes | 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 | Yes | No | No | No |
Default permissions | Yes | 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 | Yes | No | No | No | No |
GSSAPI client and server-side encryption | Yes | 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 | Yes | No | No |
krb5 authentication (without gssapi) | Obsolete | 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 | Yes | No | No | No | No |
LDAP server discovery | Yes | 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 | 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 | Yes | No |
Native RADIUS authentication | Yes | 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 | Yes |
Predefined roles | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No | No |
Privileges for setting configuration parameters | Yes | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No |
ROLES | Yes | 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 | Yes | No | No | No | No | No | No | No | No | No |
SCRAM-SHA-256 Authentication | Yes | 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 | Yes | No | No | No | No |
security_barrier option on views | Yes | 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 | Yes | No | No |
SSL certificate validation in libpq | Yes | 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 | Yes | No | No | No |
SSPI authentication via GSSAPI | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No |
Transactions and Visibility
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 | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Cursors | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes |
Savepoints | Yes | 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 | Yes | No | No | No | No | No |
Two Phase commit | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes |
Updatable cursors | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No |
VACUUM and Maintenance
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 | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Inserted data can trigger autovacuum | Yes | 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 | Yes |
Parallelized VACUUM for Indexes | Yes | 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 | Yes | No | No | No | No | No | No | No | No | No |
Vacuum "emergency mode" | Yes | Yes | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No |
Visibility Map for Vacuuming | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No |
Foreign Data Wrappers
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 | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Certificate authentication with postgres_fdw | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No | No | No | No | No | No |
Foreign data wrapper query parallelism | Yes | Yes | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No |
Foreign data wrappers | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No |
Foreign Tables | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No |
IMPORT FOREIGN SCHEMA | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No |
Import foreign table partitions | Yes | Yes | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No |
Parallel query execution on remote databases | Yes | Yes | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No |
postgres_fdw parallel commit | Yes | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No |
postgres_fdw pushdown | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No | No |
PostgreSQL Foreign Data Wrapper | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No |
Writable Foreign Data Wrappers | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No |
Custom Functions, Stored Procedures, & Triggers
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 | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
ALTER TABLE ENABLE/DISABLE TRIGGER | Yes | 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 | Yes | No | No |
BEGIN ATOMIC function bodies | Yes | Yes | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No |
CALL syntax for executing procedures | Yes | 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 | Yes | No | No | No | No |
CREATE PROCEDURE syntax for SQL stored procedures | Yes | 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 | Yes | No | No | No | No | No | No | No |
FILTER clause for aggregate functions | Yes | 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 | Yes | No | No | No | No |
Per function GUC settings | Yes | 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 | Yes | No | No | No |
RETURN QUERY EXECUTE | Yes | 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 | Yes | No | No | No |
Statement level triggers | Yes | 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 | Yes | No | No | No |
Triggers on views | Yes | 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 | Yes | No | No | No |
WHEN clause for CREATE TRIGGER | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No |
Procedural Languages
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 | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
CASE in pl/pgsql | Yes | 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 | Yes |
CREATE TRANSFORM | Yes | 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 | Yes | No | No | No | No |
DO statement for pl/pgsql | Yes | 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 | Yes |
EXECUTE USING in PL/pgSQL | Yes | 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 | 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 | Yes |
Named parameters | Yes | 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 | Yes | No | No |
pl/pgsql installed by default | Yes | 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 | Yes |
Python 3 support for pl/python | Yes | 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 | Yes | No | No |
Query parallelism for RETURN QUERY | Yes | 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 | Yes | No | No |
ROWS and COST specification for functions | Yes | 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 | Yes | No | No |
SQLERRM/SQLSTATE for pl/pgsql | Yes | 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 | Yes | No | No | No | No |
User defined exceptions | Yes | 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 | Yes |
Extensions
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 | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
CREATE EXTENSION .. CASCADE | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No | No |
Extension Installation | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No |
Trusted Extensions | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No | No | No | No | No | No |
Internationalisation
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 | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Column-level collation support | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No |
Database level Collation | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No |
Default ICU collations for clusters/databases | Yes | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No |
EUC_JIS_2004/ SHIFT_JIS_2004 support | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No |
ICU collations | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No | No | No |
Multibyte encoding support, incl. UTF8 | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes |
Multiple language support | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes |
Nondeterministic collations | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No | No | No | No | No |
Unicode string literals and identifiers | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No |
UTF8 support on Windows | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes |
Client Applications
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 | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
pgbench | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes |
pg_prewarm | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | No |
pg_rewind | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No |
pg_standby | Obsolete | Obsolete | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No |
pg_upgrade | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No |
pg_waldump | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No | No | No |
pg_xlogdump | Obsolete | Obsolete | Obsolete | Obsolete | Obsolete | Obsolete | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No |
psql \dconfig | Yes | No | 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 | Yes | No | No | No |
Additional Modules (contrib)
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 | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
adminpack | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No |
auth_delay | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No |
auto_explain | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No |
btree_gin | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No |
btree_gist | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes |
citext | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No |
dblink | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes |
dblink asyncronous notification support | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No |
file_fdw | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No |
fuzzystrmatch | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes |
hstore | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No |
intarray | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes |
isn (ISBN) | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No |
KNN support for CUBE | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | No | No | No |
ltree | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes |
pageinspect | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No |
passwordcheck | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No |
pg_buffercache | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes |
pg_freespacemap | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No |
pg_stat_statements | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No |
pg_stat_statements improvements | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No |
pgstattuple | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes |
pg_trgm | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes |
pg_trgm regular expressions indexing | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No |
pg_walinspect | Yes | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No |
seg | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes |
sepgsql | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No |
sslinfo | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No |
tablefunc | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes |
tcn | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No |
tsearch2 compatibility wrapper | Obsolete | Obsolete | Obsolete | Obsolete | Obsolete | Obsolete | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No |
unaccent | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No |
uuid-ossp | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No |
xml2 | Obsolete | Obsolete | Obsolete | Obsolete | Obsolete | Obsolete | Obsolete | Obsolete | Obsolete | Obsolete | Obsolete | Obsolete | Obsolete | Obsolete | Yes | Yes | Yes |
Network
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 | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Full SSL support | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes |
IPv6 Support | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes |
V3 client protocol | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes |
Platforms
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 | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Microsoft Visual C++ Support | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No |
Native Windows Port | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes |
Spinlock support for the SuperH hardware platform | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No |
Sun Studio compiler on Linux | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No |
Windows x64 support | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No |