From 8f73ed6b659464274eb9cc8358588b569960d0be Mon Sep 17 00:00:00 2001 From: Bruce Momjian Date: Sat, 22 May 2021 22:25:05 -0400 Subject: [PATCH] doc: word-wrap and indent PG 14 relnotes --- doc/src/sgml/release-14.sgml | 3649 +++++++++++++++++++--------------- 1 file changed, 2094 insertions(+), 1555 deletions(-) diff --git a/doc/src/sgml/release-14.sgml b/doc/src/sgml/release-14.sgml index 372abff0ac3..08cb0676805 100644 --- a/doc/src/sgml/release-14.sgml +++ b/doc/src/sgml/release-14.sgml @@ -51,22 +51,25 @@ - + - -Prevent the containment operators (<@ and @>) for from using GiST indexes (Tom Lane) - + + Prevent the containment operators (<@ and @>) for from using GiST indexes (Tom Lane) + - -Previously a full GiST index scan was required, so just avoid that and scan the heap, which is faster. Indexes created for this purpose should be removed. - - + + Previously a full GiST index scan was required, so just avoid + that and scan the heap, which is faster. Indexes created for this + purpose should be removed. + + - + - -Remove deprecated containment operators @ and ~ for built-in geometric data types and contrib modules , , -, and (Justin Pryzby) - + + Remove deprecated containment operators @ and ~ for built-in + geometric data types and + contrib modules , , + , and (Justin Pryzby) + - -The more consistent <@ and @> have been recommended for many years. - - + + The more consistent <@ and @> have been recommended for + many years. + + - + - -Fix to_tsquery() and websearch_to_tsquery() to properly parse query text containing discarded tokens (Alexander Korotkov) - + + Fix to_tsquery() + and websearch_to_tsquery() to properly parse + query text containing discarded tokens (Alexander Korotkov) + - -Certain discarded tokens, like underscore, caused the output of these functions to produce incorrect tsquery output, e.g., both websearch_to_tsquery('"pg_class pg"') and to_tsquery('pg_class <-> -pg') used to output '( pg & class ) <-> pg', but now both output 'pg <-> class <-> pg'. - - + + Certain discarded tokens, like underscore, caused the output of + these functions to produce incorrect tsquery output, e.g., both + websearch_to_tsquery('"pg_class pg"') and to_tsquery('pg_class + <-> pg') used to output '( pg & class ) <-> pg', + but now both output 'pg <-> class <-> pg'. + + - + - -Fix websearch_to_tsquery() to properly parse multiple adjacent discarded tokens in quotes (Alexander Korotkov) - + + Fix websearch_to_tsquery() + to properly parse multiple adjacent discarded tokens in quotes + (Alexander Korotkov) + - -Previously, quoted text that contained multiple adjacent discarded tokens were treated as multiple tokens, causing incorrect tsquery output, e.g., websearch_to_tsquery('"aaa: bbb"') used to output -'aaa <2> bbb', but now outputs 'aaa <-> bbb'. - - + + Previously, quoted text that contained multiple adjacent discarded + tokens were treated as multiple tokens, causing incorrect tsquery + output, e.g., websearch_to_tsquery('"aaa: bbb"') used to output + 'aaa <2> bbb', but now outputs 'aaa <-> bbb'. + + - + - -Change the default of the server parameter to scram-sha-256 (Peter Eisentraut) - + + Change the default of the + server parameter to scram-sha-256 (Peter + Eisentraut) + - -Previously it was md5. All new passwords will be stored as SHA256 unless this server variable is changed or the password is specified in md5 format. -Also, the legacy (and undocumented) boolean-like values which were previously synonyms for md5 are no longer accepted. - - + + Previously it was md5. All new passwords will + be stored as SHA256 unless this server variable is changed or + the password is specified in md5 format. Also, the legacy (and + undocumented) boolean-like values which were previously synonyms + for md5 are no longer accepted. + + - + - -Overhaul the specification of clientcert in pg_hba.conf (Kyotaro Horiguchi) - + + Overhaul the specification of clientcert in pg_hba.conf + (Kyotaro Horiguchi) + - -Values 1/0/no-verify are no longer supported; only the strings verify-ca and verify-full can be used. Also, disallow verify-ca if cert -authentication is enabled since cert requires verify-full checking. - - + + Values + 1/0/no-verify + are no longer supported; only the strings + verify-ca and verify-full + can be used. Also, disallow verify-ca if cert + authentication is enabled since cert requires + verify-full checking. + + - + - -Remove support for SSL compression (Daniel Gustafsson, Michael Paquier) - + + Remove support for SSL + compression (Daniel Gustafsson, Michael Paquier) + - -This was already disabled by default in previous Postgres releases, and most modern OpenSSL and TLS versions no longer support it. - - + + This was already disabled by default in previous Postgres releases, + and most modern OpenSSL and TLS versions no + longer support it. + + - + - -Remove server and libpq support for the version 2 wire protocol (Heikki Linnakangas) - + + Remove server and libpq support + for the version 2 wire protocol + (Heikki Linnakangas) + - -This was last used as the default in Postgres 7.2 (year 2002). - - + + This was last used as the default in Postgres 7.2 (year 2002). + + - + - -Change EXTRACT to return the NUMERIC data type (Peter Eisentraut) - + + Change EXTRACT + to return the NUMERIC data type (Peter Eisentraut) + - -EXTRACT(date) now throws an error for units that are not part of the date data type. - - + + EXTRACT(date) now throws an error for units + that are not part of the date data type. + + - + - -Fix handling of infinite window function ranges (Tom Lane) - + + Fix handling of infinite window function ranges + (Tom Lane) + - -Previously window frame clauses like 'inf' PRECEDING AND 'inf' FOLLOWING returned incorrect results. - - + + Previously window frame clauses like 'inf' PRECEDING AND + 'inf' FOLLOWING returned incorrect results. + + - + - -Prevent 's function normal_rand() from accepting negative values (Ashutosh Bapat) - + + Prevent 's function + normal_rand() from accepting negative values + (Ashutosh Bapat) + - -Negative values produced undesirable results. - - + + Negative values produced undesirable results. + + - + - -Change var_samp() and stddev_samp() with numeric parameters to return NULL for a single NaN value (Tom Lane) - + + Change var_samp() + and stddev_samp() with numeric parameters to + return NULL for a single NaN value (Tom Lane) + - -Previously NaN was returned. - - + + Previously NaN was returned. + + - + - -Remove factorial operators ! and !! (Mark Dilger) - + + Remove factorial operators ! and + !! (Mark Dilger) + - -The factorial() function is still supported. Also remove function numeric_fac(). - - + + The factorial() + function is still supported. Also remove function + numeric_fac(). + + - + - -Disallow factorial() of negative numbers (Peter Eisentraut) - + + Disallow factorial() of negative numbers + (Peter Eisentraut) + - -Previously such cases returned 1. - - + + Previously such cases returned 1. + + - + - -Remove support for postfix (right-unary) operators (Mark Dilger) - + + Remove support for postfix + (right-unary) operators (Mark Dilger) + - -pg_dump and pg_upgrade will warn if postfix operators are being dumped. - - + + pg_dump and + pg_upgrade will warn if postfix operators + are being dumped. + + - + - -Allow \D and \W shorthands to match newlines in regular expression newline-sensitive mode (Tom Lane) - + + Allow \D and \W shorthands to + match newlines in regular + expression newline-sensitive mode (Tom Lane) + - -Previously they did not match; [^[:digit:]] or [^[:word:]] can be used to get the old behavior. - - + + Previously they did not match; [^[:digit:]] or + [^[:word:]] can be used to get the old behavior. + + - + - -Improve handling of regular expression back-references (Tom Lane) - + + Improve handling of regular expression back-references (Tom Lane) + - -For example, disregard ^ in its expansion in \1 in (^\d+).*\1. - - + + For example, disregard ^ in its expansion in + \1 in (^\d+).*\1. + + - + - -Disallow \w as range start/end in character classes (Tom Lane) - + + Disallow \w as range start/end in character + classes (Tom Lane) + - -This previously was allowed but produced incorrect results. - - + + This previously was allowed but produced incorrect results. + + - + - -Require custom server variable names to match the pattern used for unquoted SQL identifiers (Tom Lane) - - + + Require custom server + variable names to match the pattern used for unquoted + SQL identifiers (Tom Lane) + + - + - -Remove server variable vacuum_cleanup_index_scale_factor (Peter Geoghegan) - + + Remove server variable + vacuum_cleanup_index_scale_factor (Peter Geoghegan) + - -This setting was ignored starting in PostgreSQL version 13.3. - - + + This setting was ignored starting in + PostgreSQL version 13.3. + + - + - -Return false for has_column_privilege() checks on non-existent or dropped columns when using attribute numbers (Joe Conway) - + + Return false for has_column_privilege() + checks on non-existent or dropped columns when using attribute + numbers (Joe Conway) + - -Previously such attribute numbers returned an invalid column error. - - + + Previously such attribute numbers returned an invalid column error. + + - + - -Pass doubled quote marks in SQL command strings literally (Tom Lane) - + + Pass doubled quote marks in + SQL command strings literally (Tom Lane) + - -Previously 'abc''def' was passed to the server as 'abc'def', and "abc""def" was passed as "abc"def". - - + + Previously 'abc''def' was passed to the server + as 'abc'def', and "abc""def" + was passed as "abc"def". + + - + - -Disallow single-quoting of the language name in the CREATE/DROP LANGUAGE command (Peter Eisentraut) - - + + Disallow single-quoting of the language name in the + CREATE/DROP + LANGUAGE command (Peter Eisentraut) + + - + - -Remove contrib program pg_standby (Justin Pryzby) - - + + Remove contrib program pg_standby + (Justin Pryzby) + + - + - -Remove composite types for sequences or toast tables (Tom Lane) - - + + Remove composite + types for sequences or toast tables (Tom Lane) + + - + - -Remove operator_precedence_warning setting (Tom Lane) - + + Remove operator_precedence_warning setting + (Tom Lane) + - -This was needed for warning applications about PostgreSQL 9.5 changes. - - + + This was needed for warning applications about + PostgreSQL 9.5 changes. + + @@ -448,269 +523,310 @@ This was needed for warning applications about PostgreSQLChanges - Below you will find a detailed account of the changes between + Below you will find a detailed account of the changes between PostgreSQL 14 and the previous major - release. + release. Server - + - + - -Add predefined roles pg_read_all_data and pg_write_all_data (Stephen Frost) - + + Add predefined roles pg_read_all_data + and pg_write_all_data (Stephen Frost) + - -These non-login roles can be used to give read or write permission to all tables, views, and sequences. - - + + These non-login roles can be used to give read or write permission + to all tables, views, and sequences. + + - + - -Add a predefined role to match the database owner (Noah Misch) - + + Add a predefined role to match the database owner (Noah Misch) + - -It is called pg_database_owner; this is useful in template databases. - - + + It is called pg_database_owner; + this is useful in template databases. + + - + - -Remove temporary files after backend crashes (Euler Taveira) - + + Remove temporary files after backend crashes (Euler Taveira) + - -These files were previously retained for debugging purposes; deletion can be disabled with . - - + + These files were previously retained for debugging + purposes; deletion can be disabled with . + + - + - -Allow long-running queries to be canceled if the client disconnects (Sergey Cherkashin, Thomas Munro) - + + Allow long-running queries to be canceled if the client disconnects + (Sergey Cherkashin, Thomas Munro) + - -The server variable allows some supported operating systems to automatically cancel queries by disconnected clients. - - + + The server variable allows some + supported operating systems to automatically cancel queries by + disconnected clients. + + - + - -Add function pg_wait_for_backend_termination() that waits for session exit (Bharath Rupireddy) - + + Add function pg_wait_for_backend_termination() + that waits for session exit (Bharath Rupireddy) + - -Also add a similar optional wait parameter to pg_terminate_backend() - - + + Also add a similar optional wait parameter to pg_terminate_backend() + + - + - -Allow wide tuples to be always added to almost-empty heap pages (John Naylor, Floris van Nee) - + + Allow wide tuples to be always added to almost-empty heap pages + (John Naylor, Floris van Nee) + - -Previously tuples whose insertion would have exceeded the page's fill factor were instead added to new pages. - - + + Previously tuples whose insertion would have exceeded the page's + fill factor were instead + added to new pages. + + - + - -Add Set Server Name Indication (SNI) for SSL connection packets (Peter Eisentraut) - + + Add Set Server Name Indication (SNI) for + SSL connection packets (Peter Eisentraut) + - -This can be disabled by turning off client option sslsni. - - + + This can be disabled by turning off client option sslsni. + + - + <link linkend="routine-vacuuming">Vacuuming</link> - + - -Allow vacuum to skip index vacuuming when the number of removable index entries is insignificant (Masahiko Sawada, Peter Geoghegan) - - + + Allow vacuum to skip index vacuuming when the number of removable + index entries is insignificant (Masahiko Sawada, Peter Geoghegan) + + - + - -Allow vacuum to eagerly add newly deleted btree pages to the free space map (Peter Geoghegan) - + + Allow vacuum to eagerly add newly deleted btree pages to the free + space map (Peter Geoghegan) + - -Previously vacuum could only place preexisting deleted pages in the free space map. - - + + Previously vacuum could only place preexisting deleted pages in + the free space map. + + - + - -Allow vacuum to deallocate space reserved by trailing unused heap line pointers (Matthias van de Meent, Peter Geoghegan) - - + + Allow vacuum to deallocate space reserved by trailing unused heap + line pointers (Matthias van de Meent, Peter Geoghegan) + + - + - -Speed up vacuuming of databases with many relations (Tatsuhito Kasahara) - - + + Speed up vacuuming of databases with many relations (Tatsuhito + Kasahara) + + - + - -Reduce the default value of to better reflects current hardware capabilities (Peter Geoghegan) - - + + Reduce the default value of to better reflects current + hardware capabilities (Peter Geoghegan) + + - + - -Add ability to skip vacuuming of TOAST tables (Nathan Bossart) - + + Add ability to skip vacuuming of TOAST tables + (Nathan Bossart) + - -VACUUM now has a PROCESS_TOAST which can be set to false to disable TOAST processing, and -vacuumdb has a option. - - + + VACUUM + now has a PROCESS_TOAST which can be set to + false to disable TOAST processing, and vacuumdb + has a option. + + - + - -Have COPY FREEZE appropriately update page visibility bits (Anastasia Lubennikova, Pavan Deolasee, Jeff Janes) - - + + Have COPY FREEZE + appropriately update page visibility bits (Anastasia Lubennikova, + Pavan Deolasee, Jeff Janes) + + - + - -Cause vacuum operations to be aggressive if the table is near xid or multixact wraparound (Masahiko Sawada, Peter Geoghegan) - + + Cause vacuum operations to be aggressive if the table is near + xid or multixact wraparound (Masahiko Sawada, Peter Geoghegan) + - -This is controlled by and . - - + + This is controlled by + and . + + - + - -Increase warning time and hard limit before transaction id and multi-transaction wraparound (Noah Misch) - + + Increase warning time and hard limit before transaction id and + multi-transaction wraparound (Noah Misch) + - -This should reduce the possibility of failures that occur without having issued warnings about wraparound. - - + + This should reduce the possibility of failures that occur without + having issued warnings about wraparound. + + - + - -Autovacuum now analyzes partitioned tables (Yuzuko Hosoya, Álvaro Herrera) - + + Autovacuum now analyzes + partitioned tables (Yuzuko Hosoya, Álvaro Herrera) + - -Insert, update, and delete tuple counts from partitions are now propagated to their parent tables so autovacuum knows when to process them. - - + + Insert, update, and delete tuple counts from partitions are now + propagated to their parent tables so autovacuum knows when to + process them. + + - + - -Add per-index information to autovacuum logging output (Masahiko Sawada) - - + + Add per-index information to autovacuum logging + output (Masahiko Sawada) + + @@ -720,7 +836,7 @@ Add per-index information to aut - + - -Improve the performance of updates/deletes on partitioned tables when only a few partitions are affected (Amit Langote, Tom Lane) - + + Improve the performance of updates/deletes on partitioned tables + when only a few partitions are affected (Amit Langote, Tom Lane) + - -This also allows updates/deletes on partitioned tables to use execution-time partition pruning. - - + + This also allows updates/deletes on partitioned tables to use + execution-time partition pruning. + + - + - -Allow partitions to be detached in a non-blocking manner (Álvaro Herrera) - + + Allow partitions to be detached in a non-blocking manner + (Álvaro Herrera) + - -The syntax is ALTER TABLE ... DETACH PARTITION ... CONCURRENTLY, and FINALIZE. - - + + The syntax is ALTER TABLE ... DETACH PARTITION + ... CONCURRENTLY, and FINALIZE. + + - + - -Allow the arbitrary collations of partition boundary values (Tom Lane) - + + Allow the arbitrary collations of partition boundary values + (Tom Lane) + - -Previously it had to match the collation of the partition key. - - + + Previously it had to match the collation of the partition key. + + @@ -778,7 +900,7 @@ Previously it had to match the collation of the partition key. - + - -Allow btree index additions to remove expired index entries to prevent page splits (Peter Geoghegan) - + + Allow btree index additions to remove expired index entries + to prevent page splits (Peter Geoghegan) + - -This is particularly helpful for reducing index bloat on tables whose indexed columns are frequently updated. - - + + This is particularly helpful for reducing index bloat on tables + whose indexed columns are frequently updated. + + - + - -Allow BRIN indexes to record multiple min/max values per range (Tomas Vondra) - + + Allow BRIN indexes + to record multiple min/max values per range (Tomas Vondra) + - -This is useful if there are groups of values in each page range. - - + + This is useful if there are groups of values in each page range. + + - + - -Allow BRIN indexes to use bloom filters (Tomas Vondra) - + + Allow BRIN indexes to use bloom filters + (Tomas Vondra) + - -This allows bloom indexes to be used effectively with data that is not physically localized in the heap. - - + + This allows bloom indexes to be used effectively with data that + is not physically localized in the heap. + + - + - -Allow some GiST indexes to be built by presorting the data (Andrey Borodin) - + + Allow some GiST indexes to be built + by presorting the data (Andrey Borodin) + - -Presorting happens automatically and allows for faster index creation and smaller indexes. - - + + Presorting happens automatically and allows for faster index + creation and smaller indexes. + + - + - -Allow SP-GiST to use INCLUDE'd columns (Pavel Borisov) - - + + Allow SP-GiST to use + INCLUDE'd columns (Pavel Borisov) + + @@ -860,22 +991,24 @@ Allow SP-GiST to use INCLUDE'd - + - -Allow hash lookup of IN clause with many constants (James Coleman, David Rowley) - + + Allow hash lookup of IN clause with many + constants (James Coleman, David Rowley) + - -Previously the only option was to sequentially scan the list of constants. - - + + Previously the only option was to sequentially scan the list + of constants. + + - + - -Increase the number of places extended statistics can be used for OR clause estimation (Tomas Vondra, Dean Rasheed) - - + + Increase the number of places extended statistics can + be used for OR clause estimation (Tomas Vondra, + Dean Rasheed) + + - + - -Allow extended statistics on expressions (Tomas Vondra) - + + Allow extended statistics on expressions (Tomas Vondra) + - -This allows statistics on a group of expressions and columns, rather than only columns like previously. System view pg_stats_ext_exprs -reports such statistics. ALTER TABLE ... ALTER COLUMN ... TYPE RESETS STASTISTICS? - - + + This allows statistics on a group of expressions and columns, + rather than only columns like previously. System view pg_stats_ext_exprs + reports such statistics. ALTER TABLE ... ALTER COLUMN + ... TYPE RESETS STASTISTICS? + + - + - -Allow efficient heap scanning of a range of TIDs (Edmund Horner, David Rowley) - + + Allow efficient heap scanning of a range of TIDs (Edmund + Horner, David Rowley) + - -Previously a sequential scan was required for non-equality TID specifications. - - + + Previously a sequential scan was required for non-equality + TID specifications. + + - + - -Fix EXPLAIN CREATE TABLE AS and EXPLAIN CREATE MATERIALIZED VIEW to honor IF NOT EXISTS (Bharath Rupireddy) - + + Fix EXPLAIN CREATE TABLE + AS and EXPLAIN CREATE MATERIALIZED + VIEW to honor IF NOT EXISTS + (Bharath Rupireddy) + - -Previously, if the object already exists, EXPLAIN would fail. - - + + Previously, if the object already exists, + EXPLAIN would fail. + + @@ -945,7 +1092,7 @@ Previously, if the object already exists, EXPLAIN would fail. - + - -Improve the speed of computing MVCC visibility snapshots on systems with many CPUs and high session counts (Andres Freund) - + + Improve the speed of computing MVCC visibility snapshots on systems with many + CPUs and high session counts (Andres Freund) + - -This also improves performance when there are many idle sessions. - - + + This also improves performance when there are many idle sessions. + + - + - -Add executor method to cache results from the inner-side of nested loop joins (David Rowley) - + + Add executor method to cache results from the inner-side of nested + loop joins (David Rowley) + - -This is useful if only a small percentage of rows is checked on the inner side. - - + + This is useful if only a small percentage of rows is checked on + the inner side. + + - + - -Allow window functions to perform incremental sorts (David Rowley) - - + + Allow window functions + to perform incremental sorts (David Rowley) + + - + - -Improve the I/O performance of parallel sequential scans (Thomas Munro, David Rowley) - + + Improve the I/O performance of parallel sequential scans (Thomas + Munro, David Rowley) + - -This was done by allocating blocks in groups to parallel workers. - - + + This was done by allocating blocks in groups to parallel workers. + + - + - -Allow a query referencing multiple foreign tables to perform foreign table scans in parallel (Robert Haas, Kyotaro Horiguchi, Thomas Munro, Etsuro Fujita) - + + Allow a query referencing multiple foreign tables to perform + foreign table scans in parallel (Robert Haas, Kyotaro Horiguchi, + Thomas Munro, Etsuro Fujita) + - -The postgres_fdw supports these type of scans if async_capable is set. - - + + The postgres_fdw + supports these type of scans if async_capable + is set. + + - + - -Allow analyze to do page prefetching (Stephen Frost) - + + Allow analyze to do + page prefetching (Stephen Frost) + - -This is controlled by . - - + + This is controlled by . + + - + - -Improve the performance of regular expression comparisons (Tom Lane) - - + + Improve the performance of regular expression + comparisons (Tom Lane) + + - + - -Dramatically improve Unicode normalization (John Naylor) - + + Dramatically improve Unicode normalization (John Naylor) + - -This speeds normalize() and IS NORMALIZED. - - + + This speeds normalize() + and IS NORMALIZED. + + - + - -Add ability to use LZ4 compression on TOAST data (Dilip Kumar) - + + Add ability to use LZ4 + compression on TOAST data (Dilip Kumar) + - -This can be set at the column level, or set as a default via server setting . The server must be compiled with to support this feature; the default is still pglz. - - + + This can be set at the column level, or set as a default via server + setting . + The server must be compiled with + to support this feature; the default is still pglz. + + @@ -1113,7 +1284,7 @@ This can be set at the column level, or set as a default via server setting - + - -If server variable is enabled, display the query id in pg_stat_activity, -EXPLAIN VERBOSE, csvlog, and optionally in -(Julien Rouhaud) - + + If server variable + is enabled, display the query id in pg_stat_activity, + EXPLAIN + VERBOSE, csvlog, and optionally in + (Julien Rouhaud) + - -A query id computed by an extension will also be displayed. - - + + A query id computed by an extension will also be displayed. + + - + - -Add system view pg_backend_memory_contexts to report session memory usage (Atsushi Torikoshi, Fujii Masao) - - + + Add system view pg_backend_memory_contexts + to report session memory usage (Atsushi Torikoshi, Fujii Masao) + + - + - -Add function pg_log_backend_memory_contexts() to output the memory contexts of arbitrary backends (Atsushi Torikoshi) - - + + Add function pg_log_backend_memory_contexts() + to output the memory contexts of arbitrary backends (Atsushi + Torikoshi) + + - + - -Improve logging of auto-vacuum and auto-analyze (Stephen Frost, Jakub Wartak) - + + Improve logging of auto-vacuum + and auto-analyze (Stephen Frost, Jakub Wartak) + - -This reports I/O timings for auto-vacuum and auto-analyze if is enabled. Also, report buffer read and dirty rates for auto-analyze. - - + + This reports I/O timings for auto-vacuum and auto-analyze if is enabled. Also, report buffer + read and dirty rates for auto-analyze. + + - + - -Add information about the original user name supplied by the client to the output of (Jacob Champion) - - + + Add information about the original user name supplied by the + client to the output of + (Jacob Champion) + + @@ -1197,7 +1382,7 @@ Add information about the original user name supplied by the client to the outpu - + - -Add view pg_stat_progress_copy to report COPY progress (Josef Šimánek, Matthias van de Meent) - - + + Add view pg_stat_progress_copy + to report COPY progress (Josef Šimánek, + Matthias van de Meent) + + - + - -Add session statistics to the pg_stat_database system view (Laurenz Albe) - - + + Add session statistics to the pg_stat_database + system view (Laurenz Albe) + + - + - -Add columns to pg_prepared_statements to report generic and custom plan counts (Atsushi Torikoshi, Kyotaro Horiguchi) - - + + Add columns to pg_prepared_statements + to report generic and custom plan counts (Atsushi Torikoshi, + Kyotaro Horiguchi) + + - + - -Add lock wait start time to pg_locks (Atsushi Torikoshi) - - + + Add lock wait start time to pg_locks + (Atsushi Torikoshi) + + - + - -Add system view pg_stat_wal which reports WAL activity (Masahiro Ikeda) - - + + Add system view pg_stat_wal + which reports WAL activity (Masahiro Ikeda) + + - + - -Add system view pg_stat_replication_slots to report replication slot activity (Sawada Masahiko, Amit Kapila, Vignesh C) - + + Add system view pg_stat_replication_slots + to report replication slot activity (Sawada Masahiko, Amit Kapila, + Vignesh C) + - -Function pg_stat_reset_replication_slot() resets slot statistics. - - + + Function pg_stat_reset_replication_slot() + resets slot statistics. + + - + - -Improve pg_stat_activity reporting of walsender processes (Tom Lane) - + + Improve pg_stat_activity + reporting of walsender processes (Tom Lane) + - -Previously only SQL commands were reported. - - + + Previously only SQL commands were reported. + + - + - -Make the archiver process visible in pg_stat_activity (Kyotaro Horiguchi) - - + + Make the archiver process visible in + pg_stat_activity (Kyotaro Horiguchi) + + - + - -Add wait event WalReceiverExit to report WAL receiver exit wait time (Fujii Masao) - - + + Add wait event WalReceiverExit + to report WAL receiver exit wait time (Fujii + Masao) + + - + - -Implement information schema view routine_column_usage to track columns referenced by function and procedure default expressions (Peter Eisentraut) - - + + Implement information schema view routine_column_usage + to track columns referenced by function and procedure default + expressions (Peter Eisentraut) + + @@ -1336,61 +1547,73 @@ Implement information schema view pg_hba.conf keyword clientname=DN allows comparison with certificate attributes beyond the CN and can be combined with ident maps. - - + + The new pg_hba.conf + keyword clientname=DN allows comparison with + certificate attributes beyond the CN and can + be combined with ident maps. + + - + - -Allow pg_hba.conf and pg_ident.conf records to span multiple lines (Fabien Coelho) - + + Allow pg_hba.conf and pg_ident.conf + records to span multiple lines (Fabien Coelho) + - -A backslash at the end of a line allows record contents to be continued on the next line. - - + + A backslash at the end of a line allows record contents to be + continued on the next line. + + - + - -Allow the specification of a certificate revocation list (CRL) directory (Kyotaro Horiguchi) - + + Allow the specification of a certificate revocation list + (CRL) directory (Kyotaro Horiguchi) + - -This is controlled by server variable and libpq connection option sslcrldir. Previously only CRL files could be specified. - - + + This is controlled by server variable and libpq connection option sslcrldir. + Previously only CRL files could be specified. + + - + - -Allow passwords of an arbitrary length (Tom Lane, Nathan Bossart) - - + + Allow passwords of an arbitrary length (Tom Lane, Nathan Bossart) + + @@ -1401,87 +1624,96 @@ Allow passwords of an arbitrary length (Tom Lane, Nathan Bossart) - + - -Add server setting to close idle sessions (Li Japin) - + + Add server setting + to close idle sessions (Li Japin) + - -This is similar to . - - + + This is similar to . + + - + - -Change default to 0.9 (Stephen Frost) - + + Change default + to 0.9 (Stephen Frost) + - -The previous default was 0.5. - - + + The previous default was 0.5. + + - + - -Allow %P in to report the parallel group leader (Justin Pryzby) - - + + Allow %P in to report the + parallel group leader (Justin Pryzby) + + - + - -Allow to specify paths as individual, comma-separated quoted strings (Ian Lawrence Barwick) - + + Allow to specify + paths as individual, comma-separated quoted strings (Ian Lawrence + Barwick) + - -Previously all the paths had to be in a single quoted string. - - + + Previously all the paths had to be in a single quoted string. + + - + - -Allow startup allocation of dynamic shared memory (Thomas Munro) - + + Allow startup allocation of dynamic shared memory (Thomas Munro) + - -This is controlled by . This allows more use of huge pages. - - + + This is controlled by . This allows more + use of huge pages. + + - + - -Add setting to control the size of huge pages used on Linux (Odin Ugedal) - - + + Add setting to control the + size of huge pages used on Linux (Odin Ugedal) + + @@ -1494,33 +1726,39 @@ Add setting to control the size of huge pag - + - -Allow standby servers to be rewound via pg_rewind (Heikki Linnakangas) - - + + Allow standby servers to be rewound via pg_rewind + (Heikki Linnakangas) + + - + - -Allow setting to be changed during a server reload (Sergei Kornilov) - + + Allow setting to be changed + during a server reload (Sergei Kornilov) + - -You can also set restore_command to an empty string and reload to force recovery to only read from the pg_wal directory. - - + + You can also set restore_command to an empty + string and reload to force recovery to only read from the pg_wal + directory. + + - + - -Add server variable to report long recovery conflict wait times (Bertrand Drouvot, Masahiko Sawada) - - + + Add server variable to report long recovery + conflict wait times (Bertrand Drouvot, Masahiko Sawada) + + - + - -Pause recovery if the primary changes its parameters in a way that prevents replay on the hot standby (Peter Eisentraut) - + + Pause recovery if the primary changes its parameters in a way that + prevents replay on the hot standby (Peter Eisentraut) + - -Previously the standby would shut down immediately. - - + + Previously the standby would shut down immediately. + + - + - -Add function pg_get_wal_replay_pause_state() to report the recovery state (Dilip Kumar) - + + Add function pg_get_wal_replay_pause_state() + to report the recovery state (Dilip Kumar) + - -It gives more detailed information than pg_is_wal_replay_paused(), which still exists. - - + + It gives more detailed information than pg_is_wal_replay_paused(), + which still exists. + + - + - -Add new server-side variable (Haribabu Kommi, Greg Nancarrow, Tom Lane) - - + + Add new server-side variable + (Haribabu Kommi, Greg Nancarrow, Tom Lane) + + - + - -Speed truncation of small tables during recovery on clusters with a large number of shared buffers (Kirk Jamison) - - + + Speed truncation of small tables during recovery on clusters with + a large number of shared buffers (Kirk Jamison) + + - + - -Allow file system sync at the start of crash recovery on Linux (Thomas Munro) - + + Allow file system sync at the start of crash recovery on Linux + (Thomas Munro) + - -By default, Postgres opens and fsyncs every data file at the start of crash recovery. -This new setting, =syncfs, instead syncs each filesystem used by the database cluster. -This allows for faster recovery on systems with many database files. - - + + By default, Postgres opens and fsyncs every data file + at the start of crash recovery. This new setting, =syncfs, + instead syncs each filesystem used by the database cluster. + This allows for faster recovery on systems with many database files. + + - + - -Add function pg_xact_commit_timestamp_origin() to return the commit timestamp and replication origin of the specified transaction (Movead Li) - - + + Add function pg_xact_commit_timestamp_origin() + to return the commit timestamp and replication origin of the + specified transaction (Movead Li) + + - + - -Add the replication origin to the record returned by pg_last_committed_xact() (Movead Li) - - + + Add the replication origin to the record returned by pg_last_committed_xact() + (Movead Li) + + - + - -Allow replication origin functions to be controlled using standard function permission controls (Martín Marqués) - + + Allow replication origin + functions to be controlled using standard function permission + controls (Martín Marqués) + - -Previously these functions could only be executed by super-users, and this is still the default. - - + + Previously these functions could only be executed by super-users, + and this is still the default. + + - + - -Improve signal handling reliability (Fujii Masao) - + + Improve signal handling reliability (Fujii Masao) + - -GENERAL ENOUGH? - - + + GENERAL ENOUGH? + + @@ -1662,7 +1920,7 @@ GENERAL ENOUGH? - + - -Allow logical replication to stream long in-progress transactions to subscribers (Tomas Vondra, Dilip Kumar, Amit Kapila, Ajin Cherian, Nikhil Sontakke, Stas Kelvich) - + + Allow logical replication to stream long in-progress transactions + to subscribers (Tomas Vondra, Dilip Kumar, Amit Kapila, Ajin + Cherian, Nikhil Sontakke, Stas Kelvich) + - -Previously transactions that exceeded were written to disk until the transaction completed. - - + + Previously transactions that exceeded were written to disk + until the transaction completed. + + - + - -Enhance the logical replication API to allow streaming large in-progress transactions (Tomas Vondra, Dilip Kumar, Amit Kapila) - + + Enhance the logical replication API to allow + streaming large in-progress transactions (Tomas Vondra, Dilip + Kumar, Amit Kapila) + - -The output functions begin with stream. test_decoding also supports these. - - + + The output functions begin with stream. + test_decoding also supports these. + + - + - -Allow multiple transactions during table sync in logical replication (Peter Smith, Amit Kapila, and Takamichi Osumi) - - + + Allow multiple transactions during table sync in logical + replication (Peter Smith, Amit Kapila, and Takamichi Osumi) + + - + - -Immediately WAL-log subtransaction and top-level XID association (Tomas Vondra, Dilip Kumar, Amit Kapila) - + + Immediately WAL-log subtransaction and top-level + XID association (Tomas Vondra, Dilip Kumar, Amit + Kapila) + - -This is useful for logical decoding. - - + + This is useful for logical decoding. + + - + - -Enhance logical decoding APIs to handle two-phase commits (Ajin Cherian, Amit Kapila, Nikhil Sontakke, Stas Kelvich) - + + Enhance logical decoding APIs to handle two-phase commits (Ajin + Cherian, Amit Kapila, Nikhil Sontakke, Stas Kelvich) + - -This is controlled via pg_create_logical_replication_slot(). - - + + This is controlled via pg_create_logical_replication_slot(). + + - + - -Generate WAL invalidations message during command completion when using logical replication (Dilip Kumar, Tomas Vondra, Amit Kapila) - + + Generate WAL invalidations message during + command completion when using logical replication (Dilip Kumar, + Tomas Vondra, Amit Kapila) + - -When logical replication is disabled, WAL invalidation messages are generated at transaction completion. This allows logical streaming of in-progress transactions. - - + + When logical replication is disabled, WAL + invalidation messages are generated at transaction completion. + This allows logical streaming of in-progress transactions. + + - + - -Allow logical decoding to more efficiently process cache invalidation messages (Dilip Kumar) - + + Allow logical decoding to more efficiently process cache + invalidation messages (Dilip Kumar) + - -This allows logical decoding to work efficiently in presence of a large amount of DDL. - - + + This allows logical decoding + to work efficiently in presence of a large amount of + DDL. + + - + - -Allow control over whether logical decoding messages are sent to the replication stream (David Pirotte, Euler Taveira) - - + + Allow control over whether logical decoding messages are sent to + the replication stream (David Pirotte, Euler Taveira) + + - + - -Allow logical replication subscriptions to use binary transfer mode (Dave Cramer) - + + Allow logical replication subscriptions to use binary transfer mode + (Dave Cramer) + - -This is faster than text mode, but slightly less robust. - - + + This is faster than text mode, but slightly less robust. + + - + - -Allow logical decoding to be filtered by xid (Markus Wanner) - - + + Allow logical decoding to be filtered by xid (Markus Wanner) + + @@ -1820,67 +2100,76 @@ Allow logical decoding to be filtered by xid (Markus Wanner) - + - -Reduce the number of keywords that can't be used as column labels without AS (Mark Dilger) - + + Reduce the number of keywords that can't be used as column labels + without AS (Mark Dilger) + - -There are now 90% fewer restricted keywords. - - + + There are now 90% fewer restricted keywords. + + - + - -Allow an alias to be specified for JOIN's USING clause (Peter Eisentraut) - + + Allow an alias to be specified for JOIN's + USING clause (Peter Eisentraut) + - -The alias is created by using AS after the USING clause and represents an alias for the USING columns. - - + + The alias is created by using AS after the + USING clause and represents an alias for the + USING columns. + + - + - -Allow DISTINCT to be added to GROUP BY to remove duplicate GROUPING SET combinations (Vik Fearing) - + + Allow DISTINCT to be added to GROUP + BY to remove duplicate GROUPING SET + combinations (Vik Fearing) + - -For example, GROUP BY CUBE (a,b), CUBE (b,c) will generate duplicate grouping combinations without DISTINCT. - - + + For example, GROUP BY CUBE (a,b), CUBE (b,c) + will generate duplicate grouping combinations without + DISTINCT. + + - + - -Properly handle DEFAULT values for columns in multi-column inserts (Dean Rasheed) - + + Properly handle DEFAULT values for columns in + multi-column inserts (Dean Rasheed) + - -This used to throw an error. - - + + This used to throw an error. + + - + - -Add SQL-standard SEARCH and CYCLE clauses for common table expressions (Peter Eisentraut) - + + Add SQL-standard SEARCH + and CYCLE clauses for common table expressions (Peter + Eisentraut) + - -This could be accomplished previously using existing syntax. - - + + This could be accomplished previously using existing syntax. + + - + - -Allow the WHERE clause of ON CONFLICT to be table-qualified (Tom Lane) - + + Allow the WHERE clause of ON + CONFLICT to be table-qualified (Tom Lane) + - -Only the target table can be referenced. - - + + Only the target table can be referenced. + + @@ -1921,126 +2214,152 @@ Only the target table can be referenced. - + - -Allow REFRESH MATERIALIZED VIEW to use parallelism (Bharath Rupireddy) - - + + Allow REFRESH + MATERIALIZED VIEW to use parallelism (Bharath + Rupireddy) + + - + - -Allow REINDEX to change the tablespace of the new index (Alexey Kondratov, Michael Paquier, Justin Pryzby) - + + Allow REINDEX + to change the tablespace of the new index (Alexey Kondratov, + Michael Paquier, Justin Pryzby) + - -This is done by specifying a TABLESPACE clause. - - + + This is done by specifying a TABLESPACE clause. + + - + - -Allow REINDEX to process all child tables or indexes of a partitioned relation (Justin Pryzby, Michael Paquier) - - + + Allow REINDEX to process all child tables or + indexes of a partitioned relation (Justin Pryzby, Michael Paquier) + + - + - -Improve the performance of COPY FROM in binary mode (Bharath Rupireddy, Amit Langote) - - + + Improve the performance of COPY + FROM in binary mode (Bharath Rupireddy, Amit + Langote) + + - + - -Preserve SQL standard syntax in view definitions, if possible (Tom Lane) - + + Preserve SQL standard syntax in view definitions, if possible + (Tom Lane) + - -Previously non-function call SQL standard syntax, e.g. EXTRACT, were converted to non-SQL standard function calls. - - + + Previously non-function call + SQL standard syntax, e.g. EXTRACT, + were converted to non-SQL standard function + calls. + + - + - -Add the SQL-standard clause GRANTED BY to GRANT and REVOKE (Peter Eisentraut) - - + + Add the SQL-standard + clause GRANTED BY to GRANT and REVOKE (Peter + Eisentraut) + + - + - -Add OR REPLACE for CREATE TRIGGER (Takamichi Osumi) - + + Add OR REPLACE for CREATE TRIGGER + (Takamichi Osumi) + - -This allows pre-existing triggers to be conditionally replaced. - - + + This allows pre-existing triggers to be conditionally replaced. + + - + - -Allow TRUNCATE to operate on foreign tables (Kazutaka Onishi, Kohei KaiGai) - + + Allow TRUNCATE to + operate on foreign tables (Kazutaka Onishi, Kohei KaiGai) + - -The postgres_fdw module also now supports this. - - + + The postgres_fdw + module also now supports this. + + - + - -Allow publications to be more easily added and removed (Japin Li) - + + Allow publications to be more easily added and removed (Japin Li) + - -The new syntax is ALTER SUBSCRIPTION ... ADD/DROP PUBLICATION. This avoids having to specify all publications to add/remove entries. - - + + The new syntax is ALTER SUBSCRIPTION + ... ADD/DROP PUBLICATION. This avoids having to + specify all publications to add/remove entries. + + - + - -Add primary keys, unique constraints, and foreign keys to system catalogs (Peter Eisentraut) - + + Add primary keys, unique constraints, and foreign keys to system catalogs (Peter Eisentraut) + - -This helps GUI tools analyze the system tables. - - + + This helps GUI tools analyze the system tables. + + - + - -Allow CURRENT_ROLE every place CURRENT_USER is accepted (Peter Eisentraut) - - + + Allow CURRENT_ROLE + every place CURRENT_USER is accepted (Peter + Eisentraut) + + @@ -2077,23 +2400,26 @@ Allow CURRENT_ROLE ever - + - -Allow extensions and built-in data types to implement subscripting (Dmitry Dolgov) - + + Allow extensions and built-in data types to implement subscripting (Dmitry Dolgov) + - -Previously subscript handling was hard-coded into the server, so that subscripting could only be applied to array types. This change allows subscript notation to be used to extract or -assign portions of a value of any type for which the concept makes sense. - - + + Previously subscript handling was hard-coded into the server, so + that subscripting could only be applied to array types. This change + allows subscript notation to be used to extract or assign portions + of a value of any type for which the concept makes sense. + + - + - -Allow subscripting of JSONB (Dmitry Dolgov) - + + Allow subscripting of JSONB (Dmitry Dolgov) + - -JSONB subscripting can be used to extract and assign to portions of JSONB documents. - - + + JSONB subscripting can be used to extract and assign + to portions of JSONB documents. + + - + - -Add support for multirange data types (Paul Jungwirth, Alexander Korotkov) - + + Add support for multirange data + types (Paul Jungwirth, Alexander Korotkov) + - -These are like range data types, but they allow the specification of multiple, ordered, non-overlapping ranges. -All existing range types now also support multirange versions. - - + + These are like range data types, but they allow the specification + of multiple, ordered, non-overlapping ranges. All existing range + types now also support multirange versions. + + - + - -Add point operators <<| and |>> to be strictly above/below geometry (Emre Hasegeli) - + + Add point operators + <<| and |>> to be strictly above/below geometry + (Emre Hasegeli) + - -Previously >^ and <^ were marked as performing this test, but non-point geometric operators used these operators for non-strict comparisons, leading to confusion. The old operators still exist but will be eventually removed. ACCURATE? - - + + Previously >^ and <^ were marked as performing this test, but + non-point geometric operators used these operators for non-strict + comparisons, leading to confusion. The old operators still exist + but will be eventually removed. ACCURATE? + + - + - -Add support for the stemming of languages Armenian, Basque, Catalan, Hindi, Serbian, and Yiddish (Peter Eisentraut) - - + + Add support for the stemming of + languages Armenian, Basque, Catalan, Hindi, Serbian, and Yiddish + (Peter Eisentraut) + + - + - -Allow tsearch data files to have unlimited line lengths (Tom Lane) - + + Allow tsearch data + files to have unlimited line lengths (Tom Lane) + - -The previous limit was 4k bytes. Also remove function t_readline(). - - + + The previous limit was 4k bytes. Also remove function + t_readline(). + + - + - -Add support for infinity and -infinity values to the numeric data type (Tom Lane) - + + Add support for infinity and -infinity values + to the numeric data type + (Tom Lane) + - -Floating point data types already supported these. - - + + Floating point data types already supported these. + + - + - -Improve the accuracy of floating point computations involving infinity (Tom Lane) - - + + Improve the accuracy of floating point computations involving + infinity (Tom Lane) + + - + - -Have non-zero float values divided by infinity return zero (Kyotaro Horiguchi) - + + Have non-zero float values + divided by infinity return zero (Kyotaro Horiguchi) + - -Previously such operations produced underflow errors. - - + + Previously such operations produced underflow errors. + + - + - -Cause floating-point division of NaN by zero to return NaN (Tom Lane) - + + Cause floating-point division of NaN by zero to return NaN + (Tom Lane) + - -Previously this returned an error. Division with Numerics always returned NaN. - - + + Previously this returned an error. Division with Numerics always + returned NaN. + + - + - -Add operators to add and subtract LSN and numeric (byte) values (Fujii Masao) - - + + Add operators to add and subtract LSN and numeric + (byte) values (Fujii Masao) + + - + - -Allow binary data transfer to be more forgiving of array and record OID mismatches (Tom Lane) - - + + Allow binary data + transfer to be more forgiving of array and record + OID mismatches (Tom Lane) + + - + - -Create composite array types for most system relations (Wenjing Zeng) - - + + Create composite array types for most system relations (Wenjing + Zeng) + + @@ -2275,22 +2626,26 @@ Create composite array types for most system relations (Wenjing Zeng) - + - -Allow SQL-language functions and procedures to use SQL-standard function bodies (Peter Eisentraut) - + + Allow SQL-language functions and procedures to use + SQL-standard function bodies (Peter Eisentraut) + - -Previously only single-quoted or $$-quoted function bodies were supported. - - + + Previously only single-quoted or $$-quoted function bodies were + supported. + + - + - -Allow procedures to have OUT parameters (Peter Eisentraut) - - + + Allow procedures to have + OUT parameters (Peter Eisentraut) + + - + - -Allow some array functions to operate on a mix of compatible data types (Tom Lane) - + + Allow some array functions to operate on a mix of compatible data + types (Tom Lane) + - -The functions are array_append(), array_prepend(), array_cat(), array_position(), -array_positions(), array_remove(), array_replace(), and -width_bucket(). Previously only identical data types could be used. - - + + The functions are array_append(), + array_prepend(), + array_cat(), + array_position(), + array_positions(), + array_remove(), + array_replace(), and width_bucket(). + Previously only identical data types could be used. + + - + - -Add SQL-standard trim_array() function (Vik Fearing) - + + Add SQL-standard trim_array() + function (Vik Fearing) + - -This can already be done with array slices. - - + + This can already be done with array slices. + + - + - -Add bytea equivalents of ltrim() and rtrim() (Joel Jacobson) - - + + Add bytea equivalents of ltrim() + and rtrim() (Joel Jacobson) + + - + - -Support negative indexes in split_part() (Nikhil Benesch) - + + Support negative indexes in split_part() + (Nikhil Benesch) + - -Negative values start from the last field and count backward. - - + + Negative values start from the last field and count backward. + + - + - -Add string_to_table() function to split a string on delimiters (Pavel Stehule) - + + Add string_to_table() + function to split a string on delimiters (Pavel Stehule) + - -This is similar to the regexp_split_to_table() function. - - + + This is similar to the regexp_split_to_table() + function. + + - + - -Add unistr() function to allow Unicode characters to be specified as backslash-hex escapes in strings (Pavel Stehule) - + + Add unistr() + function to allow Unicode characters to be specified as + backslash-hex escapes in strings (Pavel Stehule) + - -This is similar to how Unicode can be specified in literal string. - - + + This is similar to how Unicode can be specified in literal string. + + - + - -Add bit_xor() XOR aggregate function (Alexey Bashtanov) - - + + Add bit_xor() + XOR aggregate function (Alexey Bashtanov) + + - + - -Add function bit_count() to return the number of bits set in a bit or byte string (David Fetter) - - + + Add function bit_count() + to return the number of bits set in a bit or byte string (David + Fetter) + + - + - -Add date_bin() function (John Naylor) - + + Add date_bin() + function (John Naylor) + - -The function date_bin() "bins" the input timestamp into a specified interval aligned with a specified origin. - - + + The function date_bin() "bins" the input + timestamp into a specified interval aligned with a specified origin. + + - + - -Allow make_timestamp()/make_timestamptz() to accept negative years (Peter Eisentraut) - + + Allow make_timestamp()/make_timestamptz() + to accept negative years (Peter Eisentraut) + - -They are interpreted as BC years. - - + + They are interpreted as BC years. + + - + - -Add newer regular expression substring() syntax (Peter Eisentraut) - + + Add newer regular expression substring() + syntax (Peter Eisentraut) + - -The new syntax is SUBSTRING(text SIMILAR pattern ESCAPE escapechar). The previous standard syntax was SUBSTRING(text FROM pattern FOR escapechar), and is still supported by Postgres. - - + + The new syntax is SUBSTRING(text SIMILAR pattern ESCAPE + escapechar). The previous standard syntax was + SUBSTRING(text FROM pattern FOR escapechar), + and is still supported by Postgres. + + - + - -Allow complemented character class escapes \D, \S, and \W within regex brackets (Tom Lane) - - + + Allow complemented character class escapes \D, \S, + and \W within regex brackets (Tom Lane) + + - + - -Add [[:word:]] as a character class to match \w (Tom Lane) - - + + Add [[:word:]] + as a character class to match \w (Tom Lane) + + - + - -Allow more flexible data types for default values of lead() and lag() window functions (Vik Fearing) - - + + Allow more flexible data types for default values of lead() + and lag() window functions (Vik Fearing) + + - + - -Cause exp() and power() for negative-infinity exponents to return zero (Tom Lane) - + + Cause exp() and + power() for negative-infinity exponents to + return zero (Tom Lane) + - -Previously they often returned underflow errors. - - + + Previously they often returned underflow errors. + + - + - -Mark built-in type coercion functions as leakproof where possible (Tom Lane) - + + Mark built-in type coercion functions as leakproof where possible + (Tom Lane) + - -This allows more use of functions that require type conversion in security-sensitive situations. - - + + This allows more use of functions that require type conversion in + security-sensitive situations. + + - + - -Mark pg_stat_get_subscription() as returning a set (Tom Lane) - + + Mark pg_stat_get_subscription() as returning + a set (Tom Lane) + - -While it worked in previous releases, it didn't report proper optimizer statistics and couldn't be used in the target list. FUNCTION NOT DOCUMENTED. - - + + While it worked in previous releases, it didn't report proper + optimizer statistics and couldn't be used in the target list. + FUNCTION NOT DOCUMENTED. + + - + - -Prevent inet_server_addr() and inet_server_port() from being run by parallel workers (Masahiko Sawada) - - + + Prevent inet_server_addr() + and inet_server_port() from being run by + parallel workers (Masahiko Sawada) + + - + - -Change pg_describe_object(), pg_identify_object(), and -pg_identify_object_as_address() to always report helpful error messages for non-existent objects (Michael Paquier) - - + + Change pg_describe_object(), + pg_identify_object(), and + pg_identify_object_as_address() to always report + helpful error messages for non-existent objects (Michael Paquier) + + @@ -2574,42 +2986,50 @@ Change pg_describe_object()< - + - -Improve PL/pgSQL's expression and assignment parsing (Tom Lane) - + + Improve PL/pgSQL's expression and assignment parsing + (Tom Lane) + - -This adds nested record and array slicing support. - - + + This adds nested record and array slicing support. + + - + - -Allow plpgsql's RETURN QUERY to execute its query using parallelism (Tom Lane) - - + + Allow plpgsql's RETURN + QUERY to execute its query using parallelism + (Tom Lane) + + - + - -Improve performance of repeated CALLs within plpgsql procedures (Pavel Stehule, Tom Lane) - - + + Improve performance of repeated CALLs within plpgsql + procedures (Pavel Stehule, Tom Lane) + + @@ -2620,22 +3040,24 @@ Improve performance of repeated CALL - + - -Add pipeline mode to libpq (Craig Ringer, Matthieu Garrigues, Álvaro Herrera) - + + Add pipeline mode + to libpq (Craig Ringer, Matthieu Garrigues, Álvaro Herrera) + - -This allows multiple queries to be sent and only wait for completion when a specific synchronization message is sent. - - + + This allows multiple queries to be sent and only wait for completion + when a specific synchronization message is sent. + + - + - -Enhance libpq's parameter options (Haribabu Kommi, Greg Nancarrow, Vignesh C, Tom Lane) - + + Enhance libpq's + parameter options (Haribabu Kommi, Greg Nancarrow, Vignesh C, + Tom Lane) + - -New options are read-only, primary, standby, and prefer-standby. - - + + New options are read-only, + primary, standby, and + prefer-standby. + + - + - -Improve the output format of libpq's PQtrace() (Aya Iwata, Álvaro Herrera) - - + + Improve the output format of libpq's PQtrace() + (Aya Iwata, Álvaro Herrera) + + - + - -Allow the libpq service file to have unlimited line lengths (Daniel Gustafsson) - + + Allow the libpq service file + to have unlimited line lengths (Daniel Gustafsson) + - -The previous limit was 255 bytes. - - + + The previous limit was 255 bytes. + + - + - -Allow an ECPG SQL identifier to be linked to a specific connection (Hayato Kuroda) - + + Allow an ECPG SQL identifier to be linked to + a specific connection (Hayato Kuroda) + - -This is done via DECLARE ... STATEMENT. - - + + This is done via DECLARE + ... STATEMENT. + + @@ -2702,175 +3135,201 @@ This is done via DECLARE ... - + - -Allow reindexdb to change the tablespace of the new index (Michael Paquier) - + + Allow reindexdb + to change the tablespace of the new index (Michael Paquier) + - -This is done by specifying . - - + + This is done by specifying . + + - + - -Allow vacuumdb to skip index cleanup and truncation (Nathan Bossart) - + + Allow vacuumdb + to skip index cleanup and truncation (Nathan Bossart) + - -The options are and . - - + + The options are and + . + + - + - -Allow pg_dump to dump only certain extensions (Guillaume Lelarge) - + + Allow pg_dump + to dump only certain extensions (Guillaume Lelarge) + - -This is controlled by option . - - + + This is controlled by option . + + - + - -Add pgbench permute() function to randomly shuffle values (Fabien Coelho, Hironobu Suzuki, Dean Rasheed) - - + + Add pgbench + permute() function to randomly shuffle values + (Fabien Coelho, Hironobu Suzuki, Dean Rasheed) + + - + - -Allow multiple verbose option specifications () to increase the logging verbosity (Tom Lane) - + + Allow multiple verbose option specifications () + to increase the logging verbosity (Tom Lane) + - -This is now supported by pg_dump, pg_dumpall, -and pg_restore. - - + + This is now supported by pg_dump, + pg_dumpall, + and pg_restore. + + - <xref linkend="app-psql"/> + <xref linkend="app-psql"/> - + - -Allow psql's \df and \do commands to specify function and operator argument types (Greg Sabino Mullane, Tom Lane) - + + Allow psql's \df and \do commands to + specify function and operator argument types (Greg Sabino Mullane, + Tom Lane) + - -This helps reduce the number of matches for overloaded entries. - - + + This helps reduce the number of matches for overloaded entries. + + - + - -Add an access method column to psql's \d[i|m|t]+ output (Georgios Kokolatos) - - + + Add an access method column to psql's + \d[i|m|t]+ output (Georgios Kokolatos) + + - + - -Allow psql's \dt and \di to show TOAST tables and their indexes (Justin Pryzby) - - + + Allow psql's \dt and \di to show + TOAST tables and their indexes (Justin Pryzby) + + - + - -Add psql command \dX to list extended statistics objects (Tatsuro Yamada) - - + + Add psql command \dX to list extended + statistics objects (Tatsuro Yamada) + + - + - -Fix psql's \dT to understand array syntax and backend grammar aliases, like "int" for "integer" (Greg Sabino Mullane, Tom Lane) - - + + Fix psql's \dT to understand array + syntax and backend grammar aliases, like "int" for "integer" + (Greg Sabino Mullane, Tom Lane) + + - + - -When editing the previous query or a file with psql's \e, or using \ef and \ev, ignore the contents if the editor exits without saving (Laurenz Albe) - + + When editing the previous query or a file with + psql's \e, or using \ef and \ev, ignore + the contents if the editor exits without saving (Laurenz Albe) + - -Previously, such edits would still execute the editor contents. - - + + Previously, such edits would still execute the editor contents. + + - + - -Improve psql's handling of \connect with (Tom Lane) - + + Improve psql's handling of \connect + with (Tom Lane) + - -Specifically, properly reuse the password previously specified, and prompt for a new password if the previous one failed. - - + + Specifically, properly reuse the password previously specified, + and prompt for a new password if the previous one failed. + + - + - -Improve tab completion (Vignesh C, Michael Paquier, Justin Pryzby, Georgios Kokolatos, Julien Rouhaud, ADD NAMES) - - + + Improve tab completion (Vignesh C, Michael Paquier, Justin Pryzby, + Georgios Kokolatos, Julien Rouhaud, ADD NAMES) + + @@ -2926,61 +3386,74 @@ Improve tab completion (Vignesh C, Michael Paquier, Justin Pryzby, Georgios Koko - + - -Add command-line utility pg_amcheck to simplify running contrib/amcheck operations on many relations (Mark Dilger) - - + + Add command-line utility pg_amcheck + to simplify running contrib/amcheck operations on many relations + (Mark Dilger) + + - + - -Add option to initdb (Magnus Hagander) - + + Add option to initdb + (Magnus Hagander) + - -This removes the server start instructions that are normally output. - - + + This removes the server start instructions that are normally output. + + - + - -Stop pg_upgrade from creating analyze_new_cluster script (Michael Paquier) - + + Stop pg_upgrade + from creating analyze_new_cluster script + (Michael Paquier) + - -Instead, give comparable vacuumdb instructions. - - + + Instead, give comparable vacuumdb + instructions. + + - + - -Remove support for the postmaster option (Magnus Hagander) - + + Remove support for the postmaster + option (Magnus Hagander) + - -This option was unnecessary since all passed options could already be specified directly. - - + + This option was unnecessary since all passed options could already + be specified directly. + + @@ -2991,87 +3464,101 @@ This option was unnecessary since all passed options could already be specified - + - -Rename "Default Roles" to "Predefined Roles" (Bruce Momjian, Stephen Frost) - - + + Rename "Default Roles" to "Predefined Roles" (Bruce Momjian, + Stephen Frost) + + - + - -Add documentation for the factorial() function (Peter Eisentraut) - + + Add documentation for the factorial() + function (Peter Eisentraut) + - -With the removal of the ! operator in this release, factorial() is the only built-in way to compute a factorial. - - + + With the removal of the ! operator in this release, + factorial() is the only built-in way to compute + a factorial. + + - + - + - - Source Code + + Source Code - + - + - -Add configure option --with-ssl={openssl} to behave like (Daniel Gustafsson, Michael Paquier) - + + Add configure option --with-ssl={openssl} + to behave like (Daniel Gustafsson, + Michael Paquier) + - -The option is kept for compatibility. - - + + The option is kept for + compatibility. + + - + - -Add support for abstract Unix-domain sockets (Peter Eisentraut) - + + Add support for abstract + Unix-domain sockets (Peter Eisentraut) + - -This is currently supported on Linux and Windows. - - + + This is currently supported on Linux + and Windows. + + - + - -Add to control cache overwriting (Craig Ringer) - + + Add + to control cache overwriting (Craig Ringer) + - -Previously this could only be controlled at compile time and is enabled only in assert builds. - - + + Previously this could only be controlled at compile time and is + enabled only in assert builds. + + - + - -Various improvements in valgrind detection (Álvaro Herrera, Peter Geoghegan) - - + + Various improvements in valgrind + detection (Álvaro Herrera, Peter Geoghegan) + + - + - -Add a test module for the regular expression package (Tom Lane) - - + + Add a test module for the regular expression package (Tom Lane) + + - + - -Add support for LLVM version 12 (Andres Freund) - - + + Add support for LLVM version 12 + (Andres Freund) + + - + - -Change SHA1, SHA2, and MD5 hash computations to use the OpenSSL EVP API (Michael Paquier) - + + Change SHA1, SHA2, and MD5 hash computations to use the + OpenSSL EVP API + (Michael Paquier) + - -This is more modern and supports FIPS mode. - - + + This is more modern and supports FIPS mode. + + - + - -Remove build control over the random library used (Daniel Gustafsson) - - + + Remove build control over the random library used (Daniel + Gustafsson) + + - + - -Add direct conversion routines between EUC_TW and Big5 (Heikki Linnakangas) - - + + Add direct conversion routines between EUC_TW and Big5 (Heikki + Linnakangas) + + - + - -Add collation versions for FreeBSD (Thomas Munro) - - + + Add collation versions for FreeBSD + (Thomas Munro) + + - + - -Add amadjustmembers to the index access method API (Tom Lane) - + + Add amadjustmembers + to the index access method API (Tom Lane) + - -REMOVE? - - + + REMOVE? + + @@ -3186,96 +3682,111 @@ REMOVE? - + - -Allow subscripting of hstore values (Tom Lane, Dmitry Dolgov) - - + + Allow subscripting of hstore values + (Tom Lane, Dmitry Dolgov) + + - + - -Allow GiST/GIN pg_trgm indexes to do equality lookups (Julien Rouhaud) - + + Allow GiST/GIN pg_trgm indexes + to do equality lookups (Julien Rouhaud) + - -This is similar to LIKE except no wildcards are honored. - - + + This is similar to LIKE except no wildcards + are honored. + + - + - -Allow the cube data type to be transferred in binary mode (KaiGai Kohei) - - + + Allow the cube data type + to be transferred in binary mode (KaiGai Kohei) + + - + - -Allow pgstattuple_approx() to report on TOAST tables (Peter Eisentraut) - - + + Allow pgstattuple_approx() to report on + TOAST tables (Peter Eisentraut) + + - + - -Add contrib module pg_surgery which allows changes to row visibility (Ashutosh Sharma) - + + Add contrib module pg_surgery + which allows changes to row visibility (Ashutosh Sharma) + - -This is useful for correcting database corruption. - - + + This is useful for correcting database corruption. + + - + - -Add contrib module old_snapshot to report the XID/time mapping used by an active (Robert Haas) - - + + Add contrib module old_snapshot + to report the XID/time mapping used by an active + (Robert Haas) + + - + - -Allow amcheck to also check heap pages (Mark Dilger) - + + Allow amcheck to + also check heap pages (Mark Dilger) + - -Previously it only checked B-Tree index pages. - - + + Previously it only checked B-Tree index pages. + + - + - -Allow pageinspect to inspect GiST indexes (Andrey Borodin, Heikki Linnakangas) - - + + Allow pageinspect + to inspect GiST indexes (Andrey Borodin, Heikki Linnakangas) + + - + - -Change pageinspect block numbers to be bigints (Peter Eisentraut) - - + + Change pageinspect block numbers + to be bigints + (Peter Eisentraut) + + - + - -Mark btree_gist functions as parallel safe (Steven Winfield) - - + + Mark btree_gist + functions as parallel safe (Steven Winfield) + + - + - - <link linkend="pgstatstatements">pg_stat_statements</link> + + <link linkend="pgstatstatements">pg_stat_statements</link> - + - + - -Move query hash computation from pg_stat_statements to the core server (Julien Rouhaud) - + + Move query hash computation from + pg_stat_statements to the core server + (Julien Rouhaud) + - -The new server variable 's default of auto will automatically enable query id computation when this extension is loaded. - - + + The new server variable 's + default of auto will automatically enable query + id computation when this extension is loaded. + + - + - -Allow pg_stat_statements to track top and nested statements independently (Julien Rohaud) - + + Allow pg_stat_statements to track top + and nested statements independently (Julien Rohaud) + - -Previously, when tracking all statements, identical top and nested statements were tracked together. - - + + Previously, when tracking all statements, identical top and nested + statements were tracked together. + + - + - -Add row counts for utility commands to pg_stat_statements> (Fujii Masao, Katsuragi Yuta, Seino Yuki) - - + + Add row counts for utility commands to + pg_stat_statements> (Fujii Masao, Katsuragi + Yuta, Seino Yuki) + + - + - -Add pg_stat_statements_info system view to show pg_stat_statements activity (Katsuragi Yuta, Yuki Seino, Naoki Nakamichi) - - + + Add pg_stat_statements_info system view + to show pg_stat_statements activity + (Katsuragi Yuta, Yuki Seino, Naoki Nakamichi) + + @@ -3382,7 +3909,7 @@ Add pg_stat_statements_info system view to show - + - -Allow postgres_fdw to INSERT rows in bulk (Takayuki Tsunakawa, Tomas Vondra, Amit Langote) - - + + Allow postgres_fdw to + INSERT rows in bulk (Takayuki Tsunakawa, Tomas + Vondra, Amit Langote) + + - + - -Allow postgres_fdw to import table partitions if specified by IMPORT FOREIGN SCHEMA ... LIMIT TO (Matthias van de Meent) - + + Allow postgres_fdw + to import table partitions if specified by IMPORT FOREIGN SCHEMA + ... LIMIT TO (Matthias van de Meent) + - -By default, only the root of partitioned tables is imported. - - + + By default, only the root of partitioned tables is imported. + + - + - -Add postgres_fdw function postgres_fdw_get_connections() to report open foreign server connections (Bharath Rupireddy) - - + + Add postgres_fdw function + postgres_fdw_get_connections() to report open + foreign server connections (Bharath Rupireddy) + + - + - -Allow control over whether foreign servers keep connections open after transaction completion (Bharath Rupireddy) - + + Allow control over whether foreign servers keep connections open + after transaction completion (Bharath Rupireddy) + - -This is controlled by keep_connections and defaults to on. - - + + This is controlled by keep_connections and + defaults to on. + + - + - -Allow postgres_fdw to reestablish foreign server connections if necessary (Bharath Rupireddy) - + + Allow postgres_fdw to reestablish + foreign server connections if necessary (Bharath Rupireddy) + - -Previously foreign server restarts could cause foreign table access errors. - - + + Previously foreign server restarts could cause foreign table + access errors. + + - + - -Add postgres_fdw functions to discard cached connections (Bharath Rupireddy) - - + + Add postgres_fdw functions to discard + cached connections (Bharath Rupireddy) + + @@ -3476,9 +4015,9 @@ Add postgres_fdw functions to discard cached connecti Acknowledgments - The following individuals (in alphabetical order) have contributed to this - release as patch authors, committers, reviewers, testers, or reporters of - issues. + The following individuals (in alphabetical order) have contributed + to this release as patch authors, committers, reviewers, testers, + or reporters of issues.