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 | 2703 +++++++++++++++++----------------- 1 file changed, 1352 insertions(+), 1351 deletions(-) diff --git a/doc/src/sgml/release-14.sgml b/doc/src/sgml/release-14.sgml index a27f50accf..2b2cb84c39 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,84 +129,23 @@ 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. - - - - - - - -Pass doubled quote marks in ecpg SQL command strings literally (Tom Lane) - - - -Previously 'abc''def' was passed to the server as 'abc'def'; "abc""def" was passed as "abc"def". - - - - - - - -Prevent tablefunc's function normal_rand() from accepting negative values (Ashutosh Bapat) - - - -Negative values produced undesirable results. - - - - - - - -Fix handling of infinite window function ranges (Tom Lane) - - - -Previously window frame clauses like 'inf' PRECEDING AND 'inf' FOLLOWING returned incorrect results. - - - - - - - -Change var_samp() and stddev_samp() with numeric parameters to return NULL for a single NaN value (Tom Lane) - - - -Previously NaN was returned. +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. @@ -220,23 +166,6 @@ This was already disabled by default in previous Postgres releases, and most mod - - - - -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. - - - -Improve handling of regular expression back-references (Tom Lane) +Change EXTRACT to return the NUMERIC data type (Peter Eisentraut) -For example, disregard ^ in its expansion in \1 in "(^\d+).*\1". +EXTRACT(date) now throws an error for units that are not part of the date data type. -Allow \D and \W shorthands to match newlines in newline-sensitive mode (Tom Lane) +Fix handling of infinite window function ranges (Tom Lane) -Previously they did not match; [^[:digit:]] or [^[:word:]] can be used to get the old behavior. +Previously window frame clauses like 'inf' PRECEDING AND 'inf' FOLLOWING returned incorrect results. + + + + + + + +Prevent tablefunc's function normal_rand() from accepting negative values (Ashutosh Bapat) + + + +Negative values produced undesirable results. -Disallow \w as range start/end in character classes (Tom Lane) +Change var_samp() and stddev_samp() with numeric parameters to return NULL for a single NaN value (Tom Lane) -This previously was allowed but produced incorrect results. - - - - - - - -Force custom server variable names to match the pattern used for unquoted SQL identifiers (Tom Lane) - - - - - - - -Return false for has_column_privilege() checks on non-existent or dropped columns when using attribute numbers (Joe Conway) - - - -Previously such attribute numbers returned an invalid column error. - - - - - - - -Remove contrib program pg_standby (Justin Pryzby) - - - - - - - -Overhaul the specification of clientcert in pg_hba.conf (Kyotaro Horiguchi) - - - -Values 1/0/no-verify are no longer supported; only the strings verify-ca and verify-full can be used. Also, disallow verify-ca if cert authentication is enabled since cert requires verify-full -checking. +Previously NaN was returned. @@ -395,6 +286,116 @@ pg_dump and pg_upgrade will warn if postfix operators are being dumped. + + + + +Allow \D and \W shorthands to match newlines in newline-sensitive mode (Tom Lane) + + + +Previously they did not match; [^[:digit:]] or [^[:word:]] can be used to get the old behavior. + + + + + + + +Improve handling of regular expression back-references (Tom Lane) + + + +For example, disregard ^ in its expansion in \1 in "(^\d+).*\1". + + + + + + + +Disallow \w as range start/end in character classes (Tom Lane) + + + +This previously was allowed but produced incorrect results. + + + + + + + +Force custom server variable names to match the pattern used for unquoted SQL identifiers (Tom Lane) + + + + + + + +Return false for has_column_privilege() checks on non-existent or dropped columns when using attribute numbers (Joe Conway) + + + +Previously such attribute numbers returned an invalid column error. + + + + + + + +Pass doubled quote marks in ecpg SQL command strings literally (Tom Lane) + + + +Previously 'abc''def' was passed to the server as 'abc'def', and "abc""def" was passed as "abc"def". + + + + + + + +Disallow single-quoting of the language name in the CREATE/DROP LANGUAGE command (Peter Eisentraut) + + + + + + + +Remove contrib program pg_standby (Justin Pryzby) + + + - - -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,72 +442,16 @@ 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(). - - - - - - - -Autovacuum now analyzes partitioned tables (Yuzuko Hosoya) - - - -DETAILS? - - - - - - - -Allow vacuum to skip index vacuuming when the number of removable index entries is insignificant (Masahiko Sawada, Peter Geoghegan) - - - - - - - -Cause vacuum operations to be aggressive if the table is near xid or multixact wraparound (Masahiko Sawada, Peter Geoghegan) - - - -This is controlled by vacuum_failsafe_age and vacuum_multixact_failsafe_age. - - - - - - - -Allow VACUUM to eagerly add newly deleted btree pages to the free space map (Peter Geoghegan) - - - -Previously VACUUM could only place preexisting deleted pages in the free space map. +These non-login roles give read-only/write-only access to all objects. @@ -542,16 +472,16 @@ It is called pg_database_owner; this is useful in template databases. -Add predefined roles pg_read_all_data and pg_write_all_data (Stephen Frost) +Remove temporary files after backend crashes (Euler Taveira) -These non-login roles give read-only/write-only access to all objects. +These files were previously retained for debugging purposes; deletion can be disabled with remove_temp_files_after_crash. @@ -572,27 +502,16 @@ The server variable client_connection_check_interval allows supporting operating -Remove temporary files after backend crashes (Euler Taveira) +Add function pg_wait_for_backend_termination() that waits for session exit (Bharath Rupireddy) -These files were previously retained for debugging purposes; deletion can be disabled with remove_temp_files_after_crash. - - - - - - - -Deallocate space reserved by trailing unused heap line pointers (Matthias van de Meent, Peter Geoghegan) +Also add a similar optional wait parameter to pg_terminate_backend(). @@ -609,15 +528,191 @@ Allow wide tuples to be always added to almost-empty heap pages (John Naylor, Fl Previously tuples whose insertion would have exceeded the page's fill factor were instead added to new pages. + + + + + + +Add Set Server Name Indication (SNI) for SSL connection packets (Peter Eisentraut) + + + +This can be disabled by turning client option "sslsni" off. + + + Vacuuming + + + + + + + +Allow vacuum to skip index vacuuming when the number of removable index entries is insignificant (Masahiko Sawada, Peter Geoghegan) + + + + + + + +Allow VACUUM to eagerly add newly deleted btree pages to the free space map (Peter Geoghegan) + + + +Previously VACUUM could only place preexisting deleted pages in the free space map. + + + + + + + +Allow vacuum to deallocate space reserved by trailing unused heap line pointers (Matthias van de Meent, Peter Geoghegan) + + + + + + + +Speed up vacuuming of databases with many relations (Tatsuhito Kasahara) + + + + + + + +Reduce the default value of vacuum_cost_page_miss (Peter Geoghegan) + + + +This new default better reflects current hardware capabilities. + + + + + + + +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. + + + + + + + +Cause vacuum operations to be aggressive if the table is near xid or multixact wraparound (Masahiko Sawada, Peter Geoghegan) + + + +This is controlled by vacuum_failsafe_age and vacuum_multixact_failsafe_age. + + + + + + + +Increase warning time and hard limit before transaction id and multi-transaction wraparound (Noah Misch) + + + +This should reduce the possibility of failures that occur without having issued warnings about wraparound. + + + + + + + +Autovacuum now analyzes partitioned tables (Yuzuko Hosoya) + + + +DETAILS? + + + + + + + +Add per-index information to autovacuum logging output (Masahiko Sawada) + + + + + + <link linkend="ddl-partitioning">Partitioning</link> + + + + +Improve the performance of updates/deletes on partitioned tables when only a few partitions are affected (Amit Langote, Tom Lane) + + + +This also allows updates/deletes on partitioned tables to use execution-time partition pruning. + + + - - -Improve the performance of updates/deletes on partitioned tables when only a few partitions are affected (Amit Langote, Tom Lane) - - - -This also allows updates/deletes on partitioned tables to use execution-time partition pruning. - @@ -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) @@ -723,17 +799,6 @@ 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 SP-GiST to use INCLUDE'd columns (Pavel Borisov) + @@ -758,6 +834,36 @@ Presorting happens automatically and allows for faster index creation and smalle + + + + +Allow hash lookup of IN clause with many constants (James Coleman, David Rowley) + + + +Previously the only option was to sequentially scan the list of constants. + + + + + + + +Increase the number of places extended statistics can be used for OR clause estimation (Tomas Vondra, Dean Rasheed) + + + -Increase the number of places extended statistics can be used for OR clause estimation (Tomas Vondra, Dean Rasheed) +Allow 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,46 +961,12 @@ 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. - - - - - - - -Add ability to use LZ4 compression on TOAST data (Dilip Kumar) - - - -This can be set at the column level, or set as a default via server setting default_toast_compression. The server must be compiled with --with-lz4 to support this feature; the default is still pglz. - - - - - - - -Allow analyze to do page prefetching (Stephen Frost) - - - -This is controlled by maintenance_io_concurrency. +Allow window functions to perform incremental sorts (David Rowley) @@ -898,6 +985,36 @@ This was done by allocating blocks in groups to parallel workers. + + + + +Allow a query referencing multiple foreign tables to perform foreign table scans in parallel (Robert Haas, Kyotaro Horiguchi, Thomas Munro, Etsuro Fujita) + + + +The postgres_fdw supports these type of scans if "async_capable" is set. + + + + + + + +Allow analyze to do page prefetching (Stephen Frost) + + + +This is controlled by maintenance_io_concurrency. + + + - - -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) - - - - - - - -Allow window functions to perform incremental sorts (David Rowley) - - - + + +Add ability to use LZ4 compression on TOAST data (Dilip Kumar) + + + +This can be set at the column level, or set as a default via server setting 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) @@ -1031,17 +1132,6 @@ Add function pg_backend_memory_contexts() to output the memory contexts of arbit - - - - -Add per-index information to autovacuum logging output (Masahiko Sawada) - - - + + +Add information about the original user name supplied by the client to the output of log_connections (Jacob Champion) + @@ -1066,32 +1167,6 @@ 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 system view pg_stat_wal which reports WAL activity (Masahiro Ikeda) +Add session statistics to the pg_stat_database system view (Laurenz Albe) + + + + + + + +Add columns to pg_prepared_statements to report generic and custom plan counts (Atsushi Torikoshi, Kyotaro Horiguchi) @@ -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) @@ -1233,17 +1321,6 @@ The new pg_hba.conf keyword "clientname=DN" allows comparison with certificate a - - - - -Allow passwords of an arbitrary length (Tom Lane, Nathan Bossart) - - - + + +Allow the specification of a certificate revocation list (CRL) directory (Kyotaro Horiguchi) + + + +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,85 +1403,12 @@ 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 Set Server Name Indication (SNI) for SSL connection packets (Peter Eisentraut) - - - -This can be disabled by turning client option "sslsni" off. - - - - - - - -Allow the specification of a certificate revocation list (CRL) directory (Kyotaro Horiguchi) - - - -This is controlled by server variable ssl_crl_dir and libpq connection option sslcrldir. Previously only CRL files could be specified. - - - - - - - -Add server variable log_recovery_conflict_waits to report long recovery conflict wait times (Bertrand Drouvot, Masahiko Sawada) - - - - - - - -Add new server-side variable in_hot_standby (Haribabu Kommi, Greg Nancarrow, Tom Lane) - - - - - - - -Allow restore_command setting to be changed during a server reload (Sergei Kornilov) - - - -You can also set restore_command to an empty string and reload to force recovery to only read from the pg_wal directory. +Add %P to log_line_prefix to report the parallel group leader (Justin Pryzby) @@ -1397,32 +1427,6 @@ Previously all the paths had to be in a single quoted string. - - - - -Add %P to log_line_prefix to report the parallel group leader (Justin Pryzby) - - - - - - - -Increase warning time and hard limit before transaction id and multi-transaction wraparound (Noah Misch) - - - -This should reduce the possibility of failures that occur without having issued warnings about wraparound. - - - -Allow control over whether logical decoding messages are sent to the replication stream (David Pirotte, Euler Taveira) +Allow standby servers to be rewound via pg_rewind (Heikki Linnakangas) + + + + + + + +Allow restore_command setting to be changed during a server reload (Sergei Kornilov) + + + +You can also set restore_command to an empty string and reload to force recovery to only read from the pg_wal directory. + + + + + + + +Add server variable log_recovery_conflict_waits to report long recovery conflict wait times (Bertrand Drouvot, Masahiko Sawada) + + + + + + + +Pause recovery if the primary changes its parameters in a way that prevents replay on the hot standby (Peter Eisentraut) + + + +Previously the standby would shut down immediately. + + + + + + + +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. + + + + + + + +Add new server-side variable in_hot_standby (Haribabu Kommi, Greg Nancarrow, Tom Lane) -Allow logical decoding to be filtered by xid (Markus Wanner) +Speed truncation of small tables during recovery on clusters with a large number of shared buffers (Kirk Jamison) @@ -1501,12 +1574,38 @@ This allows for faster recovery on systems with many database files. -Allow multiple transactions during table sync in logical replication (Peter Smith, Amit Kapila, and Takamichi Osumi) +Add function pg_xact_commit_timestamp_origin() to return the commit timestamp and replication origin of the specified transaction (Movead Li) + + + + + + + +Add the replication origin to the record returned by pg_last_committed_xact() (Movead Li) + + + + + + + +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) - - - -This is useful for logical decoding. - - - - - - - -Allow logical replication subscriptions to use binary transfer mode (Dave Cramer) - - - -This is faster than text mode, but slightly less robust. - - - - - - - -Add the replication origin to the record returned by pg_last_committed_xact() (Movead Li) - - - - - - - -Add function pg_xact_commit_timestamp_origin() to return the commit timestamp and replication origin of the specified transaction (Movead Li) - - - - - - - -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. - - - - - - - -Generate WAL invalidations message during command completion when using logical replication (Dilip Kumar, Tomas Vondra, Amit Kapila) - - - -When logical replication is disabled, WAL invalidation messages are generated at transaction completion. This allows logical streaming of in-progress transactions. - - - -Pause recovery if the primary changes its parameters in a way that prevents replay on the hot standby (Peter Eisentraut) +Allow multiple transactions during table sync in logical replication (Peter Smith, Amit Kapila, and Takamichi Osumi) + + + + + + + +Immediately WAL-log subtransaction and top-level XID association (Tomas Vondra, Dilip Kumar, Amit Kapila) -Previously the standby would shut down immediately. +This is useful for logical decoding. @@ -1689,6 +1713,21 @@ This is controlled via pg_create_logical_replication_slot(). + + + + +Generate WAL invalidations message during command completion when using logical replication (Dilip Kumar, Tomas Vondra, Amit Kapila) + + + +When logical replication is disabled, WAL invalidation messages are generated at transaction completion. This allows logical streaming of in-progress transactions. + + + -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 control over whether logical decoding messages are sent to the replication stream (David Pirotte, Euler Taveira) - + + + + +Allow logical replication subscriptions to use binary transfer mode (Dave Cramer) + + + +This is faster than text mode, but slightly less robust. + + + + + + + +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) +Reduce the number of keywords that can't be used as column labels without "AS" (Mark Dilger) -Only the target table can be referenced. - - - - - - - -Allow hash lookup of IN clause with many constants (James Coleman, David Rowley) - - - -Previously the only option was to sequentially scan the list of constants. +There are now 90% fewer restricted keywords. @@ -1788,6 +1835,21 @@ For example, GROUP BY CUBE (a,b), CUBE (b,c) will generate duplicate grouping co + + + + +Properly handle DEFAULT values for columns in multi-column inserts (Dean Rasheed) + + + +This used to throw an error. + + + -Properly handle DEFAULT values for columns in multi-column inserts (Dean Rasheed) +Allow the WHERE clause of ON CONFLICT to be table-qualified (Tom Lane) -This used to throw an error. - - - - - - - -Reduce the number of keywords that can't be used as column labels without "AS" (Mark Dilger) - - - -There are now 90% fewer restricted keywords. +Only the target table can be referenced. @@ -1844,6 +1891,110 @@ There are now 90% fewer restricted keywords. + + + + +Allow REFRESH MATERIALIZED VIEW to use parallelism (Bharath Rupireddy) + + + + + + + +Allow REINDEX to change the tablespace of the new index (Alexey Kondratov, Michael Paquier, Justin Pryzby) + + + +This is done by specifying a TABLESPACE clause. + + + + + + + +Allow REINDEX to process all child tables or indexes of a partitioned relation (Justin Pryzby, Michael Paquier) + + + + + + + +Improve the performance of COPY FROM in binary mode (Bharath Rupireddy, Amit Langote) + + + + + + + +Preserve SQL standard syntax in view definitions, if possible (Tom Lane) + + + +Previously non-function call SQL standard syntax, e.g. EXTRACT, were converted to non-SQL standard function calls. + + + + + + + +Add the SQL-standard clause GRANTED BY to GRANT and REVOKE (Peter Eisentraut) + + + + + + + +Add OR REPLACE for CREATE TRIGGER (Takamichi Osumi) + + + +This allows pre-existing triggers to be conditionally replaced. + + + + + + + +Allow control over whether foreign servers keep connections open after transaction completion (Bharath Rupireddy) + + + +This is controlled by keep_connections and defaults to on. + + + - - -Allow control over whether foreign servers keep connections open after transaction completion (Bharath Rupireddy) - - - -This is controlled by keep_connections and defaults to on. - - - - - - - -Allow REFRESH MATERIALIZED VIEW to use parallelism (Bharath Rupireddy) - - - - - - - -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 REINDEX to change the tablespace of the new index (Alexey Kondratov, Michael Paquier, Justin Pryzby) - - - -This is done by specifying a TABLESPACE clause. - - - - - -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) - - - -Previously, if the object already exists, EXPLAIN would fail. - - - - - - - -Add OR REPLACE for CREATE TRIGGER (Takamichi Osumi) - - - -This allows pre-existing triggers to be conditionally replaced. - - - - - - - -Preserve SQL standard syntax in view definitions, if possible (Tom Lane) - - - -Previously non-function call SQL standard syntax, e.g. EXTRACT, were converted to non-SQL standard function calls. - - - - - -Allow REINDEX to process all child tables or indexes of a partitioned relation (Justin Pryzby, Michael Paquier) - - - - - - - -Improve the performance of COPY FROM in binary mode (Bharath Rupireddy, Amit Langote) - @@ -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) @@ -2198,6 +2181,39 @@ Cause floating-point division of NaN by zero to return NaN (Tom Lane) Previously this returned an error. Division with Numerics always returned NaN. + + + + + + +Add operators to add and subtract LSN and numeric (byte) values (Fujii Masao) + + + + + + + +Allow binary data transfer to be more forgiving of array and record OID mismatches (Tom Lane) + + + + + + + +Create composite array types for most system relations (Wenjing Zeng) + @@ -2209,36 +2225,6 @@ Previously this returned an error. Division with Numerics always returned NaN. - - - - -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) - - - - - - - -Cause exp() and power() for negative-infinity exponents to return zero (Tom Lane) - - - -Previously they often returned underflow errors. - - - - - -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. - - - - - -Add date_bin function (John Naylor) - - - -The function date_bin "bins" the input timestamp into a specified interval aligned with a specified origin. - - - - - - - -Add function bit_count() to return the number of bits set in a bit or byte string (David Fetter) - - - - - - - -Mark pg_stat_get_subscription() as returning a set (Tom Lane) - - - -While it worked in previous releases, it didn't report proper optimizer statistics and couldn't be used in the target list. - - - - - - - -Add bit_xor XOR aggregate function (Alexey Bashtanov) - - - - - - - -Add SQL-standard trim_array() function (Vik Fearing) - - - -This can already be done with array slices. - - - - - - - -Allow efficient heap scanning of a range of tids (Edmund Horner, David Rowley) - - - -Previously a sequential scan was required for non-equality tid specifications. - - - - - - - -Add [[:word:]] as a character class to match \w (Tom Lane) - - - - - - - -Allow complemented character class escapes \D, \S, and \W within regex brackets (Tom Lane) +Allow procedures to have OUT parameters (Peter Eisentraut) @@ -2397,22 +2275,41 @@ JSONB subscripting can be used to extract from and assign to JSONB documents. E -Add bytea equivalents of ltrim() and rtrim() (Joel Jacobson) +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. -Prevent inet_server_addr() and inet_server_port() from being run by parallel workers (Masahiko Sawada) +Add SQL-standard trim_array() function (Vik Fearing) + + + +This can already be done with array slices. + + + + + + + +Add bytea equivalents of ltrim() and rtrim() (Joel Jacobson) @@ -2434,39 +2331,69 @@ Negative values start from the last field and count backward. -Allow some array functions to operate on a mix of compatible data types (Tom Lane) +A string_to_table() function to split a string on delimiters (Pavel Stehule) -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 more flexible data types for default values of lead() and lag() window functions (Vik Fearing) +This is similar to the regexp_split_to_table() function. -Allow procedures to have OUT parameters (Peter Eisentraut) +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. + + + + + + + +Add bit_xor XOR aggregate function (Alexey Bashtanov) + + + + + + + +Add function bit_count() to return the number of bits set in a bit or byte string (David Fetter) + + + + + + + +Add date_bin function (John Naylor) + + + +The function date_bin "bins" the input timestamp into a specified interval aligned with a specified origin. @@ -2487,16 +2414,68 @@ They are interpreted as BC years. -A string_to_table() function to split a string on delimiters (Pavel Stehule) +Add newer regular expression substring() syntax (Peter Eisentraut) -This is similar to the regexp_split_to_table() function. +The new syntax is SUBSTRING(text SIMILAR pattern ESCAPE escapechar). The previous standard syntax was SUBSTRING(text FROM pattern FOR escapechar), and is still supported by Postgres. + + + + + + + +Allow complemented character class escapes \D, \S, and \W within regex brackets (Tom Lane) + + + + + + + +Add [[:word:]] as a character class to match \w (Tom Lane) + + + + + + + +Allow more flexible data types for default values of lead() and lag() window functions (Vik Fearing) + + + + + + + +Cause exp() and power() for negative-infinity exponents to return zero (Tom Lane) + + + +Previously they often returned underflow errors. @@ -2517,16 +2496,38 @@ This allows more use of functions that require type conversion in security-sensi -Add newer regular expression substring() syntax (Peter Eisentraut) +Mark pg_stat_get_subscription() as returning a set (Tom Lane) -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. +While it worked in previous releases, it didn't report proper optimizer statistics and couldn't be used in the target list. + + + + + + + +Prevent inet_server_addr() and inet_server_port() from being run by parallel workers (Masahiko Sawada) + + + + + + + +Change pg_describe_object(), pg_identify_object(), and pg_identify_object_as_address() to always report helpful error messages for non-existent objects (Michael Paquier) @@ -2539,17 +2540,6 @@ 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 performance of repeated CALLs within plpgsql procedures (Pavel Stehule, Tom Lane) + @@ -2585,32 +2586,6 @@ Allow plpgsql's RETURN QUERY to execute its query using parallelism (Tom Lane) - - - - -Improve the output format of libpq's PQtrace() (Aya Iwata) - - - - - - - -Allow an ECPG SQL identifier to be linked to a specific connection (Hayato Kuroda) - - - -This is done via DECLARE ... STATEMENT. - - - + + +Improve the output format of libpq's PQtrace() (Aya Iwata) + + + + + +Allow an ECPG SQL identifier to be linked to a specific connection (Hayato Kuroda) + + + +This is done via DECLARE ... STATEMENT. + @@ -2667,36 +2668,6 @@ The previous limit was 255 bytes. - - - - -Allow vacuumdb to skip index cleanup and truncation (Nathan Bossart) - - - -The options are --no-index-cleanup and --no-truncate. - - - - - - - -Allow multiple verbose option specifications (-v) to increase the logging verbosity (Tom Lane) - - - -This is now supported by pg_dump, pg_dumpall, and pg_restore. - - - -Fix psql's \dT to understand array syntax and backend grammar aliases, like "int" for "integer" (Greg Sabino Mullane, Tom Lane) - - - - - - - -Allow psql's \df and \do commands to specify function and operator argument types (Greg Sabino Mullane, Tom Lane) +Allow vacuumdb to skip index cleanup and truncation (Nathan Bossart) -This helps reduce the number of matches for overloaded entries. - - - - - - - -When editing the previous query or a file with psql's \e, or using \ef and \ev, ignore the contents if the editor exits without saving (Laurenz Albe) - - - -Previously, such edits would still execute the editor contents. +The options are --no-index-cleanup and --no-truncate. @@ -2777,12 +2715,60 @@ This is controlled by option --extension. -Add psql command \dX to list extended statistics objects (Tatsuro Yamada) +Add pgbench permute() function to randomly shuffle values (Fabien Coelho, Hironobu Suzuki, Dean Rasheed) + + + + + + + +Allow multiple verbose option specifications (-v) to increase the logging verbosity (Tom Lane) + + + +This is now supported by pg_dump, pg_dumpall, and pg_restore. + + + + + + + <xref linkend="app-psql"/> + + + + + + + +Allow psql's \df and \do commands to specify function and operator argument types (Greg Sabino Mullane, Tom Lane) + + + +This helps reduce the number of matches for overloaded entries. + + + + + + + +Add an access method column to psql's \d[i|m|t]+ output (Georgios Kokolatos) @@ -2797,6 +2783,43 @@ Allow psql's \dt and \di to show TOAST tables and their indexes (Justin Pryzby) + + + + +Add psql command \dX to list extended statistics objects (Tatsuro Yamada) + + + + + + + +Fix psql's \dT to understand array syntax and backend grammar aliases, like "int" for "integer" (Greg Sabino Mullane, Tom Lane) + + + + + + + +When editing the previous query or a file with psql's \e, or using \ef and \ev, ignore the contents if the editor exits without saving (Laurenz Albe) + + + +Previously, such edits would still execute the editor contents. + + + - - -Add an access method column to psql's \d[i|m|t]+ output (Georgios Kokolatos) - - - - - -Add pgbench permute() function to randomly shuffle values (Fabien Coelho, Hironobu Suzuki, Dean Rasheed) - @@ -2923,21 +2915,6 @@ This removes the server start instructions that are normally output. - - - - -Remove support for the postmaster -o option (Magnus Hagander) - - - -This option was unnecessary since all passed options could already be specified directly. - - - + + +Remove support for the postmaster -o option (Magnus Hagander) + + + +This option was unnecessary since all passed options could already be specified directly. + @@ -3014,12 +3006,46 @@ 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) + + + +This is currently supported on Linux and Windows. + + + + + + + +Add debug_invalidate_system_caches_always to control cache overwriting (Craig Ringer) + + + +Previously this could only be controlled at compile time and is enabled only in assert builds. + + + + + + + +Various improvements in valgrind detection (Álvaro Herrera, Peter Geoghegan) @@ -3036,16 +3062,12 @@ Add a test module for the regular expression package (Tom Lane) -Add debug_invalidate_system_caches_always to control cache overwriting (Craig Ringer) - - - -Previously this could only be controlled at compile time and is enabled only in assert builds. +Add support for LLVM 12 (Andres Freund) @@ -3070,21 +3092,6 @@ This is more modern and supports FIPS mode. - - - - -Add support for abstract Unix-domain sockets (Peter Eisentraut) - - - -This is currently supported on Linux and Windows. - - - + + +Add direct conversion routines between EUC_TW and Big5 (Heikki Linnakangas) + + + - - -Add support for LLVM 12 (Andres Freund) - - - - - -Various improvements in valgrind detection (Álvaro Herrera, Peter Geoghegan) - @@ -3191,111 +3183,13 @@ 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) - - - -By default, only the root of partitioned tables is imported. - - - - - -Add postgres_fdw functions to discard cached connections (Bharath Rupireddy) - - - - - - - -Allow postgres_fdw to INSERT rows in bulk (Takayuki Tsunakawa, Tomas Vondra, Amit Langote) - - - - - - - -Add postgres_fdw function postgres_fdw_get_connections to report open foreign server connections (Bharath Rupireddy) - - - - - - - -Allow postgres_fdw to reestablish foreign server connections if necessary (Bharath Rupireddy) - - - -Previously foreign server restarts could cause foreign table access errors. - - - - - - - -Allow the cube data type to be transferred in binary mode (KaiGai Kohei) - - - - - - - -Change pageinspect block numbers to be bigints (Peter Eisentraut) - - - - - - - -Allow pageinspect to inspect GiST indexes (Andrey Borodin, Heikki Linnakangas) - - - - - - - -Allow subscripting of hstore values (Tom Lane, Dmitry Dolgov) +Add row counts for utility commands to pg_stat_statements (Fujii Masao, Katsuragi Yuta, Seino Yuki) @@ -3312,6 +3206,17 @@ Add pg_stat_statements_info system view to show pg_stat_statements activity (Kat + + + + +Allow subscripting of hstore values (Tom Lane, Dmitry Dolgov) + + + -Allow amcheck to also check heap pages (Mark Dilger) - - - -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 the cube data type to be transferred in binary mode (KaiGai Kohei) @@ -3370,25 +3260,49 @@ This is useful for correcting database corruption. -Add row counts for utility commands to pg_stat_statements (Fujii Masao, Katsuragi Yuta, Seino Yuki) +Add contrib module old_snapshot to report the XID/time mapping used by an active old_snapshot_threshold (Robert Haas) -Mark btree_gist functions as parallel safe (Steven Winfield) +Allow amcheck to also check heap pages (Mark Dilger) + + + +Previously it only checked B-Tree index pages. + + + + + + + +Allow pageinspect to inspect GiST indexes (Andrey Borodin, Heikki Linnakangas) + + + + + + + +Change pageinspect block numbers to be bigints (Peter Eisentraut) @@ -3401,10 +3315,97 @@ Author: Peter Eisentraut Allow pgstattuple_approx() to report on TOAST tables (Peter Eisentraut) + + + + + + +Mark btree_gist functions as parallel safe (Steven Winfield) + + + Postgres_fdw + + + + + + + +Allow postgres_fdw to INSERT rows in bulk (Takayuki Tsunakawa, Tomas Vondra, Amit Langote) + + + + + + + +Allow postgres_fdw to import table partitions if specified by IMPORT FOREIGN SCHEMA ... LIMIT TO (Matthias van de Meent) + + + +By default, only the root of partitioned tables is imported. + + + + + + + +Add postgres_fdw function postgres_fdw_get_connections to report open foreign server connections (Bharath Rupireddy) + + + + + + + +Add postgres_fdw functions to discard cached connections (Bharath Rupireddy) + + + + + + + +Allow postgres_fdw to reestablish foreign server connections if necessary (Bharath Rupireddy) + + + +Previously foreign server restarts could cause foreign table access errors. + + + + + + +