diff options
-rw-r--r-- | doc/src/sgml/release-14.sgml | 1743 |
1 files changed, 872 insertions, 871 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 </para> <para> -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. </para> </listitem> <listitem> <!-- Author: Peter Eisentraut <peter@eisentraut.org> -2020-06-11 [5333e014a] Remove deprecated syntax from CREATE/DROP LANGUAGE +2020-11-03 [2f70fdb06] Remove deprecated containment operators for built-in typ +Author: Tom Lane <tgl@sss.pgh.pa.us> +2021-03-05 [112d411fb] Remove deprecated containment operators for contrib type --> <para> -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) +</para> + +<para> +The more consistent <@ and @> have been recommended for many years. </para> </listitem> @@ -114,6 +119,8 @@ Previously, quoted text that contained multiple adjacent discarded tokens were t <!-- Author: Peter Eisentraut <peter@eisentraut.org> 2020-06-10 [c7eab0e97] Change default of password_encryption to scram-sha-256 +Author: Peter Eisentraut <peter@eisentraut.org> +2020-06-10 [c7eab0e97] Change default of password_encryption to scram-sha-256 --> <para> @@ -122,54 +129,70 @@ Change the default of the password_encryption server parameter to scram-sha-256 <para> 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 <literal>md5</literal> are no longer accepted. +Also, the legacy (and undocumented) boolean-like values which were previously synonyms for <literal>md5</literal> are no longer accepted. </para> </listitem> <listitem> <!-- -Author: Peter Eisentraut <peter@eisentraut.org> -2021-04-06 [a2da77cdb] Change return type of EXTRACT to numeric +Author: Bruce Momjian <bruce@momjian.us> +2020-10-05 [253f1025d] Overhaul pg_hba.conf clientcert's API --> <para> -Change EXTRACT to return the NUMERIC data type (Peter Eisentraut) +Overhaul the specification of clientcert in pg_hba.conf (Kyotaro Horiguchi) </para> <para> -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. </para> </listitem> <listitem> <!-- -Author: Tom Lane <tgl@sss.pgh.pa.us> -2020-10-22 [3dfb1942d] Avoid premature de-doubling of quote marks in ECPG strin -Author: Tom Lane <tgl@sss.pgh.pa.us> -2020-10-22 [c16a1bbcf] Add documentation and tests for quote marks in ECPG lite +Author: Michael Paquier <michael@paquier.xyz> +2021-03-09 [f9264d152] Remove support for SSL compression +Author: Michael Paquier <michael@paquier.xyz> +2021-03-10 [0ba71107e] Revert changes for SSL compression in libpq --> <para> -Pass doubled quote marks in ecpg SQL command strings literally (Tom Lane) +Remove support for SSL compression (Daniel Gustafsson, Michael Paquier) </para> <para> -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. +</para> +</listitem> + +<listitem> +<!-- +Author: Heikki Linnakangas <heikki.linnakangas@iki.fi> +2021-03-04 [3174d69fb] Remove server and libpq support for old FE/BE protocol v +--> + +<para> +Remove server and libpq support for the version 2 wire protocol (Heikki Linnakangas) +</para> + +<para> +This was last used as the default in Postgres 7.2 (year 2002). </para> </listitem> <listitem> <!-- Author: Peter Eisentraut <peter@eisentraut.org> -2020-11-25 [f73999262] tablefunc: Reject negative number of tuples passed to no +2021-04-06 [a2da77cdb] Change return type of EXTRACT to numeric --> <para> -Prevent tablefunc's function normal_rand() from accepting negative values (Ashutosh Bapat) +Change EXTRACT to return the NUMERIC data type (Peter Eisentraut) </para> <para> -Negative values produced undesirable results. +EXTRACT(date) now throws an error for units that are not part of the date data type. </para> </listitem> @@ -190,6 +213,21 @@ Previously window frame clauses like 'inf' PRECEDING AND 'inf' FOLLOWING returne <listitem> <!-- +Author: Peter Eisentraut <peter@eisentraut.org> +2020-11-25 [f73999262] tablefunc: Reject negative number of tuples passed to no +--> + +<para> +Prevent tablefunc's function normal_rand() from accepting negative values (Ashutosh Bapat) +</para> + +<para> +Negative values produced undesirable results. +</para> +</listitem> + +<listitem> +<!-- Author: Tom Lane <tgl@sss.pgh.pa.us> 2020-06-13 [23cbeda50] Sync behavior of var_samp and stddev_samp for single NaN --> @@ -205,80 +243,76 @@ Previously NaN was returned. <listitem> <!-- -Author: Michael Paquier <michael@paquier.xyz> -2021-03-09 [f9264d152] Remove support for SSL compression -Author: Michael Paquier <michael@paquier.xyz> -2021-03-10 [0ba71107e] Revert changes for SSL compression in libpq +Author: Tom Lane <tgl@sss.pgh.pa.us> +2020-09-17 [76f412ab3] Remove factorial operators, leaving only the factorial() --> <para> -Remove support for SSL compression (Daniel Gustafsson, Michael Paquier) +Remove factorial operators ! and !! (Mark Dilger) </para> <para> -This was already disabled by default in previous Postgres releases, and most modern OpenSSL and TLS versions no longer support it. +The factorial() function is still supported. Also remove function numeric_fac(). </para> </listitem> <listitem> <!-- Author: Peter Eisentraut <peter@eisentraut.org> -2020-11-03 [2f70fdb06] Remove deprecated containment operators for built-in typ -Author: Tom Lane <tgl@sss.pgh.pa.us> -2021-03-05 [112d411fb] Remove deprecated containment operators for contrib type +2020-06-18 [0a40563ea] Disallow factorial of negative numbers --> <para> -Remove deprecated containment operators @ and ~ for built-in geometric data types and contrib modules cube, hstore, intarray, and seg (Justin Pryzby) +Disallow factorial() of negative numbers (Peter Eisentraut) </para> <para> -The more consistent <@ and @> have been recommended for many years. +Previously such cases returned 1. </para> </listitem> <listitem> <!-- -Author: Heikki Linnakangas <heikki.linnakangas@iki.fi> -2021-03-04 [3174d69fb] Remove server and libpq support for old FE/BE protocol v +Author: Tom Lane <tgl@sss.pgh.pa.us> +2020-09-17 [1ed6b8956] Remove support for postfix (right-unary) operators. --> <para> -Remove server and libpq support for the version 2 wire protocol (Heikki Linnakangas) +Remove support for postfix (right-unary) operators (Mark Dilger) </para> <para> -This was last used as the default in Postgres 7.2 (year 2002). +pg_dump and pg_upgrade will warn if postfix operators are being dumped. </para> </listitem> <listitem> <!-- Author: Tom Lane <tgl@sss.pgh.pa.us> -2021-03-02 [4aea704a5] Fix semantics of regular expression back-references. +2021-02-25 [7dc13a0f0] Change regex \D and \W shorthands to always match newlin --> <para> -Improve handling of regular expression back-references (Tom Lane) +Allow \D and \W shorthands to match newlines in newline-sensitive mode (Tom Lane) </para> <para> -For example, disregard ^ in its expansion in \1 in "(^\d+).*\1". +Previously they did not match; [^[:digit:]] or [^[:word:]] can be used to get the old behavior. </para> </listitem> <listitem> <!-- Author: Tom Lane <tgl@sss.pgh.pa.us> -2021-02-25 [7dc13a0f0] Change regex \D and \W shorthands to always match newlin +2021-03-02 [4aea704a5] Fix semantics of regular expression back-references. --> <para> -Allow \D and \W shorthands to match newlines in newline-sensitive mode (Tom Lane) +Improve handling of regular expression back-references (Tom Lane) </para> <para> -Previously they did not match; [^[:digit:]] or [^[:word:]] can be used to get the old behavior. +For example, disregard ^ in its expansion in \1 in "(^\d+).*\1". </para> </listitem> @@ -325,135 +359,147 @@ Previously such attribute numbers returned an invalid column error. <listitem> <!-- -Author: Thomas Munro <tmunro@postgresql.org> -2021-01-29 [514b411a2] Retire pg_standby. +Author: Tom Lane <tgl@sss.pgh.pa.us> +2020-10-22 [3dfb1942d] Avoid premature de-doubling of quote marks in ECPG strin +Author: Tom Lane <tgl@sss.pgh.pa.us> +2020-10-22 [c16a1bbcf] Add documentation and tests for quote marks in ECPG lite --> <para> -Remove contrib program pg_standby (Justin Pryzby) +Pass doubled quote marks in ecpg SQL command strings literally (Tom Lane) +</para> + +<para> +Previously 'abc''def' was passed to the server as 'abc'def', and "abc""def" was passed as "abc"def". </para> </listitem> <listitem> <!-- -Author: Bruce Momjian <bruce@momjian.us> -2020-10-05 [253f1025d] Overhaul pg_hba.conf clientcert's API +Author: Peter Eisentraut <peter@eisentraut.org> +2020-06-11 [5333e014a] Remove deprecated syntax from CREATE/DROP LANGUAGE --> <para> -Overhaul the specification of clientcert in pg_hba.conf (Kyotaro Horiguchi) +Disallow single-quoting of the language name in the CREATE/DROP LANGUAGE command (Peter Eisentraut) </para> +</listitem> + +<listitem> +<!-- +Author: Thomas Munro <tmunro@postgresql.org> +2021-01-29 [514b411a2] Retire pg_standby. +--> <para> -Values 1/0/no-verify are no longer supported; only the strings verify-ca and verify-full can be used. Also, disallow verify-ca if cert authentication is enabled since cert requires verify-full -checking. +Remove contrib program pg_standby (Justin Pryzby) </para> </listitem> <listitem> <!-- Author: Tom Lane <tgl@sss.pgh.pa.us> -2020-09-17 [76f412ab3] Remove factorial operators, leaving only the factorial() +2020-07-07 [f3faf35f3] Don't create pg_type entries for sequences or toast tabl --> <para> -Remove factorial operators ! and !! (Mark Dilger) -</para> - -<para> -The factorial() function is still supported. Also remove function numeric_fac(). +Remove composite types for sequences or toast tables (Tom Lane) </para> </listitem> <listitem> <!-- -Author: Peter Eisentraut <peter@eisentraut.org> -2020-06-18 [0a40563ea] Disallow factorial of negative numbers +Author: Tom Lane <tgl@sss.pgh.pa.us> +2020-12-08 [a676386b5] Remove operator_precedence_warning. --> <para> -Disallow factorial() of negative numbers (Peter Eisentraut) +Remove operator_precedence_warning setting (Tom Lane) </para> <para> -Previously such cases returned 1. +This was needed for warning applications about PostgreSQL 9.5 changes. </para> </listitem> + </itemizedlist> + + </sect2> + + <sect2> + <title>Changes</title> + + <para> + Below you will find a detailed account of the changes between + <productname>PostgreSQL</productname> 14 and the previous major + release. + </para> + + <sect3> + <title>Server</title> + + <itemizedlist> + <listitem> <!-- -Author: Tom Lane <tgl@sss.pgh.pa.us> -2020-09-17 [1ed6b8956] Remove support for postfix (right-unary) operators. +Author: Stephen Frost <sfrost@snowman.net> +2021-04-05 [6c3ffd697] Add pg_read_all_data and pg_write_all_data roles --> <para> -Remove support for postfix (right-unary) operators (Mark Dilger) +Add predefined roles pg_read_all_data and pg_write_all_data (Stephen Frost) </para> <para> -pg_dump and pg_upgrade will warn if postfix operators are being dumped. +These non-login roles give read-only/write-only access to all objects. </para> </listitem> <listitem> <!-- -Author: Tom Lane <tgl@sss.pgh.pa.us> -2020-07-07 [f3faf35f3] Don't create pg_type entries for sequences or toast tabl +Author: Noah Misch <noah@leadboat.com> +2021-03-26 [a14a0118a] Add "pg_database_owner" default role. --> <para> -Remove composite types for sequences or toast tables (Tom Lane) +Add a predefined role to match the database owner (Noah Misch) +</para> + +<para> +It is called pg_database_owner; this is useful in template databases. </para> </listitem> <listitem> <!-- -Author: Tom Lane <tgl@sss.pgh.pa.us> -2020-12-08 [a676386b5] Remove operator_precedence_warning. +Author: Tomas Vondra <tomas.vondra@postgresql.org> +2021-03-18 [cd91de0d1] Remove temporary files after backend crash --> <para> -Remove operator_precedence_warning setting (Tom Lane) +Remove temporary files after backend crashes (Euler Taveira) </para> <para> -This was needed for warning applications about PostgreSQL 9.5 changes. +These files were previously retained for debugging purposes; deletion can be disabled with remove_temp_files_after_crash. </para> </listitem> <listitem> <!-- -Author: Peter Eisentraut <peter@eisentraut.org> -2020-06-10 [c7eab0e97] Change default of password_encryption to scram-sha-256 +Author: Thomas Munro <tmunro@postgresql.org> +2021-04-03 [c30f54ad7] Detect POLLHUP/POLLRDHUP while running queries. --> <para> -Limit the ways password_encryption can enable md5 hashing (Peter Eisentraut) +Add long-running queries to be canceled if the client disconnects (Sergey Cherkashin, Thomas Munro) </para> <para> -Previously on/true/yes/1 values enabled md5. Now, only the string md5 does this. +The server variable client_connection_check_interval allows supporting operating systems, e.g., Linux, to automatically cancel queries by disconnected clients. </para> </listitem> - </itemizedlist> - - </sect2> - - <sect2> - <title>Changes</title> - - <para> - Below you will find a detailed account of the changes between - <productname>PostgreSQL</productname> 14 and the previous major - release. - </para> - - <sect3> - <title>Server</title> - - <itemizedlist> - <listitem> <!-- Author: Magnus Hagander <magnus@hagander.net> @@ -471,42 +517,49 @@ Also add a similar optional wait parameter to pg_terminate_backend(). <listitem> <!-- -Author: Alvaro Herrera <alvherre@alvh.no-ip.org> -2021-04-08 [0827e8af7] autovacuum: handle analyze for partitioned tables +Author: Noah Misch <noah@leadboat.com> +2021-03-30 [0ff8bbdee] Accept slightly-filled pages for tuples larger than fill --> <para> -Autovacuum now analyzes partitioned tables (Yuzuko Hosoya) +Allow wide tuples to be always added to almost-empty heap pages (John Naylor, Floris van Nee) </para> <para> -DETAILS? +Previously tuples whose insertion would have exceeded the page's fill factor were instead added to new pages. </para> </listitem> <listitem> <!-- -Author: Peter Geoghegan <pg@bowt.ie> -2021-04-07 [5100010ee] Teach VACUUM to bypass unnecessary index vacuuming. +Author: Peter Eisentraut <peter@eisentraut.org> +2021-04-07 [5c55dc8b4] libpq: Set Server Name Indication (SNI) for SSL connecti --> <para> -Allow vacuum to skip index vacuuming when the number of removable index entries is insignificant (Masahiko Sawada, Peter Geoghegan) +Add Set Server Name Indication (SNI) for SSL connection packets (Peter Eisentraut) +</para> + +<para> +This can be disabled by turning client option "sslsni" off. </para> </listitem> + </itemizedlist> + + <sect4> + <title>Vacuuming</title> + + <itemizedlist> + <listitem> <!-- Author: Peter Geoghegan <pg@bowt.ie> -2021-04-07 [1e55e7d17] Add wraparound failsafe to VACUUM. +2021-04-07 [5100010ee] Teach VACUUM to bypass unnecessary index vacuuming. --> <para> -Cause vacuum operations to be aggressive if the table is near xid or multixact wraparound (Masahiko Sawada, Peter Geoghegan) -</para> - -<para> -This is controlled by vacuum_failsafe_age and vacuum_multixact_failsafe_age. +Allow vacuum to skip index vacuuming when the number of removable index entries is insignificant (Masahiko Sawada, Peter Geoghegan) </para> </listitem> @@ -527,91 +580,114 @@ Previously VACUUM could only place preexisting deleted pages in the free space m <listitem> <!-- -Author: Noah Misch <noah@leadboat.com> -2021-03-26 [a14a0118a] Add "pg_database_owner" default role. +Author: Peter Geoghegan <pg@bowt.ie> +2021-04-07 [3c3b8a4b2] Truncate line pointer array during VACUUM. --> <para> -Add a predefined role to match the database owner (Noah Misch) +Allow vacuum to deallocate space reserved by trailing unused heap line pointers (Matthias van de Meent, Peter Geoghegan) </para> +</listitem> + +<listitem> +<!-- +Author: Fujii Masao <fujii@postgresql.org> +2020-12-08 [e2ac3fed3] Speed up rechecking if relation needs to be vacuumed or +--> <para> -It is called pg_database_owner; this is useful in template databases. +Speed up vacuuming of databases with many relations (Tatsuhito Kasahara) </para> </listitem> <listitem> <!-- -Author: Stephen Frost <sfrost@snowman.net> -2021-04-05 [6c3ffd697] Add pg_read_all_data and pg_write_all_data roles +Author: Peter Geoghegan <pg@bowt.ie> +2021-01-27 [e19594c5c] Reduce the default value of vacuum_cost_page_miss. --> <para> -Add predefined roles pg_read_all_data and pg_write_all_data (Stephen Frost) +Reduce the default value of vacuum_cost_page_miss (Peter Geoghegan) </para> <para> -These non-login roles give read-only/write-only access to all objects. +This new default better reflects current hardware capabilities. </para> </listitem> <listitem> <!-- -Author: Thomas Munro <tmunro@postgresql.org> -2021-04-03 [c30f54ad7] Detect POLLHUP/POLLRDHUP while running queries. +Author: Michael Paquier <michael@paquier.xyz> +2021-02-09 [7cb3048f3] Add option PROCESS_TOAST to VACUUM --> <para> -Add long-running queries to be canceled if the client disconnects (Sergey Cherkashin, Thomas Munro) +Add ability to skip vacuuming of TOAST tables (Nathan Bossart) </para> <para> -The server variable client_connection_check_interval allows supporting operating systems, e.g., Linux, to automatically cancel queries by disconnected clients. +VACUUM now has a PROCESS_TOAST which can be set to false to disable TOAST processing, and vacuumdb has a --no-process-toast option. </para> </listitem> <listitem> <!-- -Author: Tomas Vondra <tomas.vondra@postgresql.org> -2021-03-18 [cd91de0d1] Remove temporary files after backend crash +Author: Peter Geoghegan <pg@bowt.ie> +2021-04-07 [1e55e7d17] Add wraparound failsafe to VACUUM. --> <para> -Remove temporary files after backend crashes (Euler Taveira) +Cause vacuum operations to be aggressive if the table is near xid or multixact wraparound (Masahiko Sawada, Peter Geoghegan) </para> <para> -These files were previously retained for debugging purposes; deletion can be disabled with remove_temp_files_after_crash. +This is controlled by vacuum_failsafe_age and vacuum_multixact_failsafe_age. </para> </listitem> <listitem> <!-- -Author: Peter Geoghegan <pg@bowt.ie> -2021-04-07 [3c3b8a4b2] Truncate line pointer array during VACUUM. +Author: Noah Misch <noah@leadboat.com> +2020-08-01 [cd5e82256] Change XID and mxact limits to warn at 40M and stop at 3 --> <para> -Deallocate space reserved by trailing unused heap line pointers (Matthias van de Meent, Peter Geoghegan) +Increase warning time and hard limit before transaction id and multi-transaction wraparound (Noah Misch) +</para> + +<para> +This should reduce the possibility of failures that occur without having issued warnings about wraparound. </para> </listitem> <listitem> <!-- -Author: Noah Misch <noah@leadboat.com> -2021-03-30 [0ff8bbdee] Accept slightly-filled pages for tuples larger than fill +Author: Alvaro Herrera <alvherre@alvh.no-ip.org> +2021-04-08 [0827e8af7] autovacuum: handle analyze for partitioned tables --> <para> -Allow wide tuples to be always added to almost-empty heap pages (John Naylor, Floris van Nee) +Autovacuum now analyzes partitioned tables (Yuzuko Hosoya) </para> <para> -Previously tuples whose insertion would have exceeded the page's fill factor were instead added to new pages. +DETAILS? </para> </listitem> - </itemizedlist> +<listitem> +<!-- +Author: Michael Paquier <michael@paquier.xyz> +2021-03-23 [5aed6a1fc] Add per-index stats information in verbose logs of autov +--> + +<para> +Add per-index information to autovacuum logging output (Masahiko Sawada) +</para> +</listitem> + + </itemizedlist> + </sect4> <sect4> <title><link linkend="ddl-partitioning">Partitioning</link></title> @@ -620,50 +696,50 @@ Previously tuples whose insertion would have exceeded the page's fill factor wer <listitem> <!-- -Author: Alvaro Herrera <alvherre@alvh.no-ip.org> -2021-03-25 [71f4c8c6f] ALTER TABLE ... DETACH PARTITION ... CONCURRENTLY +Author: Tom Lane <tgl@sss.pgh.pa.us> +2021-03-31 [86dc90056] Rework planning and execution of UPDATE and DELETE. +Author: Tom Lane <tgl@sss.pgh.pa.us> +2021-04-06 [a1115fa07] Postpone some more stuff out of ExecInitModifyTable. +Author: Tom Lane <tgl@sss.pgh.pa.us> +2021-04-06 [c5b7ba4e6] Postpone some stuff out of ExecInitModifyTable. --> <para> -Allow partitions to be detached in a non-blocking manner (Álvaro Herrera) +Improve the performance of updates/deletes on partitioned tables when only a few partitions are affected (Amit Langote, Tom Lane) </para> <para> -The syntax is ALTER TABLE ... DETACH PARTITION ... CONCURRENTLY, and FINALIZE. +This also allows updates/deletes on partitioned tables to use execution-time partition pruning. </para> </listitem> <listitem> <!-- -Author: Tom Lane <tgl@sss.pgh.pa.us> -2020-09-28 [2dfa3fea8] Remove complaints about COLLATE clauses in partition bou +Author: Alvaro Herrera <alvherre@alvh.no-ip.org> +2021-03-25 [71f4c8c6f] ALTER TABLE ... DETACH PARTITION ... CONCURRENTLY --> <para> -Allow the arbitrary collations of partition boundary values (Tom Lane) +Allow partitions to be detached in a non-blocking manner (Álvaro Herrera) </para> <para> -Previously it had to match the collation of the partition key. +The syntax is ALTER TABLE ... DETACH PARTITION ... CONCURRENTLY, and FINALIZE. </para> </listitem> <listitem> <!-- Author: Tom Lane <tgl@sss.pgh.pa.us> -2021-03-31 [86dc90056] Rework planning and execution of UPDATE and DELETE. -Author: Tom Lane <tgl@sss.pgh.pa.us> -2021-04-06 [a1115fa07] Postpone some more stuff out of ExecInitModifyTable. -Author: Tom Lane <tgl@sss.pgh.pa.us> -2021-04-06 [c5b7ba4e6] Postpone some stuff out of ExecInitModifyTable. +2020-09-28 [2dfa3fea8] Remove complaints about COLLATE clauses in partition bou --> <para> -Improve the performance of updates/deletes on partitioned tables when only a few partitions are affected (Amit Langote, Tom Lane) +Allow the arbitrary collations of partition boundary values (Tom Lane) </para> <para> -This also allows updates/deletes on partitioned tables to use execution-time partition pruning. +Previously it had to match the collation of the partition key. </para> </listitem> @@ -685,7 +761,7 @@ Author: Peter Geoghegan <pg@bowt.ie> --> <para> -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) </para> <para> @@ -725,27 +801,27 @@ This allows bloom indexes to be used effectively with data that is not physicall <listitem> <!-- -Author: Tom Lane <tgl@sss.pgh.pa.us> -2021-04-05 [09c1c6ab4] Support INCLUDE'd columns in SP-GiST. +Author: Heikki Linnakangas <heikki.linnakangas@iki.fi> +2020-09-17 [16fa9b2b3] Add support for building GiST index by sorting. --> <para> -Allow SP-GiST to use INCLUDE'd columns (Pavel Borisov) +Allow some GiST indexes to be built by presorting the data (Andrey Borodin) +</para> + +<para> +Presorting happens automatically and allows for faster index creation and smaller indexes. </para> </listitem> <listitem> <!-- -Author: Heikki Linnakangas <heikki.linnakangas@iki.fi> -2020-09-17 [16fa9b2b3] Add support for building GiST index by sorting. +Author: Tom Lane <tgl@sss.pgh.pa.us> +2021-04-05 [09c1c6ab4] Support INCLUDE'd columns in SP-GiST. --> <para> -Allow some GiST indexes to be built by presorting the data (Andrey Borodin) -</para> - -<para> -Presorting happens automatically and allows for faster index creation and smaller indexes. +Allow SP-GiST to use INCLUDE'd columns (Pavel Borisov) </para> </listitem> @@ -760,17 +836,16 @@ Presorting happens automatically and allows for faster index creation and smalle <listitem> <!-- -Author: Tomas Vondra <tomas.vondra@postgresql.org> -2021-03-27 [a4d75c86b] Extended statistics on expressions +Author: David Rowley <drowley@postgresql.org> +2021-04-08 [50e17ad28] Speedup ScalarArrayOpExpr evaluation --> <para> -Allow extended statistics on expressions (Tomas Vondra) +Allow hash lookup of IN clause with many constants (James Coleman, David Rowley) </para> <para> -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. </para> </listitem> @@ -789,6 +864,52 @@ Increase the number of places extended statistics can be used for OR clause esti </para> </listitem> +<listitem> +<!-- +Author: Tomas Vondra <tomas.vondra@postgresql.org> +2021-03-27 [a4d75c86b] Extended statistics on expressions +--> + +<para> +Allow extended statistics on expressions (Tomas Vondra) +</para> + +<para> +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? +</para> +</listitem> + +<listitem> +<!-- +Author: David Rowley <drowley@postgresql.org> +2021-02-27 [bb437f995] Add TID Range Scans to support efficient scanning ranges +--> + +<para> +Allow efficient heap scanning of a range of tids (Edmund Horner, David Rowley) +</para> + +<para> +Previously a sequential scan was required for non-equality tid specifications. +</para> +</listitem> + +<listitem> +<!-- +Author: Michael Paquier <michael@paquier.xyz> +2020-12-30 [e665769e6] Sanitize IF NOT EXISTS in EXPLAIN for CTAS and matviews +--> + +<para> +Fix EXPLAIN CREATE TABLE AS and EXPLAIN CREATE MATERIALIZED VIEW to honor IF NOT EXISTS (Bharath Rupireddy) +</para> + +<para> +Previously, if the object already exists, EXPLAIN would fail. +</para> +</listitem> + </itemizedlist> </sect4> @@ -815,7 +936,7 @@ Author: Andres Freund <andres@anarazel.de> --> <para> -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) </para> <para> @@ -840,61 +961,57 @@ This is useful if only a small percentage of rows is checked on the inner side. <listitem> <!-- -Author: Etsuro Fujita <efujita@postgresql.org> -2021-03-31 [27e1f1456] Add support for asynchronous execution. +Author: David Rowley <drowley@postgresql.org> +2020-09-15 [62e221e1c] Allow incremental sorts for windowing functions --> <para> -Allow a query referencing multiple foreign tables to perform foreign table scans in parallel (Robert Haas, Kyotaro Horiguchi, Thomas Munro, Etsuro Fujita) -</para> - -<para> -The postgres_fdw supports these type of scans if "async_capable" is set. +Allow window functions to perform incremental sorts (David Rowley) </para> </listitem> <listitem> <!-- -Author: Robert Haas <rhaas@postgresql.org> -2021-03-19 [bbe0a81db] Allow configurable LZ4 TOAST compression. +Author: David Rowley <drowley@postgresql.org> +2020-07-26 [56788d215] Allocate consecutive blocks during parallel seqscans --> <para> -Add ability to use LZ4 compression on TOAST data (Dilip Kumar) +Improve the I/O performance of parallel sequential scans (Thomas Munro, David Rowley) </para> <para> -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. </para> </listitem> <listitem> <!-- -Author: Stephen Frost <sfrost@snowman.net> -2021-03-16 [c6fc50cb4] Use pre-fetching for ANALYZE +Author: Etsuro Fujita <efujita@postgresql.org> +2021-03-31 [27e1f1456] Add support for asynchronous execution. --> <para> -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) </para> <para> -This is controlled by maintenance_io_concurrency. +The postgres_fdw supports these type of scans if "async_capable" is set. </para> </listitem> <listitem> <!-- -Author: David Rowley <drowley@postgresql.org> -2020-07-26 [56788d215] Allocate consecutive blocks during parallel seqscans +Author: Stephen Frost <sfrost@snowman.net> +2021-03-16 [c6fc50cb4] Use pre-fetching for ANALYZE --> <para> -Improve the I/O performance of parallel sequential scans (Thomas Munro, David Rowley) +Allow analyze to do page prefetching (Stephen Frost) </para> <para> -This was done by allocating blocks in groups to parallel workers. +This is controlled by maintenance_io_concurrency. </para> </listitem> @@ -931,51 +1048,33 @@ Improve the performance of regular expression comparisons (Tom Lane) <listitem> <!-- -Author: Amit Kapila <akapila@postgresql.org> -2021-01-12 [d6ad34f34] Optimize DropRelFileNodeBuffers() for recovery. ---> - -<para> -Speed truncation of small tables during recovery on clusters with a large number of shared buffers (Kirk Jamison) -</para> -</listitem> - -<listitem> -<!-- -Author: Fujii Masao <fujii@postgresql.org> -2020-12-08 [e2ac3fed3] Speed up rechecking if relation needs to be vacuumed or +Author: Michael Paquier <michael@paquier.xyz> +2020-10-11 [80f8eb79e] Use perfect hash for NFC and NFKC Unicode Normalization +Author: Michael Paquier <michael@paquier.xyz> +2020-10-23 [783f0cc64] Improve performance of Unicode {de,re}composition in the --> <para> -Speed up vacuuming of databases with many relations (Tatsuhito Kasahara) +Dramatically improve Unicode normalization (John Naylor) </para> -</listitem> - -<listitem> -<!-- -Author: David Rowley <drowley@postgresql.org> -2020-09-15 [62e221e1c] Allow incremental sorts for windowing functions ---> <para> -Allow window functions to perform incremental sorts (David Rowley) +This speeds normalize() and IS NORMALIZED. </para> </listitem> <listitem> <!-- -Author: Michael Paquier <michael@paquier.xyz> -2020-10-11 [80f8eb79e] Use perfect hash for NFC and NFKC Unicode Normalization -Author: Michael Paquier <michael@paquier.xyz> -2020-10-23 [783f0cc64] Improve performance of Unicode {de,re}composition in the +Author: Robert Haas <rhaas@postgresql.org> +2021-03-19 [bbe0a81db] Allow configurable LZ4 TOAST compression. --> <para> -Dramatically improve Unicode normalization (John Naylor) +Add ability to use LZ4 compression on TOAST data (Dilip Kumar) </para> <para> -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. </para> </listitem> @@ -1011,12 +1110,14 @@ A query id computed by an extension will also be displayed. <listitem> <!-- -Author: Michael Paquier <michael@paquier.xyz> -2021-04-07 [9afffcb83] Add some information about authenticated identity via lo +Author: Fujii Masao <fujii@postgresql.org> +2020-08-19 [3e98c0baf] Add pg_backend_memory_contexts system view. +Author: Fujii Masao <fujii@postgresql.org> +2020-08-26 [29dd6d8bc] Prevent non-superusers from reading pg_backend_memory_co --> <para> -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) </para> </listitem> @@ -1033,27 +1134,27 @@ Add function pg_backend_memory_contexts() to output the memory contexts of arbit <listitem> <!-- -Author: Michael Paquier <michael@paquier.xyz> -2021-03-23 [5aed6a1fc] Add per-index stats information in verbose logs of autov +Author: Stephen Frost <sfrost@snowman.net> +2021-03-16 [94d13d474] Improve logging of auto-vacuum and auto-analyze --> <para> -Add per-index information to autovacuum logging output (Masahiko Sawada) +Improve logging of auto-vacuum and auto-analyze (Stephen Frost, Jakub Wartak) +</para> + +<para> +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. </para> </listitem> <listitem> <!-- -Author: Stephen Frost <sfrost@snowman.net> -2021-03-16 [94d13d474] Improve logging of auto-vacuum and auto-analyze +Author: Michael Paquier <michael@paquier.xyz> +2021-04-07 [9afffcb83] Add some information about authenticated identity via lo --> <para> -Improve logging of auto-vacuum and auto-analyze (Stephen Frost, Jakub Wartak) -</para> - -<para> -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) </para> </listitem> @@ -1068,55 +1169,36 @@ This reports I/O timings for auto-vacuum and auto-analyze if track_io_timing is <listitem> <!-- -Author: Fujii Masao <fujii@postgresql.org> -2021-03-15 [d75288fb2] Make archiver process an auxiliary process. ---> - -<para> -Make the archiver process visible in pg_stat_activity (Kyotaro Horiguchi) -</para> -</listitem> - -<listitem> -<!-- -Author: Tom Lane <tgl@sss.pgh.pa.us> -2020-09-14 [f560209c6] Make walsenders show their replication commands in pg_st +Author: Tomas Vondra <tomas.vondra@postgresql.org> +2021-01-06 [8a4f618e7] Report progress of COPY commands +Author: Michael Paquier <michael@paquier.xyz> +2021-03-09 [9d2d45700] Add support for more progress reporting in COPY --> <para> -Improve pg_stat_activity reporting for walsender processes (Tom Lane) -</para> - -<para> -Previously only SQL commands were reported. +Add view pg_stat_progress_copy to report COPY progress (Josef Šimánek, Matthias van de Meent) </para> </listitem> <listitem> <!-- -Author: Tomas Vondra <tomas.vondra@postgresql.org> -2021-01-06 [8a4f618e7] Report progress of COPY commands -Author: Michael Paquier <michael@paquier.xyz> -2021-03-09 [9d2d45700] Add support for more progress reporting in COPY +Author: Magnus Hagander <magnus@hagander.net> +2021-01-17 [960869da0] Add pg_stat_database counters for sessions and session t --> <para> -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) </para> </listitem> <listitem> <!-- Author: Fujii Masao <fujii@postgresql.org> -2020-10-02 [8d9a93596] Add pg_stat_wal statistics view. -Author: Fujii Masao <fujii@postgresql.org> -2020-12-02 [01469241b] Track total number of WAL records, FPIs and bytes genera -Author: Fujii Masao <fujii@postgresql.org> -2021-03-09 [ff99918c6] Track total amounts of times spent writing and syncing W +2020-07-20 [d05b172a7] Add generic_plans and custom_plans fields into pg_prepar --> <para> -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) </para> </listitem> @@ -1133,12 +1215,16 @@ Add lock wait time to pg_locks (Atsushi Torikoshi) <listitem> <!-- -Author: Magnus Hagander <magnus@hagander.net> -2021-01-17 [960869da0] Add pg_stat_database counters for sessions and session t +Author: Fujii Masao <fujii@postgresql.org> +2020-10-02 [8d9a93596] Add pg_stat_wal statistics view. +Author: Fujii Masao <fujii@postgresql.org> +2020-12-02 [01469241b] Track total number of WAL records, FPIs and bytes genera +Author: Fujii Masao <fujii@postgresql.org> +2021-03-09 [ff99918c6] Track total amounts of times spent writing and syncing W --> <para> -Add session statistics to the pg_stat_database system view (Laurenz Albe) +Add system view pg_stat_wal which reports WAL activity (Masahiro Ikeda) </para> </listitem> @@ -1165,25 +1251,27 @@ Function pg_stat_reset_replication_slot() resets slot statistics. <listitem> <!-- -Author: Fujii Masao <fujii@postgresql.org> -2020-08-19 [3e98c0baf] Add pg_backend_memory_contexts system view. -Author: Fujii Masao <fujii@postgresql.org> -2020-08-26 [29dd6d8bc] Prevent non-superusers from reading pg_backend_memory_co +Author: Tom Lane <tgl@sss.pgh.pa.us> +2020-09-14 [f560209c6] Make walsenders show their replication commands in pg_st --> <para> -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) +</para> + +<para> +Previously only SQL commands were reported. </para> </listitem> <listitem> <!-- Author: Fujii Masao <fujii@postgresql.org> -2020-07-20 [d05b172a7] Add generic_plans and custom_plans fields into pg_prepar +2021-03-15 [d75288fb2] Make archiver process an auxiliary process. --> <para> -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) </para> </listitem> @@ -1236,26 +1324,41 @@ The new pg_hba.conf keyword "clientname=DN" allows comparison with certificate a <listitem> <!-- Author: Tom Lane <tgl@sss.pgh.pa.us> -2020-09-03 [67a472d71] Remove arbitrary restrictions on password length. +2020-09-03 [8f8154a50] Allow records to span multiple lines in pg_hba.conf and --> <para> -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) +</para> + +<para> +A backslash at the end of a line allows record contents to be continued on the next line. </para> </listitem> <listitem> <!-- -Author: Tom Lane <tgl@sss.pgh.pa.us> -2020-09-03 [8f8154a50] Allow records to span multiple lines in pg_hba.conf and +Author: Peter Eisentraut <peter@eisentraut.org> +2021-02-18 [f5465fade] Allow specifying CRL directory --> <para> -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) </para> <para> -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. +</para> +</listitem> + +<listitem> +<!-- +Author: Tom Lane <tgl@sss.pgh.pa.us> +2020-09-03 [67a472d71] Remove arbitrary restrictions on password length. +--> + +<para> +Allow passwords of an arbitrary length (Tom Lane, Nathan Bossart) </para> </listitem> @@ -1300,70 +1403,75 @@ The previous default was 0.5. <listitem> <!-- -Author: Peter Geoghegan <pg@bowt.ie> -2021-01-27 [e19594c5c] Reduce the default value of vacuum_cost_page_miss. +Author: Michael Paquier <michael@paquier.xyz> +2020-08-03 [b8fdee7d0] Add %P to log_line_prefix for parallel group leader --> <para> -Reduce the default value of vacuum_cost_page_miss (Peter Geoghegan) -</para> - -<para> -This new default better reflects current hardware capabilities. +Add %P to log_line_prefix to report the parallel group leader (Justin Pryzby) </para> </listitem> <listitem> <!-- -Author: Peter Eisentraut <peter@eisentraut.org> -2021-04-07 [5c55dc8b4] libpq: Set Server Name Indication (SNI) for SSL connecti +Author: Michael Paquier <michael@paquier.xyz> +2020-11-07 [a05dbf477] Add GUC_LIST_INPUT and GUC_LIST_QUOTE to unix_socket_dir --> <para> -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) </para> <para> -This can be disabled by turning client option "sslsni" off. +Previously all the paths had to be in a single quoted string. </para> </listitem> <listitem> <!-- -Author: Peter Eisentraut <peter@eisentraut.org> -2021-02-18 [f5465fade] Allow specifying CRL directory +Author: Thomas Munro <tmunro@postgresql.org> +2020-07-31 [84b1c63ad] Preallocate some DSM space at startup. --> <para> -Allow the specification of a certificate revocation list (CRL) directory (Kyotaro Horiguchi) +Allow startup allocation of dynamic shared memory (Thomas Munro) </para> <para> -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. </para> </listitem> <listitem> <!-- -Author: Fujii Masao <fujii@postgresql.org> -2021-01-08 [0650ff230] Add GUC to log long wait times on recovery conflicts. -Author: Fujii Masao <fujii@postgresql.org> -2021-01-13 [39b03690b] Log long wait time on recovery conflict when it's resolv +Author: Thomas Munro <tmunro@postgresql.org> +2020-07-17 [d2bddc250] Add huge_page_size setting for use on Linux. --> <para> -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) </para> </listitem> + </itemizedlist> + + </sect4> + + </sect3> + + <sect3> + <title>Streaming Replication and Recovery</title> + + <itemizedlist> + <listitem> <!-- -Author: Tom Lane <tgl@sss.pgh.pa.us> -2021-01-05 [bf8a662c9] Introduce a new GUC_REPORT setting "in_hot_standby". +Author: Heikki Linnakangas <heikki.linnakangas@iki.fi> +2020-11-12 [9c4f5192f] Allow pg_rewind to use a standby server as the source sy --> <para> -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) </para> </listitem> @@ -1384,129 +1492,120 @@ You can also set restore_command to an empty string and reload to force recovery <listitem> <!-- -Author: Michael Paquier <michael@paquier.xyz> -2020-11-07 [a05dbf477] Add GUC_LIST_INPUT and GUC_LIST_QUOTE to unix_socket_dir +Author: Fujii Masao <fujii@postgresql.org> +2021-01-08 [0650ff230] Add GUC to log long wait times on recovery conflicts. +Author: Fujii Masao <fujii@postgresql.org> +2021-01-13 [39b03690b] Log long wait time on recovery conflict when it's resolv --> <para> -Allow unix_socket_directories to specify paths as individual, comma-separated quoted strings (Ian Lawrence Barwick) -</para> - -<para> -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) </para> </listitem> <listitem> <!-- -Author: Michael Paquier <michael@paquier.xyz> -2020-08-03 [b8fdee7d0] Add %P to log_line_prefix for parallel group leader +Author: Peter Eisentraut <peter@eisentraut.org> +2021-01-18 [15251c0a6] Pause recovery for insufficient parameter settings --> <para> -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) +</para> + +<para> +Previously the standby would shut down immediately. </para> </listitem> <listitem> <!-- -Author: Noah Misch <noah@leadboat.com> -2020-08-01 [cd5e82256] Change XID and mxact limits to warn at 40M and stop at 3 +Author: Robert Haas <rhaas@postgresql.org> +2021-03-11 [32fd2b57d] Be clear about whether a recovery pause has taken effect --> <para> -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) </para> <para> -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. </para> </listitem> <listitem> <!-- -Author: Thomas Munro <tmunro@postgresql.org> -2020-07-31 [84b1c63ad] Preallocate some DSM space at startup. +Author: Tom Lane <tgl@sss.pgh.pa.us> +2021-01-05 [bf8a662c9] Introduce a new GUC_REPORT setting "in_hot_standby". --> <para> -Allow startup allocation of dynamic shared memory (Thomas Munro) -</para> - -<para> -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) </para> </listitem> <listitem> <!-- -Author: Thomas Munro <tmunro@postgresql.org> -2020-07-17 [d2bddc250] Add huge_page_size setting for use on Linux. +Author: Amit Kapila <akapila@postgresql.org> +2021-01-12 [d6ad34f34] Optimize DropRelFileNodeBuffers() for recovery. --> <para> -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) </para> </listitem> - </itemizedlist> - - </sect4> - - </sect3> - - <sect3> - <title>Streaming Replication and Recovery</title> - - <itemizedlist> - <listitem> <!-- -Author: Amit Kapila <akapila@postgresql.org> -2021-04-06 [ac4645c01] Allow pgoutput to send logical decoding messages. +Author: Thomas Munro <tmunro@postgresql.org> +2021-03-20 [61752afb2] Provide recovery_init_sync_method=syncfs. --> <para> -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) +</para> + +<para> +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. </para> </listitem> <listitem> <!-- -Author: Amit Kapila <akapila@postgresql.org> -2021-03-30 [f64ea6dc5] Add a xid argument to the filter_prepare callback for ou +Author: Michael Paquier <michael@paquier.xyz> +2020-07-12 [b1e48bbe6] Include replication origins in SQL functions for commit --> <para> -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) </para> </listitem> <listitem> <!-- -Author: Thomas Munro <tmunro@postgresql.org> -2021-03-20 [61752afb2] Provide recovery_init_sync_method=syncfs. +Author: Michael Paquier <michael@paquier.xyz> +2020-07-12 [b1e48bbe6] Include replication origins in SQL functions for commit --> <para> -Allow file system sync at the start of crash recovery on Linux (Thomas Munro) -</para> - -<para> -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) </para> </listitem> <listitem> <!-- -Author: Amit Kapila <akapila@postgresql.org> -2021-02-12 [ce0fdbfe9] Allow multiple xacts during table sync in logical replic +Author: Michael Paquier <michael@paquier.xyz> +2020-06-14 [cc072641d] Replace superuser check by ACLs for replication origin f --> <para> -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) +</para> + +<para> +Previously these functions could only be executed by super-users, and this is still the default. </para> </listitem> @@ -1526,16 +1625,12 @@ GENERAL ENOUGH? </para> </listitem> -<listitem> -<!-- -Author: Heikki Linnakangas <heikki.linnakangas@iki.fi> -2020-11-12 [9c4f5192f] Allow pg_rewind to use a standby server as the source sy ---> + </itemizedlist> -<para> -Allow standby servers to be rewound via pg_rewind (Heikki Linnakangas) -</para> -</listitem> + <sect4> + <title>Logical Replication</title> + + <itemizedlist> <listitem> <!-- @@ -1561,67 +1656,60 @@ Previously transactions that exceeded logical_decoding_work_mem were written to <listitem> <!-- Author: Amit Kapila <akapila@postgresql.org> -2020-07-20 [0bead9af4] Immediately WAL-log subtransaction and top-level XID ass +2020-07-28 [45fdc9738] Extend the logical decoding output plugin API with strea --> <para> -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) </para> <para> -This is useful for logical decoding. +The output functions begin with "stream". test_decoding also supports these. </para> </listitem> <listitem> <!-- -Author: Tom Lane <tgl@sss.pgh.pa.us> -2020-07-18 [9de77b545] Allow logical replication to transfer data in binary for +Author: Amit Kapila <akapila@postgresql.org> +2021-02-12 [ce0fdbfe9] Allow multiple xacts during table sync in logical replic --> <para> -Allow logical replication subscriptions to use binary transfer mode (Dave Cramer) -</para> - -<para> -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) </para> </listitem> <listitem> <!-- -Author: Michael Paquier <michael@paquier.xyz> -2020-07-12 [b1e48bbe6] Include replication origins in SQL functions for commit +Author: Amit Kapila <akapila@postgresql.org> +2020-07-20 [0bead9af4] Immediately WAL-log subtransaction and top-level XID ass --> <para> -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) </para> -</listitem> - -<listitem> -<!-- -Author: Michael Paquier <michael@paquier.xyz> -2020-07-12 [b1e48bbe6] Include replication origins in SQL functions for commit ---> <para> -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. </para> </listitem> <listitem> <!-- -Author: Michael Paquier <michael@paquier.xyz> -2020-06-14 [cc072641d] Replace superuser check by ACLs for replication origin f +Author: Amit Kapila <akapila@postgresql.org> +2020-12-30 [0aa8a01d0] Extend the output plugin API to allow decoding of prepar +Author: Amit Kapila <akapila@postgresql.org> +2021-01-04 [a271a1b50] Allow decoding at prepare time in ReorderBuffer. +Author: Amit Kapila <akapila@postgresql.org> +2021-03-03 [19890a064] Add option to enable two_phase commits via pg_create_log --> <para> -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) </para> <para> -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(). </para> </listitem> @@ -1643,83 +1731,57 @@ When logical replication is disabled, WAL invalidation messages are generated at <listitem> <!-- Author: Amit Kapila <akapila@postgresql.org> -2020-07-28 [45fdc9738] Extend the logical decoding output plugin API with strea ---> - -<para> -Enhance the logical replication API to allow streaming large in-progress transactions (Tomas Vondra, Dilip Kumar, Amit Kapila) -</para> - -<para> -The output functions begin with "stream". test_decoding also supports these. -</para> -</listitem> - -<listitem> -<!-- -Author: Peter Eisentraut <peter@eisentraut.org> -2021-01-18 [15251c0a6] Pause recovery for insufficient parameter settings +2020-10-15 [d7eb52d71] Execute invalidation messages for each XLOG_XACT_INVALID --> <para> -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) </para> <para> -Previously the standby would shut down immediately. +This allows Logical decoding to work efficiently in presence of a large amount of DDL. </para> </listitem> <listitem> <!-- Author: Amit Kapila <akapila@postgresql.org> -2020-12-30 [0aa8a01d0] Extend the output plugin API to allow decoding of prepar -Author: Amit Kapila <akapila@postgresql.org> -2021-01-04 [a271a1b50] Allow decoding at prepare time in ReorderBuffer. -Author: Amit Kapila <akapila@postgresql.org> -2021-03-03 [19890a064] Add option to enable two_phase commits via pg_create_log +2021-04-06 [ac4645c01] Allow pgoutput to send logical decoding messages. --> <para> -Enhance logical decoding APIs to handle two-phase commits (Ajin Cherian, Amit Kapila, Nikhil Sontakke, Stas Kelvich) -</para> - -<para> -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) </para> </listitem> <listitem> <!-- -Author: Amit Kapila <akapila@postgresql.org> -2020-10-15 [d7eb52d71] Execute invalidation messages for each XLOG_XACT_INVALID +Author: Tom Lane <tgl@sss.pgh.pa.us> +2020-07-18 [9de77b545] Allow logical replication to transfer data in binary for --> <para> -Allow logical decoding to more efficiently process cache invalidation messages (Dilip Kumar) +Allow logical replication subscriptions to use binary transfer mode (Dave Cramer) </para> <para> -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. </para> </listitem> <listitem> <!-- -Author: Robert Haas <rhaas@postgresql.org> -2021-03-11 [32fd2b57d] Be clear about whether a recovery pause has taken effect +Author: Amit Kapila <akapila@postgresql.org> +2021-03-30 [f64ea6dc5] Add a xid argument to the filter_prepare callback for ou --> <para> -Add function pg_get_wal_replay_pause_state() to report the recovery state (Dilip Kumar) -</para> - -<para> -It gives more detailed information than pg_is_wal_replay_paused(), which still exists. +Allow logical decoding to be filtered by xid (Markus Wanner) </para> </listitem> - </itemizedlist> + </itemizedlist> + </sect4> </sect3> @@ -1731,30 +1793,15 @@ It gives more detailed information than pg_is_wal_replay_paused(), which still e <listitem> <!-- Author: Tom Lane <tgl@sss.pgh.pa.us> -2021-04-13 [6c0373ab7] Allow table-qualified variable names in ON CONFLICT ... ---> - -<para> -Allow the WHERE clause of ON CONFLICT to be table-qualified (Tom Lane) -</para> - -<para> -Only the target table can be referenced. -</para> -</listitem> - -<listitem> -<!-- -Author: David Rowley <drowley@postgresql.org> -2021-04-08 [50e17ad28] Speedup ScalarArrayOpExpr evaluation +2020-09-18 [06a7c3154] Allow most keywords to be used as column labels without --> <para> -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) </para> <para> -Previously the only option was to sequentially scan the list of constants. +There are now 90% fewer restricted keywords. </para> </listitem> @@ -1790,48 +1837,48 @@ For example, GROUP BY CUBE (a,b), CUBE (b,c) will generate duplicate grouping co <listitem> <!-- -Author: Peter Eisentraut <peter@eisentraut.org> -2021-02-01 [3696a600e] SEARCH and CYCLE clauses -Author: Peter Eisentraut <peter@eisentraut.org> -2021-02-27 [f4adc41c4] Enhanced cycle mark values +Author: Tom Lane <tgl@sss.pgh.pa.us> +2020-11-22 [17958972f] Allow a multi-row INSERT to specify DEFAULTs for a gener --> <para> -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) </para> <para> -This could be accomplished previously using existing syntax. +This used to throw an error. </para> </listitem> <listitem> <!-- -Author: Tom Lane <tgl@sss.pgh.pa.us> -2020-11-22 [17958972f] Allow a multi-row INSERT to specify DEFAULTs for a gener +Author: Peter Eisentraut <peter@eisentraut.org> +2021-02-01 [3696a600e] SEARCH and CYCLE clauses +Author: Peter Eisentraut <peter@eisentraut.org> +2021-02-27 [f4adc41c4] Enhanced cycle mark values --> <para> -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) </para> <para> -This used to throw an error. +This could be accomplished previously using existing syntax. </para> </listitem> <listitem> <!-- Author: Tom Lane <tgl@sss.pgh.pa.us> -2020-09-18 [06a7c3154] Allow most keywords to be used as column labels without +2021-04-13 [6c0373ab7] Allow table-qualified variable names in ON CONFLICT ... --> <para> -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) </para> <para> -There are now 90% fewer restricted keywords. +Only the target table can be referenced. </para> </listitem> @@ -1846,193 +1893,163 @@ There are now 90% fewer restricted keywords. <listitem> <!-- -Author: Fujii Masao <fujii@postgresql.org> -2021-04-08 [8ff1c9464] Allow TRUNCATE command to truncate foreign tables. +Author: Thomas Munro <tmunro@postgresql.org> +2021-03-17 [9e7ccd9ef] Enable parallelism in REFRESH MATERIALIZED VIEW. --> <para> -Allow TRUNCATE to operate on foreign tables (Kazutaka Onishi, Kohei KaiGai) -</para> - -<para> -The postgres_fdw module also now supports this. +Allow REFRESH MATERIALIZED VIEW to use parallelism (Bharath Rupireddy) </para> </listitem> <listitem> <!-- -Author: Peter Eisentraut <peter@eisentraut.org> -2021-04-06 [82ed7748b] ALTER SUBSCRIPTION ... ADD/DROP PUBLICATION +Author: Michael Paquier <michael@paquier.xyz> +2021-02-04 [c5b286047] Add TABLESPACE option to REINDEX --> <para> -Allow publications to be more easily added and removed (Japin Li) +Allow REINDEX to change the tablespace of the new index (Alexey Kondratov, Michael Paquier, Justin Pryzby) </para> <para> -The new syntax is ALTER SUBSCRIPTION ... ADD/DROP PUBLICATION. This avoids having to specify all publications to add/remove entries. +This is done by specifying a TABLESPACE clause. </para> </listitem> <listitem> <!-- -Author: Fujii Masao <fujii@postgresql.org> -2021-04-02 [b1be3074a] postgres_fdw: Add option to control whether to keep conn +Author: Michael Paquier <michael@paquier.xyz> +2020-09-08 [a6642b3ae] Add support for partitioned tables and indexes in REINDE --> <para> -Allow control over whether foreign servers keep connections open after transaction completion (Bharath Rupireddy) -</para> - -<para> -This is controlled by keep_connections and defaults to on. +Allow REINDEX to process all child tables or indexes of a partitioned relation (Justin Pryzby, Michael Paquier) </para> </listitem> <listitem> <!-- -Author: Thomas Munro <tmunro@postgresql.org> -2021-03-17 [9e7ccd9ef] Enable parallelism in REFRESH MATERIALIZED VIEW. +Author: Tom Lane <tgl@sss.pgh.pa.us> +2020-07-25 [0a0727ccf] Improve performance of binary COPY FROM through better b --> <para> -Allow REFRESH MATERIALIZED VIEW to use parallelism (Bharath Rupireddy) +Improve the performance of COPY FROM in binary mode (Bharath Rupireddy, Amit Langote) </para> </listitem> <listitem> <!-- -Author: Michael Paquier <michael@paquier.xyz> -2021-02-09 [7cb3048f3] Add option PROCESS_TOAST to VACUUM +Author: Tom Lane <tgl@sss.pgh.pa.us> +2020-11-04 [40c24bfef] Improve our ability to regurgitate SQL-syntax function c --> <para> -Add ability to skip vacuuming of TOAST tables (Nathan Bossart) +Preserve SQL standard syntax in view definitions, if possible (Tom Lane) </para> <para> -VACUUM now has a PROCESS_TOAST which can be set to false to disable TOAST processing, and vacuumdb has a --no-process-toast option. +Previously non-function call SQL standard syntax, e.g. EXTRACT, were converted to non-SQL standard function calls. </para> </listitem> <listitem> <!-- -Author: Michael Paquier <michael@paquier.xyz> -2021-02-04 [c5b286047] Add TABLESPACE option to REINDEX +Author: Peter Eisentraut <peter@eisentraut.org> +2021-01-30 [6aaaa76bb] Allow GRANTED BY clause in normal GRANT and REVOKE state --> <para> -Allow REINDEX to change the tablespace of the new index (Alexey Kondratov, Michael Paquier, Justin Pryzby) -</para> - -<para> -This is done by specifying a TABLESPACE clause. +Add the SQL-standard clause GRANTED BY to GRANT and REVOKE (Peter Eisentraut) </para> </listitem> <listitem> <!-- -Author: Peter Eisentraut <peter@eisentraut.org> -2021-01-30 [dfb75e478] Add primary keys and unique constraints to system catalo Author: Tom Lane <tgl@sss.pgh.pa.us> -2021-02-02 [62f34097c] Build in some knowledge about foreign-key relationships +2020-11-14 [92bf7e2d0] Provide the OR REPLACE option for CREATE TRIGGER. --> <para> -Add primary keys, unique constraints, and foreign keys to system catalogs (Peter Eisentraut) +Add OR REPLACE for CREATE TRIGGER (Takamichi Osumi) </para> <para> -This helps GUI tools analyze the system tables. -</para> -</listitem> - -<listitem> -<!-- -Author: Peter Eisentraut <peter@eisentraut.org> -2021-01-30 [6aaaa76bb] Allow GRANTED BY clause in normal GRANT and REVOKE state ---> - -<para> -Add the SQL-standard clause GRANTED BY to GRANT and REVOKE (Peter Eisentraut) +This allows pre-existing triggers to be conditionally replaced. </para> </listitem> <listitem> <!-- -Author: Michael Paquier <michael@paquier.xyz> -2020-12-30 [e665769e6] Sanitize IF NOT EXISTS in EXPLAIN for CTAS and matviews +Author: Fujii Masao <fujii@postgresql.org> +2021-04-02 [b1be3074a] postgres_fdw: Add option to control whether to keep conn --> <para> -Fix EXPLAIN CREATE TABLE AS and EXPLAIN CREATE MATERIALIZED VIEW to honor IF NOT EXISTS (Bharath Rupireddy) +Allow control over whether foreign servers keep connections open after transaction completion (Bharath Rupireddy) </para> <para> -Previously, if the object already exists, EXPLAIN would fail. +This is controlled by keep_connections and defaults to on. </para> </listitem> <listitem> <!-- -Author: Tom Lane <tgl@sss.pgh.pa.us> -2020-11-14 [92bf7e2d0] Provide the OR REPLACE option for CREATE TRIGGER. +Author: Fujii Masao <fujii@postgresql.org> +2021-04-08 [8ff1c9464] Allow TRUNCATE command to truncate foreign tables. --> <para> -Add OR REPLACE for CREATE TRIGGER (Takamichi Osumi) +Allow TRUNCATE to operate on foreign tables (Kazutaka Onishi, Kohei KaiGai) </para> <para> -This allows pre-existing triggers to be conditionally replaced. +The postgres_fdw module also now supports this. </para> </listitem> <listitem> <!-- -Author: Tom Lane <tgl@sss.pgh.pa.us> -2020-11-04 [40c24bfef] Improve our ability to regurgitate SQL-syntax function c +Author: Peter Eisentraut <peter@eisentraut.org> +2021-04-06 [82ed7748b] ALTER SUBSCRIPTION ... ADD/DROP PUBLICATION --> <para> -Preserve SQL standard syntax in view definitions, if possible (Tom Lane) +Allow publications to be more easily added and removed (Japin Li) </para> <para> -Previously non-function call SQL standard syntax, e.g. EXTRACT, were converted to non-SQL standard function calls. +The new syntax is ALTER SUBSCRIPTION ... ADD/DROP PUBLICATION. This avoids having to specify all publications to add/remove entries. </para> </listitem> <listitem> <!-- Author: Peter Eisentraut <peter@eisentraut.org> -2020-09-17 [45b980570] Allow CURRENT_ROLE where CURRENT_USER is accepted +2021-01-30 [dfb75e478] Add primary keys and unique constraints to system catalo +Author: Tom Lane <tgl@sss.pgh.pa.us> +2021-02-02 [62f34097c] Build in some knowledge about foreign-key relationships --> <para> -Allow CURRENT_ROLE every place CURRENT_USER is accepted (Peter Eisentraut) +Add primary keys, unique constraints, and foreign keys to system catalogs (Peter Eisentraut) </para> -</listitem> - -<listitem> -<!-- -Author: Michael Paquier <michael@paquier.xyz> -2020-09-08 [a6642b3ae] Add support for partitioned tables and indexes in REINDE ---> <para> -Allow REINDEX to process all child tables or indexes of a partitioned relation (Justin Pryzby, Michael Paquier) +This helps GUI tools analyze the system tables. </para> </listitem> <listitem> <!-- -Author: Tom Lane <tgl@sss.pgh.pa.us> -2020-07-25 [0a0727ccf] Improve performance of binary COPY FROM through better b +Author: Peter Eisentraut <peter@eisentraut.org> +2020-09-17 [45b980570] Allow CURRENT_ROLE where CURRENT_USER is accepted --> <para> -Improve the performance of COPY FROM in binary mode (Bharath Rupireddy, Amit Langote) +Allow CURRENT_ROLE every place CURRENT_USER is accepted (Peter Eisentraut) </para> </listitem> @@ -2047,17 +2064,6 @@ Improve the performance of COPY FROM in binary mode (Bharath Rupireddy, Amit Lan <listitem> <!-- -Author: Tom Lane <tgl@sss.pgh.pa.us> -2020-07-06 [f7f70d5e2] Create composite array types for initdb-created relation ---> - -<para> -Create composite array types for most system relations (Wenjing Zeng) -</para> -</listitem> - -<listitem> -<!-- Author: Author: Alexander Korotkov <akorotkov@postgresql.org> 2020-12-20 [6df7a9698] Multirange datatypes Author: Alexander Korotkov <akorotkov@postgresql.org> @@ -2087,19 +2093,22 @@ Add point operators <<| and |>> to be strictly above/below geometry </para> <para> -Previously >^ and <^ were marked as performing this test, but non-point geometric operators used these operators for non-strict comparisons, leading to confusion. The old operators still exist but will be -eventually removed. ACCURATE? +Previously >^ and <^ were marked as performing this test, but non-point geometric operators used these operators for non-strict comparisons, leading to confusion. The old operators still exist but will be eventually removed. ACCURATE? </para> </listitem> <listitem> <!-- -Author: Tom Lane <tgl@sss.pgh.pa.us> -2020-11-21 [8597a48d0] Fix FPeq() and friends to get the right answers for infi +Author: Peter Eisentraut <peter@eisentraut.org> +2020-06-08 [cbcc8726b] Update snowball +Author: Peter Eisentraut <peter@eisentraut.org> +2020-06-08 [c2e71cb35] Update documentation for snowball update +Author: Peter Eisentraut <peter@eisentraut.org> +2021-02-19 [678d0e239] Update snowball --> <para> -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) </para> </listitem> @@ -2136,37 +2145,11 @@ Floating point data types already supported these. <listitem> <!-- Author: Tom Lane <tgl@sss.pgh.pa.us> -2020-07-21 [670c0a1d4] Weaken type-OID-matching checks in array_recv and record ---> - -<para> -Allow binary data transfer to be more forgiving of array and record OID mismatches (Tom Lane) -</para> -</listitem> - -<listitem> -<!-- -Author: Fujii Masao <fujii@postgresql.org> -2020-06-30 [9bae7e4cd] Add +(pg_lsn,numeric) and -(pg_lsn,numeric) operators. ---> - -<para> -Add operators to add and subtract LSN and numeric (byte) values (Fujii Masao) -</para> -</listitem> - -<listitem> -<!-- -Author: Peter Eisentraut <peter@eisentraut.org> -2020-06-08 [cbcc8726b] Update snowball -Author: Peter Eisentraut <peter@eisentraut.org> -2020-06-08 [c2e71cb35] Update documentation for snowball update -Author: Peter Eisentraut <peter@eisentraut.org> -2021-02-19 [678d0e239] Update snowball +2020-11-21 [8597a48d0] Fix FPeq() and friends to get the right answers for infi --> <para> -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) </para> </listitem> @@ -2200,45 +2183,48 @@ Previously this returned an error. Division with Numerics always returned NaN. </para> </listitem> - </itemizedlist> - - </sect3> - - <sect3> - <title>Functions</title> - - <itemizedlist> - <listitem> <!-- -Author: Michael Paquier <michael@paquier.xyz> -2020-07-15 [2a10fdc43] Eliminate cache lookup errors in SQL functions for objec +Author: Fujii Masao <fujii@postgresql.org> +2020-06-30 [9bae7e4cd] Add +(pg_lsn,numeric) and -(pg_lsn,numeric) operators. --> <para> -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) </para> </listitem> <listitem> <!-- Author: Tom Lane <tgl@sss.pgh.pa.us> -2020-06-14 [decbe2bfb] Fix behavior of exp() and power() for infinity inputs. -Author: Tom Lane <tgl@sss.pgh.pa.us> -2020-06-15 [e532b1d57] Fix power() for infinity inputs some more. -Author: Tom Lane <tgl@sss.pgh.pa.us> -2020-06-15 [5674eb987] Fix power() for large inputs yet more. +2020-07-21 [670c0a1d4] Weaken type-OID-matching checks in array_recv and record --> <para> -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) </para> +</listitem> + +<listitem> +<!-- +Author: Tom Lane <tgl@sss.pgh.pa.us> +2020-07-06 [f7f70d5e2] Create composite array types for initdb-created relation +--> <para> -Previously they often returned underflow errors. +Create composite array types for most system relations (Wenjing Zeng) </para> </listitem> + </itemizedlist> + + </sect3> + + <sect3> + <title>Functions</title> + + <itemizedlist> + <listitem> <!-- Author: Peter Eisentraut <peter@eisentraut.org> @@ -2257,276 +2243,291 @@ Previously only single-quoted or $$-quoted function bodies were supported. <listitem> <!-- Author: Peter Eisentraut <peter@eisentraut.org> -2021-03-29 [f37fec837] Add unistr function +2020-10-05 [2453ea142] Support for OUT parameters in procedures +Author: Peter Eisentraut <peter@eisentraut.org> +2020-10-27 [9213462c5] Make procedure OUT parameters work with JDBC --> <para> -Add unistr() function to allow Unicode characters to be specified as backslash-hex escapes in strings (Pavel Stehule) -</para> - -<para> -This is similar to how Unicode can be specified in literal string. +Allow procedures to have OUT parameters (Peter Eisentraut) </para> </listitem> <listitem> <!-- -Author: Peter Eisentraut <peter@eisentraut.org> -2021-03-24 [49ab61f0b] Add date_bin function -Author: Peter Eisentraut <peter@eisentraut.org> -2021-04-10 [496e58bb0] Improve behavior of date_bin with origin in the future +Author: Alexander Korotkov <akorotkov@postgresql.org> +2021-01-31 [676887a3b] Implementation of subscripting for jsonb +Author: Alexander Korotkov <akorotkov@postgresql.org> +2021-01-31 [81fcc72e6] Filling array gaps during jsonb subscripting +Author: Alexander Korotkov <akorotkov@postgresql.org> +2021-01-31 [aa6e46daf] Throw error when assigning jsonb scalar instead of a com --> <para> -Add date_bin function (John Naylor) +Allow subscripting of JSONB and simplify the implementation of subscripting (Dmitry Dolgov) </para> <para> -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. </para> </listitem> <listitem> <!-- -Author: Peter Eisentraut <peter@eisentraut.org> -2021-03-23 [a6715af1e] Add bit_count SQL function +Author: Tom Lane <tgl@sss.pgh.pa.us> +2020-11-04 [9e38c2bb5] Declare assorted array functions using anycompatible not --> <para> -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) +</para> + +<para> +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. </para> </listitem> <listitem> <!-- Author: Tom Lane <tgl@sss.pgh.pa.us> -2021-03-08 [fed10d4ee] Properly mark pg_stat_get_subscription() as returning a +2021-03-03 [0a687c8f1] Add trim_array() function. --> <para> -Mark pg_stat_get_subscription() as returning a set (Tom Lane) +Add SQL-standard trim_array() function (Vik Fearing) </para> <para> -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. </para> </listitem> <listitem> <!-- -Author: Peter Eisentraut <peter@eisentraut.org> -2021-03-06 [f9a0392e1] Add bit_xor aggregate function +Author: Tom Lane <tgl@sss.pgh.pa.us> +2021-01-18 [a6cf3df4e] Add bytea equivalents of ltrim() and rtrim(). --> <para> -Add bit_xor XOR aggregate function (Alexey Bashtanov) +Add bytea equivalents of ltrim() and rtrim() (Joel Jacobson) </para> </listitem> <listitem> <!-- Author: Tom Lane <tgl@sss.pgh.pa.us> -2021-03-03 [0a687c8f1] Add trim_array() function. +2020-11-13 [ec0294fb2] Support negative indexes in split_part(). --> <para> -Add SQL-standard trim_array() function (Vik Fearing) +Support negative indexes in split_part() (Nikhil Benesch) </para> <para> -This can already be done with array slices. +Negative values start from the last field and count backward. </para> </listitem> <listitem> <!-- -Author: David Rowley <drowley@postgresql.org> -2021-02-27 [bb437f995] Add TID Range Scans to support efficient scanning ranges +Author: Tom Lane <tgl@sss.pgh.pa.us> +2020-09-02 [66f163068] Add string_to_table() function. --> <para> -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) </para> <para> -Previously a sequential scan was required for non-equality tid specifications. +This is similar to the regexp_split_to_table() function. </para> </listitem> <listitem> <!-- -Author: Tom Lane <tgl@sss.pgh.pa.us> -2021-02-25 [2a0af7fe4] Allow complemented character class escapes within regex +Author: Peter Eisentraut <peter@eisentraut.org> +2021-03-29 [f37fec837] Add unistr function --> <para> -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) +</para> + +<para> +This is similar to how Unicode can be specified in literal string. </para> </listitem> <listitem> <!-- -Author: Tom Lane <tgl@sss.pgh.pa.us> -2021-02-25 [2a0af7fe4] Allow complemented character class escapes within regex +Author: Peter Eisentraut <peter@eisentraut.org> +2021-03-06 [f9a0392e1] Add bit_xor aggregate function --> <para> -Allow complemented character class escapes \D, \S, and \W within regex brackets (Tom Lane) +Add bit_xor XOR aggregate function (Alexey Bashtanov) </para> </listitem> <listitem> <!-- -Author: Alexander Korotkov <akorotkov@postgresql.org> -2021-01-31 [676887a3b] Implementation of subscripting for jsonb -Author: Alexander Korotkov <akorotkov@postgresql.org> -2021-01-31 [81fcc72e6] Filling array gaps during jsonb subscripting -Author: Alexander Korotkov <akorotkov@postgresql.org> -2021-01-31 [aa6e46daf] Throw error when assigning jsonb scalar instead of a com +Author: Peter Eisentraut <peter@eisentraut.org> +2021-03-23 [a6715af1e] Add bit_count SQL function --> <para> -Allow subscripting of JSONB and simplify the implementation of subscripting (Dmitry Dolgov) -</para> - -<para> -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) </para> </listitem> <listitem> <!-- -Author: Tom Lane <tgl@sss.pgh.pa.us> -2021-01-18 [a6cf3df4e] Add bytea equivalents of ltrim() and rtrim(). +Author: Peter Eisentraut <peter@eisentraut.org> +2021-03-24 [49ab61f0b] Add date_bin function +Author: Peter Eisentraut <peter@eisentraut.org> +2021-04-10 [496e58bb0] Improve behavior of date_bin with origin in the future --> <para> -Add bytea equivalents of ltrim() and rtrim() (Joel Jacobson) +Add date_bin function (John Naylor) +</para> + +<para> +The function date_bin "bins" the input timestamp into a specified interval aligned with a specified origin. </para> </listitem> <listitem> <!-- Author: Tom Lane <tgl@sss.pgh.pa.us> -2021-01-13 [5a6f9bce8] Mark inet_server_addr() and inet_server_port() as parall +2020-09-29 [a094c8ff5] Fix make_timestamp[tz] to accept negative years as meani --> <para> -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) +</para> + +<para> +They are interpreted as BC years. </para> </listitem> <listitem> <!-- -Author: Tom Lane <tgl@sss.pgh.pa.us> -2020-11-13 [ec0294fb2] Support negative indexes in split_part(). +Author: Peter Eisentraut <peter@eisentraut.org> +2020-06-29 [78c887679] Add current substring regular expression syntax --> <para> -Support negative indexes in split_part() (Nikhil Benesch) +Add newer regular expression substring() syntax (Peter Eisentraut) </para> <para> -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. </para> </listitem> <listitem> <!-- Author: Tom Lane <tgl@sss.pgh.pa.us> -2020-11-04 [9e38c2bb5] Declare assorted array functions using anycompatible not +2021-02-25 [2a0af7fe4] Allow complemented character class escapes within regex --> <para> -Allow some array functions to operate on a mix of compatible data types (Tom Lane) -</para> - -<para> -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) </para> </listitem> <listitem> <!-- Author: Tom Lane <tgl@sss.pgh.pa.us> -2020-11-04 [5c292e6b9] Declare lead() and lag() using anycompatible not anyelem +2021-02-25 [2a0af7fe4] Allow complemented character class escapes within regex --> <para> -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) </para> </listitem> <listitem> <!-- -Author: Peter Eisentraut <peter@eisentraut.org> -2020-10-05 [2453ea142] Support for OUT parameters in procedures -Author: Peter Eisentraut <peter@eisentraut.org> -2020-10-27 [9213462c5] Make procedure OUT parameters work with JDBC +Author: Tom Lane <tgl@sss.pgh.pa.us> +2020-11-04 [5c292e6b9] Declare lead() and lag() using anycompatible not anyelem --> <para> -Allow procedures to have OUT parameters (Peter Eisentraut) +Allow more flexible data types for default values of lead() and lag() window functions (Vik Fearing) </para> </listitem> <listitem> <!-- Author: Tom Lane <tgl@sss.pgh.pa.us> -2020-09-29 [a094c8ff5] Fix make_timestamp[tz] to accept negative years as meani +2020-06-14 [decbe2bfb] Fix behavior of exp() and power() for infinity inputs. +Author: Tom Lane <tgl@sss.pgh.pa.us> +2020-06-15 [e532b1d57] Fix power() for infinity inputs some more. +Author: Tom Lane <tgl@sss.pgh.pa.us> +2020-06-15 [5674eb987] Fix power() for large inputs yet more. --> <para> -Allow make_timestamp/make_timestamptz to accept negative years (Peter Eisentraut) +Cause exp() and power() for negative-infinity exponents to return zero (Tom Lane) </para> <para> -They are interpreted as BC years. +Previously they often returned underflow errors. </para> </listitem> <listitem> <!-- Author: Tom Lane <tgl@sss.pgh.pa.us> -2020-09-02 [66f163068] Add string_to_table() function. +2020-07-25 [8a37951ee] Mark built-in coercion functions as leakproof where poss --> <para> -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) </para> <para> -This is similar to the regexp_split_to_table() function. +This allows more use of functions that require type conversion in security-sensitive situations. </para> </listitem> <listitem> <!-- Author: Tom Lane <tgl@sss.pgh.pa.us> -2020-07-25 [8a37951ee] Mark built-in coercion functions as leakproof where poss +2021-03-08 [fed10d4ee] Properly mark pg_stat_get_subscription() as returning a --> <para> -Mark built-in type coercion functions as leakproof where possible (Tom Lane) +Mark pg_stat_get_subscription() as returning a set (Tom Lane) </para> <para> -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. </para> </listitem> <listitem> <!-- -Author: Peter Eisentraut <peter@eisentraut.org> -2020-06-29 [78c887679] Add current substring regular expression syntax +Author: Tom Lane <tgl@sss.pgh.pa.us> +2021-01-13 [5a6f9bce8] Mark inet_server_addr() and inet_server_port() as parall --> <para> -Add newer regular expression substring() syntax (Peter Eisentraut) +Prevent inet_server_addr() and inet_server_port() from being run by parallel workers (Masahiko Sawada) </para> +</listitem> + +<listitem> +<!-- +Author: Michael Paquier <michael@paquier.xyz> +2020-07-15 [2a10fdc43] Eliminate cache lookup errors in SQL functions for objec +--> <para> -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) </para> </listitem> @@ -2542,37 +2543,37 @@ The new syntax is SUBSTRING(text SIMILAR pattern ESCAPE escapechar). The previo <listitem> <!-- Author: Tom Lane <tgl@sss.pgh.pa.us> -2021-01-25 [ee895a655] Improve performance of repeated CALLs within plpgsql pro +2021-01-04 [c9d529848] Re-implement pl/pgsql's expression and assignment parsin --> <para> -Improve performance of repeated CALLs within plpgsql procedures (Pavel Stehule, Tom Lane) +Improve PL/pgSQL's expression and assignment parsing (Tom Lane) +</para> + +<para> +This adds nested record and array slicing support. </para> </listitem> <listitem> <!-- Author: Tom Lane <tgl@sss.pgh.pa.us> -2021-01-04 [c9d529848] Re-implement pl/pgsql's expression and assignment parsin +2020-06-12 [2f48ede08] Avoid using a cursor in plpgsql's RETURN QUERY statement --> <para> -Improve PL/pgSQL's expression and assignment parsing (Tom Lane) -</para> - -<para> -This adds nested record and array slicing support. +Allow plpgsql's RETURN QUERY to execute its query using parallelism (Tom Lane) </para> </listitem> <listitem> <!-- Author: Tom Lane <tgl@sss.pgh.pa.us> -2020-06-12 [2f48ede08] Avoid using a cursor in plpgsql's RETURN QUERY statement +2021-01-25 [ee895a655] Improve performance of repeated CALLs within plpgsql pro --> <para> -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) </para> </listitem> @@ -2588,73 +2589,73 @@ Allow plpgsql's RETURN QUERY to execute its query using parallelism (Tom Lane) <listitem> <!-- Author: Alvaro Herrera <alvherre@alvh.no-ip.org> -2021-03-30 [198b3716d] Improve PQtrace() output format +2021-03-15 [acb7e4eb6] Implement pipeline mode in libpq --> <para> -Improve the output format of libpq's PQtrace() (Aya Iwata) +Add pipeline mode to libpq (Craig Ringer, Matthieu Garrigues, Álvaro Herrera) +</para> + +<para> +This allows multiple queries to be sent and only wait for completion when a specific synchronization message is sent. </para> </listitem> <listitem> <!-- -Author: Michael Meskes <meskes@postgresql.org> -2021-03-24 [ad8305a43] Add DECLARE STATEMENT command to ECPG +Author: Tom Lane <tgl@sss.pgh.pa.us> +2021-03-02 [d16f8c8e4] Mark default_transaction_read_only as GUC_REPORT. +Author: Tom Lane <tgl@sss.pgh.pa.us> +2021-03-02 [ee28cacf6] Extend the abilities of libpq's target_session_attrs par --> <para> -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) </para> <para> -This is done via DECLARE ... STATEMENT. +New options are "read-only", "primary", "standby", and "prefer-standby". </para> </listitem> <listitem> <!-- Author: Alvaro Herrera <alvherre@alvh.no-ip.org> -2021-03-15 [acb7e4eb6] Implement pipeline mode in libpq +2021-03-30 [198b3716d] Improve PQtrace() output format --> <para> -Add pipeline mode to libpq (Craig Ringer, Matthieu Garrigues, Álvaro Herrera) -</para> - -<para> -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) </para> </listitem> <listitem> <!-- Author: Tom Lane <tgl@sss.pgh.pa.us> -2021-03-02 [d16f8c8e4] Mark default_transaction_read_only as GUC_REPORT. -Author: Tom Lane <tgl@sss.pgh.pa.us> -2021-03-02 [ee28cacf6] Extend the abilities of libpq's target_session_attrs par +2020-09-22 [c0cb87fbb] Remove arbitrary line length limit for libpq service fil --> <para> -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) </para> <para> -New options are "read-only", "primary", "standby", and "prefer-standby". +The previous limit was 255 bytes. </para> </listitem> <listitem> <!-- -Author: Tom Lane <tgl@sss.pgh.pa.us> -2020-09-22 [c0cb87fbb] Remove arbitrary line length limit for libpq service fil +Author: Michael Meskes <meskes@postgresql.org> +2021-03-24 [ad8305a43] Add DECLARE STATEMENT command to ECPG --> <para> -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) </para> <para> -The previous limit was 255 bytes. +This is done via DECLARE ... STATEMENT. </para> </listitem> @@ -2670,108 +2671,115 @@ The previous limit was 255 bytes. <listitem> <!-- Author: Michael Paquier <michael@paquier.xyz> -2020-06-22 [9550ea302] Add - -no-index-cleanup and - -no-truncate to vacuumdb. +2021-03-03 [57e6db706] Add - -tablespace option to reindexdb --> <para> -Allow vacuumdb to skip index cleanup and truncation (Nathan Bossart) +Allow reindexdb to change the tablespace of the new index (Michael Paquier) </para> <para> -The options are --no-index-cleanup and --no-truncate. +This is done by specifying --tablespace. </para> </listitem> <listitem> <!-- -Author: Tom Lane <tgl@sss.pgh.pa.us> -2020-09-17 [99175141c] Improve common/logging.c's support for multiple verbosit +Author: Michael Paquier <michael@paquier.xyz> +2020-06-22 [9550ea302] Add - -no-index-cleanup and - -no-truncate to vacuumdb. --> <para> -Allow multiple verbose option specifications (-v) to increase the logging verbosity (Tom Lane) +Allow vacuumdb to skip index cleanup and truncation (Nathan Bossart) </para> <para> -This is now supported by pg_dump, pg_dumpall, and pg_restore. +The options are --no-index-cleanup and --no-truncate. </para> </listitem> <listitem> <!-- Author: Michael Paquier <michael@paquier.xyz> -2021-03-03 [57e6db706] Add - -tablespace option to reindexdb +2021-03-31 [6568cef26] Add support for - -extension in pg_dump --> <para> -Allow reindexdb to change the tablespace of the new index (Michael Paquier) +Allow pg_dump to dump only certain extensions (Guillaume Lelarge) </para> <para> -This is done by specifying --tablespace. +This is controlled by option --extension. </para> </listitem> - </itemizedlist> - - <sect4> - <title><xref linkend="app-psql"/></title> - - <itemizedlist> - <listitem> <!-- -Author: Tom Lane <tgl@sss.pgh.pa.us> -2021-04-07 [a3027e1e7] Allow psql's \df and \do commands to specify argument ty +Author: Dean Rasheed <dean.a.rasheed@gmail.com> +2021-04-06 [6b258e3d6] pgbench: Function to generate random permutations. --> <para> -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) </para> </listitem> <listitem> <!-- Author: Tom Lane <tgl@sss.pgh.pa.us> -2021-04-07 [a3027e1e7] Allow psql's \df and \do commands to specify argument ty +2020-09-17 [99175141c] Improve common/logging.c's support for multiple verbosit --> <para> -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) </para> <para> -This helps reduce the number of matches for overloaded entries. +This is now supported by pg_dump, pg_dumpall, and pg_restore. </para> </listitem> + </itemizedlist> + + <sect4> + <title><xref linkend="app-psql"/></title> + + <itemizedlist> + <listitem> <!-- Author: Tom Lane <tgl@sss.pgh.pa.us> -2021-04-03 [55873a00e] Improve psql's behavior when the editor is exited withou +2021-04-07 [a3027e1e7] Allow psql's \df and \do commands to specify argument ty --> <para> -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) </para> <para> -Previously, such edits would still execute the editor contents. +This helps reduce the number of matches for overloaded entries. </para> </listitem> <listitem> <!-- Author: Michael Paquier <michael@paquier.xyz> -2021-03-31 [6568cef26] Add support for - -extension in pg_dump +2020-09-02 [07f386ede] Add access method names to \d[i|m|t]+ in psql --> <para> -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) </para> +</listitem> + +<listitem> +<!-- +Author: Tom Lane <tgl@sss.pgh.pa.us> +2021-01-05 [7d80441d2] Allow psql's \dt and \di to show TOAST tables and their +--> <para> -This is controlled by option --extension. +Allow psql's \dt and \di to show TOAST tables and their indexes (Justin Pryzby) </para> </listitem> @@ -2789,37 +2797,41 @@ Add psql command \dX to list extended statistics objects (Tatsuro Yamada) <listitem> <!-- Author: Tom Lane <tgl@sss.pgh.pa.us> -2021-01-05 [7d80441d2] Allow psql's \dt and \di to show TOAST tables and their +2021-04-07 [a3027e1e7] Allow psql's \df and \do commands to specify argument ty --> <para> -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) </para> </listitem> <listitem> <!-- Author: Tom Lane <tgl@sss.pgh.pa.us> -2020-10-22 [94929f1cf] Clean up some unpleasant behaviors in psql's \connect co +2021-04-03 [55873a00e] Improve psql's behavior when the editor is exited withou --> <para> -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) </para> <para> -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. </para> </listitem> <listitem> <!-- -Author: Michael Paquier <michael@paquier.xyz> -2020-09-02 [07f386ede] Add access method names to \d[i|m|t]+ in psql +Author: Tom Lane <tgl@sss.pgh.pa.us> +2020-10-22 [94929f1cf] Clean up some unpleasant behaviors in psql's \connect co --> <para> -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) +</para> + +<para> +Specifically, properly reuse the password previously specified, and prompt for a new password if the previous one failed. </para> </listitem> @@ -2870,26 +2882,6 @@ Improve tab completion (Vignesh C, Michael Paquier, Justin Pryzby, Georgios Koko </sect4> - <sect4> - <title><link linkend="pgbench"><application>pgbench</application></link></title> - - <itemizedlist> - -<listitem> -<!-- -Author: Dean Rasheed <dean.a.rasheed@gmail.com> -2021-04-06 [6b258e3d6] pgbench: Function to generate random permutations. ---> - -<para> -Add pgbench permute() function to randomly shuffle values (Fabien Coelho, Hironobu Suzuki, Dean Rasheed) -</para> -</listitem> - - </itemizedlist> - - </sect4> - </sect3> <sect3> @@ -2926,30 +2918,30 @@ This removes the server start instructions that are normally output. <listitem> <!-- Author: Magnus Hagander <magnus@hagander.net> -2020-11-10 [d2e4bf688] Remove -o option to postmaster +2020-11-09 [8f113698b] Remove analyze_new_cluster script from pg_upgrade --> <para> -Remove support for the postmaster -o option (Magnus Hagander) +Stop pg_upgrade from creating analyze_new_cluster script (Michael Paquier) </para> <para> -This option was unnecessary since all passed options could already be specified directly. +Instead, give comparable vacuumdb instructions. </para> </listitem> <listitem> <!-- Author: Magnus Hagander <magnus@hagander.net> -2020-11-09 [8f113698b] Remove analyze_new_cluster script from pg_upgrade +2020-11-10 [d2e4bf688] Remove -o option to postmaster --> <para> -Stop pg_upgrade from creating analyze_new_cluster script (Michael Paquier) +Remove support for the postmaster -o option (Magnus Hagander) </para> <para> -Instead, give comparable vacuumdb instructions. +This option was unnecessary since all passed options could already be specified directly. </para> </listitem> @@ -3014,23 +3006,16 @@ The option --with-openssl is kept for compatibility. <listitem> <!-- -Author: Heikki Linnakangas <heikki.linnakangas@iki.fi> -2021-01-28 [6c5576075] Add direct conversion routines between EUC_TW and Big5. +Author: Peter Eisentraut <peter@eisentraut.org> +2020-11-25 [c9f0624bc] Add support for abstract Unix-domain sockets --> <para> -Add direct conversion routines between EUC_TW and Big5 (Heikki Linnakangas) +Add support for abstract Unix-domain sockets (Peter Eisentraut) </para> -</listitem> - -<listitem> -<!-- -Author: Tom Lane <tgl@sss.pgh.pa.us> -2021-01-06 [ca8217c10] Add a test module for the regular expression package. ---> <para> -Add a test module for the regular expression package (Tom Lane) +This is currently supported on Linux and Windows. </para> </listitem> @@ -3051,37 +3036,59 @@ Previously this could only be controlled at compile time and is enabled only in <listitem> <!-- -Author: Michael Paquier <michael@paquier.xyz> -2020-12-04 [4f48a6fbe] Change SHA2 implementation based on OpenSSL to use EVP d -Author: Michael Paquier <michael@paquier.xyz> -2020-12-10 [b67b57a96] Refactor MD5 implementations according to new cryptohash -Author: Michael Paquier <michael@paquier.xyz> -2021-01-23 [a8ed6bb8f] Introduce SHA1 implementations in the cryptohash infrast -Author: Michael Paquier <michael@paquier.xyz> -2021-04-03 [e6bdfd970] Refactor HMAC implementations +Author: Peter Geoghegan <pg@bowt.ie> +2020-07-17 [1e0dfd166] Add Valgrind buffer access instrumentation. +Author: Peter Geoghegan <pg@bowt.ie> +2020-07-19 [46ef520b9] Mark buffers as defined to Valgrind consistently. +Author: Peter Geoghegan <pg@bowt.ie> +2020-07-19 [a766d6ca2] Avoid harmless Valgrind no-buffer-pin errors. --> <para> -Change SHA1, SHA2, and MD5 hash computations to use the OpenSSL EVP API (Michael Paquier) +Various improvements in valgrind detection (Álvaro Herrera, Peter Geoghegan) </para> +</listitem> + +<listitem> +<!-- +Author: Tom Lane <tgl@sss.pgh.pa.us> +2021-01-06 [ca8217c10] Add a test module for the regular expression package. +--> <para> -This is more modern and supports FIPS mode. +Add a test module for the regular expression package (Tom Lane) </para> </listitem> <listitem> <!-- -Author: Peter Eisentraut <peter@eisentraut.org> -2020-11-25 [c9f0624bc] Add support for abstract Unix-domain sockets +Author: Andres Freund <andres@anarazel.de> +2020-11-09 [6c57f2ed1] jit: Add support for LLVM 12. --> <para> -Add support for abstract Unix-domain sockets (Peter Eisentraut) +Add support for LLVM 12 (Andres Freund) +</para> +</listitem> + +<listitem> +<!-- +Author: Michael Paquier <michael@paquier.xyz> +2020-12-04 [4f48a6fbe] Change SHA2 implementation based on OpenSSL to use EVP d +Author: Michael Paquier <michael@paquier.xyz> +2020-12-10 [b67b57a96] Refactor MD5 implementations according to new cryptohash +Author: Michael Paquier <michael@paquier.xyz> +2021-01-23 [a8ed6bb8f] Introduce SHA1 implementations in the cryptohash infrast +Author: Michael Paquier <michael@paquier.xyz> +2021-04-03 [e6bdfd970] Refactor HMAC implementations +--> + +<para> +Change SHA1, SHA2, and MD5 hash computations to use the OpenSSL EVP API (Michael Paquier) </para> <para> -This is currently supported on Linux and Windows. +This is more modern and supports FIPS mode. </para> </listitem> @@ -3098,23 +3105,23 @@ Remove build control over the random library used (Daniel Gustafsson) <listitem> <!-- -Author: Thomas Munro <tmunro@postgresql.org> -2020-11-20 [ca051d8b1] Add collation versions for FreeBSD. +Author: Heikki Linnakangas <heikki.linnakangas@iki.fi> +2021-01-28 [6c5576075] Add direct conversion routines between EUC_TW and Big5. --> <para> -Add collation versions for FreeBSD (Thomas Munro) +Add direct conversion routines between EUC_TW and Big5 (Heikki Linnakangas) </para> </listitem> <listitem> <!-- -Author: Andres Freund <andres@anarazel.de> -2020-11-09 [6c57f2ed1] jit: Add support for LLVM 12. +Author: Thomas Munro <tmunro@postgresql.org> +2020-11-20 [ca051d8b1] Add collation versions for FreeBSD. --> <para> -Add support for LLVM 12 (Andres Freund) +Add collation versions for FreeBSD (Thomas Munro) </para> </listitem> @@ -3133,21 +3140,6 @@ REMOVE? </para> </listitem> -<listitem> -<!-- -Author: Peter Geoghegan <pg@bowt.ie> -2020-07-17 [1e0dfd166] Add Valgrind buffer access instrumentation. -Author: Peter Geoghegan <pg@bowt.ie> -2020-07-19 [46ef520b9] Mark buffers as defined to Valgrind consistently. -Author: Peter Geoghegan <pg@bowt.ie> -2020-07-19 [a766d6ca2] Avoid harmless Valgrind no-buffer-pin errors. ---> - -<para> -Various improvements in valgrind detection (Álvaro Herrera, Peter Geoghegan) -</para> -</listitem> - </itemizedlist> </sect3> @@ -3191,89 +3183,104 @@ Previously, when tracking all statements, identical top and nested statements we <listitem> <!-- Author: Fujii Masao <fujii@postgresql.org> -2021-04-07 [a3740c48e] postgres_fdw: Allow partitions specified in LIMIT TO to +2020-07-29 [6023b7ea7] pg_stat_statements: track number of rows processed by so +Author: Fujii Masao <fujii@postgresql.org> +2020-11-12 [b62e6056a] pg_stat_statements: track number of rows processed by RE --> <para> -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) </para> +</listitem> + +<listitem> +<!-- +Author: Fujii Masao <fujii@postgresql.org> +2020-11-26 [9fbc3f318] pg_stat_statements: Track number of times pgss entries w +Author: Fujii Masao <fujii@postgresql.org> +2020-12-18 [2e0fedf03] pg_stat_statements: Track time at which all statistics w +--> <para> -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) </para> </listitem> <listitem> <!-- -Author: Fujii Masao <fujii@postgresql.org> -2021-01-26 [411ae6499] postgres_fdw: Add functions to discard cached connection +Author: Tom Lane <tgl@sss.pgh.pa.us> +2020-12-11 [0ec5f7e78] Allow subscripting of hstore values. --> <para> -Add postgres_fdw functions to discard cached connections (Bharath Rupireddy) +Allow subscripting of hstore values (Tom Lane, Dmitry Dolgov) </para> </listitem> <listitem> <!-- -Author: Tomas Vondra <tomas.vondra@postgresql.org> -2021-01-20 [b663a4136] Implement support for bulk inserts in postgres_fdw -Author: Tomas Vondra <tomas.vondra@postgresql.org> -2021-02-18 [927f453a9] Fix tuple routing to initialize batching only for insert +Author: Alexander Korotkov <akorotkov@postgresql.org> +2020-11-15 [935f66665] Handle equality operator in contrib/pg_trgm --> <para> -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) +</para> + +<para> +This is similar to LIKE except no wildcards are honored. </para> </listitem> <listitem> <!-- -Author: Fujii Masao <fujii@postgresql.org> -2021-01-18 [708d165dd] postgres_fdw: Add function to list cached connections to +Author: Tom Lane <tgl@sss.pgh.pa.us> +2021-03-06 [1265a9c8f] Add binary I/O capability for cube datatype. --> <para> -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) </para> </listitem> <listitem> <!-- -Author: Fujii Masao <fujii@postgresql.org> -2020-10-06 [32a9c0bdf] postgres_fdw: reestablish new connection if cached one i -Author: Fujii Masao <fujii@postgresql.org> -2020-10-16 [7fc1a81e4] postgres_fdw: Restructure connection retry logic. +Author: Robert Haas <rhaas@postgresql.org> +2020-09-10 [34a947ca1] New contrib module, pg_surgery, with heap surgery functi --> <para> -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) </para> <para> -Previously foreign server restarts could cause foreign table access errors. +This is useful for correcting database corruption. </para> </listitem> <listitem> <!-- -Author: Tom Lane <tgl@sss.pgh.pa.us> -2021-03-06 [1265a9c8f] Add binary I/O capability for cube datatype. +Author: Robert Haas <rhaas@postgresql.org> +2020-09-24 [aecf5ee2b] Add new 'old_snapshot' contrib module. --> <para> -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) </para> </listitem> <listitem> <!-- -Author: Peter Eisentraut <peter@eisentraut.org> -2021-01-19 [f18aa1b20] pageinspect: Change block number arguments to bigint +Author: Robert Haas <rhaas@postgresql.org> +2020-10-22 [866e24d47] Extend amcheck to check heap pages. --> <para> -Change pageinspect block numbers to be bigints (Peter Eisentraut) +Allow amcheck to also check heap pages (Mark Dilger) +</para> + +<para> +Previously it only checked B-Tree index pages. </para> </listitem> @@ -3290,120 +3297,114 @@ Allow pageinspect to inspect GiST indexes (Andrey Borodin, Heikki Linnakangas) <listitem> <!-- -Author: Tom Lane <tgl@sss.pgh.pa.us> -2020-12-11 [0ec5f7e78] Allow subscripting of hstore values. +Author: Peter Eisentraut <peter@eisentraut.org> +2021-01-19 [f18aa1b20] pageinspect: Change block number arguments to bigint --> <para> -Allow subscripting of hstore values (Tom Lane, Dmitry Dolgov) +Change pageinspect block numbers to be bigints (Peter Eisentraut) </para> </listitem> <listitem> <!-- -Author: Fujii Masao <fujii@postgresql.org> -2020-11-26 [9fbc3f318] pg_stat_statements: Track number of times pgss entries w -Author: Fujii Masao <fujii@postgresql.org> -2020-12-18 [2e0fedf03] pg_stat_statements: Track time at which all statistics w +Author: Peter Eisentraut <peter@eisentraut.org> +2020-06-30 [ee0202d55] pgstattuple: Have pgstattuple_approx accept TOAST tables --> <para> -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) </para> </listitem> <listitem> <!-- Author: Alexander Korotkov <akorotkov@postgresql.org> -2020-11-15 [935f66665] Handle equality operator in contrib/pg_trgm +2020-07-20 [d98c08cdc] Update btree_gist extension for parallel query --> <para> -Allow GiST/GIN pg_trgm indexes to do equality lookups (Julien Rouhaud) -</para> - -<para> -This is similar to LIKE except no wildcards are honored. +Mark btree_gist functions as parallel safe (Steven Winfield) </para> </listitem> -<listitem> -<!-- -Author: Robert Haas <rhaas@postgresql.org> -2020-10-22 [866e24d47] Extend amcheck to check heap pages. ---> + </itemizedlist> -<para> -Allow amcheck to also check heap pages (Mark Dilger) -</para> + <sect4> + <title>Postgres_fdw</title> -<para> -Previously it only checked B-Tree index pages. -</para> -</listitem> + <itemizedlist> <listitem> <!-- -Author: Robert Haas <rhaas@postgresql.org> -2020-09-24 [aecf5ee2b] Add new 'old_snapshot' contrib module. +Author: Tomas Vondra <tomas.vondra@postgresql.org> +2021-01-20 [b663a4136] Implement support for bulk inserts in postgres_fdw +Author: Tomas Vondra <tomas.vondra@postgresql.org> +2021-02-18 [927f453a9] Fix tuple routing to initialize batching only for insert --> <para> -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) </para> </listitem> <listitem> <!-- -Author: Robert Haas <rhaas@postgresql.org> -2020-09-10 [34a947ca1] New contrib module, pg_surgery, with heap surgery functi +Author: Fujii Masao <fujii@postgresql.org> +2021-04-07 [a3740c48e] postgres_fdw: Allow partitions specified in LIMIT TO to --> <para> -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) </para> <para> -This is useful for correcting database corruption. +By default, only the root of partitioned tables is imported. </para> </listitem> <listitem> <!-- Author: Fujii Masao <fujii@postgresql.org> -2020-07-29 [6023b7ea7] pg_stat_statements: track number of rows processed by so -Author: Fujii Masao <fujii@postgresql.org> -2020-11-12 [b62e6056a] pg_stat_statements: track number of rows processed by RE +2021-01-18 [708d165dd] postgres_fdw: Add function to list cached connections to --> <para> -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) </para> </listitem> <listitem> <!-- -Author: Alexander Korotkov <akorotkov@postgresql.org> -2020-07-20 [d98c08cdc] Update btree_gist extension for parallel query +Author: Fujii Masao <fujii@postgresql.org> +2021-01-26 [411ae6499] postgres_fdw: Add functions to discard cached connection --> <para> -Mark btree_gist functions as parallel safe (Steven Winfield) +Add postgres_fdw functions to discard cached connections (Bharath Rupireddy) </para> </listitem> <listitem> <!-- -Author: Peter Eisentraut <peter@eisentraut.org> -2020-06-30 [ee0202d55] pgstattuple: Have pgstattuple_approx accept TOAST tables +Author: Fujii Masao <fujii@postgresql.org> +2020-10-06 [32a9c0bdf] postgres_fdw: reestablish new connection if cached one i +Author: Fujii Masao <fujii@postgresql.org> +2020-10-16 [7fc1a81e4] postgres_fdw: Restructure connection retry logic. --> <para> -Allow pgstattuple_approx() to report on TOAST tables (Peter Eisentraut) +Allow postgres_fdw to reestablish foreign server connections if necessary (Bharath Rupireddy) +</para> + +<para> +Previously foreign server restarts could cause foreign table access errors. </para> </listitem> - </itemizedlist> + </itemizedlist> + + </sect4> </sect3> |