From 521d08a21a2b1ba7038ccc815b8bccc3c9be1351 Mon Sep 17 00:00:00 2001 From: Bruce Momjian Date: Thu, 13 May 2021 21:16:34 -0400 Subject: [PATCH] doc: PG 14 release notes, reorder items by significance --- doc/src/sgml/release-14.sgml | 1775 +++++++++++++++++----------------- 1 file changed, 888 insertions(+), 887 deletions(-) diff --git a/doc/src/sgml/release-14.sgml b/doc/src/sgml/release-14.sgml index a27f50accfd..2b2cb84c39b 100644 --- a/doc/src/sgml/release-14.sgml +++ b/doc/src/sgml/release-14.sgml @@ -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. - + + + -- 2.39.5