Skip to content

Commit 2298596

Browse files
committed
Update feature matrix for PostgreSQL 18
This adds references to the new features and changes available in PostgreSQL 18 in the feature matrix.
1 parent 8fac467 commit 2298596

File tree

1 file changed

+130
-1
lines changed

1 file changed

+130
-1
lines changed

data/featurematrix.yaml

Lines changed: 130 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
versions:
22
min: 8.1
3-
max: 17
3+
max: 18
44
featurematrix:
55
Backend:
66
- name: 64-bit large objects
@@ -144,6 +144,10 @@ featurematrix:
144144
versions:
145145
'8.3': 'Yes'
146146
description: allows user defined datatypes to specify a type modifier
147+
- name: UUIDv7
148+
versions:
149+
'18': 'Yes'
150+
url: https://www.postgresql.org/docs/18/functions-uuid.html#FUNC_UUID_GEN_TABLE
147151
- name: XML data type
148152
versions:
149153
'8.3': 'Yes'
@@ -255,6 +259,14 @@ featurematrix:
255259
versions:
256260
'11': 'Yes'
257261
description: ''
262+
- name: Parallelized CREATE INDEX for GIN indexes
263+
versions:
264+
'18': 'Yes'
265+
- name: Skip scan on multicolumn B-tree indexes
266+
versions:
267+
'18': 'Yes'
268+
description: "Improve execution time for queries that omit an `=` condition\
269+
\ on one or more prefix index columns."
258270
- name: Space-Partitioned GiST (SP-GiST) Indexes
259271
versions:
260272
'9.2': 'Yes'
@@ -337,6 +349,10 @@ featurematrix:
337349
\ expression in a string\r\n- `regexp_instr `: returns the starting of the Nth\
338350
\ match of a regular expression in a sting\r\n- `regexp_like`: returns true\
339351
\ if a regular expression has a match in a string.\r\n\r\n[https://www.postgresql.org/docs/15/functions-matching.html#FUNCTIONS-POSIX-REGEXP](https://www.postgresql.org/docs/15/functions-matching.html#FUNCTIONS-POSIX-REGEXP)"
352+
- name: Return OLD and NEW values from modified rows
353+
versions:
354+
'18': 'Yes'
355+
url: https://www.postgresql.org/docs/18/dml-returning.html
340356
- name: Row-wise comparison
341357
versions:
342358
'8.2': 'Yes'
@@ -449,10 +465,23 @@ featurematrix:
449465
versions:
450466
'12': 'Yes'
451467
url: https://www.postgresql.org/docs/current/ddl-generated-columns.html
468+
- name: Temporal constraints
469+
versions:
470+
'18': 'Yes'
471+
description: "Temporal constraints are constraints over ranges. These are\
472+
\ available for both [`PRIMARY KEY`](https://www.postgresql.org/docs/18/sql-createtable.html#SQL-CREATETABLE-PARMS-PRIMARY-KEY)\
473+
\ and [`UNIQUE`](https://www.postgresql.org/docs/18/sql-createtable.html#SQL-CREATETABLE-PARMS-UNIQUE)\
474+
\ constraints using the `WITHOUT OVERLAPS` clause, and\
475+
\ [`FOREIGN KEY`](https://www.postgresql.org/docs/18/sql-createtable.html#SQL-CREATETABLE-PARMS-REFERENCES)\
476+
\ constraints using the `PERIOD` clause."
452477
- name: Typed tables
453478
versions:
454479
'9.0': 'Yes'
455480
description: 'Adds support for syntax: CREATE TABLE name OF type'
481+
- name: Virtual Generated Columns
482+
versions:
483+
'18': 'Yes'
484+
url: https://www.postgresql.org/docs/current/ddl-generated-columns.html
456485
Performance:
457486
- name: Abbreviated Keys
458487
versions:
@@ -466,6 +495,14 @@ featurematrix:
466495
versions:
467496
'8.3': 'Yes'
468497
description: Delays writes to WAL for committed transactions
498+
- name: Asynchronous I/O (AIO)
499+
versions:
500+
'18': 'Yes'
501+
description: "New I/O subsystem PostgreSQL issue multiple I/O requests\
502+
\ concurrently instead of waiting for each to finish in sequence. This\
503+
\ expands existing readahead and improves overall throughput. AIO\
504+
\ supported in PostgreSQL 18 include sequential scans, bitmap heap scans,\
505+
\ and vacuum. For more information see [`io_method`](https://www.postgresql.org/docs/18/runtime-config-resource.html#GUC-IO-METHOD)."
469506
- name: Automatic plan invalidation
470507
versions:
471508
'8.3': 'Yes'
@@ -890,6 +927,10 @@ featurematrix:
890927
versions:
891928
'16': 'Yes'
892929
description: Logical replication publishers can be created from standby instances.
930+
- name: Logical replication of stored generated columns
931+
versions:
932+
'18': 'Yes'
933+
description: "Stored generated columns are logically replicated."
893934
- name: Logical replication initial sync using binary protocol
894935
versions:
895936
'16': 'Yes'
@@ -929,6 +970,13 @@ featurematrix:
929970
description: Logical replication subscribers can be automatically disabled using
930971
the [`disable_on_error`](https://www.postgresql.org/docs/15/logical-replication-conflicts.html)
931972
setting.
973+
- name: Logical replication write conflict logging
974+
versions:
975+
'18': 'Yes'
976+
description: "Write conflicts that occur during ogical replication are\
977+
\ reported both in logs and in the\
978+
\ [`pg_stat_subscription_stats`](https://www.postgresql.org/docs/18/monitoring-stats.html#MONITORING-PG-STAT-SUBSCRIPTION-STATS)\
979+
\ view."
932980
- name: Quorum commit for synchronous replication
933981
versions:
934982
'10': 'Yes'
@@ -1068,6 +1116,23 @@ featurematrix:
10681116
versions:
10691117
'8.2': 'Yes'
10701118
url: https://www.postgresql.org/docs/current/static/warm-standby.html
1119+
Upgrade:
1120+
- name: pg_upgrade --swap
1121+
versions:
1122+
'18': 'Yes'
1123+
description: "The `--swap` option moves the data directories from the old\
1124+
\ cluster to the new cluster and then replaces catalog files with those\
1125+
\ generated for the new cluster. See\
1126+
[`pg_upgrade`](https://www.postgresql.org/docs/18/pgupgrade.html)\
1127+
\ for more information."
1128+
- name: Planner statistics preserved on major version upgrade
1129+
versions:
1130+
'18': 'Yes'
1131+
description: "PostgreSQL now keeps planner statistics\
1132+
\ through a major version upgrade, which helps an upgraded cluster\
1133+
\ reach expected performance more quickly after the upgrade. See the\
1134+
\ statistics section in [`pg_upgrade`](https://www.postgresql.org/docs/18/pgupgrade.html)\
1135+
\ for more information."
10711136
Data Import & Export:
10721137
- name: COPY from/to STDIN/STDOUT
10731138
versions:
@@ -1152,6 +1217,10 @@ featurematrix:
11521217
versions:
11531218
'17': 'Yes'
11541219
url: https://www.postgresql.org/docs/17/libpq-connect.html#LIBPQ-CONNECT-SSLNEGOTIATION
1220+
- name: FIPS mode validation
1221+
versions:
1222+
'18': 'Yes'
1223+
url: https://www.postgresql.org/docs/18/pgcrypto.html#PGCRYPTO-OPENSSL-SUPPORT-FUNCS
11551224
- name: GRANT/REVOKE ON ALL TABLES/SEQUENCES/FUNCTIONS
11561225
versions:
11571226
'9.0': 'Yes'
@@ -1197,6 +1266,10 @@ featurematrix:
11971266
versions:
11981267
'9.0': 'Yes'
11991268
description: adds support for authentictaing against a RADIUS server
1269+
- name: OAuth Authentication / Authorization
1270+
versions:
1271+
'18': 'Yes'
1272+
url: https://www.postgresql.org/docs/18/auth-oauth.html
12001273
- name: Per user/database connection limits
12011274
versions:
12021275
'8.1': 'Yes'
@@ -1244,6 +1317,10 @@ featurematrix:
12441317
'8.3': 'Yes'
12451318
description: full integration with the native authentication framework in Microsoft
12461319
Windows
1320+
- name: SHA-2 encryption for password hashing
1321+
versions:
1322+
'18': 'Yes'
1323+
url: https://www.postgresql.org/docs/18/pgcrypto.html#PGCRYPTO-CRYPT-ALGORITHMS
12471324
- name: SSL certificate validation in libpq
12481325
versions:
12491326
'8.4': 'Yes'
@@ -1262,6 +1339,10 @@ featurematrix:
12621339
'16': 'Yes'
12631340
description: Specifying `sslroot=system` instructs PostgreSQL to use the trusted
12641341
certificate authority (CA) store provided by the client's operating system.
1342+
- name: TLS v1.3 cipher suite allowlisting
1343+
versions:
1344+
'18': 'Yes'
1345+
url: https://www.postgresql.org/docs/18/runtime-config-connection.html#GUC-SSL-TLS13-CIPHERS
12651346
Transactions and Visibility:
12661347
- name: Cursors
12671348
versions:
@@ -1339,6 +1420,12 @@ featurematrix:
13391420
description: "The [postgres_fdw](https://www.postgresql.org/docs/13/postgres-fdw.html)\
13401421
\ can now use the built-in [certificate authentication](https://www.postgresql.org/docs/current/auth-cert.html)\
13411422
\ mechanism.\r\n\r\nFor more information, please visit the [postgres_fdw documentation](https://www.postgresql.org/docs/13/postgres-fdw.html#id-1.11.7.42.10)"
1423+
- name: CREATE FOREIGN TABLE ... LIKE
1424+
versions:
1425+
'18': 'Yes'
1426+
description: "Specify a source table from which the new table automatically\
1427+
\ copies all column names, their data types, and their not-null\
1428+
\ constraints."
13421429
- name: Foreign data wrapper query parallelism
13431430
versions:
13441431
'14': 'Yes'
@@ -1378,6 +1465,10 @@ featurematrix:
13781465
description: Ability to push down JOIN, Sorts, UPDATEs and DELETEs to the remote
13791466
database in postgres_fdw driver, and theoretically in other drivers. Also some
13801467
generic operator/function pushdown.
1468+
- name: postgres_fdw SCRAM authentication passthrough
1469+
versions:
1470+
'18': 'Yes'
1471+
url: https://www.postgresql.org/docs/18/postgres-fdw.html#POSTGRES-FDW-OPTION-USE-SCRAM-PASSTHROUGH
13811472
- name: PostgreSQL Foreign Data Wrapper
13821473
versions:
13831474
'9.3': 'Yes'
@@ -1594,6 +1685,10 @@ featurematrix:
15941685
description: PostgreSQL has a built-in, platform independent immutable collation
15951686
provider that supports C and C.UTF-8 collations. For more information, see [standard
15961687
collations](https://www.postgresql.org/docs/17/collation.html#COLLATION-MANAGING-STANDARD).
1688+
- name: casefold
1689+
versions:
1690+
'18': 'Yes'
1691+
url: https://www.postgresql.org/docs/18/functions-string.html#id-1.5.8.10.7.2.2.8.1.1.1
15971692
- name: Column-level collation support
15981693
versions:
15991694
'9.1': 'Yes'
@@ -1618,6 +1713,10 @@ featurematrix:
16181713
versions:
16191714
'10': 'Yes'
16201715
url: https://www.postgresql.org/docs/current/static/collation.html#id-1.6.10.4.5.7.5
1716+
- name: LIKE comparisons for nondeterministic collations
1717+
versions:
1718+
'18': 'Yes'
1719+
url: https://www.postgresql.org/docs/18/collation.html#COLLATION-NONDETERMINISTIC
16211720
- name: Multibyte encoding support, incl. UTF8
16221721
versions:
16231722
'8.1': 'Yes'
@@ -1630,6 +1729,10 @@ featurematrix:
16301729
versions:
16311730
'12': 'Yes'
16321731
url: https://www.postgresql.org/docs/12/collation.html#COLLATION-NONDETERMINISTIC
1732+
- name: pg_unicode_fast collation
1733+
versions:
1734+
'18': 'Yes'
1735+
url: https://www.postgresql.org/docs/18/collation.html#COLLATION-MANAGING-STANDARD
16331736
- name: Unicode string literals and identifiers
16341737
versions:
16351738
'8.4': 'Yes'
@@ -1693,6 +1796,24 @@ featurematrix:
16931796
description: The [`psql`](https://www.postgresql.org/docs/15/app-psql.html) client
16941797
includes a `\dconfig` command for inspecting and finding the values of configuration
16951798
parameters.
1799+
- name: psql pipeline queries
1800+
versions:
1801+
'18': 'Yes'
1802+
description: "psql can issue pipeline queries using the commands\
1803+
\ [`\\startpipeline`](https://www.postgresql.org/docs/18/app-psql.html#APP-PSQL-META-COMMAND-PIPELINE),\
1804+
\ [`\\syncpipeline`](https://www.postgresql.org/docs/18/app-psql.html#APP-PSQL-META-COMMAND-PIPELINE),\
1805+
\ [`\\sendpipeline`](https://www.postgresql.org/docs/18/app-psql.html#APP-PSQL-META-COMMAND-PIPELINE),\
1806+
\ [`\\endpipeline`](https://www.postgresql.org/docs/18/app-psql.html#APP-PSQL-META-COMMAND-PIPELINE),\
1807+
\ [`\\flushrequest`](https://www.postgresql.org/docs/18/app-psql.html#APP-PSQL-META-COMMAND-PIPELINE),\
1808+
\ [`\\flush`](https://www.postgresql.org/docs/18/app-psql.html#APP-PSQL-META-COMMAND-PIPELINE), and\
1809+
\ [`\\getresults`](https://www.postgresql.org/docs/18/app-psql.html#APP-PSQL-META-COMMAND-PIPELINE)."
1810+
- name: psql named prepared statements
1811+
versions:
1812+
'18': 'Yes'
1813+
description: "psql can parse ([`\\parse`](https://www.postgresql.org/docs/18/app-psql.html#APP-PSQL-META-COMMAND-PARSE)),\
1814+
\ bind ([`\\bind_named`](https://www.postgresql.org/docs/18/app-psql.html#APP-PSQL-META-COMMAND-BIND-NAMED)),\
1815+
\ and close ([`\\close_prepared`](https://www.postgresql.org/docs/18/app-psql.html#APP-PSQL-META-COMMAND-CLOSE-PREPARED))\
1816+
\ named prepared statements."
16961817
- name: Version aware psql
16971818
versions:
16981819
'8.4': 'Yes'
@@ -1777,6 +1898,14 @@ featurematrix:
17771898
versions:
17781899
'8.2': 'Yes'
17791900
url: https://www.postgresql.org/docs/current/pgfreespacemap.html
1901+
- name: pg_logicalinspect
1902+
versions:
1903+
'18': 'Yes'
1904+
url: https://www.postgresql.org/docs/18/pglogicalinspect.html
1905+
- name: pg_overexplain
1906+
versions:
1907+
'18': 'Yes'
1908+
url: https://www.postgresql.org/docs/18/pgoverexplain.html
17801909
- name: pg_stat_statements
17811910
versions:
17821911
'8.4': 'Yes'

0 commit comments

Comments
 (0)