doc: PG 14 release notes, reorder items by significance
authorBruce Momjian
Fri, 14 May 2021 01:16:34 +0000 (21:16 -0400)
committerBruce Momjian
Fri, 14 May 2021 01:16:42 +0000 (21:16 -0400)
doc/src/sgml/release-14.sgml

index a27f50accfdc7a5f45a0b520a5562674174c3d7d..2b2cb84c39b6ae307e0504745819e1d47c004368 100644 (file)
@@ -62,19 +62,24 @@ Prevent the containment operators (<@ and @>) for contrib/intarray from us
 
 
 
-Previously a full GiST index scan was required, so just avoid that and scan the heap, which is faster.
-EXISTING INDEXES?  REMOVE?
+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.
 
 
 
 
 
 
 
-Disallow single-quoting of the language name in the CREATE/DROP LANGUAGE command (Peter Eisentraut)
+Remove deprecated containment operators @ and ~ for built-in geometric data types and contrib modules cube, hstore, intarray, and seg (Justin Pryzby)
+
+
+
+The more consistent <@ and @> have been recommended for many years.
 
 
 
@@ -114,6 +119,8 @@ Previously, quoted text that contained multiple adjacent discarded tokens were t
 
 
 
@@ -122,276 +129,270 @@ Change the default of the password_encryption server parameter to scram-sha-256
 
 
 Previously it was md5.  All new passwords will be stored as SHA256 unless this server variable is changed or the password is already md5-hashed.
-Also, the legacy (and undocumented) boolean-like values which were previously synonyms of md5 are no longer accepted.
+Also, the legacy (and undocumented) boolean-like values which were previously synonyms for md5 are no longer accepted.
 
 
 
 
 
 
 
-Change EXTRACT to return the NUMERIC data type (Peter Eisentraut)
+Overhaul the specification of clientcert in pg_hba.conf (Kyotaro Horiguchi)
 
 
 
-EXTRACT(date) now throws an error for units that are not part of the date data type.
+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.
 
 
 
 
 
 
 
-Pass doubled quote marks in ecpg SQL command strings literally (Tom Lane)
+Remove support for SSL compression (Daniel Gustafsson, Michael Paquier)
 
 
 
-Previously 'abc''def' was passed to the server as 'abc'def';  "abc""def" was passed as "abc"def".
+This was already disabled by default in previous Postgres releases, and most modern OpenSSL and TLS versions no longer support it.
 
 
 
 
 
 
 
-Prevent tablefunc's function normal_rand() from accepting negative values (Ashutosh Bapat)
+Remove server and libpq support for the version 2 wire protocol (Heikki Linnakangas)
 
 
 
-Negative values produced undesirable results.
+This was last used as the default in Postgres 7.2 (year 2002).
 
 
 
 
 
 
 
-Fix handling of infinite window function ranges (Tom Lane)
+Change EXTRACT to return the NUMERIC data type (Peter Eisentraut)
 
 
 
-Previously window frame clauses like 'inf' PRECEDING AND 'inf' FOLLOWING returned incorrect results.
+EXTRACT(date) now throws an error for units that are not part of the date data type.
 
 
 
 
 
 
 
-Change var_samp() and stddev_samp() with numeric parameters to return NULL for a single NaN value (Tom Lane)
+Fix handling of infinite window function ranges (Tom Lane)
 
 
 
-Previously NaN was returned.
+Previously window frame clauses like 'inf' PRECEDING AND 'inf' FOLLOWING returned incorrect results.
 
 
 
 
 
 
 
-Remove support for SSL compression (Daniel Gustafsson, Michael Paquier)
+Prevent tablefunc's function normal_rand() from accepting negative values (Ashutosh Bapat)
 
 
 
-This was already disabled by default in previous Postgres releases, and most modern OpenSSL and TLS versions no longer support it.
+Negative values produced undesirable results.
 
 
 
 
 
 
 
-Remove deprecated containment operators @ and ~ for built-in geometric data types and contrib modules cube, hstore, intarray, and seg (Justin Pryzby)
+Change var_samp() and stddev_samp() with numeric parameters to return NULL for a single NaN value (Tom Lane)
 
 
 
-The more consistent <@ and @> have been recommended for many years.
+Previously NaN was returned.
 
 
 
 
 
 
 
-Remove server and libpq support for the version 2 wire protocol (Heikki Linnakangas)
+Remove factorial operators ! and !! (Mark Dilger)
 
 
 
-This was last used as the default in Postgres 7.2 (year 2002).
+The factorial() function is still supported.  Also remove function numeric_fac().
 
 
 
 
 
 
 
-Improve handling of regular expression back-references (Tom Lane)
+Disallow factorial() of negative numbers (Peter Eisentraut)
 
 
 
-For example, disregard ^ in its expansion in \1 in "(^\d+).*\1".
+Previously such cases returned 1.
 
 
 
 
 
 
 
-Allow \D and \W shorthands to match newlines in newline-sensitive mode (Tom Lane)
+Remove support for postfix (right-unary) operators (Mark Dilger)
 
 
 
-Previously they did not match;  [^[:digit:]] or [^[:word:]] can be used to get the old behavior.
+pg_dump and pg_upgrade will warn if postfix operators are being dumped.
 
 
 
 
 
 
 
-Disallow \w as range start/end in character classes (Tom Lane)
+Allow \D and \W shorthands to match newlines in newline-sensitive mode (Tom Lane)
 
 
 
-This previously was allowed but produced incorrect results.
+Previously they did not match;  [^[:digit:]] or [^[:word:]] can be used to get the old behavior.
 
 
 
 
 
 
 
-Force custom server variable names to match the pattern used for unquoted SQL identifiers (Tom Lane)
+Improve handling of regular expression back-references (Tom Lane)
+
+
+
+For example, disregard ^ in its expansion in \1 in "(^\d+).*\1".
 
 
 
 
 
 
 
-Return false for has_column_privilege() checks on non-existent or dropped columns when using attribute numbers (Joe Conway)
+Disallow \w as range start/end in character classes (Tom Lane)
 
 
 
-Previously such attribute numbers returned an invalid column error.
+This previously was allowed but produced incorrect results.
 
 
 
 
 
 
 
-Remove contrib program pg_standby (Justin Pryzby)
+Force custom server variable names to match the pattern used for unquoted SQL identifiers (Tom Lane)
 
 
 
 
 
 
 
-Overhaul the specification of clientcert in  pg_hba.conf (Kyotaro Horiguchi)
+Return false for has_column_privilege() checks on non-existent or dropped columns when using attribute numbers (Joe Conway)
 
 
 
-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.
+Previously such attribute numbers returned an invalid column error.
 
 
 
 
 
 
 
-Remove factorial operators ! and !! (Mark Dilger)
+Pass doubled quote marks in ecpg SQL command strings literally (Tom Lane)
 
 
 
-The factorial() function is still supported.  Also remove function numeric_fac().
+Previously 'abc''def' was passed to the server as 'abc'def', and "abc""def" was passed as "abc"def".
 
 
 
 
 
 
 
-Disallow factorial() of negative numbers (Peter Eisentraut)
-
-
-
-Previously such cases returned 1.
+Disallow single-quoting of the language name in the CREATE/DROP LANGUAGE command (Peter Eisentraut)
 
 
 
 
 
 
 
-Remove support for postfix (right-unary) operators (Mark Dilger)
-
-
-
-pg_dump and pg_upgrade will warn if postfix operators are being dumped.
+Remove contrib program pg_standby (Justin Pryzby)
 
 
 
@@ -419,21 +420,6 @@ Remove operator_precedence_warning setting (Tom Lane)
 
 This was needed for warning applications about PostgreSQL 9.5 changes.
 
-
-
-
-
-
-
-Limit the ways password_encryption can enable md5 hashing (Peter Eisentraut)
-
-
-
-Previously on/true/yes/1 values enabled md5.  Now, only the string md5 does this.
-
 
 
    
@@ -456,132 +442,139 @@ Previously on/true/yes/1 values enabled md5.  Now, only the string md5 does this
 
 
 
 
 
-Add function pg_wait_for_backend_termination() that waits for session exit (Bharath Rupireddy)
+Add predefined roles pg_read_all_data and pg_write_all_data (Stephen Frost)
 
 
 
-Also add a similar optional wait parameter to pg_terminate_backend().
+These non-login roles give read-only/write-only access to all objects.
 
 
 
 
 
 
 
-Autovacuum now analyzes partitioned tables (Yuzuko Hosoya)
+Add a predefined role to match the database owner (Noah Misch)
 
 
 
-DETAILS?
+It is called pg_database_owner;  this is useful in template databases.
 
 
 
 
 
 
 
-Allow vacuum to skip index vacuuming when the number of removable index entries is insignificant (Masahiko Sawada, Peter Geoghegan)
+Remove temporary files after backend crashes (Euler Taveira)
+
+
+
+These files were previously retained for debugging purposes;  deletion can be disabled with remove_temp_files_after_crash.
 
 
 
 
 
 
 
-Cause vacuum operations to be aggressive if the table is near xid or multixact wraparound (Masahiko Sawada, Peter Geoghegan)
+Add long-running queries to be canceled if the client disconnects (Sergey Cherkashin, Thomas Munro)
 
 
 
-This is controlled by vacuum_failsafe_age and vacuum_multixact_failsafe_age.
+The server variable client_connection_check_interval allows supporting operating systems, e.g., Linux, to automatically cancel queries by disconnected clients.
 
 
 
 
 
 
 
-Allow VACUUM to eagerly add newly deleted btree pages to the free space map (Peter Geoghegan)
+Add function pg_wait_for_backend_termination() that waits for session exit (Bharath Rupireddy)
 
 
 
-Previously VACUUM could only place preexisting deleted pages in the free space map.
+Also add a similar optional wait parameter to pg_terminate_backend().
 
 
 
 
 
 
 
-Add a predefined role to match the database owner (Noah Misch)
+Allow wide tuples to be always added to almost-empty heap pages (John Naylor, Floris van Nee)
 
 
 
-It is called pg_database_owner;  this is useful in template databases.
+Previously tuples whose insertion would have exceeded the page's fill factor were instead added to new pages.
 
 
 
 
 
 
 
-Add predefined roles pg_read_all_data and pg_write_all_data (Stephen Frost)
+Add Set Server Name Indication (SNI) for SSL connection packets (Peter Eisentraut)
 
 
 
-These non-login roles give read-only/write-only access to all objects.
+This can be disabled by turning client option "sslsni" off.
 
 
 
+   
+
+    
+     Vacuuming
+
+     
+
 
 
 
 
-Add long-running queries to be canceled if the client disconnects (Sergey Cherkashin, Thomas Munro)
-
-
-
-The server variable client_connection_check_interval allows supporting operating systems, e.g., Linux, to automatically cancel queries by disconnected clients.
+Allow vacuum to skip index vacuuming when the number of removable index entries is insignificant (Masahiko Sawada, Peter Geoghegan)
 
 
 
 
 
 
 
-Remove temporary files after backend crashes (Euler Taveira)
+Allow VACUUM to eagerly add newly deleted btree pages to the free space map (Peter Geoghegan)
 
 
 
-These files were previously retained for debugging purposes;  deletion can be disabled with remove_temp_files_after_crash.
+Previously VACUUM could only place preexisting deleted pages in the free space map.
 
 
 
@@ -592,62 +585,115 @@ Author: Peter Geoghegan 
 -->
 
 
-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)
 
 
 
 
 
 
 
-Allow wide tuples to be always added to almost-empty heap pages (John Naylor, Floris van Nee)
+Speed up vacuuming of databases with many relations (Tatsuhito Kasahara)
 
+
 
-
-Previously tuples whose insertion would have exceeded the page's fill factor were instead added to new pages.
+
+
+
+
+Reduce the default value of vacuum_cost_page_miss (Peter Geoghegan)
+
+
+
+This new default better reflects current hardware capabilities.
 
 
 
-   
+
+
 
-    
-     <link linkend="ddl-partitioning">Partitioning</link>
+
+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 --no-process-toast option.
+
+
 
 
 
 
 
-Allow partitions to be detached in a non-blocking manner (Álvaro Herrera)
+Cause vacuum operations to be aggressive if the table is near xid or multixact wraparound (Masahiko Sawada, Peter Geoghegan)
 
 
 
-The syntax is ALTER TABLE ... DETACH PARTITION ... CONCURRENTLY, and FINALIZE.
+This is controlled by vacuum_failsafe_age and vacuum_multixact_failsafe_age.
 
 
 
 
 
 
 
-Allow the arbitrary collations of partition boundary values (Tom Lane)
+Increase warning time and hard limit before transaction id and multi-transaction wraparound (Noah Misch)
 
 
 
-Previously it had to match the collation of the partition key.
+This should reduce the possibility of failures that occur without having issued warnings about wraparound.
+
+
+
+
+
+
+
+Autovacuum now analyzes partitioned tables (Yuzuko Hosoya)
+
+
+
+DETAILS?
+
+
+
+
+
+
+
+Add per-index information to autovacuum logging output (Masahiko Sawada)
 
 
 
+     
+    
+
+    
+     <link linkend="ddl-partitioning">Partitioning</link>
+
+     
+
 
 
+
+
+Allow partitions to be detached in a non-blocking manner (Álvaro Herrera)
+
+
+
+The syntax is ALTER TABLE ... DETACH PARTITION ... CONCURRENTLY, and FINALIZE.
+
+
+
+
+
+
+
+Allow the arbitrary collations of partition boundary values (Tom Lane)
+
+
+
+Previously it had to match the collation of the partition key.
+
 
 
      
@@ -685,7 +761,7 @@ Author: Peter Geoghegan 
 -->
 
 
-Allow index additions to remove expired btree index entries to prevent page splits (Peter Geoghegan)
+Allow btree index additions to remove expired index entries to prevent page splits (Peter Geoghegan)
 
 
 
@@ -725,27 +801,27 @@ This allows bloom indexes to be used effectively with data that is not physicall
 
 
 
 
 
-Allow SP-GiST to use INCLUDE'd columns (Pavel Borisov)
+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.
 
 
 
 
 
 
 
-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.
+Allow SP-GiST to use INCLUDE'd columns (Pavel Borisov)
 
 
 
@@ -760,17 +836,16 @@ Presorting happens automatically and allows for faster index creation and smalle
 
 
 
 
 
-Allow extended statistics on expressions (Tomas Vondra)
+Allow hash lookup of IN clause with many constants (James Coleman, David Rowley)
 
 
 
-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?
+Previously the only option was to sequentially scan the list of constants.
 
 
 
@@ -787,6 +862,52 @@ Author: 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)
+
+
+
+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)
+
+
+
+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)
+
+
+
+Previously, if the object already exists, EXPLAIN would fail.
+
 
 
      
@@ -815,7 +936,7 @@ Author: Andres Freund 
 -->
 
 
-Improve speed of computing MVCC visibility snapshots on systems with many CPUs and high session count (Andres Freund)
+Improve the speed of computing MVCC visibility snapshots on systems with many CPUs and high session counts (Andres Freund)
 
 
 
@@ -840,61 +961,57 @@ This is useful if only a small percentage of rows is checked on the inner side.
 
 
 
 
 
-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.
+Allow window functions to perform incremental sorts (David Rowley)
 
 
 
 
 
 
 
-Add ability to use LZ4 compression on TOAST data (Dilip Kumar)
+Improve the I/O performance of parallel sequential scans (Thomas Munro, David Rowley)
 
 
 
-This can be set at the column level, or set as a default via server setting default_toast_compression.  The server must be compiled with --with-lz4 to support this feature;  the default is still pglz.
+This was done by allocating blocks in groups to parallel workers.
 
 
 
 
 
 
 
-Allow analyze to do page prefetching (Stephen Frost)
+Allow a query referencing multiple foreign tables to perform foreign table scans in parallel (Robert Haas, Kyotaro Horiguchi, Thomas Munro, Etsuro Fujita)
 
 
 
-This is controlled by maintenance_io_concurrency.
+The postgres_fdw supports these type of scans if "async_capable" is set.
 
 
 
 
 
 
 
-Improve the I/O performance of parallel sequential scans (Thomas Munro, David Rowley)
+Allow analyze to do page prefetching (Stephen Frost)
 
 
 
-This was done by allocating blocks in groups to parallel workers.
+This is controlled by maintenance_io_concurrency.
 
 
 
@@ -931,51 +1048,33 @@ Improve the performance of regular expression comparisons (Tom Lane)
 
 
 
-
-
-Speed truncation of small tables during recovery on clusters with a large number of shared buffers (Kirk Jamison)
-
-
-
-
-
 
 
-Speed up vacuuming of databases with many relations (Tatsuhito Kasahara)
+Dramatically improve Unicode normalization (John Naylor)
 
-
-
-
-
 
 
-Allow window functions to perform incremental sorts (David Rowley)
+This speeds normalize() and IS NORMALIZED.
 
 
 
 
 
 
 
-Dramatically improve Unicode normalization (John Naylor)
+Add ability to use LZ4 compression on TOAST data (Dilip Kumar)
 
 
 
-This speeds normalize() and IS NORMALIZED.
+This can be set at the column level, or set as a default via server setting default_toast_compression.  The server must be compiled with --with-lz4 to support this feature;  the default is still pglz.
 
 
 
@@ -1011,12 +1110,14 @@ A query id computed by an extension will also be displayed.
 
 
 
 
 
-Add information about the original user name supplied by the client to the output of log_connections (Jacob Champion)
+Add system view pg_backend_memory_contexts to report session memory usage (Atsushi Torikoshi, Fujii Masao)
 
 
 
@@ -1033,27 +1134,27 @@ Add function pg_backend_memory_contexts() to output the memory contexts of arbit
 
 
 
 
 
-Add per-index information to autovacuum logging output (Masahiko Sawada)
+Improve logging of auto-vacuum and auto-analyze (Stephen Frost, Jakub Wartak)
+
+
+
+This reports I/O timings for auto-vacuum and auto-analyze if track_io_timing is enabled.  Also, report buffer read and dirty rates for auto-analyze.
 
 
 
 
 
 
 
-Improve logging of auto-vacuum and auto-analyze (Stephen Frost, Jakub Wartak)
-
-
-
-This reports I/O timings for auto-vacuum and auto-analyze if track_io_timing 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 log_connections (Jacob Champion)
 
 
 
@@ -1068,55 +1169,36 @@ This reports I/O timings for auto-vacuum and auto-analyze if track_io_timing is
 
 
 
-
-
-Make the archiver process visible in pg_stat_activity (Kyotaro Horiguchi)
-
-
-
-
-
 
 
-Improve pg_stat_activity reporting for walsender processes (Tom Lane)
-
-
-
-Previously only SQL commands were reported.
+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 system view pg_stat_wal which reports WAL activity (Masahiro Ikeda)
+Add columns to pg_prepared_statements to report generic and custom plan counts (Atsushi Torikoshi, Kyotaro Horiguchi)
 
 
 
@@ -1133,12 +1215,16 @@ Add lock wait time to pg_locks (Atsushi Torikoshi)
 
 
 
 
 
-Add session statistics to the pg_stat_database system view (Laurenz Albe)
+Add system view pg_stat_wal which reports WAL activity (Masahiro Ikeda)
 
 
 
@@ -1165,25 +1251,27 @@ Function pg_stat_reset_replication_slot() resets slot statistics.
 
 
 
 
 
-Add system view pg_backend_memory_contexts to report session memory usage (Atsushi Torikoshi, Fujii Masao)
+Improve pg_stat_activity reporting of walsender processes (Tom Lane)
+
+
+
+Previously only SQL commands were reported.
 
 
 
 
 
 
 
-Add columns to pg_prepared_statements to report generic and custom plan counts (Atsushi Torikoshi, Kyotaro Horiguchi)
+Make the archiver process visible in pg_stat_activity (Kyotaro Horiguchi)
 
 
 
@@ -1236,26 +1324,41 @@ The new pg_hba.conf keyword "clientname=DN" allows comparison with certificate a
 
 
 
 
-Allow passwords of an arbitrary length (Tom Lane, Nathan Bossart)
+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.
 
 
 
 
 
 
 
-Allow pg_hba.conf and pg_ident.conf records to span multiple lines (Fabien Coelho)
+Allow the specification of a certificate revocation list (CRL) directory (Kyotaro Horiguchi)
 
 
 
-A backslash at the end of a line allows record contents to be continued on the next line.
+This is controlled by server variable ssl_crl_dir and libpq connection option sslcrldir.  Previously only CRL files could be specified.
+
+
+
+
+
+
+
+Allow passwords of an arbitrary length (Tom Lane, Nathan Bossart)
 
 
 
@@ -1300,70 +1403,75 @@ The previous default was 0.5.
 
 
 
 
 
-Reduce the default value of vacuum_cost_page_miss (Peter Geoghegan)
-
-
-
-This new default better reflects current hardware capabilities.
+Add %P to log_line_prefix to report the parallel group leader (Justin Pryzby)
 
 
 
 
 
 
 
-Add Set Server Name Indication (SNI) for SSL connection packets (Peter Eisentraut)
+Allow unix_socket_directories to specify paths as individual, comma-separated quoted strings (Ian Lawrence Barwick)
 
 
 
-This can be disabled by turning client option "sslsni" off.
+Previously all the paths had to be in a single quoted string.
 
 
 
 
 
 
 
-Allow the specification of a certificate revocation list (CRL) directory (Kyotaro Horiguchi)
+Allow startup allocation of dynamic shared memory (Thomas Munro)
 
 
 
-This is controlled by server variable ssl_crl_dir and libpq connection option sslcrldir.  Previously only CRL files could be specified.
+This is controlled by min_dynamic_shared_memory.   This allows more use of huge pages.
 
 
 
 
 
 
 
-Add server variable log_recovery_conflict_waits to report long recovery conflict wait times (Bertrand Drouvot, Masahiko Sawada)
+Add setting huge_page_size to control the size of huge pages used on Linux (Odin Ugedal)
 
 
 
+     
+
+    
+
+   
+
+   
+    Streaming Replication and Recovery
+
+    
+
 
 
 
 
-Add new server-side variable in_hot_standby (Haribabu Kommi, Greg Nancarrow, Tom Lane)
+Allow standby servers to be rewound via pg_rewind (Heikki Linnakangas)
 
 
 
@@ -1384,129 +1492,120 @@ You can also set restore_command to an empty string and reload to force recovery
 
 
 
 
 
-Allow unix_socket_directories to specify paths as individual, comma-separated quoted strings (Ian Lawrence Barwick)
-
-
-
-Previously all the paths had to be in a single quoted string.
+Add server variable log_recovery_conflict_waits to report long recovery conflict wait times (Bertrand Drouvot, Masahiko Sawada)
 
 
 
 
 
 
 
-Add %P to log_line_prefix to report the parallel group leader (Justin Pryzby)
+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.
 
 
 
 
 
 
 
-Increase warning time and hard limit before transaction id and multi-transaction wraparound (Noah Misch)
+Add function pg_get_wal_replay_pause_state() to report the recovery state (Dilip Kumar)
 
 
 
-This should reduce the possibility of failures that occur without having issued warnings about wraparound.
+It gives more detailed information than pg_is_wal_replay_paused(), which still exists.
 
 
 
 
 
 
 
-Allow startup allocation of dynamic shared memory (Thomas Munro)
-
-
-
-This is controlled by min_dynamic_shared_memory.   This allows more use of huge pages.
+Add new server-side variable in_hot_standby (Haribabu Kommi, Greg Nancarrow, Tom Lane)
 
 
 
 
 
 
 
-Add setting huge_page_size to control the size of huge pages used on Linux (Odin Ugedal)
+Speed truncation of small tables during recovery on clusters with a large number of shared buffers (Kirk Jamison)
 
 
 
-     
-
-    
-
-   
-
-   
-    Streaming Replication and Recovery
-
-    
-
 
 
 
 
-Allow control over whether logical decoding messages are sent to the replication stream (David Pirotte, Euler Taveira)
+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, recovery_init_sync_method=syncfs, instead syncs each filesystem used by the database cluster.
+This allows for faster recovery on systems with many database files.
 
 
 
 
 
 
 
-Allow logical decoding to be filtered by xid (Markus Wanner)
+Add function pg_xact_commit_timestamp_origin() to return the commit timestamp and replication origin of the specified transaction (Movead Li)
 
 
 
 
 
 
 
-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, recovery_init_sync_method=syncfs, instead syncs each filesystem used by the database cluster.
-This allows for faster recovery on systems with many database files.
+Add the replication origin to the record returned by pg_last_committed_xact() (Movead Li)
 
 
 
 
 
 
 
-Allow multiple transactions during table sync in logical replication (Peter Smith, Amit Kapila, and Takamichi Osumi)
+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.
 
 
 
@@ -1526,16 +1625,12 @@ GENERAL ENOUGH?
 
 
 
-
-
+    
 
->
-Allow standby servers to be rewound via pg_rewind (Heikki Linnakangas)
-
->
+    >
+     Logical Replication
+
+     >
 
 
 
 
 
-Immediately WAL-log subtransaction and top-level XID association (Tomas Vondra, Dilip Kumar, Amit Kapila)
+Enhance the logical replication API to allow streaming large in-progress transactions (Tomas Vondra, Dilip Kumar, Amit Kapila)
 
 
 
-This is useful for logical decoding.
+The output functions begin with "stream".  test_decoding also supports these.
 
 
 
 
 
 
 
-Allow logical replication subscriptions to use binary transfer mode (Dave Cramer)
-
-
-
-This is faster than text mode, but slightly less robust.
+Allow multiple transactions during table sync in logical replication (Peter Smith, Amit Kapila, and Takamichi Osumi)
 
 
 
 
 
 
 
-Add the replication origin to the record returned by pg_last_committed_xact() (Movead Li)
+Immediately WAL-log subtransaction and top-level XID association (Tomas Vondra, Dilip Kumar, Amit Kapila)
 
-
-
-
-
 
 
-Add function pg_xact_commit_timestamp_origin() to return the commit timestamp and replication origin of the specified transaction (Movead Li)
+This is useful for logical decoding.
 
 
 
 
 
 
 
-Allow replication origin functions to be controlled using standard function permission controls (Martín Marqués)
+Enhance logical decoding APIs to handle two-phase commits (Ajin Cherian, Amit Kapila, Nikhil Sontakke, Stas Kelvich)
 
 
 
-Previously these functions could only be executed by super-users, and this is still the default.
+This is controlled via pg_create_logical_replication_slot().
 
 
 
@@ -1643,83 +1731,57 @@ When logical replication is disabled, WAL invalidation messages are generated at
 
 
-
-
-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.
-
-
-
-
-
 
 
-Pause recovery if the primary changes its parameters in a way that prevents replay on the hot standby (Peter Eisentraut)
+Allow logical decoding to more efficiently process cache invalidation messages (Dilip Kumar)
 
 
 
-Previously the standby would shut down immediately.
+This allows Logical decoding to work efficiently in presence of a large amount of DDL.
 
 
 
 
 
 
 
-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().
+Allow control over whether logical decoding messages are sent to the replication stream (David Pirotte, Euler Taveira)
 
 
 
 
 
 
 
-Allow logical decoding to more efficiently process cache invalidation messages (Dilip Kumar)
+Allow logical replication subscriptions to use binary transfer mode (Dave Cramer)
 
 
 
-This allows Logical decoding to work efficiently in presence of a large amount of DDL.
+This is faster than text mode, but slightly less robust.
 
 
 
 
 
 
 
-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.
+Allow logical decoding to be filtered by xid (Markus Wanner)
 
 
 
-    
+     
+    
 
    
 
@@ -1731,30 +1793,15 @@ It gives more detailed information than pg_is_wal_replay_paused(), which still e
 
 
-
-
-Allow the WHERE clause of ON CONFLICT to be table-qualified (Tom Lane)
-
-
-
-Only the target table can be referenced.
-
-
-
-
-
 
 
-Allow hash lookup of IN clause with many constants (James Coleman, David Rowley)
+Reduce the number of keywords that can't be used as column labels without "AS" (Mark Dilger)
 
 
 
-Previously the only option was to sequentially scan the list of constants.
+There are now 90% fewer restricted keywords.
 
 
 
@@ -1790,48 +1837,48 @@ For example, GROUP BY CUBE (a,b), CUBE (b,c) will generate duplicate grouping co
 
 
 
 
 
-Add SQL-standard SEARCH and CYCLE clauses for common table expressions (Peter Eisentraut)
+Properly handle DEFAULT values for columns in multi-column inserts (Dean Rasheed)
 
 
 
-This could be accomplished previously using existing syntax.
+This used to throw an error.
 
 
 
 
 
 
 
-Properly handle DEFAULT values for columns in multi-column inserts (Dean Rasheed)
+Add SQL-standard SEARCH and CYCLE clauses for common table expressions (Peter Eisentraut)
 
 
 
-This used to throw an error.
+This could be accomplished previously using existing syntax.
 
 
 
 
 
 
 
-Reduce the number of keywords that can't be used as column labels without "AS" (Mark Dilger)
+Allow the WHERE clause of ON CONFLICT to be table-qualified (Tom Lane)
 
 
 
-There are now 90% fewer restricted keywords.
+Only the target table can be referenced.
 
 
 
@@ -1844,51 +1891,6 @@ There are now 90% fewer restricted keywords.
 
     
 
-
-
-
-
-Allow TRUNCATE to operate on foreign tables (Kazutaka Onishi, Kohei KaiGai)
-
-
-
-The postgres_fdw module also now supports this.
-
-
-
-
-
-
-
-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.
-
-
-
-
-
-
-
-Allow control over whether foreign servers keep connections open after transaction completion (Bharath Rupireddy)
-
-
-
-This is controlled by keep_connections and defaults to on.
-
-
-
 
 
 
 
-Add ability to skip vacuuming of TOAST tables (Nathan Bossart)
+Allow REINDEX to change the tablespace of the new index (Alexey Kondratov, Michael Paquier, Justin Pryzby)
 
 
 
-VACUUM now has a PROCESS_TOAST which can be set to false to disable TOAST processing, and vacuumdb has a --no-process-toast option.
+This is done by specifying a TABLESPACE clause.
 
 
 
 
 
 
 
-Allow REINDEX to change the tablespace of the new index (Alexey Kondratov, Michael Paquier, Justin Pryzby)
+Allow REINDEX to process all child tables or indexes of a partitioned relation (Justin Pryzby, Michael Paquier)
 
+
+
+
+
 
 
-This is done by specifying a TABLESPACE clause.
+Improve the performance of COPY FROM in binary mode (Bharath Rupireddy, Amit Langote)
 
 
 
 
 
 
 
-Add primary keys, unique constraints, and foreign keys to system catalogs (Peter Eisentraut)
+Preserve SQL standard syntax in view definitions, if possible (Tom Lane)
 
 
 
-This helps GUI tools analyze the system tables.
+Previously non-function call SQL standard syntax, e.g. EXTRACT, were converted to non-SQL standard function calls.
 
 
 
@@ -1960,79 +1967,89 @@ Add the SQL-standard clause GRANTED BY to GRANT and REVOKE (Peter Eisentraut)
 
 
 
 
 
-Fix EXPLAIN CREATE TABLE AS and EXPLAIN CREATE MATERIALIZED VIEW to honor IF NOT EXISTS (Bharath Rupireddy)
+Add OR REPLACE for CREATE TRIGGER (Takamichi Osumi)
 
 
 
-Previously, if the object already exists, EXPLAIN would fail.
+This allows pre-existing triggers to be conditionally replaced.
 
 
 
 
 
 
 
-Add OR REPLACE for CREATE TRIGGER (Takamichi Osumi)
+Allow control over whether foreign servers keep connections open after transaction completion (Bharath Rupireddy)
 
 
 
-This allows pre-existing triggers to be conditionally replaced.
+This is controlled by keep_connections and defaults to on.
 
 
 
 
 
 
 
-Preserve SQL standard syntax in view definitions, if possible (Tom Lane)
+Allow TRUNCATE to operate on foreign tables (Kazutaka Onishi, Kohei KaiGai)
 
 
 
-Previously non-function call SQL standard syntax, e.g. EXTRACT, were converted to non-SQL standard function calls.
+The postgres_fdw module also now supports this.
 
 
 
 
 
 
 
-Allow CURRENT_ROLE every place CURRENT_USER is accepted (Peter Eisentraut)
+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.
 
 
 
 
 
 
 
-Allow REINDEX to process all child tables or indexes of a partitioned relation (Justin Pryzby, Michael Paquier)
+Add primary keys, unique constraints, and foreign keys to system catalogs (Peter Eisentraut)
+
+
+
+This helps GUI tools analyze the system tables.
 
 
 
 
 
 
 
-Improve the performance of COPY FROM in binary mode (Bharath Rupireddy, Amit Langote)
+Allow CURRENT_ROLE every place CURRENT_USER is accepted (Peter Eisentraut)
 
 
 
@@ -2045,17 +2062,6 @@ Improve the performance of COPY FROM in binary mode (Bharath Rupireddy, Amit Lan
 
     
 
-
-
-
-
-Create composite array types for most system relations (Wenjing Zeng)
-
-
-
 
 
 
 
-Improve the accuracy of floating point computations involving infinity (Tom Lane)
+Add support for the stemming of languages Armenian, Basque, Catalan, Hindi, Serbian, and Yiddish (Peter Eisentraut)
 
 
 
@@ -2136,37 +2145,11 @@ Floating point data types already supported these.
 
 
-
-
-Allow binary data transfer to be more forgiving of array and record OID mismatches (Tom Lane)
-
-
-
-
-
-
-
-Add operators to add and subtract LSN and numeric (byte) values (Fujii Masao)
-
-
-
-
-
 
 
-Add support for the stemming of languages Armenian, Basque, Catalan, Hindi, Serbian, and Yiddish (Peter Eisentraut)
+Improve the accuracy of floating point computations involving infinity (Tom Lane)
 
 
 
@@ -2200,45 +2183,48 @@ Previously this returned an error.  Division with Numerics always returned NaN.
 
 
 
-    
-
-   
-
-   
-    Functions
-
-    
-
 
 
 
 
-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)
+Add operators to add and subtract LSN and numeric (byte) values (Fujii Masao)
 
 
 
 
 
 
 
-Cause exp() and power() for negative-infinity exponents to return zero (Tom Lane)
+Allow binary data transfer to be more forgiving of array and record OID mismatches (Tom Lane)
 
+
+
+
+
 
 
-Previously they often returned underflow errors.
+Create composite array types for most system relations (Wenjing Zeng)
 
 
 
+    
+
+   
+
+   
+    Functions
+
+    
+
 
 
 
 
-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.
+Allow procedures to have OUT parameters (Peter Eisentraut)
 
 
 
 
 
 
 
-Add date_bin function (John Naylor)
+Allow subscripting of JSONB and simplify the implementation of subscripting (Dmitry Dolgov)
 
 
 
-The function date_bin "bins" the input timestamp into a specified interval aligned with a specified origin.
+JSONB subscripting can be used to extract from and assign to JSONB documents.  Extensions and built-in data types can now implement subscripting more easily.
 
 
 
 
 
 
 
-Add function bit_count() to return the number of bits set in a bit or byte string (David Fetter)
+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.
 
 
 
 
 
 
 
-Mark pg_stat_get_subscription() as returning a set (Tom Lane)
+Add SQL-standard trim_array() function (Vik Fearing)
 
 
 
-While it worked in previous releases, it didn't report proper optimizer statistics and couldn't be used in the target list.
+This can already be done with array slices.
 
 
 
 
 
 
 
-Add bit_xor XOR aggregate function (Alexey Bashtanov)
+Add bytea equivalents of ltrim() and rtrim() (Joel Jacobson)
 
 
 
 
 
 
 
-Add SQL-standard trim_array() function (Vik Fearing)
+Support negative indexes in split_part() (Nikhil Benesch)
 
 
 
-This can already be done with array slices.
+Negative values start from the last field and count backward.
 
 
 
 
 
 
 
-Allow efficient heap scanning of a range of tids (Edmund Horner, David Rowley)
+A string_to_table() function to split a string on delimiters (Pavel Stehule)
 
 
 
-Previously a sequential scan was required for non-equality tid specifications.
+This is similar to the regexp_split_to_table() function.
 
 
 
 
 
 
 
-Add [[:word:]] as a character class to match \w (Tom Lane)
+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.
 
 
 
 
 
 
 
-Allow complemented character class escapes \D, \S, and \W within regex brackets (Tom Lane)
+Add bit_xor XOR aggregate function (Alexey Bashtanov)
 
 
 
 
 
-
-
-Allow subscripting of JSONB and simplify the implementation of subscripting (Dmitry Dolgov)
-
+Author: Peter Eisentraut 
+2021-03-23 [a6715af1e] Add bit_count SQL function
+-->
 
 
-JSONB subscripting can be used to extract from and assign to JSONB documents.  Extensions and built-in data types can now implement subscripting more easily.
+Add function bit_count() to return the number of bits set in a bit or byte string (David Fetter)
 
 
 
 
 
 
 
-Add bytea equivalents of ltrim() and rtrim() (Joel Jacobson)
+Add date_bin function (John Naylor)
+
+
+
+The function date_bin "bins" the input timestamp into a specified interval aligned with a specified origin.
 
 
 
 
 
 
 
-Prevent inet_server_addr() and inet_server_port() from being run by parallel workers (Masahiko Sawada)
+Allow make_timestamp/make_timestamptz to accept negative years (Peter Eisentraut)
+
+
+
+They are interpreted as BC years.
 
 
 
 
 
 
 
-Support negative indexes in split_part() (Nikhil Benesch)
+Add newer regular expression substring() syntax (Peter Eisentraut)
 
 
 
-Negative values start from the last field and count backward.
+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 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.
+Allow complemented character class escapes \D, \S, and \W within regex brackets (Tom Lane)
 
 
 
 
 
 
 
-Allow more flexible data types for default values of lead() and lag() window functions (Vik Fearing)
+Add [[:word:]] as a character class to match \w (Tom Lane)
 
 
 
 
 
 
 
-Allow procedures to have OUT parameters (Peter Eisentraut)
+Allow more flexible data types for default values of lead() and lag() window functions (Vik Fearing)
 
 
 
 
 
 
 
-Allow make_timestamp/make_timestamptz to accept negative years (Peter Eisentraut)
+Cause exp() and power() for negative-infinity exponents to return zero (Tom Lane)
 
 
 
-They are interpreted as BC years.
+Previously they often returned underflow errors.
 
 
 
 
 
 
 
-A string_to_table() function to split a string on delimiters (Pavel Stehule)
+Mark built-in type coercion functions as leakproof where possible (Tom Lane)
 
 
 
-This is similar to the regexp_split_to_table() function.
+This allows more use of functions that require type conversion in security-sensitive situations.
 
 
 
 
 
 
 
-Mark built-in type coercion functions as leakproof where possible (Tom Lane)
+Mark pg_stat_get_subscription() as returning a set (Tom Lane)
 
 
 
-This allows more use of functions that require type conversion in security-sensitive situations.
+While it worked in previous releases, it didn't report proper optimizer statistics and couldn't be used in the target list.
 
 
 
 
 
 
 
-Add newer regular expression substring() syntax (Peter Eisentraut)
+Prevent inet_server_addr() and inet_server_port() from being run by parallel workers (Masahiko Sawada)
 
+
+
+
+
 
 
-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.
+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)
 
 
 
@@ -2542,37 +2543,37 @@ The new syntax is SUBSTRING(text SIMILAR pattern ESCAPE escapechar).  The previo
 
 
 
 
-Improve performance of repeated CALLs within plpgsql procedures (Pavel Stehule, Tom Lane)
+Improve PL/pgSQL's expression and assignment parsing (Tom Lane)
+
+
+
+This adds nested record and array slicing support.
 
 
 
 
 
 
 
-Improve PL/pgSQL's expression and assignment parsing (Tom Lane)
-
-
-
-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)
 
 
 
@@ -2588,73 +2589,73 @@ Allow plpgsql's RETURN QUERY to execute its query using parallelism (Tom Lane)
 
 
 
 
-Improve the output format of libpq's PQtrace() (Aya Iwata)
+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.
 
 
 
 
 
 
 
-Allow an ECPG SQL identifier to be linked to a specific connection (Hayato Kuroda)
+Enhance libpq's target_session_attrs parameter options (Haribabu Kommi, Greg Nancarrow, Vignesh C, Tom Lane)
 
 
 
-This is done via DECLARE ... STATEMENT.
+New options are "read-only", "primary", "standby", and "prefer-standby".
 
 
 
 
 
 
 
-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.
+Improve the output format of libpq's PQtrace() (Aya Iwata)
 
 
 
 
 
 
 
-Enhance libpq's target_session_attrs parameter options (Haribabu Kommi, Greg Nancarrow, Vignesh C, Tom Lane)
+Allow libpq service files to have unlimited line lengths (Daniel Gustafsson)
 
 
 
-New options are "read-only", "primary", "standby", and "prefer-standby".
+The previous limit was 255 bytes.
 
 
 
 
 
 
 
-Allow libpq service files to have unlimited line lengths (Daniel Gustafsson)
+Allow an ECPG SQL identifier to be linked to a specific connection (Hayato Kuroda)
 
 
 
-The previous limit was 255 bytes.
+This is done via DECLARE ... STATEMENT.
 
 
 
@@ -2670,108 +2671,115 @@ The previous limit was 255 bytes.
 
 
 
 
-Allow vacuumdb to skip index cleanup and truncation (Nathan Bossart)
+Allow reindexdb to change the tablespace of the new index (Michael Paquier)
 
 
 
-The options are --no-index-cleanup and --no-truncate.
+This is done by specifying --tablespace.
 
 
 
 
 
 
 
-Allow multiple verbose option specifications (-v) to increase the logging verbosity (Tom Lane)
+Allow vacuumdb to skip index cleanup and truncation (Nathan Bossart)
 
 
 
-This is now supported by pg_dump, pg_dumpall, and pg_restore.
+The options are --no-index-cleanup and --no-truncate.
 
 
 
 
 
 
 
-Allow reindexdb to change the tablespace of the new index (Michael Paquier)
+Allow pg_dump to dump only certain extensions (Guillaume Lelarge)
 
 
 
-This is done by specifying --tablespace.
+This is controlled by option --extension.
 
 
 
-    
-
-    
-     <xref linkend="app-psql"/>
-
-     
-
 
 
 
 
-Fix psql's \dT to understand array syntax and backend grammar aliases, like "int" for "integer" (Greg Sabino Mullane, Tom Lane)
+Add pgbench permute() function to randomly shuffle values (Fabien Coelho, Hironobu Suzuki, Dean Rasheed)
 
 
 
 
 
 
 
-Allow psql's \df and \do commands to specify function and operator argument types (Greg Sabino Mullane, Tom Lane)
+Allow multiple verbose option specifications (-v) to increase the logging verbosity (Tom Lane)
 
 
 
-This helps reduce the number of matches for overloaded entries.
+This is now supported by pg_dump, pg_dumpall, and pg_restore.
 
 
 
+    
+
+    
+     <xref linkend="app-psql"/>
+
+     
+
 
 
 
 
-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)
+Allow psql's \df and \do commands to specify function and operator argument types (Greg Sabino Mullane, Tom Lane)
 
 
 
-Previously, such edits would still execute the editor contents.
+This helps reduce the number of matches for overloaded entries.
 
 
 
 
 
 
 
-Allow pg_dump to dump only certain extensions (Guillaume Lelarge)
+Add an access method column to psql's \d[i|m|t]+ output (Georgios Kokolatos)
 
+
+
+
+
 
 
-This is controlled by option --extension.
+Allow psql's \dt and \di to show TOAST tables and their indexes (Justin Pryzby)
 
 
 
@@ -2789,37 +2797,41 @@ Add psql command \dX to list extended statistics objects (Tatsuro Yamada)
 
 
 
 
-Allow psql's \dt and \di to show TOAST tables and their indexes (Justin Pryzby)
+Fix psql's \dT to understand array syntax and backend grammar aliases, like "int" for "integer" (Greg Sabino Mullane, Tom Lane)
 
 
 
 
 
 
 
-Improve psql's handling of \connect with -reuse-previous (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)
 
 
 
-Specifically, properly reuse the password previously specified, and prompt for a new password if the previous one failed.
+Previously, such edits would still execute the editor contents.
 
 
 
 
 
 
 
-Add an access method column to psql's \d[i|m|t]+ output (Georgios Kokolatos)
+Improve psql's handling of \connect with -reuse-previous (Tom Lane)
+
+
+
+Specifically, properly reuse the password previously specified, and prompt for a new password if the previous one failed.
 
 
 
@@ -2857,32 +2869,12 @@ Author: Fujii Masao 
 2021-04-12 [81e094bdf] Support tab-complete for TRUNCATE on foreign tables.
 Author: Michael Paquier 
 2021-04-21 [22b2dec31] Add CURRENT_ROLE to list of roles for tab completion of 
-Author: Alvaro Herrera 
-2021-04-26 [6dd1042ed] psql: tab-complete ALTER ... DETACH CONCURRENTLY / FINAL
--->
-
-
-Improve tab completion (Vignesh C, Michael Paquier, Justin Pryzby, Georgios Kokolatos, Julien Rouhaud, ADD NAMES)
-
-
-
-     
-
-    
-
-    
-     <link linkend="pgbench"><application>pgbench</application></link>
-
-     
-
-
-
 
 
-Add pgbench permute() function to randomly shuffle values (Fabien Coelho, Hironobu Suzuki, Dean Rasheed)
+Improve tab completion (Vignesh C, Michael Paquier, Justin Pryzby, Georgios Kokolatos, Julien Rouhaud, ADD NAMES)
 
 
 
@@ -2926,30 +2918,30 @@ This removes the server start instructions that are normally output.
 
 
 
 
-Remove support for the postmaster -o option (Magnus Hagander)
+Stop pg_upgrade from creating analyze_new_cluster script (Michael Paquier)
 
 
 
-This option was unnecessary since all passed options could already be specified directly.
+Instead, give comparable vacuumdb instructions.
 
 
 
 
 
 
 
-Stop pg_upgrade from creating analyze_new_cluster script (Michael Paquier)
+Remove support for the postmaster -o option (Magnus Hagander)
 
 
 
-Instead, give comparable vacuumdb instructions.
+This option was unnecessary since all passed options could already be specified directly.
 
 
 
@@ -3014,23 +3006,16 @@ The option --with-openssl is kept for compatibility.
 
 
 
 
 
-Add direct conversion routines between EUC_TW and Big5 (Heikki Linnakangas)
+Add support for abstract Unix-domain sockets (Peter Eisentraut)
 
-
-
-
-
 
 
-Add a test module for the regular expression package (Tom Lane)
+This is currently supported on Linux and Windows.
 
 
 
@@ -3051,37 +3036,59 @@ Previously this could only be controlled at compile time and is enabled only in
 
 
 
 
 
-Change SHA1, SHA2, and MD5 hash computations to use the OpenSSL EVP API (Michael Paquier)
+Various improvements in valgrind detection (Álvaro Herrera, Peter Geoghegan)
 
+
+
+
+
 
 
-This is more modern and supports FIPS mode.
+Add a test module for the regular expression package (Tom Lane)
 
 
 
 
 
 
 
-Add support for abstract Unix-domain sockets (Peter Eisentraut)
+Add support for LLVM 12 (Andres Freund)
+
+
+
+
+
+
+
+Change SHA1, SHA2, and MD5 hash computations to use the OpenSSL EVP API (Michael Paquier)
 
 
 
-This is currently supported on Linux and Windows.
+This is more modern and supports FIPS mode.
 
 
 
@@ -3098,23 +3105,23 @@ Remove build control over the random library used (Daniel Gustafsson)
 
 
 
 
 
-Add collation versions for FreeBSD (Thomas Munro)
+Add direct conversion routines between EUC_TW and Big5 (Heikki Linnakangas)
 
 
 
 
 
 
 
-Add support for LLVM 12 (Andres Freund)
+Add collation versions for FreeBSD (Thomas Munro)
 
 
 
@@ -3131,21 +3138,6 @@ Add "amadjustmembers" to the index access method API (Tom Lane)
 
 REMOVE?
 
-
-
-
-
-
-
-Various improvements in valgrind detection (Álvaro Herrera, Peter Geoghegan)
-
 
 
     
@@ -3191,89 +3183,104 @@ Previously, when tracking all statements, identical top and nested statements we
 
 
 
 
-Allow postgres_fdw to import table partitions if specified by IMPORT FOREIGN SCHEMA ... LIMIT TO (Matthias van de Meent)
+Add row counts for utility commands to pg_stat_statements (Fujii Masao, Katsuragi Yuta, Seino Yuki)
 
+
+
+
+
 
 
-By default, only the root of partitioned tables is imported.
+Add pg_stat_statements_info system view to show pg_stat_statements activity (Katsuragi Yuta, Yuki Seino, Naoki Nakamichi)
 
 
 
 
 
 
 
-Add postgres_fdw functions to discard cached connections (Bharath Rupireddy)
+Allow subscripting of hstore values (Tom Lane, Dmitry Dolgov)
 
 
 
 
 
 
 
-Allow postgres_fdw to INSERT rows in bulk (Takayuki Tsunakawa, Tomas Vondra, Amit Langote)
+Allow GiST/GIN pg_trgm indexes to do equality lookups (Julien Rouhaud)
+
+
+
+This is similar to LIKE except no wildcards are honored.
 
 
 
 
 
 
 
-Add postgres_fdw function postgres_fdw_get_connections to report open foreign server connections (Bharath Rupireddy)
+Allow the cube data type to be transferred in binary mode (KaiGai Kohei)
 
 
 
 
 
 
 
-Allow postgres_fdw to reestablish foreign server connections if necessary (Bharath Rupireddy)
+Add contrib module pg_surgery which allows changes to row visibility (Ashutosh Sharma)
 
 
 
-Previously foreign server restarts could cause foreign table access errors.
+This is useful for correcting database corruption.
 
 
 
 
 
 
 
-Allow the cube data type to be transferred in binary mode (KaiGai Kohei)
+Add contrib module old_snapshot to report the XID/time mapping used by an active old_snapshot_threshold (Robert Haas)
 
 
 
 
 
 
 
-Change pageinspect block numbers to be bigints (Peter Eisentraut)
+Allow amcheck to also check heap pages (Mark Dilger)
+
+
+
+Previously it only checked B-Tree index pages.
 
 
 
@@ -3290,120 +3297,114 @@ Allow pageinspect to inspect GiST indexes (Andrey Borodin, Heikki Linnakangas)
 
 
 
 
 
-Allow subscripting of hstore values (Tom Lane, Dmitry Dolgov)
+Change pageinspect block numbers to be bigints (Peter Eisentraut)
 
 
 
 
 
 
 
-Add pg_stat_statements_info system view to show pg_stat_statements activity (Katsuragi Yuta, Yuki Seino, Naoki Nakamichi)
+Allow pgstattuple_approx() to report on TOAST tables (Peter Eisentraut)
 
 
 
 
 
 
 
-Allow GiST/GIN pg_trgm indexes to do equality lookups (Julien Rouhaud)
-
-
-
-This is similar to LIKE except no wildcards are honored.
+Mark btree_gist functions as parallel safe (Steven Winfield)
 
 
 
-
-
+    
 
-
-Allow amcheck to also check heap pages (Mark Dilger)
-
+    
+     Postgres_fdw
 
-
-Previously it only checked B-Tree index pages.
-
-
+     
 
 
 
 
 
-Add contrib module old_snapshot to report the XID/time mapping used by an active old_snapshot_threshold (Robert Haas)
+Allow postgres_fdw to INSERT rows in bulk (Takayuki Tsunakawa, Tomas Vondra, Amit Langote)
 
 
 
 
 
 
 
-Add contrib module pg_surgery which allows changes to row visibility (Ashutosh Sharma)
+Allow postgres_fdw to import table partitions if specified by IMPORT FOREIGN SCHEMA ... LIMIT TO (Matthias van de Meent)
 
 
 
-This is useful for correcting database corruption.
+By default, only the root of partitioned tables is imported.
 
 
 
 
 
 
 
-Add row counts for utility commands to pg_stat_statements (Fujii Masao, Katsuragi Yuta, Seino Yuki)
+Add postgres_fdw function postgres_fdw_get_connections to report open foreign server connections (Bharath Rupireddy)
 
 
 
 
 
 
 
-Mark btree_gist functions as parallel safe (Steven Winfield)
+Add postgres_fdw functions to discard cached connections (Bharath Rupireddy)
 
 
 
 
 
 
 
-Allow pgstattuple_approx() to report on TOAST tables (Peter Eisentraut)
+Allow postgres_fdw to reestablish foreign server connections if necessary (Bharath Rupireddy)
+
+
+
+Previously foreign server restarts could cause foreign table access errors.
 
 
 
-    
+     
+
+