public inbox for [email protected]help / color / mirror / Atom feed
Typos in the featurematrix 10+ messages / 3 participants [nested] [flat]
* Typos in the featurematrix @ 2025-10-14 07:45 Daniel Gustafsson <[email protected]> 0 siblings, 1 reply; 10+ messages in thread From: Daniel Gustafsson @ 2025-10-14 07:45 UTC (permalink / raw) To: [email protected] While working on something else I noticed that the featurematrix has a few typos, unless there are objections I'll go ahead with the attached. -- Daniel Gustafsson Attachments: [application/octet-stream] 0001-Fix-typos-in-feature-matrix.patch (3.5K, 2-0001-Fix-typos-in-feature-matrix.patch) download | inline diff: From 591a78342972318579f1eb2e496011cf468d72b7 Mon Sep 17 00:00:00 2001 From: Daniel Gustafsson <[email protected]> Date: Tue, 14 Oct 2025 09:40:24 +0200 Subject: [PATCH] Fix typos in feature matrix Author: Daniel Gustafsson <[email protected]> Reviewed-by: .. Discussion: https://postgr.es/m/.. --- data/featurematrix.yaml | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/data/featurematrix.yaml b/data/featurematrix.yaml index 3e471943..eae95d8e 100644 --- a/data/featurematrix.yaml +++ b/data/featurematrix.yaml @@ -21,7 +21,7 @@ featurematrix: versions: '8.4': 'Yes' description: replaces the shared memory fixed size free space map with an on-disk - implemenation + implementation - name: Dynamic Background Workers versions: '9.4': 'Yes' @@ -347,7 +347,7 @@ featurematrix: '15': 'Yes' description: "- `regexp_count`: counts the number of places that match the regular\ \ expression in a string\r\n- `regexp_instr `: returns the starting of the Nth\ - \ match of a regular expression in a sting\r\n- `regexp_like`: returns true\ + \ match of a regular expression in a string\r\n- `regexp_like`: returns true\ \ 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)" - name: Return OLD and NEW values from modified rows versions: @@ -506,7 +506,7 @@ featurematrix: - name: Automatic plan invalidation versions: '8.3': 'Yes' - description: automatic invalidation of cached exceutions plans + description: automatic invalidation of cached executions plans - name: Background Checkpointer versions: '9.2': 'Yes' @@ -657,7 +657,7 @@ featurematrix: - name: Parallel FULL and RIGHT joins versions: '16': 'Yes' - description: Ability to execute in parallell `FULL` and `RIGHT OUTER` joins. + description: Ability to execute in parallel `FULL` and `RIGHT OUTER` joins. - name: Parallel full table scans (sequential scans) versions: '9.6': 'Yes' @@ -884,7 +884,7 @@ featurematrix: '9.4': 'Yes' description: Auto-updatable views can now specify whether an INSERT or UPDATE would change the state of the row so that it would no longer be visible in the - view. Using WITH CHECK OPTION will prevent any such changes from occuring. + view. Using WITH CHECK OPTION will prevent any such changes from occurring. Replication: - name: ALTER SUBSCRIPTION ... SKIP versions: @@ -1849,7 +1849,7 @@ featurematrix: versions: '8.1': 'Yes' url: https://www.postgresql.org/docs/current/static/dblink.html - - name: dblink asyncronous notification support + - name: dblink asynchronous notification support versions: '9.0': 'Yes' description: Add the ability to retrieve asynchronous notifications using dblink @@ -2092,7 +2092,7 @@ legacymap: # This maps old id based URLs to the new titles and will generate re 168: GRANT/REVOKE ON ALL TABLES/SEQUENCES/FUNCTIONS 170: Per user/database server configuration settings 171: Unicode object support in PL/python - 175: dblink asyncronous notification support + 175: dblink asynchronous notification support 176: Spinlock support for the SuperH hardware platform 178: WHEN clause for CREATE TRIGGER 179: Exclusion constraints -- 2.39.3 (Apple Git-146) ^ permalink raw reply [nested|flat] 10+ messages in thread
* Re: Typos in the featurematrix @ 2025-10-15 11:00 David Rowley <[email protected]> parent: Daniel Gustafsson <[email protected]> 0 siblings, 1 reply; 10+ messages in thread From: David Rowley @ 2025-10-15 11:00 UTC (permalink / raw) To: Daniel Gustafsson <[email protected]>; +Cc: [email protected] On Tue, 14 Oct 2025 at 20:46, Daniel Gustafsson <[email protected]> wrote: > While working on something else I noticed that the featurematrix has a few > typos, unless there are objections I'll go ahead with the attached. Patch looks good. I had a read and found a few more: conjunction with a RETURNING clause to to pass data up to the containing query. too many to's. description: Extend statistics can help the query planner provided better plans I think "Extended" and "provide" instead of 'provided' or better yet "generate" for queries that have "OR".clauses as well as "IN/ANY" lookups over lists. For I think "OR" should be followed by a space instead of a fullstop/period. JSON data strings can now to be converted into records and new functions to "to" seems misplaced. description: "Write conflicts that occur during ogical replication are\ "logical" available in order for a standbys of the new primary to correctly switch to "standbys" should be singular or the "a " should be removed. description: Ability to require synch messages from multiple prioritized standbys I don't know that "synch" is necessarily incorrect, but I don't see it being used in our codebase. We normally spell it "sync". description: adds support for authentictaing against a RADIUS server "authenticating" description: replaces user and group concept by a more generalizes role based Maybe "replaces user and group concept with a more generalized role based" description: simply way to return the result of an arbitrary query in pl/pgsql "simple" David ^ permalink raw reply [nested|flat] 10+ messages in thread
* Re: Typos in the featurematrix @ 2025-10-15 13:22 Daniel Gustafsson <[email protected]> parent: David Rowley <[email protected]> 0 siblings, 1 reply; 10+ messages in thread From: Daniel Gustafsson @ 2025-10-15 13:22 UTC (permalink / raw) To: David Rowley <[email protected]>; +Cc: [email protected]; Magnus Hagander <[email protected]> > On 15 Oct 2025, at 13:00, David Rowley <[email protected]> wrote: > > On Tue, 14 Oct 2025 at 20:46, Daniel Gustafsson <[email protected]> wrote: >> While working on something else I noticed that the featurematrix has a few >> typos, unless there are objections I'll go ahead with the attached. > > Patch looks good. > > I had a read and found a few more: Thanks, I have incorporated all of these in the v2 attached. When doing that I noticed that the capitilization of PL/pgSQL and other PL's was quite varied. 0002 in the attached corrects that to ensure consistency across the items in the featurematrix with corresponding names in the docs. Since I don't have a local version of the site running I am adding Magnus to cc: hoping he can validate that the patched file works. -- Daniel Gustafsson Attachments: [application/octet-stream] v2-0002-Standardize-capitalization-of-procedural-language.patch (8.3K, 2-v2-0002-Standardize-capitalization-of-procedural-language.patch) download | inline diff: From eee4238ca768c9861abad4facd521d08f038fcb1 Mon Sep 17 00:00:00 2001 From: Daniel Gustafsson <[email protected]> Date: Wed, 15 Oct 2025 15:16:31 +0200 Subject: [PATCH v2 2/2] Standardize capitalization of procedural languages in featurematrix Constistently use PL/pgSQL, PL/Python and PL/Perl throughout the featurematrix. Author: Daniel Gustafsson <[email protected]> Discussion: https://postgr.es/m/[email protected] --- data/featurematrix.yaml | 66 ++++++++++++++++++++--------------------- 1 file changed, 33 insertions(+), 33 deletions(-) diff --git a/data/featurematrix.yaml b/data/featurematrix.yaml index 2a069b37..e0a20466 100644 --- a/data/featurematrix.yaml +++ b/data/featurematrix.yaml @@ -1563,7 +1563,7 @@ featurematrix: description: adds support for a boolean expression to be checked if a trigger should be fired or not Procedural Languages: - - name: CASE in pl/pgsql + - name: CASE in PL/pgSQL versions: '8.4': 'Yes' description: allows the use of CASE as a conditional expression in addition to @@ -1576,51 +1576,51 @@ featurematrix: versions: '9.5': 'Yes' url: https://www.postgresql.org/docs/9.5/static/sql-createtransform.html - - name: DO statement for pl/perl + - name: DO statement for PL/Perl versions: '9.0': 'Yes' - description: allows the execution of anonymous code blocks in pl/perl - - name: DO statement for pl/pgsql + description: allows the execution of anonymous code blocks in PL/Perl + - name: DO statement for PL/pgSQL versions: '9.0': 'Yes' - description: allows the execution of anonymous code blocks in pl/pgsql + description: allows the execution of anonymous code blocks in PL/pgSQL - name: EXCEPTION support in PL/pgSQL versions: '8.1': 'Yes' - description: full exception handling support in pl/pgsql + description: full exception handling support in PL/pgSQL - name: EXECUTE USING in PL/pgSQL versions: '8.4': 'Yes' description: '' - - name: FOREACH IN ARRAY in pl/pgsql + - name: FOREACH IN ARRAY in PL/pgSQL versions: '9.1': 'Yes' description: This is more efficient and readable than previous methods of iterating through the elements of an array value. - - name: IN/OUT/INOUT parameters for pl/pgsql and PL/SQL + - name: IN/OUT/INOUT parameters for PL/pgSQL and PL/SQL versions: '8.1': 'Yes' description: '' - name: Named parameters versions: '8.1': 'Yes' - description: allows the use of named parameters in pl/pgsql + description: allows the use of named parameters in PL/pgSQL - name: Non-superuser language creation versions: '8.3': 'Yes' description: database owners can now create trusted languages - - name: pl/pgsql installed by default + - name: PL/pgSQL installed by default versions: '9.0': 'Yes' - description: pl/pgsql is now installed by default in all newly created database + description: PL/pgSQL is now installed by default in all newly created database - name: Polymorphic functions versions: '8.1': 'Yes' description: '' - - name: Python 3 support for pl/python + - name: Python 3 support for PL/Python versions: '9.0': 'Yes' - description: support for Python 3 in pl/python + description: support for Python 3 in PL/Python - name: 'Qualified function parameters ' versions: '8.3': 'Yes' @@ -1630,25 +1630,25 @@ featurematrix: '14': 'Yes' description: The `RETURN QUERY` directive in PL/pgSQL supports executing queries with parallelism. - - name: RETURN QUERY in pl/pgsql + - name: RETURN QUERY in PL/pgSQL versions: '8.3': 'Yes' - description: simply way to return the result of an arbitrary query in pl/pgsql + description: simple way to return the result of an arbitrary query in PL/pgSQL - name: ROWS and COST specification for functions versions: '8.3': 'Yes' description: CPU costs and the number of expected rows can now be specified for procedural functions to give better hints to the planner - - name: Scrollable and updatable cursor support for pl/pgsql + - name: Scrollable and updatable cursor support for PL/pgSQL versions: '8.3': 'Yes' - description: support for scroll- and updatable cursors in pl/pgsql functions - - name: SQLERRM/SQLSTATE for pl/pgsql + description: support for scroll- and updatable cursors in PL/pgSQL functions + - name: SQLERRM/SQLSTATE for PL/pgSQL versions: '8.1': 'Yes' description: allows simple access to the SQL error state and the associated error text if an exception happened - - name: Unicode object support in PL/python + - name: Unicode object support in PL/Python versions: '9.0': 'Yes' description: '' @@ -1656,10 +1656,10 @@ featurematrix: versions: '8.4': 'Yes' description: allows to generate user defined exceptions through RAISE - - name: Validator function for pl/perl + - name: Validator function for PL/Perl versions: '8.1': 'Yes' - description: compile time validation of pl/pgsql code + description: compile time validation of PL/pgSQL code Extensions: - name: CREATE EXTENSION .. CASCADE versions: @@ -2016,9 +2016,9 @@ legacymap: # This maps old id based URLs to the new titles and will generate re 4: Heap Only Tuples (HOT) 8: Asynchronous Commit 11: Distributed checkpointing - 13: Scrollable and updatable cursor support for pl/pgsql + 13: Scrollable and updatable cursor support for PL/pgSQL 14: ROWS and COST specification for functions - 15: SQLERRM/SQLSTATE for pl/pgsql + 15: SQLERRM/SQLSTATE for PL/pgSQL 19: EUC_JIS_2004/ SHIFT_JIS_2004 support 20: Per function GUC settings 24: Partial sort capability (top-n sorting) @@ -2044,10 +2044,10 @@ legacymap: # This maps old id based URLs to the new titles and will generate re 67: IPv6 Support 68: Inlining of SQL-functions 73: Statement level triggers - 78: RETURN QUERY in pl/pgsql + 78: RETURN QUERY in PL/pgSQL 79: 'Qualified function parameters ' - 80: IN/OUT/INOUT parameters for pl/pgsql and PL/SQL - 82: Validator function for pl/perl + 80: IN/OUT/INOUT parameters for PL/pgSQL and PL/SQL + 82: Validator function for PL/Perl 83: Named parameters 84: EXCEPTION support in PL/pgSQL 85: Polymorphic functions @@ -2064,7 +2064,7 @@ legacymap: # This maps old id based URLs to the new titles and will generate re 127: tsearch2 compatibility wrapper 128: Statement level TRUNCATE triggers 129: EXECUTE USING in PL/pgSQL - 130: CASE in pl/pgsql + 130: CASE in PL/pgSQL 133: Database level Collation 135: Hashing support for DISTINCT/UNION/INTERSECT/EXCEPT 136: RETURNS TABLE @@ -2088,10 +2088,10 @@ legacymap: # This maps old id based URLs to the new titles and will generate re 163: Deferrable unique constraints 165: XML, JSON and YAML output for EXPLAIN 166: Default permissions - 167: DO statement for pl/pgsql + 167: DO statement for PL/pgSQL 168: GRANT/REVOKE ON ALL TABLES/SEQUENCES/FUNCTIONS 170: Per user/database server configuration settings - 171: Unicode object support in PL/python + 171: Unicode object support in PL/Python 175: dblink asynchronous notification support 176: Spinlock support for the SuperH hardware platform 178: WHEN clause for CREATE TRIGGER @@ -2100,9 +2100,9 @@ legacymap: # This maps old id based URLs to the new titles and will generate re 181: EXPLAIN (BUFFERS) support 183: Large object access controls 184: Search+bind mode operation for LDAP authentication - 185: pl/pgsql installed by default - 186: DO statement for pl/perl - 187: Python 3 support for pl/python + 185: PL/pgSQL installed by default + 186: DO statement for PL/Perl + 187: Python 3 support for PL/Python 188: Hot Standby 189: Typed tables 190: Payload support for LISTEN/NOTIFY @@ -2125,7 +2125,7 @@ legacymap: # This maps old id based URLs to the new titles and will generate re 213: ALTER TABLE ... ADD UNIQUE/PRIMARY KEY USING INDEX 214: Foreign keys marked as NOT VALID 215: Triggers on views - 216: FOREACH IN ARRAY in pl/pgsql + 216: FOREACH IN ARRAY in PL/pgSQL 217: Index-only scans 218: Multi-core scalability for read-only workloads 219: Cascading streaming replication -- 2.39.3 (Apple Git-146) [application/octet-stream] v2-0001-Fix-typos-in-feature-matrix.patch (6.9K, 3-v2-0001-Fix-typos-in-feature-matrix.patch) download | inline diff: From eb8534464ac77e0caa3357cd38c3f1e009b7b3d4 Mon Sep 17 00:00:00 2001 From: Daniel Gustafsson <[email protected]> Date: Tue, 14 Oct 2025 09:40:24 +0200 Subject: [PATCH v2 1/2] Fix typos in feature matrix Author: Daniel Gustafsson <[email protected]> Reviewed-by: David Rowley <[email protected]> Discussion: https://postgr.es/m/[email protected] --- data/featurematrix.yaml | 32 ++++++++++++++++---------------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/data/featurematrix.yaml b/data/featurematrix.yaml index 3e471943..2a069b37 100644 --- a/data/featurematrix.yaml +++ b/data/featurematrix.yaml @@ -21,7 +21,7 @@ featurematrix: versions: '8.4': 'Yes' description: replaces the shared memory fixed size free space map with an on-disk - implemenation + implementation - name: Dynamic Background Workers versions: '9.4': 'Yes' @@ -347,7 +347,7 @@ featurematrix: '15': 'Yes' description: "- `regexp_count`: counts the number of places that match the regular\ \ expression in a string\r\n- `regexp_instr `: returns the starting of the Nth\ - \ match of a regular expression in a sting\r\n- `regexp_like`: returns true\ + \ match of a regular expression in a string\r\n- `regexp_like`: returns true\ \ 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)" - name: Return OLD and NEW values from modified rows versions: @@ -415,7 +415,7 @@ featurematrix: versions: '9.1': 'Yes' description: Allows INSERT/UPDATE/DELETE in WITH clauses which can be used in - conjunction with a RETURNING clause to to pass data up to the containing query. + conjunction with a RETURNING clause to pass data up to the containing query. Data Definition Language (DDL): - name: ALTER object IF EXISTS versions: @@ -506,7 +506,7 @@ featurematrix: - name: Automatic plan invalidation versions: '8.3': 'Yes' - description: automatic invalidation of cached exceutions plans + description: automatic invalidation of cached executions plans - name: Background Checkpointer versions: '9.2': 'Yes' @@ -537,8 +537,8 @@ featurematrix: - name: CREATE STATISTICS - "OR" and "IN/ANY" statistics versions: '13': 'Yes' - description: Extend statistics can help the query planner provided better plans - for queries that have "OR".clauses as well as "IN/ANY" lookups over lists. For + description: Extended statistics can help the query planner generate better plans + for queries that have "OR" clauses as well as "IN/ANY" lookups over lists. For more information, please see https://www.postgresql.org/docs/13/planner-stats.html#PLANNER-STATS-EXTENDED - name: Cross datatype hashing support versions: @@ -657,7 +657,7 @@ featurematrix: - name: Parallel FULL and RIGHT joins versions: '16': 'Yes' - description: Ability to execute in parallell `FULL` and `RIGHT OUTER` joins. + description: Ability to execute in parallel `FULL` and `RIGHT OUTER` joins. - name: Parallel full table scans (sequential scans) versions: '9.6': 'Yes' @@ -755,7 +755,7 @@ featurematrix: versions: '9.3': 'Yes' description: New operators and functions to extract values from JSON data strings, - JSON data strings can now to be converted into records and new functions to + JSON data strings can now to be converted into records and new functions convert values, records, and hstore data to JSON. - name: JSONB data type versions: @@ -884,7 +884,7 @@ featurematrix: '9.4': 'Yes' description: Auto-updatable views can now specify whether an INSERT or UPDATE would change the state of the row so that it would no longer be visible in the - view. Using WITH CHECK OPTION will prevent any such changes from occuring. + view. Using WITH CHECK OPTION will prevent any such changes from occurring. Replication: - name: ALTER SUBSCRIPTION ... SKIP versions: @@ -973,7 +973,7 @@ featurematrix: - name: Logical replication write conflict logging versions: '18': 'Yes' - description: "Write conflicts that occur during ogical replication are\ + description: "Write conflicts that occur during logical replication are\ \ reported both in logs and in the\ \ [`pg_stat_subscription_stats`](https://www.postgresql.org/docs/18/monitoring-stats.html#MONITORING-PG-STAT-SUBSCRIPTION-STATS)\ \ view." @@ -992,7 +992,7 @@ featurematrix: versions: '9.3': 'Yes' description: Cascading replication previously required that an xlog archive be - available in order for a standbys of the new primary to correctly switch to + available in order for standbys of the new primary to correctly switch to the new timeline. This change removes this dependency. - name: Streaming Replication versions: @@ -1043,7 +1043,7 @@ featurematrix: - name: Multiple synchronous standbys versions: '9.6': 'Yes' - description: Ability to require synch messages from multiple prioritized standbys + description: Ability to require sync messages from multiple prioritized standbys when committing a synchronous transaction. - name: Named restore points versions: @@ -1265,7 +1265,7 @@ featurematrix: - name: Native RADIUS authentication versions: '9.0': 'Yes' - description: adds support for authentictaing against a RADIUS server + description: adds support for authenticating against a RADIUS server - name: OAuth Authentication / Authorization versions: '18': 'Yes' @@ -1288,7 +1288,7 @@ featurematrix: - name: ROLES versions: '8.1': 'Yes' - description: replaces user and group concept by a more generalizes role based + description: replaces user and group concept with a more generalized role based concept - name: Row-Level Security versions: @@ -1849,7 +1849,7 @@ featurematrix: versions: '8.1': 'Yes' url: https://www.postgresql.org/docs/current/static/dblink.html - - name: dblink asyncronous notification support + - name: dblink asynchronous notification support versions: '9.0': 'Yes' description: Add the ability to retrieve asynchronous notifications using dblink @@ -2092,7 +2092,7 @@ legacymap: # This maps old id based URLs to the new titles and will generate re 168: GRANT/REVOKE ON ALL TABLES/SEQUENCES/FUNCTIONS 170: Per user/database server configuration settings 171: Unicode object support in PL/python - 175: dblink asyncronous notification support + 175: dblink asynchronous notification support 176: Spinlock support for the SuperH hardware platform 178: WHEN clause for CREATE TRIGGER 179: Exclusion constraints -- 2.39.3 (Apple Git-146) ^ permalink raw reply [nested|flat] 10+ messages in thread
* Re: Typos in the featurematrix @ 2025-10-21 12:09 Daniel Gustafsson <[email protected]> parent: Daniel Gustafsson <[email protected]> 0 siblings, 2 replies; 10+ messages in thread From: Daniel Gustafsson @ 2025-10-21 12:09 UTC (permalink / raw) To: David Rowley <[email protected]>; +Cc: [email protected]; Magnus Hagander <[email protected]> > On 15 Oct 2025, at 15:22, Daniel Gustafsson <[email protected]> wrote: > >> On 15 Oct 2025, at 13:00, David Rowley <[email protected]> wrote: >> >> On Tue, 14 Oct 2025 at 20:46, Daniel Gustafsson <[email protected]> wrote: >>> While working on something else I noticed that the featurematrix has a few >>> typos, unless there are objections I'll go ahead with the attached. >> >> Patch looks good. >> >> I had a read and found a few more: > > Thanks, I have incorporated all of these in the v2 attached. > > When doing that I noticed that the capitilization of PL/pgSQL and other PL's > was quite varied. 0002 in the attached corrects that to ensure consistency > across the items in the featurematrix with corresponding names in the docs. The featurematrix was a rabbithole that went deep, looking closer I realized that links were using a variety of target versions: /current/, /devel/, or the version which was current at the time of adding. This means that for old features we we still linking to the 9.x version of the docs, which clearly isn't helpful to our users. We also had quite a few /static/ links which 301 redirects since we don't have that level anymore. On top of that, a few links in the descriptions were not markdown encoded and thus rendered as plain text. The attached v3 fixes these in 0003 and 0004. -- Daniel Gustafsson Attachments: [application/octet-stream] v3-0001-Fix-typos-in-feature-matrix.patch (6.9K, 2-v3-0001-Fix-typos-in-feature-matrix.patch) download | inline diff: From df3e20a9937afdea5dc6c7009cea73a45d60d9bb Mon Sep 17 00:00:00 2001 From: Daniel Gustafsson <[email protected]> Date: Tue, 14 Oct 2025 09:40:24 +0200 Subject: [PATCH v3 1/4] Fix typos in feature matrix Author: Daniel Gustafsson <[email protected]> Reviewed-by: David Rowley <[email protected]> Discussion: https://postgr.es/m/[email protected] --- data/featurematrix.yaml | 32 ++++++++++++++++---------------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/data/featurematrix.yaml b/data/featurematrix.yaml index 3e471943..2a069b37 100644 --- a/data/featurematrix.yaml +++ b/data/featurematrix.yaml @@ -21,7 +21,7 @@ featurematrix: versions: '8.4': 'Yes' description: replaces the shared memory fixed size free space map with an on-disk - implemenation + implementation - name: Dynamic Background Workers versions: '9.4': 'Yes' @@ -347,7 +347,7 @@ featurematrix: '15': 'Yes' description: "- `regexp_count`: counts the number of places that match the regular\ \ expression in a string\r\n- `regexp_instr `: returns the starting of the Nth\ - \ match of a regular expression in a sting\r\n- `regexp_like`: returns true\ + \ match of a regular expression in a string\r\n- `regexp_like`: returns true\ \ 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)" - name: Return OLD and NEW values from modified rows versions: @@ -415,7 +415,7 @@ featurematrix: versions: '9.1': 'Yes' description: Allows INSERT/UPDATE/DELETE in WITH clauses which can be used in - conjunction with a RETURNING clause to to pass data up to the containing query. + conjunction with a RETURNING clause to pass data up to the containing query. Data Definition Language (DDL): - name: ALTER object IF EXISTS versions: @@ -506,7 +506,7 @@ featurematrix: - name: Automatic plan invalidation versions: '8.3': 'Yes' - description: automatic invalidation of cached exceutions plans + description: automatic invalidation of cached executions plans - name: Background Checkpointer versions: '9.2': 'Yes' @@ -537,8 +537,8 @@ featurematrix: - name: CREATE STATISTICS - "OR" and "IN/ANY" statistics versions: '13': 'Yes' - description: Extend statistics can help the query planner provided better plans - for queries that have "OR".clauses as well as "IN/ANY" lookups over lists. For + description: Extended statistics can help the query planner generate better plans + for queries that have "OR" clauses as well as "IN/ANY" lookups over lists. For more information, please see https://www.postgresql.org/docs/13/planner-stats.html#PLANNER-STATS-EXTENDED - name: Cross datatype hashing support versions: @@ -657,7 +657,7 @@ featurematrix: - name: Parallel FULL and RIGHT joins versions: '16': 'Yes' - description: Ability to execute in parallell `FULL` and `RIGHT OUTER` joins. + description: Ability to execute in parallel `FULL` and `RIGHT OUTER` joins. - name: Parallel full table scans (sequential scans) versions: '9.6': 'Yes' @@ -755,7 +755,7 @@ featurematrix: versions: '9.3': 'Yes' description: New operators and functions to extract values from JSON data strings, - JSON data strings can now to be converted into records and new functions to + JSON data strings can now to be converted into records and new functions convert values, records, and hstore data to JSON. - name: JSONB data type versions: @@ -884,7 +884,7 @@ featurematrix: '9.4': 'Yes' description: Auto-updatable views can now specify whether an INSERT or UPDATE would change the state of the row so that it would no longer be visible in the - view. Using WITH CHECK OPTION will prevent any such changes from occuring. + view. Using WITH CHECK OPTION will prevent any such changes from occurring. Replication: - name: ALTER SUBSCRIPTION ... SKIP versions: @@ -973,7 +973,7 @@ featurematrix: - name: Logical replication write conflict logging versions: '18': 'Yes' - description: "Write conflicts that occur during ogical replication are\ + description: "Write conflicts that occur during logical replication are\ \ reported both in logs and in the\ \ [`pg_stat_subscription_stats`](https://www.postgresql.org/docs/18/monitoring-stats.html#MONITORING-PG-STAT-SUBSCRIPTION-STATS)\ \ view." @@ -992,7 +992,7 @@ featurematrix: versions: '9.3': 'Yes' description: Cascading replication previously required that an xlog archive be - available in order for a standbys of the new primary to correctly switch to + available in order for standbys of the new primary to correctly switch to the new timeline. This change removes this dependency. - name: Streaming Replication versions: @@ -1043,7 +1043,7 @@ featurematrix: - name: Multiple synchronous standbys versions: '9.6': 'Yes' - description: Ability to require synch messages from multiple prioritized standbys + description: Ability to require sync messages from multiple prioritized standbys when committing a synchronous transaction. - name: Named restore points versions: @@ -1265,7 +1265,7 @@ featurematrix: - name: Native RADIUS authentication versions: '9.0': 'Yes' - description: adds support for authentictaing against a RADIUS server + description: adds support for authenticating against a RADIUS server - name: OAuth Authentication / Authorization versions: '18': 'Yes' @@ -1288,7 +1288,7 @@ featurematrix: - name: ROLES versions: '8.1': 'Yes' - description: replaces user and group concept by a more generalizes role based + description: replaces user and group concept with a more generalized role based concept - name: Row-Level Security versions: @@ -1849,7 +1849,7 @@ featurematrix: versions: '8.1': 'Yes' url: https://www.postgresql.org/docs/current/static/dblink.html - - name: dblink asyncronous notification support + - name: dblink asynchronous notification support versions: '9.0': 'Yes' description: Add the ability to retrieve asynchronous notifications using dblink @@ -2092,7 +2092,7 @@ legacymap: # This maps old id based URLs to the new titles and will generate re 168: GRANT/REVOKE ON ALL TABLES/SEQUENCES/FUNCTIONS 170: Per user/database server configuration settings 171: Unicode object support in PL/python - 175: dblink asyncronous notification support + 175: dblink asynchronous notification support 176: Spinlock support for the SuperH hardware platform 178: WHEN clause for CREATE TRIGGER 179: Exclusion constraints -- 2.39.3 (Apple Git-146) [application/octet-stream] v3-0002-Standardize-capitalization-of-procedural-language.patch (8.3K, 3-v3-0002-Standardize-capitalization-of-procedural-language.patch) download | inline diff: From 42dd5063c7345e8878635d9d9820fc4780c96f9d Mon Sep 17 00:00:00 2001 From: Daniel Gustafsson <[email protected]> Date: Wed, 15 Oct 2025 15:16:31 +0200 Subject: [PATCH v3 2/4] Standardize capitalization of procedural languages in featurematrix Constistently use PL/pgSQL, PL/Python and PL/Perl throughout the featurematrix. Author: Daniel Gustafsson <[email protected]> Discussion: https://postgr.es/m/[email protected] --- data/featurematrix.yaml | 66 ++++++++++++++++++++--------------------- 1 file changed, 33 insertions(+), 33 deletions(-) diff --git a/data/featurematrix.yaml b/data/featurematrix.yaml index 2a069b37..e0a20466 100644 --- a/data/featurematrix.yaml +++ b/data/featurematrix.yaml @@ -1563,7 +1563,7 @@ featurematrix: description: adds support for a boolean expression to be checked if a trigger should be fired or not Procedural Languages: - - name: CASE in pl/pgsql + - name: CASE in PL/pgSQL versions: '8.4': 'Yes' description: allows the use of CASE as a conditional expression in addition to @@ -1576,51 +1576,51 @@ featurematrix: versions: '9.5': 'Yes' url: https://www.postgresql.org/docs/9.5/static/sql-createtransform.html - - name: DO statement for pl/perl + - name: DO statement for PL/Perl versions: '9.0': 'Yes' - description: allows the execution of anonymous code blocks in pl/perl - - name: DO statement for pl/pgsql + description: allows the execution of anonymous code blocks in PL/Perl + - name: DO statement for PL/pgSQL versions: '9.0': 'Yes' - description: allows the execution of anonymous code blocks in pl/pgsql + description: allows the execution of anonymous code blocks in PL/pgSQL - name: EXCEPTION support in PL/pgSQL versions: '8.1': 'Yes' - description: full exception handling support in pl/pgsql + description: full exception handling support in PL/pgSQL - name: EXECUTE USING in PL/pgSQL versions: '8.4': 'Yes' description: '' - - name: FOREACH IN ARRAY in pl/pgsql + - name: FOREACH IN ARRAY in PL/pgSQL versions: '9.1': 'Yes' description: This is more efficient and readable than previous methods of iterating through the elements of an array value. - - name: IN/OUT/INOUT parameters for pl/pgsql and PL/SQL + - name: IN/OUT/INOUT parameters for PL/pgSQL and PL/SQL versions: '8.1': 'Yes' description: '' - name: Named parameters versions: '8.1': 'Yes' - description: allows the use of named parameters in pl/pgsql + description: allows the use of named parameters in PL/pgSQL - name: Non-superuser language creation versions: '8.3': 'Yes' description: database owners can now create trusted languages - - name: pl/pgsql installed by default + - name: PL/pgSQL installed by default versions: '9.0': 'Yes' - description: pl/pgsql is now installed by default in all newly created database + description: PL/pgSQL is now installed by default in all newly created database - name: Polymorphic functions versions: '8.1': 'Yes' description: '' - - name: Python 3 support for pl/python + - name: Python 3 support for PL/Python versions: '9.0': 'Yes' - description: support for Python 3 in pl/python + description: support for Python 3 in PL/Python - name: 'Qualified function parameters ' versions: '8.3': 'Yes' @@ -1630,25 +1630,25 @@ featurematrix: '14': 'Yes' description: The `RETURN QUERY` directive in PL/pgSQL supports executing queries with parallelism. - - name: RETURN QUERY in pl/pgsql + - name: RETURN QUERY in PL/pgSQL versions: '8.3': 'Yes' - description: simply way to return the result of an arbitrary query in pl/pgsql + description: simple way to return the result of an arbitrary query in PL/pgSQL - name: ROWS and COST specification for functions versions: '8.3': 'Yes' description: CPU costs and the number of expected rows can now be specified for procedural functions to give better hints to the planner - - name: Scrollable and updatable cursor support for pl/pgsql + - name: Scrollable and updatable cursor support for PL/pgSQL versions: '8.3': 'Yes' - description: support for scroll- and updatable cursors in pl/pgsql functions - - name: SQLERRM/SQLSTATE for pl/pgsql + description: support for scroll- and updatable cursors in PL/pgSQL functions + - name: SQLERRM/SQLSTATE for PL/pgSQL versions: '8.1': 'Yes' description: allows simple access to the SQL error state and the associated error text if an exception happened - - name: Unicode object support in PL/python + - name: Unicode object support in PL/Python versions: '9.0': 'Yes' description: '' @@ -1656,10 +1656,10 @@ featurematrix: versions: '8.4': 'Yes' description: allows to generate user defined exceptions through RAISE - - name: Validator function for pl/perl + - name: Validator function for PL/Perl versions: '8.1': 'Yes' - description: compile time validation of pl/pgsql code + description: compile time validation of PL/pgSQL code Extensions: - name: CREATE EXTENSION .. CASCADE versions: @@ -2016,9 +2016,9 @@ legacymap: # This maps old id based URLs to the new titles and will generate re 4: Heap Only Tuples (HOT) 8: Asynchronous Commit 11: Distributed checkpointing - 13: Scrollable and updatable cursor support for pl/pgsql + 13: Scrollable and updatable cursor support for PL/pgSQL 14: ROWS and COST specification for functions - 15: SQLERRM/SQLSTATE for pl/pgsql + 15: SQLERRM/SQLSTATE for PL/pgSQL 19: EUC_JIS_2004/ SHIFT_JIS_2004 support 20: Per function GUC settings 24: Partial sort capability (top-n sorting) @@ -2044,10 +2044,10 @@ legacymap: # This maps old id based URLs to the new titles and will generate re 67: IPv6 Support 68: Inlining of SQL-functions 73: Statement level triggers - 78: RETURN QUERY in pl/pgsql + 78: RETURN QUERY in PL/pgSQL 79: 'Qualified function parameters ' - 80: IN/OUT/INOUT parameters for pl/pgsql and PL/SQL - 82: Validator function for pl/perl + 80: IN/OUT/INOUT parameters for PL/pgSQL and PL/SQL + 82: Validator function for PL/Perl 83: Named parameters 84: EXCEPTION support in PL/pgSQL 85: Polymorphic functions @@ -2064,7 +2064,7 @@ legacymap: # This maps old id based URLs to the new titles and will generate re 127: tsearch2 compatibility wrapper 128: Statement level TRUNCATE triggers 129: EXECUTE USING in PL/pgSQL - 130: CASE in pl/pgsql + 130: CASE in PL/pgSQL 133: Database level Collation 135: Hashing support for DISTINCT/UNION/INTERSECT/EXCEPT 136: RETURNS TABLE @@ -2088,10 +2088,10 @@ legacymap: # This maps old id based URLs to the new titles and will generate re 163: Deferrable unique constraints 165: XML, JSON and YAML output for EXPLAIN 166: Default permissions - 167: DO statement for pl/pgsql + 167: DO statement for PL/pgSQL 168: GRANT/REVOKE ON ALL TABLES/SEQUENCES/FUNCTIONS 170: Per user/database server configuration settings - 171: Unicode object support in PL/python + 171: Unicode object support in PL/Python 175: dblink asynchronous notification support 176: Spinlock support for the SuperH hardware platform 178: WHEN clause for CREATE TRIGGER @@ -2100,9 +2100,9 @@ legacymap: # This maps old id based URLs to the new titles and will generate re 181: EXPLAIN (BUFFERS) support 183: Large object access controls 184: Search+bind mode operation for LDAP authentication - 185: pl/pgsql installed by default - 186: DO statement for pl/perl - 187: Python 3 support for pl/python + 185: PL/pgSQL installed by default + 186: DO statement for PL/Perl + 187: Python 3 support for PL/Python 188: Hot Standby 189: Typed tables 190: Payload support for LISTEN/NOTIFY @@ -2125,7 +2125,7 @@ legacymap: # This maps old id based URLs to the new titles and will generate re 213: ALTER TABLE ... ADD UNIQUE/PRIMARY KEY USING INDEX 214: Foreign keys marked as NOT VALID 215: Triggers on views - 216: FOREACH IN ARRAY in pl/pgsql + 216: FOREACH IN ARRAY in PL/pgSQL 217: Index-only scans 218: Multi-core scalability for read-only workloads 219: Cascading streaming replication -- 2.39.3 (Apple Git-146) [application/octet-stream] v3-0003-featurematrix-Update-links-to-use-current-documen.patch (60.1K, 4-v3-0003-featurematrix-Update-links-to-use-current-documen.patch) download | inline diff: From 41d0b0058f2a04f62e703b60a4bfc4fe7cc90c9e Mon Sep 17 00:00:00 2001 From: Daniel Gustafsson <[email protected]> Date: Sat, 18 Oct 2025 20:06:07 +0200 Subject: [PATCH v3 3/4] featurematrix: Update links to use current documentation The links from the featurematrix to the docs used a combination of current, devel, and the specific latest version at the time the new feature was added. This updates all links to use /current/ to make sure that we never link to outdated versions of the docs. While there, remove all /static/ links since we only have the static docs these days. Author: Daniel Gustafsson <[email protected]> Discussion: https://postgr.es/m/[email protected] --- data/featurematrix.yaml | 364 ++++++++++++++++++++-------------------- 1 file changed, 182 insertions(+), 182 deletions(-) diff --git a/data/featurematrix.yaml b/data/featurematrix.yaml index e0a20466..a5bbd8be 100644 --- a/data/featurematrix.yaml +++ b/data/featurematrix.yaml @@ -11,7 +11,7 @@ featurematrix: - name: Advisory locks versions: '8.2': 'Yes' - url: https://www.postgresql.org/docs/current/static/explicit-locking.html#ADVISORY-LOCKS + url: https://www.postgresql.org/docs/current/explicit-locking.html#ADVISORY-LOCKS - name: Custom background workers versions: '9.3': 'Yes' @@ -43,17 +43,17 @@ featurematrix: - name: EXPLAIN (WAL) support versions: '13': 'Yes' - description: "[EXPLAIN](https://www.postgresql.org/docs/13/sql-explain.html) can\ - \ now track WAL usage information along with [auto_explain](https://www.postgresql.org/docs/13/auto-explain.html),\ - \ [autovacuum](https://www.postgresql.org/docs/13/routine-vacuuming.html#AUTOVACUUM),\ - \ and [pg_stat_statements](https://www.postgresql.org/docs/13/pgstatstatements.html).\r\ - \n\r\nFor more information, please see the documentation on [EXPLAIN](https://www.postgresql.org/docs/13/sql-explain.html)." + description: "[EXPLAIN](https://www.postgresql.org/docs/current/sql-explain.html) can\ + \ now track WAL usage information along with [auto_explain](https://www.postgresql.org/docs/current/auto-explain.html),\ + \ [autovacuum](https://www.postgresql.org/docs/current/routine-vacuuming.html#AUTOVACUUM),\ + \ and [pg_stat_statements](https://www.postgresql.org/docs/current/pgstatstatements.html).\r\ + \n\r\nFor more information, please see the documentation on [EXPLAIN](https://www.postgresql.org/docs/current/sql-explain.html)." - name: '"jsonlog" logging format' versions: '15': 'Yes' - description: PostgreSQL logs can now be output in [JSON](https://www.postgresql.org/docs/15/runtime-config-logging.html#RUNTIME-CONFIG-LOGGING-JSONLOG) - using the [`jsonlog`](https://www.postgresql.org/docs/15/runtime-config-logging.html#RUNTIME-CONFIG-LOGGING-JSONLOG) - parameter when setting [`log_destination`](https://www.postgresql.org/docs/15/runtime-config-logging.html#RUNTIME-CONFIG-LOGGING-WHERE). + description: PostgreSQL logs can now be output in [JSON](https://www.postgresql.org/docs/current/runtime-config-logging.html#RUNTIME-CONFIG-LOGGING-JSONLOG) + using the [`jsonlog`](https://www.postgresql.org/docs/current/runtime-config-logging.html#RUNTIME-CONFIG-LOGGING-JSONLOG) + parameter when setting [`log_destination`](https://www.postgresql.org/docs/current/runtime-config-logging.html#RUNTIME-CONFIG-LOGGING-WHERE). This provides a "structured log" that can be used by other utilities for storage and analysis. - name: Loadable plugin infrastructure for monitoring the planner @@ -69,15 +69,15 @@ featurematrix: - name: pg_stat_checkpointer system view versions: '17': 'Yes' - url: https://www.postgresql.org/docs/17/monitoring-stats.html#MONITORING-PG-STAT-CHECKPOINTER-VIEW + url: https://www.postgresql.org/docs/current/monitoring-stats.html#MONITORING-PG-STAT-CHECKPOINTER-VIEW - name: pg_stat_io - I/O metrics view versions: '16': 'Yes' - url: https://www.postgresql.org/docs/16/monitoring-stats.html#MONITORING-PG-STAT-IO-VIEW + url: https://www.postgresql.org/docs/current/monitoring-stats.html#MONITORING-PG-STAT-IO-VIEW - name: pg_wait_events system view versions: '17': 'Yes' - url: https://www.postgresql.org/docs/17/view-pg-wait-events.html + url: https://www.postgresql.org/docs/current/view-pg-wait-events.html - name: Server statistics in shared memory versions: '15': 'Yes' @@ -87,7 +87,7 @@ featurematrix: - name: SQL-standard information schema versions: '8.1': 'Yes' - url: https://www.postgresql.org/docs/current/static/information-schema.html + url: https://www.postgresql.org/docs/current/information-schema.html - name: Support for anonymous shared memory versions: '9.3': 'Yes' @@ -106,23 +106,23 @@ featurematrix: - name: Array support versions: '8.1': 'Yes' - url: https://www.postgresql.org/docs/current/static/arrays.html + url: https://www.postgresql.org/docs/current/arrays.html - name: ENUM data type versions: '8.3': 'Yes' - url: https://www.postgresql.org/docs/current/static/datatype-enum.html + url: https://www.postgresql.org/docs/current/datatype-enum.html - name: GUID/UUID data type versions: '8.3': 'Yes' - url: https://www.postgresql.org/docs/current/static/datatype-uuid.html + url: https://www.postgresql.org/docs/current/datatype-uuid.html - name: macaddr8 data type versions: '10': 'Yes' - url: https://www.postgresql.org/docs/10/static/datatype-net-types.html#datatype-macaddr8 + url: https://www.postgresql.org/docs/current/datatype-net-types.html#DATATYPE-MACADDR8 - name: Multiranges versions: '14': 'Yes' - url: https://www.postgresql.org/docs/14/rangetypes.html#RANGETYPES-BUILTIN + url: https://www.postgresql.org/docs/current/rangetypes.html#RANGETYPES-BUILTIN - name: NULLs in Array versions: '8.2': 'Yes' @@ -134,7 +134,7 @@ featurematrix: - name: Range types versions: '9.2': 'Yes' - url: https://www.postgresql.org/docs/9.2/static/rangetypes.html + url: https://www.postgresql.org/docs/current/rangetypes.html - name: smallserial type versions: '9.2': 'Yes' @@ -147,24 +147,24 @@ featurematrix: - name: UUIDv7 versions: '18': 'Yes' - url: https://www.postgresql.org/docs/18/functions-uuid.html#FUNC_UUID_GEN_TABLE + url: https://www.postgresql.org/docs/current/functions-uuid.html#FUNC_UUID_GEN_TABLE - name: XML data type versions: '8.3': 'Yes' - url: https://www.postgresql.org/docs/current/static/datatype-xml.html + url: https://www.postgresql.org/docs/current/datatype-xml.html Indexing & Constraints: - name: Block-range (BRIN) indexes versions: '9.5': 'Yes' - url: https://www.postgresql.org/docs/current/static/brin-intro.html + url: https://www.postgresql.org/docs/current/brin-intro.html - name: B-tree bottom-up index deletion versions: '14': 'Yes' - url: https://www.postgresql.org/docs/14/btree-implementation.html#BTREE-DELETION + url: https://www.postgresql.org/docs/current/btree.html#BTREE-DELETION - name: B-tree deduplication versions: '13': 'Yes' - url: https://www.postgresql.org/docs/13/btree-implementation.html#BTREE-DEDUPLICATION + url: https://www.postgresql.org/docs/current/btree.html#BTREE-DEDUPLICATION - name: Concurrent GiST indexes versions: '8.1': 'Yes' @@ -196,7 +196,7 @@ featurematrix: - name: GIN (Generalized Inverted Index) Indexes versions: '8.2': 'Yes' - url: https://www.postgresql.org/docs/current/static/gin.html + url: https://www.postgresql.org/docs/current/gin.html - name: GIN indexes partial match versions: '8.4': 'Yes' @@ -209,11 +209,11 @@ featurematrix: - name: GiST (Generalized Search Tree) Indexes versions: '8.1': 'Yes' - url: https://www.postgresql.org/docs/current/static/gist.html + url: https://www.postgresql.org/docs/current/gist.html - name: Indexes on expressions versions: '8.1': 'Yes' - url: https://www.postgresql.org/docs/current/static/indexes-expressional.html + url: https://www.postgresql.org/docs/current/indexes-expressional.html - name: Index-only scans versions: '9.2': 'Yes' @@ -270,7 +270,7 @@ featurematrix: - name: Space-Partitioned GiST (SP-GiST) Indexes versions: '9.2': 'Yes' - url: https://www.postgresql.org/docs/current/static/spgist.html + url: https://www.postgresql.org/docs/current/spgist.html - name: SP-GiST indexes for range types versions: '9.3': 'Yes' @@ -291,19 +291,19 @@ featurematrix: - name: ANY_VALUE aggregate versions: '16': 'Yes' - url: https://www.postgresql.org/docs/16/functions-aggregate.html#id-1.5.8.27.5.2.4.1.1.1.1 + url: https://www.postgresql.org/docs/current/functions-aggregate.html#id-1.5.8.27.6.2.4.1.1.1.1 - name: FETCH FIRST .. WITH TIES versions: '13': 'Yes' - url: https://www.postgresql.org/docs/13/sql-select.html#SQL-LIMIT + url: https://www.postgresql.org/docs/current/sql-select.html#SQL-LIMIT - name: GROUPING SETS, CUBE and ROLLUP support versions: '9.5': 'Yes' - url: https://www.postgresql.org/docs/current/static/queries-table-expressions.html#QUERIES-GROUPING-SETS + url: https://www.postgresql.org/docs/current/queries-table-expressions.html#QUERIES-GROUPING-SETS - name: INSERT/UPDATE/DELETE RETURNING versions: '8.2': 'Yes' - url: https://www.postgresql.org/docs/current/static/sql-insert.html + url: https://www.postgresql.org/docs/current/sql-insert.html - name: LATERAL clause versions: '9.3': 'Yes' @@ -312,7 +312,7 @@ featurematrix: - name: MERGE versions: '15': 'Yes' - url: https://www.postgresql.org/docs/15/sql-merge.html + url: https://www.postgresql.org/docs/current/sql-merge.html - name: MERGE ... RETURNING versions: '17': 'Yes' @@ -322,7 +322,7 @@ featurematrix: - name: Multirow VALUES versions: '8.2': 'Yes' - url: https://www.postgresql.org/docs/current/static/sql-values.html + url: https://www.postgresql.org/docs/current/sql-values.html - name: Non-decimal integer literals versions: '16': 'Yes' @@ -331,12 +331,12 @@ featurematrix: - name: ORDER BY NULLS FIRST/LAST versions: '8.3': 'Yes' - url: https://www.postgresql.org/docs/current/static/sql-select.html + url: https://www.postgresql.org/docs/current/sql-select.html - name: range_agg range type aggregation function versions: '14': 'Yes' description: Range types can be aggregated (e.g. in `GROUP BY` clauses) using - the [`range_agg`](https://www.postgresql.org/docs/15/functions-aggregate.html) + the [`range_agg`](https://www.postgresql.org/docs/current/functions-aggregate.html) function. - name: Recursive Queries versions: @@ -348,11 +348,11 @@ featurematrix: description: "- `regexp_count`: counts the number of places that match the regular\ \ expression in a string\r\n- `regexp_instr `: returns the starting of the Nth\ \ match of a regular expression in a string\r\n- `regexp_like`: returns true\ - \ 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)" + \ if a regular expression has a match in a string.\r\n\r\n[https://www.postgresql.org/docs/current/functions-matching.html#FUNCTIONS-POSIX-REGEXP](https://www.postgresql.org/docs/current/functions-matching.html#FUNCTIONS-POSIX-REGEXP)" - name: Return OLD and NEW values from modified rows versions: '18': 'Yes' - url: https://www.postgresql.org/docs/18/dml-returning.html + url: https://www.postgresql.org/docs/current/dml-returning.html - name: Row-wise comparison versions: '8.2': 'Yes' @@ -369,7 +369,7 @@ featurematrix: - name: SYSTEM_USER versions: '16': 'Yes' - url: https://www.postgresql.org/docs/16/functions-info.html#id-1.5.8.32.3.4.2.2.24.1.1.1 + url: https://www.postgresql.org/docs/current/functions-info.html#id-1.5.8.33.3.4.2.2.26.1.1.1 - name: TABLE statement versions: '8.4': 'Yes' @@ -402,7 +402,7 @@ featurematrix: - name: WITHIN GROUP clause versions: '9.4': 'Yes' - url: https://www.postgresql.org/docs/current/static/sql-expressions.html#SYNTAX-AGGREGATES + url: https://www.postgresql.org/docs/current/sql-expressions.html#SYNTAX-AGGREGATES - name: WITH ORDINALITY clause versions: '9.4': 'Yes' @@ -430,8 +430,8 @@ featurematrix: - name: ALTER TABLE ... SET ACCESS METHOD versions: '15': 'Yes' - description: '[`ALTER TABLE`](https://www.postgresql.org/docs/15/sql-altertable.html) - can specify a different [access method](https://www.postgresql.org/docs/15/tableam.html), + description: '[`ALTER TABLE`](https://www.postgresql.org/docs/current/sql-altertable.html) + can specify a different [access method](https://www.postgresql.org/docs/current/tableam.html), also known as a storage interface.' - name: ALTER TABLE ... SET LOGGED / UNLOGGED versions: @@ -444,7 +444,7 @@ featurematrix: - name: CREATE ACCESS METHOD versions: '12': 'Yes' - url: https://www.postgresql.org/docs/12/sql-create-access-method.html + url: https://www.postgresql.org/docs/current/sql-create-access-method.html - name: CREATE TABLE ... (LIKE) with foreign tables, views and composite types versions: '9.2': 'Yes' @@ -452,11 +452,11 @@ featurematrix: - name: DROP object IF EXISTS versions: '8.2': 'Yes' - url: https://www.postgresql.org/docs/current/static/sql-commands.html + url: https://www.postgresql.org/docs/current/sql-commands.html - name: ON COMMIT clause for CREATE TEMPORARY TABLE versions: '8.1': 'Yes' - url: https://www.postgresql.org/docs/current/static/sql-createtable.html + url: https://www.postgresql.org/docs/current/sql-createtable.html - name: REINDEX CONCURRENTLY versions: '12': 'Yes' @@ -469,10 +469,10 @@ featurematrix: versions: '18': 'Yes' description: "Temporal constraints are constraints over ranges. These are\ - \ available for both [`PRIMARY KEY`](https://www.postgresql.org/docs/18/sql-createtable.html#SQL-CREATETABLE-PARMS-PRIMARY-KEY)\ - \ and [`UNIQUE`](https://www.postgresql.org/docs/18/sql-createtable.html#SQL-CREATETABLE-PARMS-UNIQUE)\ + \ available for both [`PRIMARY KEY`](https://www.postgresql.org/docs/current/sql-createtable.html#SQL-CREATETABLE-PARMS-PRIMARY-KEY)\ + \ and [`UNIQUE`](https://www.postgresql.org/docs/current/sql-createtable.html#SQL-CREATETABLE-PARMS-UNIQUE)\ \ constraints using the `WITHOUT OVERLAPS` clause, and\ - \ [`FOREIGN KEY`](https://www.postgresql.org/docs/18/sql-createtable.html#SQL-CREATETABLE-PARMS-REFERENCES)\ + \ [`FOREIGN KEY`](https://www.postgresql.org/docs/current/sql-createtable.html#SQL-CREATETABLE-PARMS-REFERENCES)\ \ constraints using the `PERIOD` clause." - name: Typed tables versions: @@ -502,7 +502,7 @@ featurematrix: \ concurrently instead of waiting for each to finish in sequence. This\ \ expands existing readahead and improves overall throughput. AIO\ \ supported in PostgreSQL 18 include sequential scans, bitmap heap scans,\ - \ and vacuum. For more information see [`io_method`](https://www.postgresql.org/docs/18/runtime-config-resource.html#GUC-IO-METHOD)." + \ and vacuum. For more information see [`io_method`](https://www.postgresql.org/docs/current/runtime-config-resource.html#GUC-IO-METHOD)." - name: Automatic plan invalidation versions: '8.3': 'Yes' @@ -517,7 +517,7 @@ featurematrix: - name: Background Writer versions: '8.1': 'Yes' - url: https://www.postgresql.org/docs/current/static/runtime-config-resource.html + url: https://www.postgresql.org/docs/current/runtime-config-resource.html - name: Base backup throttling versions: '9.4': 'Yes' @@ -539,7 +539,7 @@ featurematrix: '13': 'Yes' description: Extended statistics can help the query planner generate better plans for queries that have "OR" clauses as well as "IN/ANY" lookups over lists. For - more information, please see https://www.postgresql.org/docs/13/planner-stats.html#PLANNER-STATS-EXTENDED + more information, please see https://www.postgresql.org/docs/current/planner-stats.html#PLANNER-STATS-EXTENDED - name: Cross datatype hashing support versions: '8.3': 'Yes' @@ -563,14 +563,14 @@ featurematrix: - name: Full Text Search versions: '8.3': 'Yes' - url: https://www.postgresql.org/docs/current/static/textsearch.html + url: https://www.postgresql.org/docs/current/textsearch.html - name: Hash aggregation can use disk versions: '13': 'Yes' description: "The query planner can now consider using hash aggregation if it\ \ expects the aggregate to exceed working memory.\r\n\r\nThis can be controlled\ - \ by two configuration parameters:\r\n\r\n- [enable_hashagg](https://www.postgresql.org/docs/13/runtime-config-query.html#GUC-ENABLE-HASHAGG)\r\ - \n- [hash_mem_multiplier](https://www.postgresql.org/docs/13/runtime-config-resource.html#GUC-HASH-MEM-MULTIPLIER)" + \ by two configuration parameters:\r\n\r\n- [enable_hashagg](https://www.postgresql.org/docs/current/runtime-config-query.html#GUC-ENABLE-HASHAGG)\r\ + \n- [hash_mem_multiplier](https://www.postgresql.org/docs/current/runtime-config-resource.html#GUC-HASH-MEM-MULTIPLIER)" - name: Hashing support for DISTINCT/UNION/INTERSECT/EXCEPT versions: '8.4': 'Yes' @@ -598,15 +598,15 @@ featurematrix: - name: Incremental sort versions: '13': 'Yes' - url: https://www.postgresql.org/docs/13/runtime-config-query.html#GUC-ENABLE-INCREMENTAL-SORT + url: https://www.postgresql.org/docs/current/runtime-config-query.html#GUC-ENABLE-INCREMENTAL-SORT - name: Incremental sort for SELECT DISTINCT versions: '16': 'Yes' - description: Queries with `SELECT DISTINCT` can use [incremental sort](https://www.postgresql.org/docs/16/runtime-config-query.html#GUC-ENABLE-INCREMENTAL-SORT). + description: Queries with `SELECT DISTINCT` can use [incremental sort](https://www.postgresql.org/docs/current/runtime-config-query.html#GUC-ENABLE-INCREMENTAL-SORT). - name: Incremental sort for window functions versions: '14': 'Yes' - description: '[Window functions](https://www.postgresql.org/docs/14/functions-window.html) + description: '[Window functions](https://www.postgresql.org/docs/current/functions-window.html) can use incremental sorting' - name: Inlined WITH Queries (Common Table Expressions) versions: @@ -616,7 +616,7 @@ featurematrix: \ improvements. This behavior can be forced on a query by using the \"NOT MATERIALIZED\"\ \ clause, e.g.\r\n\r\n```\r\nWITH cte AS NOT MATERIALIZED (\r\n SELECT *\ \ FROM a\r\n)\r\nSELECT * FROM cte\r\nJOIN b ON b.id = cte.id;\r\n```\r\n\r\n\ - For more information, please visit [https://www.postgresql.org/docs/12/queries-with.html](https://www.postgresql.org/docs/12/queries-with.html)" + For more information, please visit [https://www.postgresql.org/docs/current/queries-with.html](https://www.postgresql.org/docs/current/queries-with.html)" - name: Inlining of SQL-functions versions: '8.1': 'Yes' @@ -624,15 +624,15 @@ featurematrix: - name: Just-in-Time (JIT) compilation for expression evaluation and tuple deforming versions: '11': 'Yes' - url: https://www.postgresql.org/docs/current/static/jit.html + url: https://www.postgresql.org/docs/current/jit.html - name: Load balancing for libpq / psql versions: '16': 'Yes' - url: https://www.postgresql.org/docs/16/libpq-connect.html#LIBPQ-CONNECT-LOAD-BALANCE-HOSTS + url: https://www.postgresql.org/docs/current/libpq-connect.html#LIBPQ-CONNECT-LOAD-BALANCE-HOSTS - name: LZ4 compression for TOAST tables versions: '14': 'Yes' - description: The compression method for [TOAST](https://www.postgresql.org/docs/14/storage-toast.html) + description: The compression method for [TOAST](https://www.postgresql.org/docs/current/storage-toast.html) tables is now selectable and adds support for lz4 compression. - name: Multi-core scalability for read-only workloads versions: @@ -691,7 +691,7 @@ featurematrix: - name: Query pipelining versions: '14': 'Yes' - url: https://www.postgresql.org/docs/14/libpq-pipeline-mode.html + url: https://www.postgresql.org/docs/current/libpq-pipeline-mode.html - name: Reduced lock levels for ALTER TABLE commands versions: '9.4': 'Yes' @@ -739,7 +739,7 @@ featurematrix: - name: Tablespaces versions: '8.1': 'Yes' - url: https://www.postgresql.org/docs/current/static/sql-createtablespace.html + url: https://www.postgresql.org/docs/current/sql-createtablespace.html - name: Unlogged tables versions: '9.1': 'Yes' @@ -760,7 +760,7 @@ featurematrix: - name: JSONB data type versions: '9.4': 'Yes' - url: https://www.postgresql.org/docs/current/static/datatype-json.html + url: https://www.postgresql.org/docs/current/datatype-json.html - name: JSONB-modifying operators and functions versions: '9.5': 'Yes' @@ -769,11 +769,11 @@ featurematrix: - name: JSONB Subscripting versions: '14': 'Yes' - url: https://www.postgresql.org/docs/14/datatype-json.html#JSONB-SUBSCRIPTING + url: https://www.postgresql.org/docs/current/datatype-json.html#JSONB-SUBSCRIPTING - name: JSON data type versions: '9.2': 'Yes' - url: https://www.postgresql.org/docs/current/static/datatype-json.html + url: https://www.postgresql.org/docs/current/datatype-json.html - name: SQL/JSON constructors versions: '16': 'Yes' @@ -784,7 +784,7 @@ featurematrix: '13': 'Yes' description: "The SQL/JSON path `datetime()` function in JSON path expressions\ \ converts valid date and time formats (e.g. ISO 8601) to their corresponding\ - \ PostgreSQL type.\r\n\r\nFor more information, see the [JSON path documentation](https://www.postgresql.org/docs/13/functions-json.html#FUNCTIONS-SQLJSON-OP-TABLE)" + \ PostgreSQL type.\r\n\r\nFor more information, see the [JSON path documentation](https://www.postgresql.org/docs/current/functions-json.html#FUNCTIONS-SQLJSON-OP-TABLE)" - name: SQL/JSON IS JSON versions: '16': 'Yes' @@ -796,7 +796,7 @@ featurematrix: - name: SQL/JSON JSON_TABLE versions: '17': 'Yes' - url: https://www.postgresql.org/docs/17/functions-json.html#FUNCTIONS-SQLJSON-TABLE + url: https://www.postgresql.org/docs/current/functions-json.html#FUNCTIONS-SQLJSON-TABLE - name: SQL/JSON path expressions versions: '12': 'Yes' @@ -804,7 +804,7 @@ featurematrix: - name: SQL/JSON query functions versions: '17': 'Yes' - url: https://www.postgresql.org/docs/17/functions-json.html#FUNCTIONS-SQLJSON-QUERYING + url: https://www.postgresql.org/docs/current/functions-json.html#FUNCTIONS-SQLJSON-QUERYING Partitioning & Inheritance: - name: Accelerated partition pruning versions: @@ -814,7 +814,7 @@ featurematrix: - name: Declarative table partitioning versions: '10': 'Yes' - url: https://www.postgresql.org/docs/10/static/ddl-partitioning.html#ddl-partitioning-declarative + url: https://www.postgresql.org/docs/current/ddl-partitioning.html#DDL-PARTITIONING-DECLARATIVE - name: Default Partition versions: '11': 'Yes' @@ -848,7 +848,7 @@ featurematrix: - name: Table Partitioning versions: '8.1': 'Yes' - url: https://www.postgresql.org/docs/current/static/ddl-partitioning.html + url: https://www.postgresql.org/docs/current/ddl-partitioning.html - name: UPDATE on a partition key versions: '11': 'Yes' @@ -858,7 +858,7 @@ featurematrix: - name: Materialized Views versions: '9.3': 'Yes' - url: https://www.postgresql.org/docs/current/static/rules-materializedviews.html + url: https://www.postgresql.org/docs/current/rules-materializedviews.html - name: Materialized views with concurrent refresh versions: '9.4': 'Yes' @@ -867,7 +867,7 @@ featurematrix: - name: SECURITY INVOKER views versions: '15': 'Yes' - description: '[Views](https://www.postgresql.org/docs/15/sql-createview.html) + description: '[Views](https://www.postgresql.org/docs/current/sql-createview.html) can be created using the `SECURITY INVOKER` parameter, which executes the view with the privileges of the caller instead of the privileges of the owner.' - name: Temporary VIEWs @@ -890,7 +890,7 @@ featurematrix: versions: '15': 'Yes' description: '[`ALTER SUBSCRIPTION ... SKIP`] allows a subscriber to skip replaying - a transaction. For more information, please read the section on handling [conflicts](https://www.postgresql.org/docs/15/logical-replication-conflicts.html) + a transaction. For more information, please read the section on handling [conflicts](https://www.postgresql.org/docs/current/logical-replication-conflicts.html) with logical replication.' - name: Cascading streaming replication versions: @@ -900,23 +900,23 @@ featurematrix: - name: Configure max WAL retention for replication slots versions: '13': 'Yes' - url: https://www.postgresql.org/docs/13/runtime-config-replication.html#GUC-MAX-SLOT-WAL-KEEP-SIZE + url: https://www.postgresql.org/docs/current/runtime-config-replication.html#GUC-MAX-SLOT-WAL-KEEP-SIZE - name: Failover support for logical replication slots versions: '17': 'Yes' - url: https://www.postgresql.org/docs/17/logical-replication-failover.html + url: https://www.postgresql.org/docs/current/logical-replication-failover.html - name: Logical replication versions: '10': 'Yes' - url: https://www.postgresql.org/docs/current/static/logical-replication.html + url: https://www.postgresql.org/docs/current/logical-replication.html - name: Logical replication avoids replication loops versions: '16': 'Yes' - url: https://www.postgresql.org/docs/16/sql-createsubscription.html#SQL-CREATESUBSCRIPTION-WITH-ORIGIN + url: https://www.postgresql.org/docs/current/sql-createsubscription.html#SQL-CREATESUBSCRIPTION-PARAMS-WITH-ORIGIN - name: Logical replication column lists versions: '15': 'Yes' - description: '[Publications](https://www.postgresql.org/docs/15/logical-replication-publication.html) + description: '[Publications](https://www.postgresql.org/docs/current/logical-replication-publication.html) for logical replication can now specify which columns to publish. Previously, a publication would publish all columns in a table.' - name: Logical replication for partitioned tables @@ -934,7 +934,7 @@ featurematrix: - name: Logical replication initial sync using binary protocol versions: '16': 'Yes' - url: https://www.postgresql.org/docs/16/sql-createsubscription.html#SQL-CREATESUBSCRIPTION-WITH-BINARY + url: https://www.postgresql.org/docs/current/sql-createsubscription.html#SQL-CREATESUBSCRIPTION-PARAMS-WITH-BINARY - name: Logical replication lookups with additional indexes versions: '16': 'Yes' @@ -943,17 +943,17 @@ featurematrix: - name: Logical replication parallel apply of transactions versions: '16': 'Yes' - url: https://www.postgresql.org/docs/16/sql-createsubscription.html#SQL-CREATESUBSCRIPTION-WITH-STREAMING + url: https://www.postgresql.org/docs/current/sql-createsubscription.html#SQL-CREATESUBSCRIPTION-PARAMS-WITH-STREAMING - name: Logical replication publish all tables in schema versions: '15': 'Yes' description: When creating a logical replication publication, a user can specify to publish all the tables within a schema , e.g. [`CREATE PUBLICATION ... FOR - TABLES IN SCHEMA ...`](https://www.postgresql.org/docs/15/sql-createpublication.html). + TABLES IN SCHEMA ...`](https://www.postgresql.org/docs/current/sql-createpublication.html). - name: Logical replication row filtering versions: '15': 'Yes' - url: https://www.postgresql.org/docs/15/logical-replication-row-filter.html + url: https://www.postgresql.org/docs/current/logical-replication-row-filter.html - name: Logical replication slots migrate through pg_upgrade migrate versions: '17': 'Yes' @@ -968,14 +968,14 @@ featurematrix: versions: '15': 'Yes' description: Logical replication subscribers can be automatically disabled using - the [`disable_on_error`](https://www.postgresql.org/docs/15/logical-replication-conflicts.html) + the [`disable_on_error`](https://www.postgresql.org/docs/current/logical-replication-conflicts.html) setting. - name: Logical replication write conflict logging versions: '18': 'Yes' description: "Write conflicts that occur during logical replication are\ \ reported both in logs and in the\ - \ [`pg_stat_subscription_stats`](https://www.postgresql.org/docs/18/monitoring-stats.html#MONITORING-PG-STAT-SUBSCRIPTION-STATS)\ + \ [`pg_stat_subscription_stats`](https://www.postgresql.org/docs/current/monitoring-stats.html#MONITORING-PG-STAT-SUBSCRIPTION-STATS)\ \ view." - name: Quorum commit for synchronous replication versions: @@ -987,7 +987,7 @@ featurematrix: - name: Replication Slots versions: '9.4': 'Yes' - url: https://www.postgresql.org/docs/9.4/static/warm-standby.html#STREAMING-REPLICATION-SLOTS + url: https://www.postgresql.org/docs/current/warm-standby.html#STREAMING-REPLICATION-SLOTS - name: Streaming-only cascading replication versions: '9.3': 'Yes' @@ -1010,7 +1010,7 @@ featurematrix: - name: Archive modules versions: '15': 'Yes' - url: https://www.postgresql.org/docs/15/archive-modules.html + url: https://www.postgresql.org/docs/current/archive-modules.html - name: Checksum on data pages versions: '9.3': 'Yes' @@ -1020,7 +1020,7 @@ featurematrix: versions: '12': 'Yes' description: "Page checksums can be enabled or disabled in an offline PostgreSQL\ - \ cluster via the pg_checksums command:\r\n\r\nhttps://www.postgresql.org/docs/12/app-pgchecksums.html" + \ cluster via the pg_checksums command:\r\n\r\nhttps://www.postgresql.org/docs/current/app-pgchecksums.html" - name: Generic WAL facility versions: '9.6': 'Yes' @@ -1033,7 +1033,7 @@ featurematrix: - name: lz4 and Zstandard (zstd) compression for WAL full page writes versions: '15': 'Yes' - url: https://www.postgresql.org/docs/15/runtime-config-wal.html#GUC-WAL-COMPRESSION + url: https://www.postgresql.org/docs/current/runtime-config-wal.html#GUC-WAL-COMPRESSION - name: min_wal_size / max_wal_size versions: '9.5': 'Yes' @@ -1060,14 +1060,14 @@ featurematrix: - name: pg_basebackup client decompression versions: '15': 'Yes' - description: '[`pg_basebackup`](https://www.postgresql.org/docs/15/app-pgbasebackup.html) + description: '[`pg_basebackup`](https://www.postgresql.org/docs/current/app-pgbasebackup.html) can now decompress backups using `lz4` and `zstd` (Zstandard) compression.' - name: pg_basebackup incremental backup versions: '17': 'Yes' description: Incremental backups can be created using the `--incremental` option for [`pg_basebackup`](https://www.postgresql.org/docs/current/app-pgbasebackup.html). - The new application [pg_combinebackup](https://www.postgresql.org/docs/17/app-pgcombinebackup.html) + The new application [pg_combinebackup](https://www.postgresql.org/docs/current/app-pgcombinebackup.html) allows manipulation of base and incremental file system backups. - name: pg_basebackup server-side compression versions: @@ -1089,15 +1089,15 @@ featurematrix: - name: pg_receivewal (formerly pg_receivexlog) versions: '9.2': 'Yes' - url: https://www.postgresql.org/docs/current/static/app-pgreceivewal.html + url: https://www.postgresql.org/docs/current/app-pgreceivewal.html - name: Point-in-Time Recovery versions: '8.1': 'Yes' - url: https://www.postgresql.org/docs/current/static/continuous-archiving.html + url: https://www.postgresql.org/docs/current/continuous-archiving.html - name: Pre-fetch WAL during recovery versions: '15': 'Yes' - url: https://www.postgresql.org/docs/15/runtime-config-wal.html#GUC-RECOVERY-PREFETCH + url: https://www.postgresql.org/docs/current/runtime-config-wal.html#GUC-RECOVERY-PREFETCH - name: remote_apply mode versions: '9.6': 'Yes' @@ -1111,11 +1111,11 @@ featurematrix: - name: Verify backup integrity (pg_verifybackup) versions: '13': 'Yes' - url: https://www.postgresql.org/docs/13/app-pgverifybackup.html + url: https://www.postgresql.org/docs/current/app-pgverifybackup.html - name: Warm Standby versions: '8.2': 'Yes' - url: https://www.postgresql.org/docs/current/static/warm-standby.html + url: https://www.postgresql.org/docs/current/warm-standby.html Upgrade: - name: pg_upgrade --swap versions: @@ -1123,7 +1123,7 @@ featurematrix: description: "The `--swap` option moves the data directories from the old\ \ cluster to the new cluster and then replaces catalog files with those\ \ generated for the new cluster. See\ - [`pg_upgrade`](https://www.postgresql.org/docs/18/pgupgrade.html)\ + [`pg_upgrade`](https://www.postgresql.org/docs/current/pgupgrade.html)\ \ for more information." - name: Planner statistics preserved on major version upgrade versions: @@ -1131,7 +1131,7 @@ featurematrix: description: "PostgreSQL now keeps planner statistics\ \ through a major version upgrade, which helps an upgraded cluster\ \ reach expected performance more quickly after the upgrade. See the\ - \ statistics section in [`pg_upgrade`](https://www.postgresql.org/docs/18/pgupgrade.html)\ + \ statistics section in [`pg_upgrade`](https://www.postgresql.org/docs/current/pgupgrade.html)\ \ for more information." Data Import & Export: - name: COPY from/to STDIN/STDOUT @@ -1153,16 +1153,16 @@ featurematrix: - name: COPY with arbitrary SELECT versions: '8.2': 'Yes' - url: https://www.postgresql.org/docs/current/static/sql-copy.html + url: https://www.postgresql.org/docs/current/sql-copy.html - name: CSV support for COPY versions: '8.1': 'Yes' - url: https://www.postgresql.org/docs/current/static/sql-copy.html + url: https://www.postgresql.org/docs/current/sql-copy.html Configuration Management: - name: ALTER SYSTEM versions: '9.4': 'Yes' - url: https://www.postgresql.org/docs/9.4/static/sql-altersystem.html + url: https://www.postgresql.org/docs/current/sql-altersystem.html - name: Fractional input for "integer" values versions: '12': 'Yes' @@ -1171,8 +1171,8 @@ featurematrix: - name: Include directives for pg_hba.conf and pg_ident.conf versions: '16': 'Yes' - description: 'Both [`pg_hba.conf`](https://www.postgresql.org/docs/16/auth-pg-hba-conf.html) - and [`pg_ident.conf`](https://www.postgresql.org/docs/16/auth-username-maps.html) + description: 'Both [`pg_hba.conf`](https://www.postgresql.org/docs/current/auth-pg-hba-conf.html) + and [`pg_ident.conf`](https://www.postgresql.org/docs/current/auth-username-maps.html) support include directives that let you specify additional files for loading rules. These include: `include`, `include_if_exists`, and `include_dir`.' - name: Per user/database server configuration settings @@ -1187,8 +1187,8 @@ featurematrix: - name: Regular expression matching in pg_hba.conf and pg_ident.conf versions: '16': 'Yes' - description: Both [`pg_hba.conf`](https://www.postgresql.org/docs/16/auth-pg-hba-conf.html) - and [`pg_ident.conf`](https://www.postgresql.org/docs/16/auth-username-maps.html) + description: Both [`pg_hba.conf`](https://www.postgresql.org/docs/current/auth-pg-hba-conf.html) + and [`pg_ident.conf`](https://www.postgresql.org/docs/current/auth-username-maps.html) allow for regular expression matching on usernames. `pg_hba.conf` also supports regular expression matching on database names. Security: @@ -1199,11 +1199,11 @@ featurematrix: - name: Client can require SCRAM channel binding versions: '13': 'Yes' - url: https://www.postgresql.org/docs/13/libpq-connect.html#LIBPQ-CONNECT-CHANNEL-BINDING + url: https://www.postgresql.org/docs/current/libpq-connect.html#LIBPQ-CONNECT-CHANNEL-BINDING - name: Client-specified requirements for authentication versions: '16': 'Yes' - url: https://www.postgresql.org/docs/devel/libpq-connect.html#LIBPQ-CONNECT-REQUIRE-AUTH + url: https://www.postgresql.org/docs/current/libpq-connect.html#LIBPQ-CONNECT-REQUIRE-AUTH - name: Column level permissions versions: '8.4': 'Yes' @@ -1216,11 +1216,11 @@ featurematrix: - name: Direct TLS negotiation ("sslnegotiation") versions: '17': 'Yes' - url: https://www.postgresql.org/docs/17/libpq-connect.html#LIBPQ-CONNECT-SSLNEGOTIATION + url: https://www.postgresql.org/docs/current/libpq-connect.html#LIBPQ-CONNECT-SSLNEGOTIATION - name: FIPS mode validation versions: '18': 'Yes' - url: https://www.postgresql.org/docs/18/pgcrypto.html#PGCRYPTO-OPENSSL-SUPPORT-FUNCS + url: https://www.postgresql.org/docs/current/pgcrypto.html#PGCRYPTO-OPENSSL-SUPPORT-FUNCS - name: GRANT/REVOKE ON ALL TABLES/SEQUENCES/FUNCTIONS versions: '9.0': 'Yes' @@ -1229,7 +1229,7 @@ featurematrix: versions: '12': 'Yes' description: "Support for client and server-side connection encryption when using\ - \ GSSAPI for authentication.\r\n\r\nhttps://www.postgresql.org/docs/12/gssapi-auth.html" + \ GSSAPI for authentication.\r\n\r\nhttps://www.postgresql.org/docs/current/gssapi-auth.html" - name: GSSAPI support versions: '8.3': 'Yes' @@ -1237,7 +1237,7 @@ featurematrix: - name: Kerberos credential delegation versions: '16': 'Yes' - url: https://www.postgresql.org/docs/16/runtime-config-connection.html#GUC-GSS-ACCEPT-DELEGATION + url: https://www.postgresql.org/docs/current/runtime-config-connection.html#GUC-GSS-ACCEPT-DELEGATION - name: krb5 authentication (without gssapi) versions: '8.1': 'Yes' @@ -1251,17 +1251,17 @@ featurematrix: versions: '12': 'Yes' description: "LDAP servers with DNS SRV can be discovered if PostgreSQL is built\ - \ with OpenLDAP\r\n\r\nhttps://www.postgresql.org/docs/12/auth-ldap.html" + \ with OpenLDAP\r\n\r\nhttps://www.postgresql.org/docs/current/auth-ldap.html" - name: Multifactor authentication via valid client SSL/TLS certificate versions: '12': 'Yes' description: "If an authentication entry in the pg_hba.conf specifies the `clientcert=verify-full`,\ \ then the client must present a valid SSL certificate that matches the login\ - \ name, or the client name based on a map.\r\n\r\n[https://www.postgresql.org/docs/12/ssl-tcp.html#SSL-CLIENT-CERTIFICATES](https://www.postgresql.org/docs/12/ssl-tcp.html#SSL-CLIENT-CERTIFICATES)" + \ name, or the client name based on a map.\r\n\r\n[https://www.postgresql.org/docs/current/ssl-tcp.html#SSL-CLIENT-CERTIFICATES](https://www.postgresql.org/docs/current/ssl-tcp.html#SSL-CLIENT-CERTIFICATES)" - name: Native LDAP authentication versions: '8.2': 'Yes' - url: https://www.postgresql.org/docs/current/static/auth-methods.html#AUTH-LDAP + url: https://www.postgresql.org/docs/current/auth-methods.html#AUTH-LDAP - name: Native RADIUS authentication versions: '9.0': 'Yes' @@ -1269,7 +1269,7 @@ featurematrix: - name: OAuth Authentication / Authorization versions: '18': 'Yes' - url: https://www.postgresql.org/docs/18/auth-oauth.html + url: https://www.postgresql.org/docs/current/auth-oauth.html - name: Per user/database connection limits versions: '8.1': 'Yes' @@ -1282,7 +1282,7 @@ featurematrix: - name: Privileges for setting configuration parameters versions: '15': 'Yes' - description: Unprivileged users can be [granted permission](https://www.postgresql.org/docs/15/sql-grant.html) + description: Unprivileged users can be [granted permission](https://www.postgresql.org/docs/current/sql-grant.html) to change server variables via [`SET`](https://www.postgresql.org/docs/current/sql-set.html) and [`ALTER SYSTEM`](https://www.postgresql.org/docs/current/sql-altersystem.html) - name: ROLES @@ -1293,7 +1293,7 @@ featurematrix: - name: Row-Level Security versions: '9.5': 'Yes' - url: https://www.postgresql.org/docs/current/static/sql-createpolicy.html + url: https://www.postgresql.org/docs/current/sql-createpolicy.html - name: SCRAM-SHA-256 Authentication versions: '10': 'Yes' @@ -1320,7 +1320,7 @@ featurematrix: - name: SHA-2 encryption for password hashing versions: '18': 'Yes' - url: https://www.postgresql.org/docs/18/pgcrypto.html#PGCRYPTO-CRYPT-ALGORITHMS + url: https://www.postgresql.org/docs/current/pgcrypto.html#PGCRYPTO-CRYPT-ALGORITHMS - name: SSL certificate validation in libpq versions: '8.4': 'Yes' @@ -1342,16 +1342,16 @@ featurematrix: - name: TLS v1.3 cipher suite allowlisting versions: '18': 'Yes' - url: https://www.postgresql.org/docs/18/runtime-config-connection.html#GUC-SSL-TLS13-CIPHERS + url: https://www.postgresql.org/docs/current/runtime-config-connection.html#GUC-SSL-TLS13-CIPHERS Transactions and Visibility: - name: Cursors versions: '8.1': 'Yes' - url: https://www.postgresql.org/docs/current/static/sql-declare.html + url: https://www.postgresql.org/docs/current/sql-declare.html - name: Savepoints versions: '8.1': 'Yes' - url: https://www.postgresql.org/docs/current/static/sql-savepoint.html + url: https://www.postgresql.org/docs/current/sql-savepoint.html - name: Serializable Snapshot Isolation versions: '9.1': 'Yes' @@ -1361,11 +1361,11 @@ featurematrix: - name: Two Phase commit versions: '8.1': 'Yes' - url: https://www.postgresql.org/docs/current/static/sql-prepare-transaction.html + url: https://www.postgresql.org/docs/current/sql-prepare-transaction.html - name: Updatable cursors versions: '8.3': 'Yes' - url: https://www.postgresql.org/docs/current/static/sql-declare.html + url: https://www.postgresql.org/docs/current/sql-declare.html VACUUM and Maintenance: - name: Inserted data can trigger autovacuum versions: @@ -1376,7 +1376,7 @@ featurematrix: - name: Integrated autovacuum daemon versions: '8.1': 'Yes' - url: https://www.postgresql.org/docs/current/static/routine-vacuuming.html#AUTOVACUUM + url: https://www.postgresql.org/docs/current/routine-vacuuming.html#AUTOVACUUM - name: Page freezing optimizations versions: '16': 'Yes' @@ -1405,8 +1405,8 @@ featurematrix: '14': 'Yes' description: PostgreSQL will vacuum aggressively when it detects the possibility of transaction ID wraparound. This is controlled with the [`vacuum_failsafe_age - `](https://www.postgresql.org/docs/14/runtime-config-client.html#GUC-VACUUM-FAILSAFE-AGE) - and [`vacuum_multixact_failsafe_age `](https://www.postgresql.org/docs/14/runtime-config-client.html#GUC-MULTIXACT-FAILSAFE-AGE) + `](https://www.postgresql.org/docs/current/runtime-config-vacuum.html#GUC-VACUUM-FAILSAFE-AGE) + and [`vacuum_multixact_failsafe_age `](https://www.postgresql.org/docs/current/runtime-config-vacuum.html#GUC-VACUUM-MULTIXACT-FAILSAFE-AGE) configuration parameters. - name: Visibility Map for Vacuuming versions: @@ -1417,9 +1417,9 @@ featurematrix: - name: Certificate authentication with postgres_fdw versions: '13': 'Yes' - description: "The [postgres_fdw](https://www.postgresql.org/docs/13/postgres-fdw.html)\ + description: "The [postgres_fdw](https://www.postgresql.org/docs/current/postgres-fdw.html)\ \ can now use the built-in [certificate authentication](https://www.postgresql.org/docs/current/auth-cert.html)\ - \ 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)" + \ mechanism.\r\n\r\nFor more information, please visit the [postgres_fdw documentation](https://www.postgresql.org/docs/current/postgres-fdw.html#POSTGRES-FDW-OPTIONS)" - name: CREATE FOREIGN TABLE ... LIKE versions: '18': 'Yes' @@ -1430,7 +1430,7 @@ featurematrix: versions: '14': 'Yes' description: Queries that reference multiple foreign tables can perform table - scans in parallel. This is implemented in the [`postgres_fdw`](https://www.postgresql.org/docs/14/postgres-fdw.html) + scans in parallel. This is implemented in the [`postgres_fdw`](https://www.postgresql.org/docs/current/postgres-fdw.html) - name: Foreign data wrappers versions: '9.1': 'Yes' @@ -1443,11 +1443,11 @@ featurematrix: - name: IMPORT FOREIGN SCHEMA versions: '9.5': 'Yes' - url: https://www.postgresql.org/docs/9.5/static/sql-importforeignschema.html + url: https://www.postgresql.org/docs/current/sql-importforeignschema.html - name: Import foreign table partitions versions: '14': 'Yes' - description: '[`IMPORT FOREIGN SCHEMA`](https://www.postgresql.org/docs/14/sql-importforeignschema.html) + description: '[`IMPORT FOREIGN SCHEMA`](https://www.postgresql.org/docs/current/sql-importforeignschema.html) can import the schema of partitioned tables.' - name: Parallel query execution on remote databases versions: @@ -1458,7 +1458,7 @@ featurematrix: - name: postgres_fdw parallel commit versions: '15': 'Yes' - url: https://www.postgresql.org/docs/15/postgres-fdw.html#id-1.11.7.47.11.7 + url: https://www.postgresql.org/docs/current/postgres-fdw.html#POSTGRES-FDW-OPTIONS-TRANSACTION-MANAGEMENT - name: postgres_fdw pushdown versions: '9.6': 'Yes' @@ -1468,11 +1468,11 @@ featurematrix: - name: postgres_fdw SCRAM authentication passthrough versions: '18': 'Yes' - url: https://www.postgresql.org/docs/18/postgres-fdw.html#POSTGRES-FDW-OPTION-USE-SCRAM-PASSTHROUGH + url: https://www.postgresql.org/docs/current/postgres-fdw.html#POSTGRES-FDW-OPTION-USE-SCRAM-PASSTHROUGH - name: PostgreSQL Foreign Data Wrapper versions: '9.3': 'Yes' - url: https://www.postgresql.org/docs/current/static/postgres-fdw.html + url: https://www.postgresql.org/docs/current/postgres-fdw.html - name: Writable Foreign Data Wrappers versions: '9.3': 'Yes' @@ -1487,7 +1487,7 @@ featurematrix: - name: ALTER TABLE / ENABLE REPLICA TRIGGER/RULE versions: '8.3': 'Yes' - url: https://www.postgresql.org/docs/current/static/sql-altertable.html + url: https://www.postgresql.org/docs/current/sql-altertable.html - name: BEGIN ATOMIC function bodies versions: '14': 'Yes' @@ -1499,7 +1499,7 @@ featurematrix: - name: CALL syntax for executing procedures versions: '11': 'Yes' - url: https://www.postgresql.org/docs/11/static/sql-call.html + url: https://www.postgresql.org/docs/current/sql-call.html - name: Column level triggers versions: '9.0': 'Yes' @@ -1508,7 +1508,7 @@ featurematrix: - name: CREATE PROCEDURE syntax for SQL stored procedures versions: '11': 'Yes' - url: https://www.postgresql.org/docs/11/static/sql-createprocedure.html + url: https://www.postgresql.org/docs/current/sql-createprocedure.html - name: Event triggers versions: '9.3': 'Yes' @@ -1575,7 +1575,7 @@ featurematrix: - name: CREATE TRANSFORM versions: '9.5': 'Yes' - url: https://www.postgresql.org/docs/9.5/static/sql-createtransform.html + url: https://www.postgresql.org/docs/current/sql-createtransform.html - name: DO statement for PL/Perl versions: '9.0': 'Yes' @@ -1669,7 +1669,7 @@ featurematrix: - name: Extension Installation versions: '9.1': 'Yes' - url: https://www.postgresql.org/docs/current/static/external-extensions.html + url: https://www.postgresql.org/docs/current/external-extensions.html - name: Trusted Extensions versions: '13': 'Yes' @@ -1684,11 +1684,11 @@ featurematrix: '17': 'Yes' description: PostgreSQL has a built-in, platform independent immutable collation provider that supports C and C.UTF-8 collations. For more information, see [standard - collations](https://www.postgresql.org/docs/17/collation.html#COLLATION-MANAGING-STANDARD). + collations](https://www.postgresql.org/docs/current/collation.html#COLLATION-MANAGING-STANDARD). - name: casefold versions: '18': 'Yes' - url: https://www.postgresql.org/docs/18/functions-string.html#id-1.5.8.10.7.2.2.8.1.1.1 + url: https://www.postgresql.org/docs/current/functions-string.html#id-1.5.8.10.7.2.2.8.1.1.1 - name: Column-level collation support versions: '9.1': 'Yes' @@ -1712,11 +1712,11 @@ featurematrix: - name: ICU collations versions: '10': 'Yes' - url: https://www.postgresql.org/docs/current/static/collation.html#id-1.6.10.4.5.7.5 + url: https://www.postgresql.org/docs/current/collation.html#id-1.6.10.4.5.7.5 - name: LIKE comparisons for nondeterministic collations versions: '18': 'Yes' - url: https://www.postgresql.org/docs/18/collation.html#COLLATION-NONDETERMINISTIC + url: https://www.postgresql.org/docs/current/collation.html#COLLATION-NONDETERMINISTIC - name: Multibyte encoding support, incl. UTF8 versions: '8.1': 'Yes' @@ -1728,11 +1728,11 @@ featurematrix: - name: Nondeterministic collations versions: '12': 'Yes' - url: https://www.postgresql.org/docs/12/collation.html#COLLATION-NONDETERMINISTIC + url: https://www.postgresql.org/docs/current/collation.html#COLLATION-NONDETERMINISTIC - name: pg_unicode_fast collation versions: '18': 'Yes' - url: https://www.postgresql.org/docs/18/collation.html#COLLATION-MANAGING-STANDARD + url: https://www.postgresql.org/docs/current/collation.html#COLLATION-MANAGING-STANDARD - name: Unicode string literals and identifiers versions: '8.4': 'Yes' @@ -1750,19 +1750,19 @@ featurematrix: - name: pg_combinebackup versions: '17': 'Yes' - url: https://www.postgresql.org/docs/17/app-pgcombinebackup.html + url: https://www.postgresql.org/docs/current/app-pgcombinebackup.html - name: pg_createsubscriber versions: '17': 'Yes' - url: https://www.postgresql.org/docs/17/app-pgcreatesubscriber.html + url: https://www.postgresql.org/docs/current/app-pgcreatesubscriber.html - name: pg_prewarm versions: '9.4': 'Yes' - url: https://www.postgresql.org/docs/9.4/static/pgprewarm.html + url: https://www.postgresql.org/docs/current/pgprewarm.html - name: pg_rewind versions: '9.5': 'Yes' - url: https://www.postgresql.org/docs/current/static/app-pgrewind.html + url: https://www.postgresql.org/docs/current/app-pgrewind.html - name: pg_standby versions: '8.3': 'Yes' @@ -1779,7 +1779,7 @@ featurematrix: - name: pg_walsummary versions: '17': 'Yes' - url: https://www.postgresql.org/docs/17/app-pgwalsummary.html + url: https://www.postgresql.org/docs/current/app-pgwalsummary.html - name: pg_xlogdump versions: '9.3': 'Yes' @@ -1789,30 +1789,30 @@ featurematrix: - name: psql \bind versions: '16': 'Yes' - url: https://www.postgresql.org/docs/16/app-psql.html#APP-PSQL-META-COMMAND-BIND + url: https://www.postgresql.org/docs/current/app-psql.html#APP-PSQL-META-COMMAND-BIND - name: psql \dconfig versions: '15': 'Yes' - description: The [`psql`](https://www.postgresql.org/docs/15/app-psql.html) client + description: The [`psql`](https://www.postgresql.org/docs/current/app-psql.html) client includes a `\dconfig` command for inspecting and finding the values of configuration parameters. - name: psql pipeline queries versions: '18': 'Yes' description: "psql can issue pipeline queries using the commands\ - \ [`\\startpipeline`](https://www.postgresql.org/docs/18/app-psql.html#APP-PSQL-META-COMMAND-PIPELINE),\ - \ [`\\syncpipeline`](https://www.postgresql.org/docs/18/app-psql.html#APP-PSQL-META-COMMAND-PIPELINE),\ - \ [`\\sendpipeline`](https://www.postgresql.org/docs/18/app-psql.html#APP-PSQL-META-COMMAND-PIPELINE),\ - \ [`\\endpipeline`](https://www.postgresql.org/docs/18/app-psql.html#APP-PSQL-META-COMMAND-PIPELINE),\ - \ [`\\flushrequest`](https://www.postgresql.org/docs/18/app-psql.html#APP-PSQL-META-COMMAND-PIPELINE),\ - \ [`\\flush`](https://www.postgresql.org/docs/18/app-psql.html#APP-PSQL-META-COMMAND-PIPELINE), and\ - \ [`\\getresults`](https://www.postgresql.org/docs/18/app-psql.html#APP-PSQL-META-COMMAND-PIPELINE)." + \ [`\\startpipeline`](https://www.postgresql.org/docs/current/app-psql.html#APP-PSQL-META-COMMAND-PIPELINE),\ + \ [`\\syncpipeline`](https://www.postgresql.org/docs/current/app-psql.html#APP-PSQL-META-COMMAND-PIPELINE),\ + \ [`\\sendpipeline`](https://www.postgresql.org/docs/current/app-psql.html#APP-PSQL-META-COMMAND-PIPELINE),\ + \ [`\\endpipeline`](https://www.postgresql.org/docs/current/app-psql.html#APP-PSQL-META-COMMAND-PIPELINE),\ + \ [`\\flushrequest`](https://www.postgresql.org/docs/current/app-psql.html#APP-PSQL-META-COMMAND-PIPELINE),\ + \ [`\\flush`](https://www.postgresql.org/docs/current/app-psql.html#APP-PSQL-META-COMMAND-PIPELINE), and\ + \ [`\\getresults`](https://www.postgresql.org/docs/current/app-psql.html#APP-PSQL-META-COMMAND-PIPELINE)." - name: psql named prepared statements versions: '18': 'Yes' - description: "psql can parse ([`\\parse`](https://www.postgresql.org/docs/18/app-psql.html#APP-PSQL-META-COMMAND-PARSE)),\ - \ bind ([`\\bind_named`](https://www.postgresql.org/docs/18/app-psql.html#APP-PSQL-META-COMMAND-BIND-NAMED)),\ - \ and close ([`\\close_prepared`](https://www.postgresql.org/docs/18/app-psql.html#APP-PSQL-META-COMMAND-CLOSE-PREPARED))\ + description: "psql can parse ([`\\parse`](https://www.postgresql.org/docs/current/app-psql.html#APP-PSQL-META-COMMAND-PARSE)),\ + \ bind ([`\\bind_named`](https://www.postgresql.org/docs/current/app-psql.html#APP-PSQL-META-COMMAND-BIND-NAMED)),\ + \ and close ([`\\close_prepared`](https://www.postgresql.org/docs/current/app-psql.html#APP-PSQL-META-COMMAND-CLOSE-PREPARED))\ \ named prepared statements." - name: Version aware psql versions: @@ -1824,7 +1824,7 @@ featurematrix: versions: '8.2': 'Yes' '17': 'No' - url: https://www.postgresql.org/docs/current/static/adminpack.html + url: https://www.postgresql.org/docs/16/adminpack.html - name: auth_delay versions: '9.1': 'Yes' @@ -1836,11 +1836,11 @@ featurematrix: - name: btree_gin versions: '8.4': 'Yes' - url: https://www.postgresql.org/docs/current/static/btree-gin.html + url: https://www.postgresql.org/docs/current/btree-gin.html - name: btree_gist versions: '8.1': 'Yes' - url: https://www.postgresql.org/docs/8.3/static/btree-gist.html + url: https://www.postgresql.org/docs/current/btree-gist.html - name: citext versions: '8.4': 'Yes' @@ -1848,7 +1848,7 @@ featurematrix: - name: dblink versions: '8.1': 'Yes' - url: https://www.postgresql.org/docs/current/static/dblink.html + url: https://www.postgresql.org/docs/current/dblink.html - name: dblink asynchronous notification support versions: '9.0': 'Yes' @@ -1868,7 +1868,7 @@ featurematrix: - name: intarray versions: '8.1': 'Yes' - url: https://www.postgresql.org/docs/current/static/intarray.html + url: https://www.postgresql.org/docs/current/intarray.html - name: isn (ISBN) versions: '8.2': 'Yes' @@ -1881,7 +1881,7 @@ featurematrix: - name: ltree versions: '8.1': 'Yes' - url: https://www.postgresql.org/docs/current/static/ltree.html + url: https://www.postgresql.org/docs/current/ltree.html - name: pageinspect versions: '8.3': 'Yes' @@ -1889,11 +1889,11 @@ featurematrix: - name: passwordcheck versions: '9.0': 'Yes' - url: https://www.postgresql.org/docs/current/static/passwordcheck.html + url: https://www.postgresql.org/docs/current/passwordcheck.html - name: pg_buffercache versions: '8.1': 'Yes' - url: https://www.postgresql.org/docs/current/static/pgbuffercache.html + url: https://www.postgresql.org/docs/current/pgbuffercache.html - name: pg_freespacemap versions: '8.2': 'Yes' @@ -1901,15 +1901,15 @@ featurematrix: - name: pg_logicalinspect versions: '18': 'Yes' - url: https://www.postgresql.org/docs/18/pglogicalinspect.html + url: https://www.postgresql.org/docs/current/pglogicalinspect.html - name: pg_overexplain versions: '18': 'Yes' - url: https://www.postgresql.org/docs/18/pgoverexplain.html + url: https://www.postgresql.org/docs/current/pgoverexplain.html - name: pg_stat_statements versions: '8.4': 'Yes' - url: https://www.postgresql.org/docs/current/static/pgstatstatements.html + url: https://www.postgresql.org/docs/current/pgstatstatements.html - name: pg_stat_statements improvements versions: '9.2': 'Yes' @@ -1918,11 +1918,11 @@ featurematrix: - name: pgstattuple versions: '8.1': 'Yes' - url: https://www.postgresql.org/docs/current/static/pgstattuple.html + url: https://www.postgresql.org/docs/current/pgstattuple.html - name: pg_trgm versions: '8.1': 'Yes' - url: https://www.postgresql.org/docs/current/static/pgtrgm.html + url: https://www.postgresql.org/docs/current/pgtrgm.html - name: pg_trgm regular expressions indexing versions: '9.3': 'Yes' @@ -1930,13 +1930,13 @@ featurematrix: - name: pg_walinspect versions: '15': 'Yes' - description: '[`pg_walinspect`](https://www.postgresql.org/docs/15/pgwalinspect.html) + description: '[`pg_walinspect`](https://www.postgresql.org/docs/current/pgwalinspect.html) allows for the contents of write-ahead logs (WAL) files to be inspected from SQL.' - name: seg versions: '8.1': 'Yes' - url: https://www.postgresql.org/docs/current/static/seg.html + url: https://www.postgresql.org/docs/current/seg.html - name: sepgsql versions: '9.1': 'Yes' @@ -1948,11 +1948,11 @@ featurematrix: - name: tablefunc versions: '8.1': 'Yes' - url: https://www.postgresql.org/docs/current/static/tablefunc.html + url: https://www.postgresql.org/docs/current/tablefunc.html - name: tcn versions: '9.2': 'Yes' - url: https://www.postgresql.org/docs/current/static/tcn.html + url: https://www.postgresql.org/docs/current/tcn.html - name: tsearch2 compatibility wrapper versions: '8.3': 'Yes' @@ -1962,7 +1962,7 @@ featurematrix: - name: unaccent versions: '9.0': 'Yes' - url: https://www.postgresql.org/docs/current/static/unaccent.html + url: https://www.postgresql.org/docs/current/unaccent.html - name: uuid-ossp versions: '8.3': 'Yes' @@ -1976,7 +1976,7 @@ featurematrix: - name: Full SSL support versions: '8.1': 'Yes' - url: https://www.postgresql.org/docs/current/static/ssl-tcp.html + url: https://www.postgresql.org/docs/current/ssl-tcp.html - name: IPv6 Support versions: '8.1': 'Yes' @@ -1989,7 +1989,7 @@ featurematrix: - name: V3 client protocol versions: '8.1': 'Yes' - url: https://www.postgresql.org/docs/current/static/protocol.html + url: https://www.postgresql.org/docs/current/protocol.html Platforms: - name: Microsoft Visual C++ Support versions: -- 2.39.3 (Apple Git-146) [application/octet-stream] v3-0004-featurematrix-Use-Markdown-for-description-links.patch (3.3K, 5-v3-0004-featurematrix-Use-Markdown-for-description-links.patch) download | inline diff: From 0018063ac3de22b4682d491241dee6d9a665109b Mon Sep 17 00:00:00 2001 From: Daniel Gustafsson <[email protected]> Date: Tue, 21 Oct 2025 13:59:38 +0200 Subject: [PATCH v3 4/4] featurematrix: Use Markdown for description links A few links in the description texts were not using Markdown syntax for links rendering them as text rather than actual html links. Fix by wrapping all links in []() syntax. Author: Daniel Gustafsson <[email protected]> Discussion: https://postgr.es/m/[email protected] --- data/featurematrix.yaml | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/data/featurematrix.yaml b/data/featurematrix.yaml index a5bbd8be..7bd4aca2 100644 --- a/data/featurematrix.yaml +++ b/data/featurematrix.yaml @@ -531,15 +531,17 @@ featurematrix: - name: CREATE STATISTICS - multicolumn versions: '10': 'Yes' - description: "CREATE STATISTICS provides the ability to collect statistics over\ + description: "[CREATE STATISTICS](https://www.postgresql.org/docs/current/sql-createstatistics.html)\ + \ provides the ability to collect statistics over\ \ multiple columns, which can be used by the optimizer to generate better query\ - \ plans.\r\n\r\nhttps://www.postgresql.org/docs/current/sql-createstatistics.html" + \ plans." - name: CREATE STATISTICS - "OR" and "IN/ANY" statistics versions: '13': 'Yes' description: Extended statistics can help the query planner generate better plans for queries that have "OR" clauses as well as "IN/ANY" lookups over lists. For - more information, please see https://www.postgresql.org/docs/current/planner-stats.html#PLANNER-STATS-EXTENDED + more information, please see + [https://www.postgresql.org/docs/current/planner-stats.html#PLANNER-STATS-EXTENDED](https://www.postgresql.org/docs/current/planner-stats.html#PLANNER-STATS-EXTENDED) - name: Cross datatype hashing support versions: '8.3': 'Yes' @@ -1020,7 +1022,7 @@ featurematrix: versions: '12': 'Yes' description: "Page checksums can be enabled or disabled in an offline PostgreSQL\ - \ cluster via the pg_checksums command:\r\n\r\nhttps://www.postgresql.org/docs/current/app-pgchecksums.html" + \ cluster via the [pg_checksums command](https://www.postgresql.org/docs/current/app-pgchecksums.html)" - name: Generic WAL facility versions: '9.6': 'Yes' @@ -1229,7 +1231,7 @@ featurematrix: versions: '12': 'Yes' description: "Support for client and server-side connection encryption when using\ - \ GSSAPI for authentication.\r\n\r\nhttps://www.postgresql.org/docs/current/gssapi-auth.html" + \ [GSSAPI for authentication](https://www.postgresql.org/docs/current/gssapi-auth.html)" - name: GSSAPI support versions: '8.3': 'Yes' @@ -1251,7 +1253,7 @@ featurematrix: versions: '12': 'Yes' description: "LDAP servers with DNS SRV can be discovered if PostgreSQL is built\ - \ with OpenLDAP\r\n\r\nhttps://www.postgresql.org/docs/current/auth-ldap.html" + \ with [OpenLDAP](https://www.postgresql.org/docs/current/auth-ldap.html)" - name: Multifactor authentication via valid client SSL/TLS certificate versions: '12': 'Yes' -- 2.39.3 (Apple Git-146) ^ permalink raw reply [nested|flat] 10+ messages in thread
* Re: Typos in the featurematrix @ 2025-10-21 23:56 David Rowley <[email protected]> parent: Daniel Gustafsson <[email protected]> 1 sibling, 2 replies; 10+ messages in thread From: David Rowley @ 2025-10-21 23:56 UTC (permalink / raw) To: Daniel Gustafsson <[email protected]>; +Cc: [email protected]; Magnus Hagander <[email protected]> On Wed, 22 Oct 2025 at 01:09, Daniel Gustafsson <[email protected]> wrote: > The featurematrix was a rabbithole that went deep, looking closer I realized > that links were using a variety of target versions: /current/, /devel/, or the > version which was current at the time of adding. This means that for old > features we we still linking to the 9.x version of the docs, which clearly > isn't helpful to our users. We also had quite a few /static/ links which 301 > redirects since we don't have that level anymore. > > On top of that, a few links in the descriptions were not markdown encoded and > thus rendered as plain text. > > The attached v3 fixes these in 0003 and 0004. * The new link seems dead. Looks like it should be https://www.postgresql.org/docs/current/brin.html#BRIN-INTRO - url: https://www.postgresql.org/docs/current/static/brin-intro.html + url: https://www.postgresql.org/docs/current/brin-intro.html * Looks like this will cause issues as "current" moves forward in versions and we add new sections before this: - url: https://www.postgresql.org/docs/16/functions-aggregate.html#id-1.5.8.27.5.2.4.1.1.1.1 + url: https://www.postgresql.org/docs/current/functions-aggregate.html#id-1.5.8.27.6.2.4.1.1.1.1 If I adjust /current/ to /17/ it works, but not before then. Is there anything more future proof we can do there? Likewise with: - url: https://www.postgresql.org/docs/16/functions-info.html#id-1.5.8.32.3.4.2.2.24.1.1.1 + url: https://www.postgresql.org/docs/current/functions-info.html#id-1.5.8.33.3.4.2.2.26.1.1.1 Also: - url: https://www.postgresql.org/docs/18/functions-string.html#id-1.5.8.10.7.2.2.8.1.1.1 + url: https://www.postgresql.org/docs/current/functions-string.html#id-1.5.8.10.7.2.2.8.1.1.1 Going back to /14/ that links to left() instead of casefold(). * The following no longer links to where it intended to: - url: https://www.postgresql.org/docs/current/static/collation.html#id-1.6.10.4.5.7.5 + url: https://www.postgresql.org/docs/current/collation.html#id-1.6.10.4.5.7.5 i.e basically someone made the same mistake as the above ones were about to make. David ^ permalink raw reply [nested|flat] 10+ messages in thread
* Re: Typos in the featurematrix @ 2025-10-22 00:36 David Rowley <[email protected]> parent: David Rowley <[email protected]> 1 sibling, 1 reply; 10+ messages in thread From: David Rowley @ 2025-10-22 00:36 UTC (permalink / raw) To: Daniel Gustafsson <[email protected]>; +Cc: [email protected]; Magnus Hagander <[email protected]> On Wed, 22 Oct 2025 at 12:56, David Rowley <[email protected]> wrote: > Also: > > - url: https://www.postgresql.org/docs/18/functions-string.html#id-1.5.8.10.7.2.2.8.1.1.1 > + url: https://www.postgresql.org/docs/current/functions-string.html#id-1.5.8.10.7.2.2.8.1.1.1 > > Going back to /14/ that links to left() instead of casefold(). Looking at: grep -F "<indexterm" doc/src/sgml/func/func-string.sgml I see there are only 3 functions where we've added a section, so [1] works, but not [2]. Maybe we should just add the remaining indexterms and backpatch to v18. Seems like there's none in: grep -F "<indexterm" doc/src/sgml/func/func-aggregate.sgml so all those would need added. I can't think of a reason not to do this. Maybe I've overlooked something? David [1] https://www.postgresql.org/docs/current/functions-string.html#FUNCTION-LOWER [2] https://www.postgresql.org/docs/current/functions-string.html#FUNCTION-UPPER ^ permalink raw reply [nested|flat] 10+ messages in thread
* Re: Typos in the featurematrix @ 2025-10-23 01:04 Jonathan S. Katz <[email protected]> parent: Daniel Gustafsson <[email protected]> 1 sibling, 1 reply; 10+ messages in thread From: Jonathan S. Katz @ 2025-10-23 01:04 UTC (permalink / raw) To: Daniel Gustafsson <[email protected]>; David Rowley <[email protected]>; +Cc: [email protected]; Magnus Hagander <[email protected]> On 10/21/25 8:09 AM, Daniel Gustafsson wrote: >> On 15 Oct 2025, at 15:22, Daniel Gustafsson <[email protected]> wrote: >> >>> On 15 Oct 2025, at 13:00, David Rowley <[email protected]> wrote: >>> >>> On Tue, 14 Oct 2025 at 20:46, Daniel Gustafsson <[email protected]> wrote: >>>> While working on something else I noticed that the featurematrix has a few >>>> typos, unless there are objections I'll go ahead with the attached. >>> >>> Patch looks good. >>> >>> I had a read and found a few more: >> >> Thanks, I have incorporated all of these in the v2 attached. >> >> When doing that I noticed that the capitilization of PL/pgSQL and other PL's >> was quite varied. 0002 in the attached corrects that to ensure consistency >> across the items in the featurematrix with corresponding names in the docs. * Going through 0001: - description: automatic invalidation of cached exceutions plans + description: automatic invalidation of cached executions plans should probably be "cached execution plans". Otherwise LGTM. * Going through 0002: - - name: IN/OUT/INOUT parameters for pl/pgsql and PL/SQL + - name: IN/OUT/INOUT parameters for PL/pgSQL and PL/SQL We should probably not call it "PL/SQL" since it's not a procedural language. Perhaps: - - name: IN/OUT/INOUT parameters for pl/pgsql and PL/SQL + - name: IN/OUT/INOUT parameters for PL/pgSQL and SQL stored functions Otherwise LGTM. > The featurematrix was a rabbithole that went deep, looking closer I realized > that links were using a variety of target versions: /current/, /devel/, or the > version which was current at the time of adding. This means that for old > features we we still linking to the 9.x version of the docs, which clearly > isn't helpful to our users. We also had quite a few /static/ links which 301 > redirects since we don't have that level anymore. There were some reasons for this, the "version at the time of adding" ensuring that the links were accessible during the beta period (which also explained some of the /devel/, which I likely did). During the beta period, we'll still need to use the `/NN/` number so the links are accessible, but we can make it part of the procedure to more to `/current/` when we GA. Patch LGTM, assuming they're all tested ;) > On top of that, a few links in the descriptions were not markdown encoded and > thus rendered as plain text. > > The attached v3 fixes these in 0003 and 0004. 0004 LGTM. Thanks! Jonathan Attachments: [application/pgp-signature] OpenPGP_signature.asc (840B, 2-OpenPGP_signature.asc) download ^ permalink raw reply [nested|flat] 10+ messages in thread
* Re: Typos in the featurematrix @ 2025-10-23 12:14 Daniel Gustafsson <[email protected]> parent: Jonathan S. Katz <[email protected]> 0 siblings, 0 replies; 10+ messages in thread From: Daniel Gustafsson @ 2025-10-23 12:14 UTC (permalink / raw) To: Jonathan S. Katz <[email protected]>; +Cc: David Rowley <[email protected]>; [email protected]; Magnus Hagander <[email protected]> > On 23 Oct 2025, at 03:04, Jonathan S. Katz <[email protected]> wrote: > * Going through 0001: > > - description: automatic invalidation of cached exceutions plans > + description: automatic invalidation of cached executions plans > > should probably be "cached execution plans". Otherwise LGTM. Fixed > * Going through 0002: > > - - name: IN/OUT/INOUT parameters for pl/pgsql and PL/SQL > + - name: IN/OUT/INOUT parameters for PL/pgSQL and PL/SQL > > We should probably not call it "PL/SQL" since it's not a procedural language. Perhaps: > > - - name: IN/OUT/INOUT parameters for pl/pgsql and PL/SQL > + - name: IN/OUT/INOUT parameters for PL/pgSQL and SQL stored functions Fixed >> The featurematrix was a rabbithole that went deep, looking closer I realized >> that links were using a variety of target versions: /current/, /devel/, or the >> version which was current at the time of adding. This means that for old >> features we we still linking to the 9.x version of the docs, which clearly >> isn't helpful to our users. We also had quite a few /static/ links which 301 >> redirects since we don't have that level anymore. > > There were some reasons for this, the "version at the time of adding" ensuring that the links were accessible during the beta period (which also explained some of the /devel/, which I likely did). During the beta period, we'll still need to use the `/NN/` number so the links are accessible, but we can make it part of the procedure to more to `/current/` when we GA. That makes a lot of sense. We also need to use the /NN/ number for any feature which is removed, to stabilise the link on the last version where it was present. Adding a "link-refresh" step to the GA checklist sounds like a good idea (and I can volunteer to tackle it next time). -- Daniel Gustafsson ^ permalink raw reply [nested|flat] 10+ messages in thread
* Re: Typos in the featurematrix @ 2025-10-23 12:28 Daniel Gustafsson <[email protected]> parent: David Rowley <[email protected]> 1 sibling, 0 replies; 10+ messages in thread From: Daniel Gustafsson @ 2025-10-23 12:28 UTC (permalink / raw) To: David Rowley <[email protected]>; +Cc: [email protected]; Magnus Hagander <[email protected]> > On 22 Oct 2025, at 01:56, David Rowley <[email protected]> wrote: > > On Wed, 22 Oct 2025 at 01:09, Daniel Gustafsson <[email protected]> wrote: >> The featurematrix was a rabbithole that went deep, looking closer I realized >> that links were using a variety of target versions: /current/, /devel/, or the >> version which was current at the time of adding. This means that for old >> features we we still linking to the 9.x version of the docs, which clearly >> isn't helpful to our users. We also had quite a few /static/ links which 301 >> redirects since we don't have that level anymore. >> >> On top of that, a few links in the descriptions were not markdown encoded and >> thus rendered as plain text. >> >> The attached v3 fixes these in 0003 and 0004. > > * The new link seems dead. Looks like it should be > https://www.postgresql.org/docs/current/brin.html#BRIN-INTRO Indeed, fixed. > * Looks like this will cause issues as "current" moves forward in > versions and we add new sections before this: > > - url: https://www.postgresql.org/docs/16/functions-aggregate.html#id-1.5.8.27.5.2.4.1.1.1.1 > + url: https://www.postgresql.org/docs/current/functions-aggregate.html#id-1.5.8.27.6.2.4.1.1.1.1 > > If I adjust /current/ to /17/ it works, but not before then. Is there > anything more future proof we can do there? Adding anchors with indexterms, as you mention downthread, to anything in the featurematrix is the solution to providing stable links. A manual step of verifying links at time of GA is another option, which is probably a good idea regardless. > Going back to /14/ that links to left() instead of casefold(). Right, but that's only if you edit the url and I don't think we can ever protect ourselves from users manually testing links. If you go to the above page and click on the link for v14 documentation it won't use the anchor and thus works. > * The following no longer links to where it intended to: > > - url: https://www.postgresql.org/docs/current/static/collation.html#id-1.6.10.4.5.7.5 > + url: https://www.postgresql.org/docs/current/collation.html#id-1.6.10.4.5.7.5 > > i.e basically someone made the same mistake as the above ones were > about to make. Interesting, the history of that edit is lost as it was done when the matrix was defined in the database and not in a standalone yaml file. The correct link seems to be: https://www.postgresql.org/docs/current/collation.html#ICU-CUSTOM-COLLATIONS -- Daniel Gustafsson ^ permalink raw reply [nested|flat] 10+ messages in thread
* Re: Typos in the featurematrix @ 2025-10-23 12:30 Daniel Gustafsson <[email protected]> parent: David Rowley <[email protected]> 0 siblings, 0 replies; 10+ messages in thread From: Daniel Gustafsson @ 2025-10-23 12:30 UTC (permalink / raw) To: David Rowley <[email protected]>; +Cc: [email protected]; Magnus Hagander <[email protected]> > On 22 Oct 2025, at 02:36, David Rowley <[email protected]> wrote: > > On Wed, 22 Oct 2025 at 12:56, David Rowley <[email protected]> wrote: >> Also: >> >> - url: https://www.postgresql.org/docs/18/functions-string.html#id-1.5.8.10.7.2.2.8.1.1.1 >> + url: https://www.postgresql.org/docs/current/functions-string.html#id-1.5.8.10.7.2.2.8.1.1.1 >> >> Going back to /14/ that links to left() instead of casefold(). > > Looking at: > > grep -F "<indexterm" doc/src/sgml/func/func-string.sgml > > I see there are only 3 functions where we've added a section, so [1] > works, but not [2]. Maybe we should just add the remaining indexterms > and backpatch to v18. > > Seems like there's none in: > > grep -F "<indexterm" doc/src/sgml/func/func-aggregate.sgml > > so all those would need added. > > I can't think of a reason not to do this. Maybe I've overlooked something? I can't think of any, I'll go do that (and propose it on -docs) before making the featurematrix commit. -- Daniel Gustafsson ^ permalink raw reply [nested|flat] 10+ messages in thread
end of thread, other threads:[~2025-10-23 12:30 UTC | newest] Thread overview: 10+ messages (download: mbox.gz follow: Atom feed) -- links below jump to the message on this page -- 2025-10-14 07:45 Typos in the featurematrix Daniel Gustafsson <[email protected]> 2025-10-15 11:00 ` David Rowley <[email protected]> 2025-10-15 13:22 ` Daniel Gustafsson <[email protected]> 2025-10-21 12:09 ` Daniel Gustafsson <[email protected]> 2025-10-21 23:56 ` David Rowley <[email protected]> 2025-10-22 00:36 ` David Rowley <[email protected]> 2025-10-23 12:30 ` Daniel Gustafsson <[email protected]> 2025-10-23 12:28 ` Daniel Gustafsson <[email protected]> 2025-10-23 01:04 ` Jonathan S. Katz <[email protected]> 2025-10-23 12:14 ` Daniel Gustafsson <[email protected]>
This inbox is served by agora; see mirroring instructions for how to clone and mirror all data and code used for this inbox