| <!-- doc/src/sgml/release-14.sgml --> |
| <!-- See header comment in release.sgml about typical markup --> |
| |
| <sect1 id="release-14-4"> |
| <title>Release 14.4</title> |
| |
| <formalpara> |
| <title>Release date:</title> |
| <para>2022-06-16</para> |
| </formalpara> |
| |
| <para> |
| This release contains a variety of fixes from 14.3. |
| For information about new features in major release 14, see |
| <xref linkend="release-14"/>. |
| </para> |
| |
| <sect2> |
| <title>Migration to Version 14.4</title> |
| |
| <para> |
| A dump/restore is not required for those running 14.X. |
| </para> |
| |
| <para> |
| However, if you have any indexes that were created using |
| the <option>CONCURRENTLY</option> option under 14.X, |
| you should re-index them after updating. |
| See the first changelog entry below. |
| </para> |
| |
| <para> |
| Also, if you are upgrading from a version earlier than 14.3, |
| see <xref linkend="release-14-3"/>. |
| </para> |
| </sect2> |
| |
| <sect2> |
| <title>Changes</title> |
| |
| <itemizedlist> |
| |
| <listitem> |
| <!-- |
| Author: Alvaro Herrera <alvherre@alvh.no-ip.org> |
| Branch: master [e28bb8851] 2022-05-31 21:24:59 +0200 |
| Branch: REL_14_STABLE [042b584c7] 2022-05-31 21:24:59 +0200 |
| --> |
| <para> |
| Prevent possible corruption of indexes created or rebuilt with |
| the <literal>CONCURRENTLY</literal> option (Álvaro Herrera) |
| </para> |
| |
| <para> |
| An optimization added in v14 caused <command>CREATE INDEX ... |
| CONCURRENTLY</command> and <command>REINDEX |
| ... CONCURRENTLY</command> to sometimes miss indexing rows that were |
| updated during the index build. Revert that optimization. |
| It is recommended that any indexes made with |
| the <literal>CONCURRENTLY</literal> option be rebuilt after |
| installing this update. (Alternatively, rebuild them |
| without <literal>CONCURRENTLY</literal>.) |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: David Rowley <drowley@postgresql.org> |
| Branch: master [fa5185b26] 2022-06-08 12:39:09 +1200 |
| Branch: REL_14_STABLE [cbcea3b91] 2022-06-08 12:39:44 +1200 |
| --> |
| <para> |
| Harden Memoize plan node against non-deterministic equality |
| functions (David Rowley) |
| </para> |
| |
| <para> |
| Memoize could crash if a data type's equality or hash functions gave |
| inconsistent results across different calls. Throw a runtime error |
| instead. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: David Rowley <drowley@postgresql.org> |
| Branch: master [1e731ed12] 2022-05-16 16:07:56 +1200 |
| Branch: REL_14_STABLE [23c2b76a8] 2022-05-16 16:08:37 +1200 |
| --> |
| <para> |
| Fix incorrect cost estimates for Memoize plans (David Rowley) |
| </para> |
| |
| <para> |
| This mistake could lead to Memoize being used when it isn't really |
| the best plan, or to very long executor startup times due to |
| initializing an overly-large hash table for a Memoize node. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Tom Lane <tgl@sss.pgh.pa.us> |
| Branch: master [1218780cc] 2022-06-10 10:35:57 -0400 |
| Branch: REL_14_STABLE [77c1d92cb] 2022-06-10 10:35:57 -0400 |
| Branch: REL_13_STABLE [254cd7f31] 2022-06-10 10:35:57 -0400 |
| Branch: REL_12_STABLE [d3ef5c3ef] 2022-06-10 10:35:57 -0400 |
| Branch: REL_11_STABLE [199aac8b2] 2022-06-10 10:35:57 -0400 |
| --> |
| <para> |
| Fix queries in which a <quote>whole-row variable</quote> references |
| the result of a function that returns a domain over composite type |
| (Tom Lane) |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Tom Lane <tgl@sss.pgh.pa.us> |
| Branch: master [79b58c6f6] 2022-05-12 11:31:46 -0400 |
| Branch: REL_14_STABLE [ac51c9fba] 2022-05-12 11:31:46 -0400 |
| Branch: REL_13_STABLE [b7579b25c] 2022-05-12 11:31:46 -0400 |
| Branch: REL_12_STABLE [301b91c56] 2022-05-12 11:31:46 -0400 |
| Branch: REL_11_STABLE [7f7f1750d] 2022-05-12 11:31:46 -0400 |
| Branch: REL_10_STABLE [b53442f6f] 2022-05-12 11:31:46 -0400 |
| --> |
| <para> |
| Fix <quote>variable not found in subplan target list</quote> planner |
| error when pulling up a sub-<literal>SELECT</literal> that's |
| referenced in a <literal>GROUPING</literal> function (Richard Guo) |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Tom Lane <tgl@sss.pgh.pa.us> |
| Branch: master [bf4717b09] 2022-06-07 15:34:30 -0400 |
| Branch: REL_14_STABLE [5c3b5f7db] 2022-06-07 15:34:30 -0400 |
| Branch: REL_13_STABLE [a36196972] 2022-06-07 15:34:30 -0400 |
| Branch: REL_12_STABLE [435251b85] 2022-06-07 15:34:30 -0400 |
| Branch: REL_11_STABLE [d628ce048] 2022-06-07 15:34:30 -0400 |
| Branch: REL_10_STABLE [fb646cbd5] 2022-06-07 15:34:30 -0400 |
| --> |
| <para> |
| Prevent <function>pg_stat_get_subscription()</function> from |
| possibly returning an extra row containing garbage values |
| (Kuntal Ghosh) |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Heikki Linnakangas <heikki.linnakangas@iki.fi> |
| Branch: master [fc36ac52e] 2022-05-29 23:54:25 +0300 |
| Branch: REL_14_STABLE [f82595ac9] 2022-05-29 23:57:16 +0300 |
| --> |
| <para> |
| Fix <command>COPY FROM</command>'s error checking in the case where |
| the database encoding is <literal>SQL_ASCII</literal> while the |
| client's encoding is a multi-byte encoding (Heikki Linnakangas) |
| </para> |
| |
| <para> |
| This mistake could lead to false complaints of invalidly-encoded |
| input data. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Alvaro Herrera <alvherre@alvh.no-ip.org> |
| Branch: master [0fbf01120] 2022-05-18 20:28:31 +0200 |
| Branch: REL_14_STABLE [94edb85d2] 2022-05-18 20:28:31 +0200 |
| Branch: REL_13_STABLE [80656f00f] 2022-05-18 20:28:31 +0200 |
| Branch: REL_12_STABLE [ade17703d] 2022-05-18 20:28:31 +0200 |
| Branch: REL_11_STABLE [ba83de8ad] 2022-05-18 20:28:31 +0200 |
| Branch: REL_10_STABLE [16cb7db34] 2022-05-18 20:28:31 +0200 |
| Branch: master [62221ef18] 2022-05-18 23:19:53 +0200 |
| Branch: REL_14_STABLE [e8b93c6e2] 2022-05-18 23:19:53 +0200 |
| Branch: REL_13_STABLE [5139db556] 2022-05-18 23:19:53 +0200 |
| Branch: REL_12_STABLE [0ebd20e20] 2022-05-18 23:19:53 +0200 |
| Branch: REL_11_STABLE [50bf3157a] 2022-05-18 23:19:53 +0200 |
| Branch: REL_10_STABLE [29d111518] 2022-05-18 23:19:53 +0200 |
| --> |
| <para> |
| Avoid crashing if too many column aliases are attached to |
| an <literal>XMLTABLE</literal> or <literal>JSON_TABLE</literal> |
| construct (Álvaro Herrera) |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Tom Lane <tgl@sss.pgh.pa.us> |
| Branch: master [c7461fc25] 2022-05-21 14:45:58 -0400 |
| Branch: REL_14_STABLE [6f7eec119] 2022-05-21 14:45:58 -0400 |
| Branch: REL_13_STABLE [fefd54631] 2022-05-21 14:45:58 -0400 |
| Branch: REL_12_STABLE [bb2c04676] 2022-05-21 14:45:58 -0400 |
| Branch: REL_11_STABLE [f3b8d7244] 2022-05-21 14:45:58 -0400 |
| Branch: REL_10_STABLE [7686403b4] 2022-05-21 14:45:58 -0400 |
| --> |
| <para> |
| When decompiling a view or rule, show a <command>SELECT</command> |
| output column's <literal>AS "?column?"</literal> alias clause |
| if it could be referenced elsewhere (Tom Lane) |
| </para> |
| |
| <para> |
| Previously, this auto-generated alias was always hidden; but there |
| are corner cases where doing so results in a non-restorable view or |
| rule definition. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Alvaro Herrera <alvherre@alvh.no-ip.org> |
| Branch: master [602986191] 2022-05-20 18:52:55 +0200 |
| Branch: REL_14_STABLE [58b088a9b] 2022-05-20 18:52:55 +0200 |
| Branch: REL_13_STABLE [3753a169e] 2022-05-20 18:52:55 +0200 |
| Branch: REL_12_STABLE [4492e73a6] 2022-05-20 18:52:55 +0200 |
| Branch: REL_11_STABLE [6c6ea6ea8] 2022-05-20 18:52:55 +0200 |
| Branch: REL_10_STABLE [70f70d7d3] 2022-05-20 18:52:55 +0200 |
| Branch: REL_10_STABLE [8c47622bb] 2022-05-20 19:05:55 +0200 |
| --> |
| <para> |
| Report implicitly-created operator families to event triggers |
| (Masahiko Sawada) |
| </para> |
| |
| <para> |
| If <command>CREATE OPERATOR CLASS</command> results in the implicit |
| creation of an operator family, that object was not reported to |
| event triggers that should capture such events. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Michael Paquier <michael@paquier.xyz> |
| Branch: REL_14_STABLE [6dced63b4] 2022-05-16 11:26:22 +0900 |
| Branch: REL_13_STABLE [2e9559b30] 2022-05-16 11:26:26 +0900 |
| Branch: REL_12_STABLE [7e59b1219] 2022-05-16 11:26:30 +0900 |
| Branch: REL_11_STABLE [4525151d4] 2022-05-16 11:26:36 +0900 |
| Branch: REL_10_STABLE [60e956eb8] 2022-05-16 11:26:41 +0900 |
| --> |
| <para> |
| Fix control file updates made when a restartpoint is running during |
| promotion of a standby server (Kyotaro Horiguchi) |
| </para> |
| |
| <para> |
| Previously, when the restartpoint completed it could incorrectly |
| update the last-checkpoint fields of the control file, potentially |
| leading to PANIC and failure to restart if the server crashes before |
| the next normal checkpoint completes. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Amit Kapila <akapila@postgresql.org> |
| Branch: master [f95d53ede] 2022-05-11 11:11:44 +0530 |
| Branch: REL_14_STABLE [d6da71fa8] 2022-05-11 10:51:04 +0530 |
| Branch: REL_13_STABLE [55558df23] 2022-05-11 10:41:24 +0530 |
| Branch: REL_12_STABLE [f832b5007] 2022-05-11 10:25:56 +0530 |
| Branch: REL_11_STABLE [87c1dd246] 2022-05-11 10:12:23 +0530 |
| Branch: REL_10_STABLE [a4015ec03] 2022-05-11 10:01:35 +0530 |
| --> |
| <para> |
| Prevent triggering of |
| standby's <varname>wal_receiver_timeout</varname> during logical |
| replication of large transactions (Wang Wei, Amit Kapila) |
| </para> |
| |
| <para> |
| If a large transaction on the primary server sends no data to the |
| standby (perhaps because no table it changes is published), it was |
| possible for the standby to timeout. Fix that by ensuring we send |
| keepalive messages periodically in such situations. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Tom Lane <tgl@sss.pgh.pa.us> |
| Branch: master [16c80e7d0] 2022-05-31 14:47:44 -0400 |
| Branch: REL_14_STABLE [c47a55852] 2022-05-31 14:47:44 -0400 |
| Branch: REL_13_STABLE [c73748b68] 2022-05-31 14:47:44 -0400 |
| Branch: REL_12_STABLE [a3faebd6a] 2022-05-31 14:47:44 -0400 |
| Branch: REL_11_STABLE [ae758e603] 2022-05-31 14:47:44 -0400 |
| Branch: REL_10_STABLE [2114910ca] 2022-05-31 14:47:44 -0400 |
| --> |
| <para> |
| Prevent open-file leak when reading an invalid timezone abbreviation |
| file (Kyotaro Horiguchi) |
| </para> |
| |
| <para> |
| Such cases could result in harmless warning messages. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Michael Paquier <michael@paquier.xyz> |
| Branch: master [f1431f3bf] 2022-05-28 12:12:40 +0900 |
| Branch: REL_14_STABLE [fe441a031] 2022-05-28 12:12:46 +0900 |
| Branch: REL_13_STABLE [1e6802990] 2022-05-28 12:12:51 +0900 |
| Branch: REL_12_STABLE [ae236bf66] 2022-05-28 12:12:55 +0900 |
| Branch: REL_11_STABLE [c3db8a2e2] 2022-05-28 12:12:58 +0900 |
| Branch: REL_10_STABLE [1b40ceea2] 2022-05-28 12:13:02 +0900 |
| --> |
| <para> |
| Allow custom server parameters to have short descriptions that are |
| NULL (Steve Chavez) |
| </para> |
| |
| <para> |
| Previously, although extensions could choose to create such |
| settings, some code paths would crash while processing them. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Tom Lane <tgl@sss.pgh.pa.us> |
| Branch: master [2b65de7fc] 2022-05-26 14:14:05 -0400 |
| Branch: REL_14_STABLE [b4be4a082] 2022-05-26 14:14:05 -0400 |
| Branch: REL_13_STABLE [9e3dbc6fd] 2022-05-26 14:14:05 -0400 |
| Branch: REL_12_STABLE [01ab9fb7d] 2022-05-26 14:14:05 -0400 |
| Branch: REL_11_STABLE [a44bc8b8f] 2022-05-26 14:14:05 -0400 |
| Branch: REL_10_STABLE [ef54a6576] 2022-05-26 14:14:05 -0400 |
| --> |
| <para> |
| Remove misguided SSL key file ownership check |
| in <application>libpq</application> (Tom Lane) |
| </para> |
| |
| <para> |
| In the previous minor releases, we copied the server's permission |
| checking rules for SSL private key files into libpq. But we should |
| not have also copied the server's file-ownership check. While that |
| works in normal use-cases, it can result in an unexpected failure |
| for clients running as root, and perhaps in other cases. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Tom Lane <tgl@sss.pgh.pa.us> |
| Branch: master [6d157e7cb] 2022-06-06 11:20:21 -0400 |
| Branch: REL_14_STABLE [a5dbca460] 2022-06-06 11:20:31 -0400 |
| Branch: REL_13_STABLE [16d68007c] 2022-06-06 11:20:36 -0400 |
| Branch: REL_12_STABLE [02026cadb] 2022-06-06 11:20:41 -0400 |
| Branch: REL_11_STABLE [d82ed5b2f] 2022-06-06 11:20:46 -0400 |
| Branch: REL_10_STABLE [89254606b] 2022-06-06 11:20:52 -0400 |
| --> |
| <para> |
| Ensure <application>ecpg</application> reports server connection loss |
| sanely (Tom Lane) |
| </para> |
| |
| <para> |
| Misprocessing of a libpq-generated error result, such as a report of |
| lost connection, would lead to printing <quote>(null)</quote> |
| instead of a useful error message; or in older releases it would |
| lead to a crash. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Tom Lane <tgl@sss.pgh.pa.us> |
| Branch: master [51da23159] 2022-06-06 11:26:57 -0400 |
| Branch: REL_14_STABLE [32a85ee46] 2022-06-06 11:26:57 -0400 |
| --> |
| <para> |
| Prevent crash after server connection loss |
| in <application>pg_amcheck</application> (Tom Lane) |
| </para> |
| |
| <para> |
| Misprocessing of a libpq-generated error result, such as a report of |
| lost connection, would lead to a crash. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Tom Lane <tgl@sss.pgh.pa.us> |
| Branch: master [eb39610f8] 2022-06-01 16:15:47 -0400 |
| Branch: REL_14_STABLE [1072e4c45] 2022-06-01 16:15:47 -0400 |
| Branch: REL_13_STABLE [eeac7dd9f] 2022-06-01 16:15:47 -0400 |
| Branch: REL_12_STABLE [c08538734] 2022-06-01 16:15:47 -0400 |
| Branch: REL_11_STABLE [b5265196e] 2022-06-01 16:15:47 -0400 |
| Branch: REL_10_STABLE [d5e1d5ed9] 2022-06-01 16:15:47 -0400 |
| Branch: REL9_6_STABLE [d4c161842] 2022-06-01 16:15:47 -0400 |
| Branch: REL9_5_STABLE [9fdeae848] 2022-06-01 16:15:47 -0400 |
| Branch: REL9_4_STABLE [b53780e1b] 2022-06-01 16:15:47 -0400 |
| Branch: REL9_3_STABLE [a3b685fdd] 2022-06-01 16:15:47 -0400 |
| Branch: REL9_2_STABLE [6f9ea6cf3] 2022-06-01 16:15:47 -0400 |
| --> |
| <para> |
| Adjust PL/Perl test case so it will work under Perl 5.36 |
| (Dagfinn Ilmari Mannsåker) |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Tom Lane <tgl@sss.pgh.pa.us> |
| Branch: master [aff45c879] 2022-05-10 18:42:02 -0400 |
| Branch: REL_14_STABLE [12736e7dc] 2022-05-10 18:42:02 -0400 |
| Branch: REL_13_STABLE [af9b96767] 2022-05-10 18:42:02 -0400 |
| Branch: REL_12_STABLE [8ed13fb93] 2022-05-10 18:42:02 -0400 |
| Branch: REL_11_STABLE [36d76da81] 2022-05-10 18:42:02 -0400 |
| Branch: REL_10_STABLE [c61f36d99] 2022-05-10 18:42:02 -0400 |
| --> |
| <para> |
| Avoid incorrectly using an |
| out-of-date <application>libldap_r</application> library when |
| multiple <productname>OpenLDAP</productname> installations are |
| present while building <productname>PostgreSQL</productname> |
| (Tom Lane) |
| </para> |
| </listitem> |
| |
| </itemizedlist> |
| |
| </sect2> |
| </sect1> |
| |
| <sect1 id="release-14-3"> |
| <title>Release 14.3</title> |
| |
| <formalpara> |
| <title>Release date:</title> |
| <para>2022-05-12</para> |
| </formalpara> |
| |
| <para> |
| This release contains a variety of fixes from 14.2. |
| For information about new features in major release 14, see |
| <xref linkend="release-14"/>. |
| </para> |
| |
| <sect2> |
| <title>Migration to Version 14.3</title> |
| |
| <para> |
| A dump/restore is not required for those running 14.X. |
| </para> |
| |
| <para> |
| However, if you have any GiST indexes on columns of type |
| <type>ltree</type> (supplied by the <filename>contrib/ltree</filename> |
| extension), you should re-index them after updating. |
| See the second changelog entry below. |
| </para> |
| |
| <para> |
| Also, if you are upgrading from a version earlier than 14.2, |
| see <xref linkend="release-14-2"/>. |
| </para> |
| </sect2> |
| |
| <sect2> |
| <title>Changes</title> |
| |
| <itemizedlist> |
| |
| <listitem> |
| <!-- |
| Author: Noah Misch <noah@leadboat.com> |
| Branch: master [a117cebd6] 2022-05-09 08:35:08 -0700 |
| Branch: REL_14_STABLE [ab49ce7c3] 2022-05-09 08:35:12 -0700 |
| Branch: REL_13_STABLE [35edcc0ce] 2022-05-09 08:35:12 -0700 |
| Branch: REL_12_STABLE [7f098f7b5] 2022-05-09 08:35:12 -0700 |
| Branch: REL_11_STABLE [48ca2904c] 2022-05-09 08:35:13 -0700 |
| Branch: REL_10_STABLE [ef792f785] 2022-05-09 08:35:13 -0700 |
| Author: Noah Misch <noah@leadboat.com> |
| Branch: master [0abc1a059] 2022-05-09 08:35:08 -0700 |
| Branch: REL_14_STABLE [677a49478] 2022-05-09 08:35:12 -0700 |
| Branch: REL_13_STABLE [88743d581] 2022-05-09 08:35:12 -0700 |
| Branch: REL_12_STABLE [880511cb0] 2022-05-09 08:35:12 -0700 |
| Branch: REL_11_STABLE [34ff15660] 2022-05-09 08:35:13 -0700 |
| Branch: REL_10_STABLE [f26d57028] 2022-05-09 08:35:13 -0700 |
| --> |
| <para> |
| Confine additional operations within <quote>security restricted |
| operation</quote> sandboxes (Sergey Shinderuk, Noah Misch) |
| </para> |
| |
| <para> |
| Autovacuum, <command>CLUSTER</command>, <command>CREATE |
| INDEX</command>, <command>REINDEX</command>, <command>REFRESH |
| MATERIALIZED VIEW</command>, |
| and <application>pg_amcheck</application> activated |
| the <quote>security restricted operation</quote> protection |
| mechanism too late, or even not at all in some code paths. |
| A user having permission to create non-temporary objects within a |
| database could define an object that would execute arbitrary SQL |
| code with superuser permissions the next time that autovacuum |
| processed the object, or that some superuser ran one of the affected |
| commands against it. |
| </para> |
| |
| <para> |
| The <productname>PostgreSQL</productname> Project thanks |
| Alexander Lakhin for reporting this problem. |
| (CVE-2022-1552) |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Alexander Korotkov <akorotkov@postgresql.org> |
| Branch: master [7e74aafc4] 2022-03-16 11:41:18 +0300 |
| Branch: REL_14_STABLE [7d30f59da] 2022-03-16 11:41:30 +0300 |
| Branch: REL_13_STABLE [bad202c61] 2022-03-16 11:41:34 +0300 |
| --> |
| <para> |
| Fix default signature length for <literal>gist_ltree_ops</literal> |
| indexes (Tomas Vondra, Alexander Korotkov) |
| </para> |
| |
| <para> |
| The default signature length (hash size) for GiST indexes |
| on <type>ltree</type> columns was accidentally changed while |
| upgrading that operator class to support operator class parameters. |
| If any operations had been done on such an index without first |
| upgrading the <literal>ltree</literal> extension to version 1.2, |
| they were done assuming that the signature length was 28 bytes |
| rather than the intended 8. This means it is very likely that such |
| indexes are now corrupt. For safety we recommend re-indexing all |
| GiST indexes on <type>ltree</type> columns after installing this |
| update. (Note that GiST indexes on <type>ltree[]</type> |
| columns, that is arrays of <type>ltree</type>, are not affected.) |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Tom Lane <tgl@sss.pgh.pa.us> |
| Branch: master [ec62cb0aa] 2022-03-17 18:18:05 -0400 |
| Branch: REL_14_STABLE [1d072bd20] 2022-03-17 18:18:05 -0400 |
| Branch: REL_13_STABLE [5e144cc89] 2022-03-17 18:18:05 -0400 |
| Branch: REL_12_STABLE [1f5ef5ae0] 2022-03-17 18:18:05 -0400 |
| Branch: REL_11_STABLE [13b54d1e0] 2022-03-17 18:18:05 -0400 |
| Branch: REL_10_STABLE [205214c8b] 2022-03-17 18:18:05 -0400 |
| --> |
| <para> |
| Stop using query-provided column aliases for the columns of |
| whole-row variables that refer to plain tables (Tom Lane) |
| </para> |
| |
| <para> |
| The column names in tuples produced by a whole-row variable (such |
| as <literal>tbl.*</literal> in contexts other than the top level of |
| a <literal>SELECT</literal> list) are now always those of the |
| associated named composite type, if there is one. We'd previously |
| attempted to make them track any column aliases that had been |
| applied to the <literal>FROM</literal> entry the variable refers to. |
| But that's semantically dubious, because really then the output of |
| the variable is not at all of the composite type it claims to be. |
| Previous attempts to deal with that inconsistency had bad results up |
| to and including storing unreadable data on disk, so just give up on |
| the whole idea. |
| </para> |
| |
| <para> |
| In cases where it's important to be able to relabel such columns, |
| a workaround is to introduce an extra level of |
| sub-<literal>SELECT</literal>, so that the whole-row variable is |
| referring to the sub-<literal>SELECT</literal>'s output and not to a |
| plain table. Then the variable is of type <type>record</type> |
| to begin with and there's no issue. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Peter Eisentraut <peter@eisentraut.org> |
| Branch: master [f2a2bf66c] 2022-04-19 21:04:52 +0200 |
| Branch: REL_14_STABLE [7a8d8219c] 2022-04-19 21:03:27 +0200 |
| --> |
| <para> |
| Fix incorrect roundoff when extracting epoch values from intervals |
| (Peter Eisentraut) |
| </para> |
| |
| <para> |
| The new <type>numeric</type>-based code |
| for <function>EXTRACT()</function> failed to yield results |
| equivalent to the old <type>float</type>-based code, as a result of |
| accidentally truncating the <literal>DAYS_PER_YEAR</literal> value |
| to an integer. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Andres Freund <andres@anarazel.de> |
| Branch: master [43a7dc96e] 2022-03-27 21:46:23 -0700 |
| Branch: REL_14_STABLE [c1a0d7d1c] 2022-03-27 21:44:39 -0700 |
| --> |
| <para> |
| Defend against <literal>pg_stat_get_replication_slot(NULL)</literal> |
| (Andres Freund) |
| </para> |
| |
| <para> |
| This function should be marked strict in the catalog data, but it |
| was not in v14, so add a run-time check instead. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Tom Lane <tgl@sss.pgh.pa.us> |
| Branch: master [068739fb4] 2022-03-18 16:01:42 -0400 |
| Branch: REL_14_STABLE [ae8ec7feb] 2022-03-18 16:01:42 -0400 |
| Branch: REL_13_STABLE [88ae77588] 2022-03-18 16:01:42 -0400 |
| Branch: REL_12_STABLE [840729fd1] 2022-03-18 16:01:42 -0400 |
| Branch: REL_11_STABLE [84f3ecdaa] 2022-03-18 16:01:42 -0400 |
| Branch: REL_10_STABLE [e6fd4a3da] 2022-03-18 16:01:42 -0400 |
| --> |
| <para> |
| Fix incorrect output for types <type>timestamptz</type> |
| and <type>timetz</type> in <function>table_to_xmlschema()</function> |
| and allied functions (Renan Soares Lopes) |
| </para> |
| |
| <para> |
| The xmlschema output for these types included a malformed regular |
| expression. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Tom Lane <tgl@sss.pgh.pa.us> |
| Branch: master [fe20afaee] 2022-05-09 14:15:37 -0400 |
| Branch: REL_14_STABLE [ab2f78392] 2022-05-09 14:15:37 -0400 |
| Branch: REL_13_STABLE [91a3a74c6] 2022-05-09 14:15:37 -0400 |
| Branch: REL_12_STABLE [90e52884e] 2022-05-09 14:15:37 -0400 |
| Branch: REL_11_STABLE [539f8c563] 2022-05-09 14:15:37 -0400 |
| Branch: REL_10_STABLE [4eabaffca] 2022-05-09 14:15:37 -0400 |
| --> |
| <para> |
| Avoid core dump in parser for a <literal>VALUES</literal> clause with |
| zero columns (Tom Lane) |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Etsuro Fujita <efujita@postgresql.org> |
| Branch: master [5c854e7a2] 2022-04-28 15:15:00 +0900 |
| Branch: REL_14_STABLE [ebb790241] 2022-04-28 15:15:02 +0900 |
| --> |
| <para> |
| Fix planner failure when a Result plan node appears immediately |
| underneath an Append node (Etsuro Fujita) |
| </para> |
| |
| <para> |
| Recently-added code to support asynchronous remote queries failed to |
| handle this case, leading to crashes or errors about unrecognized |
| node types. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Tom Lane <tgl@sss.pgh.pa.us> |
| Branch: master [f819020d4] 2022-04-23 12:16:12 -0400 |
| Branch: REL_14_STABLE [dff6c77fa] 2022-04-23 12:16:12 -0400 |
| --> |
| <para> |
| Fix planner failure if a query using <literal>SEARCH</literal> |
| or <literal>CYCLE</literal> features contains a duplicate CTE name |
| (Tom Lane, Kyotaro Horiguchi) |
| </para> |
| |
| <para> |
| When the name of the recursive <literal>WITH</literal> query is |
| re-used within itself, the planner could crash or report odd errors |
| such as <quote>could not find attribute 2 in subquery |
| targetlist</quote>. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Tom Lane <tgl@sss.pgh.pa.us> |
| Branch: master [2591ee8ec] 2022-03-21 17:44:29 -0400 |
| Branch: REL_14_STABLE [48b6035f0] 2022-03-21 17:44:29 -0400 |
| Branch: REL_13_STABLE [dfefe38fb] 2022-03-21 17:44:29 -0400 |
| Branch: REL_12_STABLE [69c88e2fb] 2022-03-21 17:44:29 -0400 |
| Branch: REL_11_STABLE [5de244196] 2022-03-21 17:44:29 -0400 |
| Branch: REL_10_STABLE [2afa031ac] 2022-03-21 17:44:29 -0400 |
| --> |
| <para> |
| Fix planner errors for <function>GROUPING()</function> constructs |
| that reference outer query levels (Richard Guo, Tom Lane) |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Tom Lane <tgl@sss.pgh.pa.us> |
| Branch: master [e5691cc91] 2022-02-11 15:24:02 -0500 |
| Branch: REL_14_STABLE [277e744ae] 2022-02-11 15:23:52 -0500 |
| Branch: REL_13_STABLE [0778b24ce] 2022-02-11 15:23:52 -0500 |
| Branch: REL_12_STABLE [32e801676] 2022-02-11 15:23:52 -0500 |
| Branch: REL_11_STABLE [14ee565f3] 2022-02-11 15:23:52 -0500 |
| Branch: REL_10_STABLE [b6f869bee] 2022-02-11 15:23:52 -0500 |
| --> |
| <para> |
| Fix plan generation for index-only scans on indexes with |
| both returnable and non-returnable columns (Tom Lane) |
| </para> |
| |
| <para> |
| The previous coding could try to read non-returnable columns |
| in addition to the returnable ones. This was fairly harmless |
| because it didn't actually do anything with the bogus values, |
| but it fell foul of a recently-added error check that rejected |
| such a plan. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Tom Lane <tgl@sss.pgh.pa.us> |
| Branch: master [7b7ed046c] 2022-04-13 13:35:07 -0400 |
| Branch: REL_14_STABLE [c590e514a] 2022-04-13 13:35:02 -0400 |
| Branch: REL_13_STABLE [44096c31e] 2022-04-13 13:35:02 -0400 |
| Branch: REL_12_STABLE [e0ed20d0b] 2022-04-13 13:35:02 -0400 |
| --> |
| <para> |
| Avoid accessing a no-longer-pinned shared buffer while attempting |
| to lock an outdated tuple during EvalPlanQual (Tom Lane) |
| </para> |
| |
| <para> |
| The code would touch the buffer a couple more times after releasing |
| its pin. In theory another process could recycle the buffer (or |
| more likely, try to defragment its free space) as soon as the pin is |
| gone, probably leading to failure to find the newer version of the |
| tuple. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Alexander Korotkov <akorotkov@postgresql.org> |
| Branch: master [3f74daa8d] 2022-02-14 04:17:04 +0300 |
| Branch: REL_14_STABLE [c76665edc] 2022-02-14 03:32:31 +0300 |
| Branch: REL_13_STABLE [ac2303aa0] 2022-02-14 03:32:34 +0300 |
| Branch: REL_12_STABLE [7a12a9e3c] 2022-02-14 03:32:39 +0300 |
| Branch: REL_11_STABLE [0d554775b] 2022-02-14 04:04:19 +0300 |
| Branch: REL_10_STABLE [2e9033a54] 2022-02-14 04:04:28 +0300 |
| --> |
| <para> |
| Fix query-lifespan memory leak in an IndexScan node that is |
| performing reordering (Aliaksandr Kalenik) |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Tom Lane <tgl@sss.pgh.pa.us> |
| Branch: master [344a225cb] 2022-04-19 23:03:59 -0400 |
| Branch: REL_14_STABLE [08a9e7a8c] 2022-04-19 23:03:59 -0400 |
| Branch: REL_13_STABLE [f583633bc] 2022-04-19 23:03:59 -0400 |
| Branch: REL_12_STABLE [481a99811] 2022-04-19 23:03:59 -0400 |
| Branch: REL_11_STABLE [9130f8cbb] 2022-04-19 23:03:59 -0400 |
| Branch: REL_10_STABLE [409bcfda6] 2022-04-19 23:03:59 -0400 |
| --> |
| <para> |
| Fix <command>ALTER FUNCTION</command> to support changing a |
| function's parallelism property and |
| its <literal>SET</literal>-variable list in the same command (Tom |
| Lane) |
| </para> |
| |
| <para> |
| The parallelism property change was lost if the same command also |
| updated the function's <literal>SET</literal> clause. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Tom Lane <tgl@sss.pgh.pa.us> |
| Branch: master [641f3dffc] 2022-03-11 13:47:29 -0500 |
| Branch: REL_14_STABLE [8dcd1c356] 2022-03-11 13:47:26 -0500 |
| --> |
| <para> |
| Tighten lookup of the index <quote>owned by</quote> a constraint |
| (Tom Lane, Japin Li) |
| </para> |
| |
| <para> |
| Some code paths mistook the index depended on by a foreign key |
| constraint for one owned by a unique or primary key constraint, |
| resulting in odd errors during certain <command>ALTER |
| TABLE</command> operations on tables having foreign key constraints. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Tom Lane <tgl@sss.pgh.pa.us> |
| Branch: master [36d4efe77] 2022-04-18 12:16:45 -0400 |
| Branch: REL_14_STABLE [e805735a8] 2022-04-18 12:16:45 -0400 |
| Branch: REL_13_STABLE [69cefb3fb] 2022-04-18 12:16:45 -0400 |
| Branch: REL_12_STABLE [0795da869] 2022-04-18 12:16:45 -0400 |
| --> |
| <para> |
| Fix bogus errors from attempts to alter system columns of tables |
| (Tom Lane) |
| </para> |
| |
| <para> |
| The system should just tell you that you can't do it, but sometimes |
| it would report <quote>no owned sequence found</quote> instead. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Peter Geoghegan <pg@bowt.ie> |
| Branch: master [8ab0ebb9a] 2022-04-20 17:17:43 -0700 |
| Branch: REL_14_STABLE [e4521841a] 2022-04-20 17:17:41 -0700 |
| Branch: REL_13_STABLE [1272630a2] 2022-04-20 17:17:39 -0700 |
| Branch: REL_12_STABLE [5487585e3] 2022-04-20 17:17:37 -0700 |
| Branch: REL_11_STABLE [adb2d84fc] 2022-04-20 17:17:35 -0700 |
| Branch: REL_10_STABLE [a903895b3] 2022-04-20 17:17:33 -0700 |
| --> |
| <para> |
| Fix mis-sorting of table rows when <command>CLUSTER</command>ing |
| using an index whose leading key is an expression (Peter Geoghegan, |
| Thomas Munro) |
| </para> |
| |
| <para> |
| The table would be rebuilt with the correct data, but in an order |
| having little to do with the index order. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Heikki Linnakangas <heikki.linnakangas@iki.fi> |
| Branch: master [6c46e8a5d] 2022-02-24 16:15:12 +0200 |
| Branch: REL_14_STABLE [7d80e93fb] 2022-02-24 14:34:09 +0200 |
| --> |
| <para> |
| Prevent data loss if a system crash occurs shortly after a sorted |
| GiST index build (Heikki Linnakangas) |
| </para> |
| |
| <para> |
| The code path for building GiST indexes using sorting neglected |
| to <function>fsync</function> the file upon completion. This could |
| result in a corrupted index if the operating system crashed shortly |
| later. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Tom Lane <tgl@sss.pgh.pa.us> |
| Branch: master [7b6ec8653] 2022-03-21 12:22:13 -0400 |
| Branch: REL_14_STABLE [05ccf974c] 2022-03-21 12:22:13 -0400 |
| Branch: REL_13_STABLE [2241e5ced] 2022-03-21 12:22:13 -0400 |
| Branch: REL_12_STABLE [d8d378d51] 2022-03-21 12:22:13 -0400 |
| Branch: REL_11_STABLE [b8ae17fd9] 2022-03-21 12:22:13 -0400 |
| --> |
| <para> |
| Fix risk of deadlock failures while dropping a partitioned index |
| (Jimmy Yih, Gaurab Dey, Tom Lane) |
| </para> |
| |
| <para> |
| Ensure that the required table and index locks are taken in the |
| standard order (parents before children, tables before indexes). |
| The previous coding for <command>DROP INDEX</command> did it |
| differently, and so could deadlock against concurrent queries taking |
| these locks in the standard order. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Thomas Munro <tmunro@postgresql.org> |
| Branch: master [46d9bfb0a] 2022-03-16 17:20:24 +1300 |
| Branch: REL_14_STABLE [26e007939] 2022-03-16 17:20:50 +1300 |
| Branch: REL_13_STABLE [51e760e5a] 2022-03-16 17:21:19 +1300 |
| Branch: REL_12_STABLE [c918f07dd] 2022-03-16 17:21:46 +1300 |
| Branch: REL_11_STABLE [ca522c60a] 2022-03-16 17:38:55 +1300 |
| Branch: REL_10_STABLE [fe197872c] 2022-03-16 17:41:31 +1300 |
| --> |
| <para> |
| Fix race condition between <command>DROP TABLESPACE</command> and |
| checkpointing (Nathan Bossart) |
| </para> |
| |
| <para> |
| The checkpoint forced by <command>DROP TABLESPACE</command> could |
| sometimes fail to remove all dead files from the tablespace's |
| directory, leading to a bogus <quote>tablespace is not empty</quote> |
| error. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Robert Haas <rhaas@postgresql.org> |
| Branch: master [412ad7a55] 2022-03-24 14:52:28 -0400 |
| Branch: REL_14_STABLE [bbace5697] 2022-03-24 14:32:48 -0400 |
| Branch: REL_13_STABLE [1ce14b6b2] 2022-03-24 14:36:06 -0400 |
| Branch: REL_12_STABLE [3821d66a7] 2022-03-24 14:38:51 -0400 |
| Branch: REL_11_STABLE [118f1a332] 2022-03-24 14:49:08 -0400 |
| Branch: REL_10_STABLE [57f618310] 2022-03-24 14:50:06 -0400 |
| Author: Robert Haas <rhaas@postgresql.org> |
| Branch: REL_14_STABLE [10520f434] 2022-04-14 11:10:07 -0400 |
| Branch: REL_13_STABLE [d18c913b7] 2022-04-14 11:10:11 -0400 |
| Branch: REL_12_STABLE [68e605b9e] 2022-04-14 11:10:13 -0400 |
| Branch: REL_11_STABLE [6270ee445] 2022-04-14 11:10:16 -0400 |
| Branch: REL_10_STABLE [48b398943] 2022-04-14 11:10:18 -0400 |
| --> |
| <para> |
| Fix possible trouble in crash recovery after |
| a <command>TRUNCATE</command> command that overlaps a checkpoint |
| (Kyotaro Horiguchi, Heikki Linnakangas, Robert Haas) |
| </para> |
| |
| <para> |
| <command>TRUNCATE</command> must ensure that the table's disk file |
| is truncated before the checkpoint is allowed to complete. |
| Otherwise, replay starting from that checkpoint might find |
| unexpected data in the supposedly-removed pages, possibly causing |
| replay failure. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Andres Freund <andres@anarazel.de> |
| Branch: master [7c38ef2a5] 2022-02-21 08:57:34 -0800 |
| Branch: REL_14_STABLE [7bbfe5994] 2022-02-21 09:57:05 -0800 |
| Branch: REL_13_STABLE [c2551483e] 2022-02-21 08:59:30 -0800 |
| Branch: REL_12_STABLE [0033fc63f] 2022-02-21 08:59:32 -0800 |
| Branch: REL_11_STABLE [3faa21bb7] 2022-02-21 08:59:34 -0800 |
| Branch: REL_10_STABLE [cebc54b90] 2022-02-21 08:59:36 -0800 |
| --> |
| <para> |
| Fix unsafe toast-data accesses during temporary object cleanup |
| (Andres Freund) |
| </para> |
| |
| <para> |
| Temporary-object deletion during server process exit could fail |
| with <quote>FATAL: cannot fetch toast data without an active |
| snapshot</quote>. This was usually harmless since the next use of |
| that temporary schema would clean up successfully. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Tom Lane <tgl@sss.pgh.pa.us> |
| Branch: master [bd74c4037] 2022-02-23 11:10:46 -0500 |
| Branch: REL_14_STABLE [dd7c05979] 2022-02-23 11:10:46 -0500 |
| --> |
| <para> |
| Re-allow underscore as the first character in a custom parameter |
| name (Japin Li) |
| </para> |
| |
| <para> |
| Such names were unintentionally disallowed in v14. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Michael Paquier <michael@paquier.xyz> |
| Branch: master [ebf6c5249] 2022-02-22 10:22:15 +0900 |
| Branch: REL_14_STABLE [627c79a1e] 2022-02-22 10:23:49 +0900 |
| --> |
| <para> |
| Add <literal>regress</literal> option for |
| the <varname>compute_query_id</varname> parameter (Michael Paquier) |
| </para> |
| |
| <para> |
| This is intended to facilitate testing, by allowing query IDs to be |
| computed but not shown in <command>EXPLAIN</command> output. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Thomas Munro <tmunro@postgresql.org> |
| Branch: master [3390ef1b7] 2022-03-16 15:35:16 +1300 |
| Branch: REL_14_STABLE [1396b5c6e] 2022-03-16 15:35:42 +1300 |
| Branch: REL_13_STABLE [cfdb303be] 2022-03-16 15:37:15 +1300 |
| Branch: REL_12_STABLE [368ffdeee] 2022-03-16 15:38:13 +1300 |
| --> |
| <para> |
| Improve wait logic in RegisterSyncRequest (Thomas Munro) |
| </para> |
| |
| <para> |
| If we run out of space in the checkpointer sync request queue (which |
| is hopefully rare on real systems, but is common when testing with a |
| very small buffer pool), we wait for it to drain. While waiting, we |
| should report that as a wait event so that users know what is going |
| on, and also watch for postmaster death, since otherwise the loop might |
| never terminate if the checkpointer has already exited. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Thomas Munro <tmunro@postgresql.org> |
| Branch: master [5e6368b42] 2022-03-16 13:57:59 +1300 |
| Branch: REL_14_STABLE [78c0f85e4] 2022-03-16 13:57:07 +1300 |
| Branch: master [501c66c81] 2022-03-16 15:55:15 +1300 |
| Branch: REL_14_STABLE [ea70f6945] 2022-03-16 15:56:41 +1300 |
| --> |
| <para> |
| Wake up for latch events when the checkpointer is waiting between |
| writes (Thomas Munro) |
| </para> |
| |
| <para> |
| This improves responsiveness to backends sending sync requests. |
| The change also creates a proper wait event class for these waits. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Alvaro Herrera <alvherre@alvh.no-ip.org> |
| Branch: master [9d92582ab] 2022-03-23 18:22:10 +0100 |
| Branch: REL_14_STABLE [caaeb88ff] 2022-03-23 18:22:10 +0100 |
| Branch: REL_13_STABLE [98eb3e06c] 2022-03-23 18:22:10 +0100 |
| Branch: REL_12_STABLE [c714ebd0e] 2022-03-23 18:22:10 +0100 |
| Branch: REL_11_STABLE [199cd7b59] 2022-03-23 18:22:10 +0100 |
| Branch: REL_10_STABLE [9ade3c09a] 2022-03-23 18:22:10 +0100 |
| --> |
| <para> |
| Fix <quote>PANIC: xlog flush request is not satisfied</quote> |
| failure during standby promotion when there is a missing WAL |
| continuation record (Sami Imseih) |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Andres Freund <andres@anarazel.de> |
| Branch: master [8f1537d10] 2022-05-02 18:25:00 -0700 |
| Branch: REL_14_STABLE [9ab3b2bdb] 2022-05-02 18:25:59 -0700 |
| Branch: REL_13_STABLE [57c5ad168] 2022-05-02 18:28:10 -0700 |
| Branch: REL_12_STABLE [edfc03ec9] 2022-05-02 18:29:52 -0700 |
| Branch: REL_11_STABLE [9cda785b4] 2022-05-02 18:30:15 -0700 |
| Branch: REL_10_STABLE [cbc47ad7e] 2022-05-02 18:30:38 -0700 |
| Author: Andres Freund <andres@anarazel.de> |
| Branch: REL_14_STABLE [f74496dd6] 2022-05-02 18:26:09 -0700 |
| Branch: REL_13_STABLE [0446d3bf3] 2022-05-02 18:29:35 -0700 |
| Branch: REL_12_STABLE [a5ede1391] 2022-05-02 18:29:52 -0700 |
| Branch: REL_11_STABLE [25d5494e2] 2022-05-02 18:30:15 -0700 |
| Branch: REL_10_STABLE [b1f35a36e] 2022-05-02 18:30:38 -0700 |
| Author: Andres Freund <andres@anarazel.de> |
| Branch: REL_14_STABLE [5ab8e8014] 2022-05-02 18:09:42 -0700 |
| Branch: REL_13_STABLE [90abe1e17] 2022-05-02 18:09:43 -0700 |
| Branch: REL_12_STABLE [5c8b14a71] 2022-05-02 18:09:43 -0700 |
| Branch: REL_11_STABLE [2adb8debe] 2022-05-02 18:09:44 -0700 |
| Branch: REL_10_STABLE [e8a0cf9b2] 2022-05-02 18:09:44 -0700 |
| --> |
| <para> |
| Fix possibility of self-deadlock in hot standby conflict handling |
| (Andres Freund) |
| </para> |
| |
| <para> |
| With unlucky timing, the WAL-applying process could get stuck |
| while waiting for some other process to release a buffer lock. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Tomas Vondra <tomas.vondra@postgresql.org> |
| Branch: master [c91f71b9d] 2022-03-16 18:05:58 +0100 |
| Branch: REL_14_STABLE [677a1dc0c] 2022-03-16 18:06:27 +0100 |
| Branch: REL_13_STABLE [27fafee72] 2022-03-16 18:14:33 +0100 |
| --> |
| <para> |
| Fix possible mis-identification of the correct ancestor relation |
| to publish logical replication changes through (Tomas Vondra, Hou |
| zj, Amit Kapila) |
| </para> |
| |
| <para> |
| If <varname>publish_via_partition_root</varname> is enabled, and |
| there are multiple publications naming different ancestors of the |
| currently-modified relation, the wrong ancestor might be chosen for |
| reporting the change. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Amit Kapila <akapila@postgresql.org> |
| Branch: master [dd4ab6fd6] 2022-04-19 08:49:49 +0530 |
| Branch: REL_14_STABLE [c9dea58e2] 2022-04-19 08:54:37 +0530 |
| Branch: REL_13_STABLE [82d4a17a1] 2022-04-19 09:08:05 +0530 |
| Branch: REL_12_STABLE [59348fbde] 2022-04-19 09:18:44 +0530 |
| Branch: REL_11_STABLE [a90de822e] 2022-04-19 09:29:34 +0530 |
| Branch: REL_10_STABLE [be46985be] 2022-04-19 09:38:25 +0530 |
| --> |
| <para> |
| Ensure that logical replication apply workers can be restarted even |
| when we're up against |
| the <varname>max_sync_workers_per_subscription</varname> limit |
| (Amit Kapila) |
| </para> |
| |
| <para> |
| Faulty coding of the limit check caused a restarted worker to exit |
| immediately, leaving fewer workers than there should be. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Amit Kapila <akapila@postgresql.org> |
| Branch: master [5e01001ff] 2022-02-14 08:55:58 +0530 |
| Branch: REL_14_STABLE [04645bbca] 2022-02-14 08:07:46 +0530 |
| Branch: REL_13_STABLE [caa231be9] 2022-02-14 08:24:44 +0530 |
| Branch: REL_12_STABLE [ce349cf17] 2022-02-14 08:27:56 +0530 |
| Branch: REL_11_STABLE [1cd5802ac] 2022-02-14 08:37:23 +0530 |
| Branch: REL_10_STABLE [b5e060473] 2022-02-14 08:45:54 +0530 |
| --> |
| <para> |
| Include unchanged replica identity key columns in the WAL log for an |
| update, if they are stored out-of-line (Dilip Kumar, Amit Kapila) |
| </para> |
| |
| <para> |
| Otherwise subscribers cannot see the values and will fail to |
| replicate the update. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Tom Lane <tgl@sss.pgh.pa.us> |
| Branch: master [0fb6954aa] 2022-03-27 12:57:46 -0400 |
| Branch: REL_14_STABLE [3f7a59c59] 2022-03-27 12:57:52 -0400 |
| Branch: REL_13_STABLE [9016a2a3d] 2022-03-27 12:57:57 -0400 |
| --> |
| <para> |
| Cope correctly with platforms that have no support for altering the |
| server process's display in <application>ps(1)</application> (Andrew |
| Dunstan) |
| </para> |
| |
| <para> |
| Few platforms are like this (the only supported one is Cygwin), so |
| we'd managed not to notice that refactoring introduced a potential |
| memory clobber. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Tom Lane <tgl@sss.pgh.pa.us> |
| Branch: master [d37776e45] 2022-02-10 11:52:28 -0500 |
| Branch: REL_14_STABLE [2e211c166] 2022-02-10 11:52:20 -0500 |
| --> |
| <para> |
| Make the server more robust against missed timer interrupts (Michael |
| Harris, Tom Lane) |
| </para> |
| |
| <para> |
| An optimization added in v14 meant that if a server process somehow |
| missed a timer interrupt, it would never again ask the kernel for |
| another one, thus breaking timeout detection for the remainder of the |
| session. This seems unduly fragile, so add a recovery path. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Tom Lane <tgl@sss.pgh.pa.us> |
| Branch: master [638300fef] 2022-02-25 17:40:43 -0500 |
| Branch: REL_14_STABLE [ac910bb23] 2022-02-25 17:40:43 -0500 |
| Branch: REL_13_STABLE [9b2d762a2] 2022-02-25 17:40:44 -0500 |
| Branch: REL_12_STABLE [0f7b62f29] 2022-02-25 17:40:45 -0500 |
| Branch: REL_11_STABLE [31befa6be] 2022-02-25 17:40:45 -0500 |
| Branch: REL_10_STABLE [4936747c4] 2022-02-25 17:40:21 -0500 |
| --> |
| <para> |
| Disallow execution of SPI functions during PL/Perl function |
| compilation (Tom Lane) |
| </para> |
| |
| <para> |
| Perl can be convinced to execute user-defined code during compilation |
| of a PL/Perl function. However, it's not okay for such code to try |
| to invoke SQL operations via SPI. That results in a crash, and if |
| it didn't crash it would be a security hazard, because we really |
| don't want code execution during function validation. Put in a |
| check to give a friendlier error message instead. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Tom Lane <tgl@sss.pgh.pa.us> |
| Branch: master [a59c79564] 2022-02-28 14:12:52 -0500 |
| Author: Tom Lane <tgl@sss.pgh.pa.us> |
| Branch: master [50f03473e] 2022-03-02 11:29:11 -0500 |
| Author: Tom Lane <tgl@sss.pgh.pa.us> |
| Branch: REL_14_STABLE [2a1f84636] 2022-03-02 11:57:02 -0500 |
| Branch: REL_13_STABLE [6599d8f12] 2022-03-02 11:57:02 -0500 |
| Branch: REL_12_STABLE [72918ea86] 2022-03-02 11:57:02 -0500 |
| Branch: REL_11_STABLE [5bb3d91ea] 2022-03-02 11:57:02 -0500 |
| Branch: REL_10_STABLE [9050999ef] 2022-03-02 11:57:02 -0500 |
| Author: Tom Lane <tgl@sss.pgh.pa.us> |
| Branch: master [878e64d0f] 2022-03-31 11:24:26 -0400 |
| Branch: REL_14_STABLE [402279afe] 2022-03-31 11:24:26 -0400 |
| Branch: REL_13_STABLE [fb1d7f451] 2022-03-31 11:24:26 -0400 |
| Branch: REL_12_STABLE [fcaf7d725] 2022-03-31 11:24:26 -0400 |
| Branch: REL_11_STABLE [143043191] 2022-03-31 11:24:26 -0400 |
| Branch: REL_10_STABLE [a6bd1f0ee] 2022-03-31 11:24:26 -0400 |
| --> |
| <para> |
| Make <application>libpq</application> accept root-owned SSL private |
| key files (David Steele) |
| </para> |
| |
| <para> |
| This change synchronizes <application>libpq</application>'s rules |
| for safe ownership and permissions of SSL key files with the rules |
| the server has used since release 9.6. Namely, in addition to the |
| current rules, allow the case where the key file is owned by root |
| and has permissions <literal>rw-r-----</literal> or less. This is |
| helpful for system-wide management of key files. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Tom Lane <tgl@sss.pgh.pa.us> |
| Branch: master [335fa5a26] 2022-02-12 13:23:20 -0500 |
| Branch: REL_14_STABLE [ae27b1acc] 2022-02-12 13:23:20 -0500 |
| Branch: REL_13_STABLE [51ee561f5] 2022-02-12 13:23:20 -0500 |
| Branch: REL_12_STABLE [c9d35dc7f] 2022-02-12 13:23:20 -0500 |
| --> |
| <para> |
| Fix behavior of <application>libpq</application>'s |
| <function>PQisBusy()</function> function after a connection failure |
| (Tom Lane) |
| </para> |
| |
| <para> |
| If we'd detected a write failure, <function>PQisBusy()</function> |
| would always return true, which is the wrong thing: we want input |
| processing to carry on normally until we've read whatever is |
| available from the server. The practical effect of this error is |
| that applications using <application>libpq</application>'s |
| async-query API would typically detect connection loss only |
| when <function>PQconsumeInput()</function> returns a hard failure. |
| With this fix, a connection loss will normally be reported via an |
| error <structname>PGresult</structname> object, which is a much |
| cleaner behavior for most applications. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Robert Haas <rhaas@postgresql.org> |
| Branch: master [d2d354797] 2022-04-20 11:37:29 -0400 |
| Branch: REL_14_STABLE [4a66300ac] 2022-04-20 11:39:44 -0400 |
| Author: Robert Haas <rhaas@postgresql.org> |
| Branch: master [a66e722cc] 2022-04-22 16:19:39 -0400 |
| Branch: REL_14_STABLE [75a006bee] 2022-04-25 09:14:19 -0400 |
| --> |
| <para> |
| Re-allow <replaceable>database</replaceable>.<replaceable>schema</replaceable>.<replaceable>table</replaceable> |
| patterns |
| in <application>psql</application>, <application>pg_dump</application>, |
| and <application>pg_amcheck</application> (Mark Dilger) |
| </para> |
| |
| <para> |
| Versions before v14 silently ignored all but |
| the <replaceable>schema</replaceable> |
| and <replaceable>table</replaceable> fragments of a pattern |
| containing more than one dot. Refactoring in v14 accidentally broke |
| that use-case. Reinstate it, but now complain if the first fragment |
| is not the name of the current database. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Tom Lane <tgl@sss.pgh.pa.us> |
| Branch: master [a745b9365] 2022-02-10 16:49:39 -0500 |
| Branch: REL_14_STABLE [1e8c5cf7c] 2022-02-10 16:49:39 -0500 |
| Branch: REL_13_STABLE [d0e1fd958] 2022-02-10 16:49:39 -0500 |
| Branch: REL_12_STABLE [61c20a5ea] 2022-02-10 16:49:39 -0500 |
| Branch: REL_11_STABLE [69cc15c31] 2022-02-10 16:49:39 -0500 |
| Branch: REL_10_STABLE [34523933b] 2022-02-10 16:49:39 -0500 |
| --> |
| <para> |
| Make <application>pg_ctl</application> recheck postmaster aliveness |
| while waiting for stop/restart/promote actions (Tom Lane) |
| </para> |
| |
| <para> |
| <application>pg_ctl</application> would verify that the postmaster |
| is alive as a side-effect of sending the stop or promote signal, but |
| then it just naively waited to see the on-disk state change. If the |
| postmaster died uncleanly without having removed its PID file or |
| updated the control file, <application>pg_ctl</application> would |
| wait until timeout. Instead make it recheck every so often that the |
| postmaster process is still there. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Andres Freund <andres@anarazel.de> |
| Branch: master [cd83cb953] 2022-02-25 10:30:05 -0800 |
| Branch: REL_14_STABLE [9ff7fd906] 2022-02-25 10:31:16 -0800 |
| Branch: REL_13_STABLE [0b1020a96] 2022-02-25 10:32:38 -0800 |
| Branch: REL_12_STABLE [5407241a8] 2022-02-25 10:34:38 -0800 |
| Branch: REL_11_STABLE [51c341656] 2022-02-25 10:40:32 -0800 |
| Author: Andres Freund <andres@anarazel.de> |
| Branch: master [264d28492] 2022-03-27 18:13:50 -0700 |
| Branch: REL_14_STABLE [6839aa7a6] 2022-03-27 18:15:10 -0700 |
| Branch: REL_13_STABLE [344d89abf] 2022-03-27 18:15:14 -0700 |
| Branch: REL_12_STABLE [5ebd262dc] 2022-03-27 18:15:15 -0700 |
| Branch: REL_11_STABLE [7d935bdf7] 2022-03-27 18:15:17 -0700 |
| --> |
| <para> |
| Fix error handling in <application>pg_waldump</application> (Kyotaro |
| Horiguchi, Andres Freund) |
| </para> |
| |
| <para> |
| While trying to read a WAL file to determine the WAL segment size, |
| <application>pg_waldump</application> would report an incorrect |
| error for the case of a too-short file. In addition, the file name |
| reported in this and related error messages could be garbage. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Michael Paquier <michael@paquier.xyz> |
| Branch: master [cd4868a57] 2022-04-14 15:08:03 +0900 |
| Branch: REL_14_STABLE [df6bbe73b] 2022-04-14 15:09:26 +0900 |
| Branch: REL_13_STABLE [2275d044d] 2022-04-14 15:09:36 +0900 |
| Branch: REL_12_STABLE [5378d55cb] 2022-04-14 15:09:39 +0900 |
| Branch: REL_11_STABLE [79fed072b] 2022-04-14 15:09:42 +0900 |
| Branch: REL_10_STABLE [12d32b7bc] 2022-04-14 15:09:46 +0900 |
| --> |
| <para> |
| Ensure that <filename>contrib/pageinspect</filename> functions cope |
| with all-zero pages (Michael Paquier) |
| </para> |
| |
| <para> |
| This is a legitimate edge case, but the module was mostly unprepared |
| for it. Arrange to return nulls, or no rows, as appropriate; that |
| seems more useful than raising an error. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Michael Paquier <michael@paquier.xyz> |
| Branch: master [291e517a4] 2022-03-27 17:53:40 +0900 |
| Branch: REL_14_STABLE [27d384441] 2022-03-27 17:53:51 +0900 |
| Branch: REL_13_STABLE [3d4d6dee0] 2022-03-27 17:53:55 +0900 |
| Branch: REL_12_STABLE [5ca2aa2f2] 2022-03-27 17:53:59 +0900 |
| Branch: REL_11_STABLE [1a2fdf86a] 2022-03-27 17:54:03 +0900 |
| Branch: REL_10_STABLE [ab80b0fbb] 2022-03-27 17:54:08 +0900 |
| Author: Michael Paquier <michael@paquier.xyz> |
| Branch: master [076f4d953] 2022-03-16 11:19:39 +0900 |
| Branch: REL_14_STABLE [b61e6214c] 2022-03-16 11:20:47 +0900 |
| Branch: REL_13_STABLE [d3a9b83c3] 2022-03-16 11:20:51 +0900 |
| Branch: REL_12_STABLE [af8a8eb54] 2022-03-16 11:20:54 +0900 |
| Branch: REL_11_STABLE [2389ee8dd] 2022-03-16 11:20:57 +0900 |
| Branch: REL_10_STABLE [c42b88932] 2022-03-16 11:21:00 +0900 |
| Author: Michael Paquier <michael@paquier.xyz> |
| Branch: master [4477dcb20] 2022-03-16 12:29:39 +0900 |
| Branch: REL_14_STABLE [dc5b3bdae] 2022-03-16 12:29:47 +0900 |
| Branch: REL_13_STABLE [028a3c6b1] 2022-03-16 12:29:55 +0900 |
| Branch: REL_12_STABLE [5cb770210] 2022-03-16 12:29:59 +0900 |
| Branch: REL_11_STABLE [09c97746d] 2022-03-16 12:30:02 +0900 |
| Branch: REL_10_STABLE [07e343513] 2022-03-16 12:30:07 +0900 |
| --> |
| <para> |
| In <filename>contrib/pageinspect</filename>, add defenses against |
| incorrect page <quote>special space</quote> contents, tighten checks |
| for correct page size, and add some missing checks that an index is |
| of the expected type (Michael Paquier, Justin Pryzby, Julien |
| Rouhaud) |
| </para> |
| |
| <para> |
| These changes make it less likely that the module will crash on bad |
| data. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Etsuro Fujita <efujita@postgresql.org> |
| Branch: master [4eea2202b] 2022-04-21 15:30:00 +0900 |
| Branch: REL_14_STABLE [89d349b0a] 2022-04-21 15:30:02 +0900 |
| --> |
| <para> |
| In <filename>contrib/postgres_fdw</filename>, disable batch |
| insertion when <literal>BEFORE INSERT ... FOR EACH ROW</literal> |
| triggers exist on the foreign table (Etsuro Fujita) |
| </para> |
| |
| <para> |
| Such a trigger might query the table it's on and expect to see |
| previously-inserted rows. With batch insertion, those rows might |
| not be visible yet, so disable the feature to avoid unexpected |
| behavior. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Tom Lane <tgl@sss.pgh.pa.us> |
| Branch: master [f3dd9fe1d] 2022-03-31 14:29:48 -0400 |
| Branch: REL_14_STABLE [9f9489aa2] 2022-03-31 14:29:24 -0400 |
| Branch: REL_13_STABLE [79df1d20c] 2022-03-31 14:29:24 -0400 |
| Branch: REL_12_STABLE [989d3e4a2] 2022-03-31 14:29:24 -0400 |
| Branch: REL_11_STABLE [b9eb0412f] 2022-03-31 14:29:24 -0400 |
| Branch: REL_10_STABLE [728fc0f9a] 2022-03-31 14:29:24 -0400 |
| --> |
| <para> |
| In <filename>contrib/postgres_fdw</filename>, verify |
| that <literal>ORDER BY</literal> clauses are safe to ship before |
| requesting a remotely-ordered query, and include |
| a <literal>USING</literal> clause if necessary (Ronan Dunklau) |
| </para> |
| |
| <para> |
| This fix prevents situations where the remote server might sort in a |
| different order than we intend. While sometimes that would be only |
| cosmetic, it could produce thoroughly wrong results if the remote |
| data is used as input for a locally-performed merge join. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Tom Lane <tgl@sss.pgh.pa.us> |
| Branch: master [c5f5b4dd4] 2022-02-09 14:24:54 -0500 |
| Branch: REL_14_STABLE [c23461a22] 2022-02-09 14:24:55 -0500 |
| --> |
| <para> |
| Fix <application>configure</application> to handle platforms that |
| have <filename>sys/epoll.h</filename> but |
| not <filename>sys/signalfd.h</filename> (Tom Lane) |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Thomas Munro <tmunro@postgresql.org> |
| Branch: master [e6a760020] 2021-09-27 10:53:20 +1300 |
| Author: Thomas Munro <tmunro@postgresql.org> |
| Branch: master [807fee1a3] 2022-02-04 16:16:10 +1300 |
| Author: Thomas Munro <tmunro@postgresql.org> |
| Branch: master [a56e7b660] 2022-03-16 10:30:55 +1300 |
| Author: Thomas Munro <tmunro@postgresql.org> |
| Branch: REL_14_STABLE [d9f7ad54e] 2022-03-16 11:42:00 +1300 |
| Branch: REL_13_STABLE [5610411ac] 2022-03-16 11:41:13 +1300 |
| Branch: REL_12_STABLE [45a469eb2] 2022-03-16 11:40:43 +1300 |
| Branch: REL_11_STABLE [986d24042] 2022-03-16 11:35:00 +1300 |
| --> |
| <para> |
| Update <acronym>JIT</acronym> code to work with LLVM 14 |
| (Thomas Munro) |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Tom Lane <tgl@sss.pgh.pa.us> |
| Branch: master [46ab07ffd] 2022-03-03 18:13:24 -0500 |
| Branch: REL_14_STABLE [b0bc196e5] 2022-03-03 18:13:24 -0500 |
| Branch: REL_13_STABLE [1a027e6b7] 2022-03-03 18:13:24 -0500 |
| Branch: REL_12_STABLE [f727b6ea8] 2022-03-03 18:13:24 -0500 |
| Branch: REL_11_STABLE [f2087e26e] 2022-03-03 18:13:24 -0500 |
| Branch: REL_10_STABLE [cfbe87bd6] 2022-03-03 18:13:24 -0500 |
| Author: Tom Lane <tgl@sss.pgh.pa.us> |
| Branch: master [0fbdfaf79] 2022-03-03 19:03:17 -0500 |
| Branch: REL_14_STABLE [5c9d17e94] 2022-03-03 19:03:35 -0500 |
| Branch: REL_13_STABLE [97031f440] 2022-03-03 19:03:42 -0500 |
| Branch: REL_12_STABLE [4b0696b36] 2022-03-03 19:03:46 -0500 |
| Branch: REL_11_STABLE [566e1c04d] 2022-03-03 19:03:50 -0500 |
| Branch: REL_10_STABLE [18c04d157] 2022-03-03 19:03:55 -0500 |
| Author: Andres Freund <andres@anarazel.de> |
| Branch: master [3ac7d0241] 2022-03-23 13:05:59 -0700 |
| Branch: REL_14_STABLE [81045e1e1] 2022-03-23 13:18:02 -0700 |
| Branch: REL_13_STABLE [c0f99bb52] 2022-03-23 13:18:00 -0700 |
| Branch: REL_12_STABLE [61a007fee] 2022-03-23 13:17:59 -0700 |
| Author: Andres Freund <andres@anarazel.de> |
| Branch: master [1c6bb380e] 2022-03-23 13:05:25 -0700 |
| Branch: REL_14_STABLE [89a94c24a] 2022-03-23 13:13:18 -0700 |
| Branch: REL_13_STABLE [8014c61eb] 2022-03-23 13:13:20 -0700 |
| Branch: REL_12_STABLE [c5b60a68c] 2022-03-23 13:13:33 -0700 |
| Branch: REL_11_STABLE [2121d5809] 2022-03-23 13:13:40 -0700 |
| Branch: REL_10_STABLE [5f4615b9d] 2022-03-23 13:13:49 -0700 |
| Author: Andres Freund <andres@anarazel.de> |
| Branch: master [e71c76fca] 2022-03-23 12:43:14 -0700 |
| Branch: REL_14_STABLE [e52e9bd57] 2022-03-23 12:43:41 -0700 |
| Branch: REL_13_STABLE [7c163aa93] 2022-03-23 12:43:40 -0700 |
| Branch: REL_12_STABLE [6a767bc2e] 2022-03-23 12:43:38 -0700 |
| Branch: REL_11_STABLE [a77dddb42] 2022-03-23 12:43:36 -0700 |
| Branch: REL_10_STABLE [2a9193726] 2022-03-23 12:43:33 -0700 |
| --> |
| <para> |
| Clean up assorted failures under <productname>clang</productname>'s |
| <literal>-fsanitize=undefined</literal> checks (Tom Lane, Andres |
| Freund, Zhihong Yu) |
| </para> |
| |
| <para> |
| Most of these changes are just for pro-forma compliance with the |
| letter of the C and POSIX standards, and are unlikely to have any |
| effect on production builds. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Peter Eisentraut <peter@eisentraut.org> |
| Branch: master [465ab2429] 2022-04-01 17:15:24 +0200 |
| Branch: REL_14_STABLE [7a2789275] 2022-04-01 17:12:56 +0200 |
| --> |
| <para> |
| Do not add OpenSSL dependencies to <application>libpq</application>'s |
| <filename>pkg-config</filename> file when building without OpenSSL |
| (Fabrice Fontaine) |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Tom Lane <tgl@sss.pgh.pa.us> |
| Branch: master [d5c2a91e5] 2022-02-08 19:25:56 -0500 |
| Branch: REL_14_STABLE [e327291e4] 2022-02-08 19:26:09 -0500 |
| Branch: REL_13_STABLE [5ea3b99de] 2022-02-08 19:26:17 -0500 |
| Branch: REL_12_STABLE [eba0f095c] 2022-02-08 19:26:22 -0500 |
| Branch: REL_11_STABLE [3a6e3a890] 2022-02-08 19:26:26 -0500 |
| Branch: REL_10_STABLE [1a8b6f055] 2022-02-08 19:26:30 -0500 |
| --> |
| <para> |
| Fix PL/Perl so it builds on C compilers that don't support statements |
| nested within expressions (Tom Lane) |
| </para> |
| |
| <para> |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Andres Freund <andres@anarazel.de> |
| Branch: master [097786fbb] 2022-03-22 08:22:02 -0700 |
| Branch: REL_14_STABLE [2d608c960] 2022-03-22 08:28:51 -0700 |
| Branch: REL_13_STABLE [f183e23cc] 2022-03-22 08:28:52 -0700 |
| Branch: REL_12_STABLE [4553b960f] 2022-03-22 08:28:53 -0700 |
| Branch: REL_11_STABLE [cd1951ba0] 2022-03-22 08:28:54 -0700 |
| Branch: REL_10_STABLE [083031aa9] 2022-03-22 08:28:55 -0700 |
| --> |
| <para> |
| Fix possible build failure of <application>pg_dumpall</application> |
| on Windows, when not using MSVC to build (Andres Freund) |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Andrew Dunstan <andrew@dunslane.net> |
| Branch: master [ea09a75e1] 2022-02-10 13:44:05 -0500 |
| Branch: REL_14_STABLE [92f60f536] 2022-02-10 13:51:19 -0500 |
| Branch: REL_13_STABLE [eec7c640f] 2022-02-10 13:51:40 -0500 |
| Branch: REL_12_STABLE [64dd64807] 2022-02-10 13:51:49 -0500 |
| Branch: REL_11_STABLE [e2d104e19] 2022-02-10 13:51:59 -0500 |
| Branch: REL_10_STABLE [a5eef80c2] 2022-02-10 13:52:05 -0500 |
| Branch: REL9_6_STABLE [622ab6a34] 2022-02-10 13:52:37 -0500 |
| Branch: REL9_5_STABLE [3a5034b5e] 2022-02-10 13:53:56 -0500 |
| Branch: REL9_4_STABLE [c76164ea0] 2022-02-10 13:56:55 -0500 |
| --> |
| <para> |
| In Windows builds, use <application>gendef</application> instead |
| of <application>pexports</application> to build DEF files (Andrew |
| Dunstan) |
| </para> |
| |
| <para> |
| This adapts the build process to work on recent MSys tool chains. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Andrew Dunstan <andrew@dunslane.net> |
| Branch: master [b787c554c] 2022-04-25 15:47:55 -0400 |
| Branch: REL_14_STABLE [71f394667] 2022-04-25 15:49:35 -0400 |
| Branch: REL_13_STABLE [d9cede2c3] 2022-04-25 15:50:01 -0400 |
| Branch: REL_12_STABLE [01f2bc5af] 2022-04-25 15:50:07 -0400 |
| Branch: REL_11_STABLE [b90ce0dd7] 2022-04-25 15:51:27 -0400 |
| Branch: REL_10_STABLE [58887d58c] 2022-04-25 15:51:58 -0400 |
| --> |
| <para> |
| Prevent extra expansion of shell wildcard patterns in programs built |
| under MinGW (Andrew Dunstan) |
| </para> |
| |
| <para> |
| For some reason the C library provided by MinGW will expand shell |
| wildcard characters in a program's command-line arguments by |
| default. This is confusing, not least because it doesn't happen |
| under MSVC, so turn it off. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Tom Lane <tgl@sss.pgh.pa.us> |
| Branch: master [ab3479bf5] 2022-05-05 14:54:53 -0400 |
| Branch: REL_14_STABLE [77ee14ed9] 2022-05-05 14:55:03 -0400 |
| Branch: REL_13_STABLE [e9735d1af] 2022-05-05 14:55:10 -0400 |
| Branch: REL_12_STABLE [2bb9f7501] 2022-05-05 14:55:17 -0400 |
| Branch: REL_11_STABLE [da72ff09b] 2022-05-05 14:55:22 -0400 |
| Branch: REL_10_STABLE [bc334ec9f] 2022-05-05 14:55:30 -0400 |
| --> |
| <para> |
| Update time zone data files to <application>tzdata</application> |
| release 2022a for DST law changes in Palestine, plus historical |
| corrections for Chile and Ukraine. |
| </para> |
| </listitem> |
| |
| </itemizedlist> |
| |
| </sect2> |
| </sect1> |
| |
| <sect1 id="release-14-2"> |
| <title>Release 14.2</title> |
| |
| <formalpara> |
| <title>Release date:</title> |
| <para>2022-02-10</para> |
| </formalpara> |
| |
| <para> |
| This release contains a variety of fixes from 14.1. |
| For information about new features in major release 14, see |
| <xref linkend="release-14"/>. |
| </para> |
| |
| <sect2> |
| <title>Migration to Version 14.2</title> |
| |
| <para> |
| A dump/restore is not required for those running 14.X. |
| </para> |
| |
| <para> |
| However, some bugs have been found that may have resulted in |
| corrupted indexes, as explained in the first two changelog entries. |
| If any of those cases apply to you, it's recommended to reindex |
| possibly-affected indexes after updating. |
| </para> |
| |
| <para> |
| Also, if you are upgrading from a version earlier than 14.1, |
| see <xref linkend="release-14-1"/>. |
| </para> |
| </sect2> |
| |
| <sect2> |
| <title>Changes</title> |
| |
| <itemizedlist> |
| |
| <listitem> |
| <!-- |
| Author: Michael Paquier <michael@paquier.xyz> |
| Branch: master [f99870dd8] 2021-12-08 11:01:08 +0900 |
| Branch: REL_14_STABLE [64ab21f0e] 2021-12-08 11:01:14 +0900 |
| Branch: REL_13_STABLE [9acea52ea] 2021-12-08 11:01:19 +0900 |
| Branch: REL_12_STABLE [5ed74d874] 2021-12-08 11:01:23 +0900 |
| --> |
| <para> |
| Enforce standard locking protocol for TOAST table updates, to prevent |
| problems with <command>REINDEX CONCURRENTLY</command> (Michael Paquier) |
| </para> |
| |
| <para> |
| If applied to a TOAST table or TOAST table's index, <command>REINDEX |
| CONCURRENTLY</command> tended to produce a corrupted index. This |
| happened because sessions updating TOAST entries released |
| their <literal>ROW EXCLUSIVE</literal> locks immediately, rather |
| than holding them until transaction commit as all other updates do. |
| The fix is to make TOAST updates hold the table lock according to the |
| normal rule. Any existing corrupted indexes can be repaired by |
| reindexing again. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Andres Freund <andres@anarazel.de> |
| Branch: master [18b87b201] 2022-01-13 18:13:41 -0800 |
| Branch: REL_14_STABLE [dad1539ae] 2022-01-14 10:56:12 -0800 |
| --> |
| <para> |
| Fix corruption of HOT chains when a RECENTLY_DEAD tuple changes |
| state to fully DEAD during page pruning (Andres Freund) |
| </para> |
| |
| <para> |
| It was possible for <command>VACUUM</command> to remove a |
| recently-dead tuple while leaving behind a redirect item that |
| pointed to it. When the tuple's item slot is later re-used by |
| some new tuple, that tuple would be seen as part of the |
| pre-existing HOT chain, creating a form of index corruption. |
| If this has happened, reindexing the table should repair the |
| damage. However, this is an extremely low-probability scenario, |
| so we do not recommend reindexing just on the chance that it might |
| have happened. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Etsuro Fujita <efujita@postgresql.org> |
| Branch: master [f862d5705] 2022-02-03 15:15:00 +0900 |
| Branch: REL_14_STABLE [7b0cec2fa] 2022-02-03 15:15:01 +0900 |
| Author: Andres Freund <andres@anarazel.de> |
| Branch: master [7c1aead6c] 2022-02-03 10:44:26 -0800 |
| Branch: REL_14_STABLE [2a3958e4d] 2022-02-03 10:44:38 -0800 |
| --> |
| <para> |
| Fix crash in EvalPlanQual rechecks for tables with a mix of local |
| and foreign partitions (Etsuro Fujita) |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Michael Paquier <michael@paquier.xyz> |
| Branch: master [dc084d7c7] 2022-01-29 10:22:42 +0900 |
| Branch: REL_14_STABLE [b30282fcc] 2022-01-29 10:23:17 +0900 |
| --> |
| <para> |
| Fix dangling pointer in <command>COPY TO</command> |
| (Bharath Rupireddy) |
| </para> |
| |
| <para> |
| This oversight could cause an incorrect error message or a crash |
| after an error in <command>COPY</command>. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Tomas Vondra <tomas.vondra@postgresql.org> |
| Branch: master [6d554e3fc] 2022-01-23 03:16:31 +0100 |
| Branch: REL_14_STABLE [a192243c7] 2022-01-23 03:18:02 +0100 |
| Branch: REL_13_STABLE [267ccc38b] 2022-01-23 03:20:32 +0100 |
| --> |
| <para> |
| Avoid null-pointer crash in <command>ALTER STATISTICS</command> |
| when the statistics object is dropped concurrently (Tomas Vondra) |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Alexander Korotkov <akorotkov@postgresql.org> |
| Branch: master [5cc9c8374] 2021-12-13 17:17:33 +0300 |
| Branch: REL_14_STABLE [7615edd1d] 2021-12-13 17:20:07 +0300 |
| --> |
| <para> |
| Correctly handle alignment padding when extracting a range from a |
| multirange (Alexander Korotkov) |
| </para> |
| |
| <para> |
| This error could cause crashes when handling multiranges over |
| variable-length data types. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Tom Lane <tgl@sss.pgh.pa.us> |
| Branch: master [647889667] 2022-01-16 16:39:26 -0500 |
| Branch: REL_14_STABLE [17da9d4c2] 2022-01-16 16:39:26 -0500 |
| --> |
| <para> |
| Fix over-optimistic use of hashing for |
| anonymous <type>RECORD</type> data types (Tom Lane) |
| </para> |
| |
| <para> |
| This prevents some cases of <quote>could not identify a hash |
| function for type record</quote> errors. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: David Rowley <drowley@postgresql.org> |
| Branch: master [f9a74c149] 2022-01-25 21:10:03 +1300 |
| Branch: REL_14_STABLE [357ff6615] 2022-01-25 21:14:27 +1300 |
| Branch: REL_13_STABLE [f8807e774] 2022-01-25 21:15:00 +1300 |
| Branch: REL_12_STABLE [2ccd8fb29] 2022-01-25 21:15:40 +1300 |
| --> |
| <para> |
| Fix incorrect plan creation for parallel single-child Append nodes |
| (David Rowley) |
| </para> |
| |
| <para> |
| In some cases the Append would be simplified away when it should not |
| be, leading to wrong query results (duplicated rows). |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Tom Lane <tgl@sss.pgh.pa.us> |
| Branch: master [4ace45677] 2022-01-01 16:12:03 -0500 |
| Branch: REL_14_STABLE [cabea571d] 2022-01-01 16:12:03 -0500 |
| Branch: REL_13_STABLE [45ae42714] 2022-01-01 16:12:03 -0500 |
| Branch: REL_12_STABLE [f789b7732] 2022-01-01 16:12:03 -0500 |
| Branch: REL_11_STABLE [e3a4c7981] 2022-01-01 16:12:03 -0500 |
| Branch: REL_10_STABLE [70a31a0e3] 2022-01-01 16:12:03 -0500 |
| Branch: master [9a3ddeb51] 2022-01-03 15:42:27 -0500 |
| Branch: REL_14_STABLE [d228af79d] 2022-01-03 15:42:27 -0500 |
| Branch: REL_13_STABLE [20d08b2c6] 2022-01-03 15:42:27 -0500 |
| Branch: REL_12_STABLE [9c4f38908] 2022-01-03 15:42:27 -0500 |
| Branch: REL_11_STABLE [ec3674521] 2022-01-03 15:42:27 -0500 |
| Branch: REL_10_STABLE [7d344f004] 2022-01-03 15:42:27 -0500 |
| --> |
| <para> |
| Fix index-only scan plans for cases where not all index columns can |
| be returned (Tom Lane) |
| </para> |
| |
| <para> |
| If an index has both returnable and non-returnable columns, and one |
| of the non-returnable columns is an expression using a table column |
| that appears in a returnable index column, then a query using that |
| expression could result in an index-only scan plan that attempts to |
| read the non-returnable column, instead of recomputing the |
| expression from the returnable column as intended. The |
| non-returnable column would read as NULL, resulting in wrong query |
| results. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: David Rowley <drowley@postgresql.org> |
| Branch: master [411137a42] 2021-11-24 23:29:14 +1300 |
| Branch: REL_14_STABLE [c2dc7b9e1] 2021-11-24 23:29:56 +1300 |
| --> |
| <para> |
| Fix Memoize plan nodes to handle subplans that use parameters |
| coming from above the Memoize (David Rowley) |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: David Rowley <drowley@postgresql.org> |
| Branch: master [e502150f7] 2021-11-24 10:06:59 +1300 |
| Branch: REL_14_STABLE [6c32c0977] 2021-11-24 10:07:38 +1300 |
| --> |
| <para> |
| Fix Memoize plan nodes to work correctly with non-hashable join |
| operators (David Rowley) |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Tom Lane <tgl@sss.pgh.pa.us> |
| Branch: master [9c356f4b2] 2021-12-16 15:36:02 -0500 |
| Branch: REL_14_STABLE [f9a8bc9f2] 2021-12-16 15:36:02 -0500 |
| Branch: REL_13_STABLE [da0d8a454] 2021-12-16 15:36:02 -0500 |
| Branch: REL_12_STABLE [e1fd61c8c] 2021-12-16 15:36:02 -0500 |
| Branch: REL_11_STABLE [c43d72b24] 2021-12-16 15:36:02 -0500 |
| Branch: REL_10_STABLE [1acf34586] 2021-12-16 15:36:02 -0500 |
| --> |
| <para> |
| Ensure that casting to an unspecified typmod generates a RelabelType |
| node rather than a length-coercion function call (Tom Lane) |
| </para> |
| |
| <para> |
| While the coercion function should do the right thing (nothing), |
| this translation is undesirably inefficient. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Tom Lane <tgl@sss.pgh.pa.us> |
| Branch: master [8e2e0f758] 2022-01-29 11:41:18 -0500 |
| Branch: REL_14_STABLE [c025067f6] 2022-01-29 11:41:18 -0500 |
| Branch: REL_13_STABLE [5ad70564f] 2022-01-29 11:41:12 -0500 |
| --> |
| <para> |
| Fix checking of <type>anycompatible</type>-family data type matches |
| (Tom Lane) |
| </para> |
| |
| <para> |
| In some cases the parser would think that a function or operator |
| with <type>anycompatible</type>-family polymorphic parameters |
| matches a set of arguments that it really shouldn't match. In |
| reported cases, that led to matching more than one operator to a |
| call, leading to ambiguous-operator errors; but a failure later on |
| is also possible. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Alvaro Herrera <alvherre@alvh.no-ip.org> |
| Branch: master [44bd3ed33] 2021-11-26 11:14:27 -0300 |
| Branch: REL_14_STABLE [d24dac954] 2021-11-26 11:14:27 -0300 |
| Branch: REL_13_STABLE [ef41c3fd6] 2021-11-26 11:14:27 -0300 |
| Branch: REL_12_STABLE [9c6ab1ef3] 2021-11-26 11:14:27 -0300 |
| Branch: REL_11_STABLE [2c3fddcbb] 2021-11-26 11:14:27 -0300 |
| Branch: REL_10_STABLE [72cf39d51] 2021-11-26 11:14:27 -0300 |
| --> |
| <para> |
| Fix WAL replay failure when database consistency is reached exactly |
| at a WAL page boundary (Álvaro Herrera) |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Tomas Vondra <tomas.vondra@postgresql.org> |
| Branch: master [f192e1bdf] 2022-01-27 20:13:55 +0100 |
| Branch: REL_14_STABLE [fb2f8e534] 2022-01-27 20:15:37 +0100 |
| Branch: REL_13_STABLE [e90f258ac] 2022-01-27 20:16:39 +0100 |
| Branch: REL_12_STABLE [4b8af2bf8] 2022-01-27 20:17:36 +0100 |
| Branch: REL_11_STABLE [5cb88648e] 2022-01-27 20:18:22 +0100 |
| Branch: REL_10_STABLE [4ef38fbe8] 2022-01-27 20:19:39 +0100 |
| --> |
| <para> |
| Fix startup of a physical replica to tolerate transaction ID |
| wraparound (Abhijit Menon-Sen, Tomas Vondra) |
| </para> |
| |
| <para> |
| If a replica server is started while the set of active transactions |
| on the primary crosses a wraparound boundary (so that there are some |
| newer transactions with smaller XIDs than older ones), the replica |
| would fail with <quote>out-of-order XID insertion in |
| KnownAssignedXids</quote>. The replica would retry, but could never |
| get past that error. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Amit Kapila <akapila@postgresql.org> |
| Branch: master [5e97905a2] 2021-12-09 08:36:59 +0530 |
| Branch: REL_14_STABLE [614b77d65] 2021-12-09 08:49:50 +0530 |
| Branch: REL_13_STABLE [3f06c00cf] 2021-12-09 09:00:35 +0530 |
| --> |
| <para> |
| In logical replication, avoid double transmission of a child table's |
| data (Hou Zhijie) |
| </para> |
| |
| <para> |
| If a publication includes both child and parent tables, and has |
| the <literal>publish_via_partition_root</literal> option set, |
| subscribers uselessly initiated synchronization on both child and |
| parent tables. Ensure that only the parent table is synchronized in |
| such cases. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Tom Lane <tgl@sss.pgh.pa.us> |
| Branch: master [6aa518614] 2022-01-24 15:33:38 -0500 |
| Branch: REL_14_STABLE [1efcc5946] 2022-01-24 15:33:34 -0500 |
| Branch: REL_13_STABLE [d67354d87] 2022-01-24 15:33:34 -0500 |
| Branch: REL_12_STABLE [689f75d6e] 2022-01-24 15:33:34 -0500 |
| Branch: REL_11_STABLE [4ec54498c] 2022-01-24 15:33:34 -0500 |
| Branch: REL_10_STABLE [9af6d4b5a] 2022-01-24 15:33:34 -0500 |
| Branch: master [3c06ec6d1] 2022-01-24 12:09:46 -0500 |
| Branch: REL_14_STABLE [ef9706bbc] 2022-01-24 12:09:46 -0500 |
| Branch: REL_13_STABLE [c94c6612d] 2022-01-24 12:09:46 -0500 |
| Branch: REL_12_STABLE [a8ce5c8d7] 2022-01-24 12:09:46 -0500 |
| Branch: REL_11_STABLE [449a69623] 2022-01-24 12:09:46 -0500 |
| Branch: REL_10_STABLE [daf658982] 2022-01-24 12:09:46 -0500 |
| --> |
| <para> |
| Remove lexical limitations for SQL commands issued on a logical |
| replication connection (Tom Lane) |
| </para> |
| |
| <para> |
| The walsender process would fail for a SQL command containing an |
| unquoted semicolon, or with dollar-quoted literals containing odd |
| numbers of single or double quote marks, or when the SQL command |
| starts with a comment. Moreover, faulty error recovery could lead |
| to unexpected errors in later commands too. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Amit Kapila <akapila@postgresql.org> |
| Branch: master [e464cb7af] 2021-12-08 15:18:56 +0530 |
| Branch: REL_14_STABLE [f2e1730ee] 2021-12-08 15:21:12 +0530 |
| --> |
| <para> |
| Ensure that replication origin timestamp is set while replicating |
| a <command>ROLLBACK PREPARED</command> operation (Masahiko Sawada) |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Michael Paquier <michael@paquier.xyz> |
| Branch: master [237d1f317] 2022-01-21 14:54:04 +0900 |
| Branch: REL_14_STABLE [84db5169d] 2022-01-21 14:54:47 +0900 |
| Branch: REL_13_STABLE [b5f634116] 2022-01-21 14:54:51 +0900 |
| Branch: REL_12_STABLE [1c0452c48] 2022-01-21 14:54:55 +0900 |
| Branch: REL_11_STABLE [0ffe2975c] 2022-01-21 14:54:59 +0900 |
| Branch: REL_10_STABLE [919be95c6] 2022-01-21 14:55:04 +0900 |
| --> |
| <para> |
| Fix possible loss of the commit timestamp for the last |
| subtransaction of a transaction (Alex Kingsborough, Kyotaro Horiguchi) |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Andres Freund <andres@anarazel.de> |
| Branch: master [1fabec7d7] 2022-01-21 11:22:55 -0800 |
| Branch: REL_14_STABLE [2b7dbe4bd] 2022-01-21 11:24:12 -0800 |
| Branch: REL_13_STABLE [fd48e5f5d] 2022-01-21 11:24:12 -0800 |
| Branch: REL_12_STABLE [1c6d055ba] 2022-01-21 11:24:12 -0800 |
| Branch: REL_11_STABLE [2c15b29f7] 2022-01-21 11:24:12 -0800 |
| Branch: REL_10_STABLE [f862cc09f] 2022-01-21 11:24:12 -0800 |
| --> |
| <para> |
| Be sure to <function>fsync</function> |
| the <filename>pg_logical/mappings</filename> subdirectory during |
| checkpoints (Nathan Bossart) |
| </para> |
| |
| <para> |
| On some filesystems this oversight could lead to losing logical |
| rewrite status files after a system crash. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Tomas Vondra <tomas.vondra@postgresql.org> |
| Branch: master [20b9fa308] 2022-01-15 19:06:48 +0100 |
| Branch: REL_14_STABLE [ea212bd95] 2022-01-15 19:05:22 +0100 |
| Branch: REL_13_STABLE [d6817032d] 2022-01-15 19:14:00 +0100 |
| Branch: REL_12_STABLE [9d1bcf5dc] 2022-01-15 19:02:58 +0100 |
| Branch: REL_11_STABLE [491182e52] 2022-01-15 18:32:20 +0100 |
| Branch: REL_10_STABLE [9211c2e38] 2022-01-15 18:30:45 +0100 |
| --> |
| <para> |
| Build extended statistics for partitioned tables (Justin Pryzby) |
| </para> |
| |
| <para> |
| A previous bug fix disabled building of extended statistics for |
| old-style inheritance trees, but it also prevented building them for |
| partitioned tables, which was an unnecessary restriction. |
| This change allows <command>ANALYZE</command> to compute values for |
| statistics objects for partitioned tables. (But note that |
| autovacuum does not process partitioned tables as such, so you must |
| periodically issue manual <command>ANALYZE</command> on the |
| partitioned table if you want to maintain such statistics.) |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Tomas Vondra <tomas.vondra@postgresql.org> |
| Branch: master [36c4bc6e7] 2022-01-15 02:20:54 +0100 |
| Branch: REL_14_STABLE [2cc007fd0] 2022-01-15 02:26:26 +0100 |
| Branch: REL_13_STABLE [acfde7c58] 2022-01-15 02:30:06 +0100 |
| Branch: REL_12_STABLE [76569ad6f] 2022-01-15 03:14:55 +0100 |
| Branch: REL_11_STABLE [b3cac25f4] 2022-01-15 02:40:40 +0100 |
| Branch: REL_10_STABLE [ff0e7c7e8] 2022-01-15 03:05:06 +0100 |
| --> |
| <para> |
| Ignore extended statistics for inheritance trees (Justin Pryzby) |
| </para> |
| |
| <para> |
| Currently, extended statistics values are only computed locally for |
| each table, not for entire inheritance trees. However the values |
| were mistakenly consulted when planning queries across inheritance |
| trees, possibly resulting in worse-than-default estimates. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Tom Lane <tgl@sss.pgh.pa.us> |
| Branch: master [7ead9925f] 2022-01-06 16:46:46 -0500 |
| Branch: REL_14_STABLE [f285d9583] 2022-01-06 16:46:46 -0500 |
| Branch: REL_13_STABLE [86d4bbb56] 2022-01-06 16:46:46 -0500 |
| Branch: REL_12_STABLE [ccc7c3ad8] 2022-01-06 16:46:46 -0500 |
| Branch: REL_11_STABLE [2ce113a4f] 2022-01-06 16:46:46 -0500 |
| Branch: REL_10_STABLE [e5b044c84] 2022-01-06 16:46:46 -0500 |
| --> |
| <para> |
| Disallow altering data type of a partitioned table's columns when |
| the partitioned table's row type is used as a composite type |
| elsewhere (Tom Lane) |
| </para> |
| |
| <para> |
| This restriction has long existed for regular tables, but through an |
| oversight it was not checked for partitioned tables. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Michael Paquier <michael@paquier.xyz> |
| Branch: master [f0d43947a] 2021-11-25 15:04:56 +0900 |
| Branch: REL_14_STABLE [e415916e2] 2021-11-25 15:05:24 +0900 |
| Branch: REL_13_STABLE [37827de43] 2021-11-25 15:05:28 +0900 |
| Branch: REL_12_STABLE [216156fec] 2021-11-25 15:05:31 +0900 |
| Branch: REL_11_STABLE [dffe80e55] 2021-11-25 15:05:34 +0900 |
| Branch: REL_10_STABLE [817c469c2] 2021-11-25 15:05:37 +0900 |
| --> |
| <para> |
| Disallow <literal>ALTER TABLE ... DROP NOT NULL</literal> for a |
| column that is part of a replica identity index (Haiying Tang, Hou |
| Zhijie) |
| </para> |
| |
| <para> |
| The same prohibition already existed for primary key indexes. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Tom Lane <tgl@sss.pgh.pa.us> |
| Branch: master [d8fbbb925] 2022-01-22 13:32:40 -0500 |
| Branch: REL_14_STABLE [3839e29c5] 2022-01-22 13:32:40 -0500 |
| Branch: REL_13_STABLE [31b7b4d26] 2022-01-22 13:32:40 -0500 |
| Branch: REL_12_STABLE [e2d53c876] 2022-01-22 13:32:40 -0500 |
| Branch: REL_11_STABLE [26c841ed1] 2022-01-22 13:32:40 -0500 |
| --> |
| <para> |
| Correctly update cached table state during <command>ALTER TABLE ADD |
| PRIMARY KEY USING INDEX</command> (Hou Zhijie) |
| </para> |
| |
| <para> |
| Concurrent sessions failed to update their opinion of whether the |
| table has a primary key, possibly causing incorrect logical |
| replication behavior. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Amit Kapila <akapila@postgresql.org> |
| Branch: master [354a1f8d2] 2021-11-16 08:10:13 +0530 |
| Branch: REL_14_STABLE [232fd72a5] 2021-11-16 08:34:24 +0530 |
| Branch: REL_13_STABLE [63c3eeddc] 2021-11-16 08:46:12 +0530 |
| Branch: REL_12_STABLE [9816e2d31] 2021-11-16 09:05:51 +0530 |
| Branch: REL_11_STABLE [40fb634b1] 2021-11-16 09:25:04 +0530 |
| Branch: REL_10_STABLE [2c0443c59] 2021-11-16 09:44:00 +0530 |
| --> |
| <para> |
| Correctly update cached table state when switching <literal>REPLICA |
| IDENTITY</literal> index (Tang Haiying, Hou Zhijie) |
| </para> |
| |
| <para> |
| Concurrent sessions failed to update their opinion of which index is |
| the replica identity one, possibly causing incorrect logical |
| replication behavior. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Tom Lane <tgl@sss.pgh.pa.us> |
| Branch: master [f4e7ae2b8] 2021-11-20 14:29:56 -0500 |
| Branch: REL_14_STABLE [6d07cbc50] 2021-11-20 14:29:56 -0500 |
| --> |
| <para> |
| Fix failure of SP-GiST indexes when the indexed column's data type |
| is binary-compatible with the declared input type of the operator |
| class (Tom Lane) |
| </para> |
| |
| <para> |
| Such cases should work, but failed with <quote>compress method must |
| be defined when leaf type is different from input type</quote>. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Amit Kapila <akapila@postgresql.org> |
| Branch: master [0f0cfb494] 2021-11-19 09:04:40 +0530 |
| Branch: REL_14_STABLE [ead49ebc0] 2021-11-19 09:14:09 +0530 |
| Branch: REL_13_STABLE [33b6dd83e] 2021-11-19 09:24:00 +0530 |
| --> |
| <para> |
| Allow parallel vacuuming and concurrent index building to be ignored |
| while computing oldest xmin (Masahiko Sawada) |
| </para> |
| |
| <para> |
| Non-parallelized instances of these operations were already ignored, |
| but the logic did not work for parallelized cases. Holding back the |
| xmin horizon has undesirable effects such as delaying vacuum |
| cleanup. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Peter Geoghegan <pg@bowt.ie> |
| Branch: master [db6736c93] 2022-01-12 15:41:04 -0800 |
| Branch: REL_14_STABLE [41ee68a91] 2022-01-12 15:41:02 -0800 |
| --> |
| <para> |
| Fix memory leak when updating expression indexes (Peter Geoghegan) |
| </para> |
| |
| <para> |
| An <command>UPDATE</command> affecting many rows could consume |
| significant amounts of memory. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Tom Lane <tgl@sss.pgh.pa.us> |
| Branch: master [babe545ca] 2021-12-01 13:44:46 -0500 |
| Branch: REL_14_STABLE [8f4b0200e] 2021-12-01 13:44:47 -0500 |
| Branch: REL_13_STABLE [7413caabe] 2021-12-01 13:44:47 -0500 |
| Branch: REL_12_STABLE [5cf08b4db] 2021-12-01 13:44:47 -0500 |
| Branch: REL_11_STABLE [82d354411] 2021-12-01 13:44:47 -0500 |
| Branch: REL_10_STABLE [fec187dc3] 2021-12-01 13:44:47 -0500 |
| --> |
| <para> |
| Avoid leaking memory during <command>REASSIGN OWNED BY</command> |
| operations that reassign ownership of many objects (Justin Pryzby) |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Michael Paquier <michael@paquier.xyz> |
| Branch: master [6ce16088b] 2022-01-05 10:27:07 +0900 |
| Branch: REL_14_STABLE [5ddfebded] 2022-01-05 10:27:47 +0900 |
| Branch: REL_13_STABLE [3f8062bcf] 2022-01-05 10:27:53 +0900 |
| --> |
| <para> |
| Improve performance of walsenders sending logical changes by |
| avoiding unnecessary cache accesses (Hou Zhijie) |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Magnus Hagander <magnus@hagander.net> |
| Branch: master [2dbb7b9b2] 2022-01-26 09:58:59 +0100 |
| Branch: REL_14_STABLE [4afae689e] 2022-01-26 09:59:14 +0100 |
| Branch: REL_13_STABLE [81596645c] 2022-01-26 09:59:19 +0100 |
| Branch: REL_12_STABLE [aa58f5c53] 2022-01-26 09:59:23 +0100 |
| --> |
| <para> |
| Fix display of <literal>cert</literal> authentication method's |
| options in <structname>pg_hba_file_rules</structname> view (Magnus |
| Hagander) |
| </para> |
| |
| <para> |
| The <literal>cert</literal> authentication method implies |
| <literal>clientcert=verify-full</literal>, but the |
| <structname>pg_hba_file_rules</structname> view incorrectly reported |
| <literal>clientcert=verify-ca</literal>. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Fujii Masao <fujii@postgresql.org> |
| Branch: master [108505d76] 2022-01-28 11:24:42 +0900 |
| Branch: REL_14_STABLE [6e7ee55e7] 2022-01-28 11:25:45 +0900 |
| --> |
| <para> |
| Ensure that the session targeted |
| by <function>pg_log_backend_memory_contexts()</function> sends its |
| results only to the server's log (Fujii Masao) |
| </para> |
| |
| <para> |
| Previously, a sufficiently high setting |
| of <varname>client_min_messages</varname> could result in the log |
| message also being sent to the connected client. Since that client |
| hadn't requested it, that would be surprising (and possibly a wire |
| protocol violation). |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Tom Lane <tgl@sss.pgh.pa.us> |
| Branch: master [43c217512] 2022-01-13 17:49:46 -0500 |
| Branch: REL_14_STABLE [4aee39ddb] 2022-01-13 17:49:26 -0500 |
| Branch: REL_13_STABLE [ca14c4184] 2022-01-13 17:49:26 -0500 |
| Branch: REL_12_STABLE [45a3cefad] 2022-01-13 17:49:26 -0500 |
| Branch: REL_11_STABLE [3a1bfe256] 2022-01-13 17:49:26 -0500 |
| Branch: REL_10_STABLE [3433a1fc7] 2022-01-13 17:49:26 -0500 |
| --> |
| <para> |
| Fix display of whole-row variables appearing |
| in <literal>INSERT ... VALUES</literal> rules (Tom Lane) |
| </para> |
| |
| <para> |
| A whole-row variable would be printed as <quote>var.*</quote>, |
| but that allows it to be expanded to individual columns when |
| the rule is reloaded, resulting in different semantics. |
| Attach an explicit cast to prevent that, as we do elsewhere. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Tom Lane <tgl@sss.pgh.pa.us> |
| Branch: master [a8d8445a7] 2021-11-17 11:31:31 -0500 |
| Branch: REL_14_STABLE [5d5779aea] 2021-11-17 11:31:31 -0500 |
| --> |
| <para> |
| When reverse-listing a SQL-standard function body, display function |
| parameters appropriately within <command>INSERT ... SELECT</command> |
| (Tom Lane) |
| </para> |
| |
| <para> |
| Previously, they'd come out |
| as <literal>$<replaceable>N</replaceable></literal> even when the |
| parameter had a name. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Michael Paquier <michael@paquier.xyz> |
| Branch: master [098c13455] 2021-11-11 15:00:59 +0900 |
| Branch: REL_14_STABLE [b609db715] 2021-11-11 15:01:45 +0900 |
| Branch: REL_13_STABLE [13c8adf90] 2021-11-11 15:01:54 +0900 |
| --> |
| <para> |
| Fix one-byte buffer overrun when applying Unicode string |
| normalization to an empty string (Michael Paquier) |
| </para> |
| |
| <para> |
| The practical impact of this is limited thanks to alignment |
| considerations; but in debug builds, a warning was raised. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Alvaro Herrera <alvherre@alvh.no-ip.org> |
| Branch: master [f66885bec] 2022-01-04 13:01:05 -0300 |
| Branch: REL_14_STABLE [f185f35a8] 2022-01-04 13:01:05 -0300 |
| Branch: REL_13_STABLE [29f9fb8fe] 2022-01-04 13:01:05 -0300 |
| Branch: REL_12_STABLE [6b681cd05] 2022-01-04 13:01:05 -0300 |
| Branch: REL_11_STABLE [28cd57416] 2022-01-04 13:01:05 -0300 |
| Branch: REL_10_STABLE [026a93727] 2022-01-04 13:01:05 -0300 |
| Author: Alvaro Herrera <alvherre@alvh.no-ip.org> |
| Branch: master [67a8cb5cb] 2022-01-04 13:21:23 -0300 |
| Branch: REL_14_STABLE [f9db153c2] 2022-01-04 13:21:23 -0300 |
| Branch: REL_13_STABLE [33fdd9f85] 2022-01-04 13:21:23 -0300 |
| Branch: REL_12_STABLE [397b43948] 2022-01-04 13:21:23 -0300 |
| Branch: REL_11_STABLE [b63851a45] 2022-01-04 13:21:23 -0300 |
| Branch: REL_10_STABLE [4a8282425] 2022-01-04 13:21:23 -0300 |
| Author: Michael Paquier <michael@paquier.xyz> |
| Branch: master [2e577c944] 2021-12-22 15:38:00 +0900 |
| Branch: REL_14_STABLE [8a22a40b2] 2021-12-22 15:38:05 +0900 |
| Author: Michael Paquier <michael@paquier.xyz> |
| Branch: master [ece8c7619] 2021-12-14 10:58:15 +0900 |
| Branch: REL_14_STABLE [4be3e005e] 2021-12-14 10:58:25 +0900 |
| Branch: REL_13_STABLE [3f710fc2b] 2021-12-14 10:58:29 +0900 |
| Branch: REL_12_STABLE [65af1e842] 2021-12-14 10:58:33 +0900 |
| Branch: REL_11_STABLE [8abb6c27e] 2021-12-14 10:58:37 +0900 |
| --> |
| <para> |
| Fix or remove some incorrect assertions (Simon Riggs, Michael |
| Paquier, Alexander Lakhin) |
| </para> |
| |
| <para> |
| These errors should affect only debug builds, not production. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Tom Lane <tgl@sss.pgh.pa.us> |
| Branch: master [1f655fdc3] 2022-01-21 15:36:27 -0500 |
| Branch: REL_14_STABLE [f4ebf0dbe] 2022-01-21 15:36:28 -0500 |
| Branch: REL_13_STABLE [64ebb43df] 2022-01-21 15:36:28 -0500 |
| Branch: REL_12_STABLE [5521d8139] 2022-01-21 15:36:29 -0500 |
| Branch: REL_11_STABLE [37f5dc8b8] 2022-01-21 15:36:29 -0500 |
| Branch: REL_10_STABLE [0c7c94f90] 2022-01-21 15:36:30 -0500 |
| --> |
| <para> |
| Fix race condition that could lead to failure to localize error |
| messages that are reported early in multi-threaded use |
| of <application>libpq</application> |
| or <application>ecpglib</application> (Tom Lane) |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Tom Lane <tgl@sss.pgh.pa.us> |
| Branch: master [f3f467b8f] 2022-01-17 12:52:44 -0500 |
| Branch: REL_14_STABLE [050949877] 2022-01-17 12:52:44 -0500 |
| Branch: REL_13_STABLE [f27af7b88] 2022-01-17 12:52:44 -0500 |
| Branch: REL_12_STABLE [38f099ef9] 2022-01-17 12:52:44 -0500 |
| Branch: REL_11_STABLE [8b107467c] 2022-01-17 12:52:44 -0500 |
| Branch: REL_10_STABLE [9d66c43eb] 2022-01-17 12:52:45 -0500 |
| --> |
| <para> |
| Avoid calling <function>strerror</function> |
| from <application>libpq</application>'s <function>PQcancel</function> |
| function (Tom Lane) |
| </para> |
| |
| <para> |
| <function>PQcancel</function> is supposed to be safe to call from a |
| signal handler, but <function>strerror</function> is not safe. The |
| faulty usage only occurred in the unlikely event of failure to |
| send the cancel message to the server, perhaps explaining the lack |
| of reports. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Tom Lane <tgl@sss.pgh.pa.us> |
| Branch: master [d6eb5a0c2] 2021-11-12 14:55:32 -0500 |
| Branch: REL_14_STABLE [99389cb66] 2021-11-12 14:55:32 -0500 |
| Branch: REL_13_STABLE [843925fad] 2021-11-12 14:55:32 -0500 |
| Branch: REL_12_STABLE [523adcc12] 2021-11-12 14:55:32 -0500 |
| Branch: REL_11_STABLE [b062ca508] 2021-11-12 14:55:32 -0500 |
| Branch: REL_10_STABLE [3bc46e4e9] 2021-11-12 14:55:32 -0500 |
| --> |
| <para> |
| Make <application>psql</application>'s <command>\password</command> |
| command default to setting the password |
| for <literal>CURRENT_USER</literal>, not the connection's original |
| user name (Tom Lane) |
| </para> |
| |
| <para> |
| This agrees with the documented behavior, and avoids probable |
| permissions failure if <command>SET ROLE</command> or <command>SET |
| SESSION AUTHORIZATION</command> has been done since the session began. |
| To prevent confusion, the role name to be acted on is now |
| included in the password prompt. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Tom Lane <tgl@sss.pgh.pa.us> |
| Branch: master [9007d4ea7] 2022-01-17 21:19:02 -0500 |
| Branch: REL_14_STABLE [3886785b4] 2022-01-17 21:18:49 -0500 |
| Branch: REL_13_STABLE [90e0f9fd8] 2022-01-17 21:18:49 -0500 |
| --> |
| <para> |
| Fix <application>psql</application> <literal>\d</literal> command's |
| query for identifying parent triggers (Justin Pryzby) |
| </para> |
| |
| <para> |
| The previous coding failed with <quote>more than one row returned by |
| a subquery used as an expression</quote> if a partition had triggers |
| and there were unrelated statement-level triggers of the same name |
| on some parent partitioned table. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Michael Paquier <michael@paquier.xyz> |
| Branch: master [fe594abf7] 2022-01-08 16:44:45 +0900 |
| Branch: REL_14_STABLE [f5bea8360] 2022-01-08 16:45:14 +0900 |
| --> |
| <para> |
| Make <application>psql</application>'s <literal>\d</literal> command |
| sort a table's extended statistics objects by name not OID (Justin |
| Pryzby) |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Tom Lane <tgl@sss.pgh.pa.us> |
| Branch: master [fe7551744] 2022-01-16 14:59:20 -0500 |
| Branch: REL_14_STABLE [d91d4338e] 2022-01-16 14:59:20 -0500 |
| Branch: REL_13_STABLE [90a847e6d] 2022-01-16 14:59:20 -0500 |
| --> |
| <para> |
| Fix <application>psql</application>'s tab-completion of label values |
| for enum types (Tom Lane) |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Michael Paquier <michael@paquier.xyz> |
| Branch: master [10260c794] 2021-11-25 12:16:21 +0900 |
| Branch: REL_14_STABLE [d2198b459] 2021-11-25 12:17:05 +0900 |
| Branch: master [58651d8dd] 2021-11-30 09:55:50 +0900 |
| Branch: REL_14_STABLE [5550a9c38] 2021-11-30 09:55:56 +0900 |
| --> |
| <para> |
| Fix failures on Windows when using the terminal as data source |
| or destination (Dmitry Koval, Juan José Santamaría Flecha, Michael |
| Paquier) |
| </para> |
| |
| <para> |
| This affects <application>psql</application>'s |
| <command>\copy</command> command, as well |
| as <application>pg_recvlogical</application> with |
| <option>-f -</option>. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Tom Lane <tgl@sss.pgh.pa.us> |
| Branch: master [2131c049d] 2022-01-17 13:30:04 -0500 |
| Branch: REL_14_STABLE [4e8726566] 2022-01-17 13:30:04 -0500 |
| Branch: REL_13_STABLE [d18ec312f] 2022-01-17 13:30:04 -0500 |
| Branch: REL_12_STABLE [6d1a854c1] 2022-01-17 13:30:04 -0500 |
| Branch: REL_11_STABLE [92e6c1c9b] 2022-01-17 13:30:04 -0500 |
| Branch: REL_10_STABLE [62bfa554b] 2022-01-17 13:30:04 -0500 |
| --> |
| <para> |
| In <application>psql</application> and some other client programs, |
| avoid trying to invoke <function>gettext()</function> from a |
| control-C signal handler (Tom Lane) |
| </para> |
| |
| <para> |
| While no reported failures have been traced to this mistake, it seems |
| highly unlikely to be a safe thing to do. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Tom Lane <tgl@sss.pgh.pa.us> |
| Branch: master [282b6d00a] 2021-11-21 14:13:35 -0500 |
| Branch: REL_14_STABLE [3bd7556bb] 2021-11-21 14:13:35 -0500 |
| Branch: REL_13_STABLE [33edf4a3c] 2021-11-21 14:13:35 -0500 |
| Branch: REL_12_STABLE [93295932d] 2021-11-21 14:13:35 -0500 |
| Branch: REL_11_STABLE [c2242d364] 2021-11-21 14:13:35 -0500 |
| Branch: REL_10_STABLE [3ce5d0884] 2021-11-21 14:13:35 -0500 |
| --> |
| <para> |
| Allow canceling the initial password prompt |
| in <application>pg_receivewal</application> |
| and <application>pg_recvlogical</application> (Tom Lane, Nathan |
| Bossart) |
| </para> |
| |
| <para> |
| Previously it was impossible to terminate these programs via control-C |
| while they were prompting for a password. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Tom Lane <tgl@sss.pgh.pa.us> |
| Branch: master [b55f2b692] 2021-11-22 17:16:29 -0500 |
| Branch: REL_14_STABLE [0fdf67476] 2021-11-22 17:16:29 -0500 |
| Branch: REL_13_STABLE [d4f6a36d8] 2021-11-22 17:16:29 -0500 |
| Branch: REL_12_STABLE [69949ea68] 2021-11-22 17:16:29 -0500 |
| Branch: REL_11_STABLE [54619a25d] 2021-11-22 17:16:29 -0500 |
| Branch: REL_10_STABLE [2b36973d9] 2021-11-22 17:16:29 -0500 |
| --> |
| <para> |
| Fix <application>pg_dump</application>'s dump ordering for |
| user-defined casts (Tom Lane) |
| </para> |
| |
| <para> |
| In rare cases, the output script might refer to a user-defined cast |
| before it had been created. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Tom Lane <tgl@sss.pgh.pa.us> |
| Branch: master [0b126c6a4] 2021-11-22 15:25:48 -0500 |
| Branch: REL_14_STABLE [aedc4600d] 2021-11-22 15:25:48 -0500 |
| Branch: REL_13_STABLE [6fc8b145e] 2021-11-22 15:25:48 -0500 |
| Branch: REL_12_STABLE [1e7f588ad] 2021-11-22 15:25:48 -0500 |
| Branch: master [db3a660c6] 2021-11-22 15:57:31 -0500 |
| Branch: REL_14_STABLE [72842a575] 2021-11-22 15:57:43 -0500 |
| Branch: REL_13_STABLE [b542e4596] 2021-11-22 15:57:52 -0500 |
| Branch: REL_12_STABLE [72582531b] 2021-11-22 15:57:59 -0500 |
| Branch: REL_11_STABLE [22d2b6611] 2021-11-22 15:58:05 -0500 |
| Branch: REL_10_STABLE [b599b8f39] 2021-11-22 15:58:12 -0500 |
| --> |
| <para> |
| Fix <application>pg_dump</application>'s <option>--inserts</option> |
| and <option>--column-inserts</option> modes to handle tables |
| containing both generated columns and dropped columns (Tom Lane) |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Tom Lane <tgl@sss.pgh.pa.us> |
| Branch: master [248c3a937] 2021-11-17 14:16:34 -0500 |
| Branch: REL_14_STABLE [53c4a580e] 2021-11-17 14:16:34 -0500 |
| Branch: REL_13_STABLE [c8b5221b5] 2021-11-17 14:16:34 -0500 |
| Branch: REL_12_STABLE [8378dad4c] 2021-11-17 14:16:34 -0500 |
| Branch: REL_11_STABLE [a414eb850] 2021-11-17 14:16:34 -0500 |
| Branch: REL_10_STABLE [13799bb93] 2021-11-17 14:16:34 -0500 |
| Branch: master [3cac2c8ca] 2021-11-17 13:08:25 -0500 |
| Branch: REL_14_STABLE [6b413b41b] 2021-11-17 13:08:25 -0500 |
| Branch: REL_13_STABLE [bbda88c33] 2021-11-17 13:08:25 -0500 |
| Branch: REL_12_STABLE [12bf11889] 2021-11-17 13:08:25 -0500 |
| --> |
| <para> |
| Fix possible mis-reporting of errors |
| in <application>pg_dump</application> |
| and <application>pg_basebackup</application> (Tom Lane) |
| </para> |
| |
| <para> |
| The previous code failed to check for errors from some kernel calls, |
| and could report the wrong errno values in other cases. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Tom Lane <tgl@sss.pgh.pa.us> |
| Branch: master [54b1cb7eb] 2022-01-08 14:54:39 -0500 |
| Branch: REL_14_STABLE [043c1e1a7] 2022-01-08 14:54:39 -0500 |
| Branch: REL_13_STABLE [823d4c7e2] 2022-01-08 14:54:39 -0500 |
| Branch: REL_12_STABLE [3a69d45af] 2022-01-08 14:54:39 -0500 |
| Branch: REL_11_STABLE [38cbdd22d] 2022-01-08 14:54:39 -0500 |
| Branch: REL_10_STABLE [b21986908] 2022-01-08 14:54:39 -0500 |
| --> |
| <para> |
| Fix results of index-only scans |
| on <filename>contrib/btree_gist</filename> indexes |
| on <type>char(<replaceable>N</replaceable>)</type> columns (Tom Lane) |
| </para> |
| |
| <para> |
| Index-only scans returned column values with trailing spaces |
| removed, which is not the expected behavior. That happened because |
| that's how the data was stored in the index. This fix changes the |
| code to store <type>char(<replaceable>N</replaceable>)</type> values |
| with the expected amount of space padding. |
| The behavior of such an index will not change immediately unless |
| you <command>REINDEX</command> it; otherwise space-stripped values |
| will be gradually replaced over time during updates. Queries that |
| do not use index-only scan plans will be unaffected in any case. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Etsuro Fujita <efujita@postgresql.org> |
| Branch: master [9e283fc85] 2022-01-27 16:15:00 +0900 |
| Branch: REL_14_STABLE [d1cca9441] 2022-01-27 16:15:02 +0900 |
| Author: Etsuro Fujita <efujita@postgresql.org> |
| Branch: master [6c07f9ebc] 2022-01-21 17:45:00 +0900 |
| Branch: REL_14_STABLE [700e8fe6d] 2022-01-21 17:45:02 +0900 |
| --> |
| <para> |
| Fix edge cases in <filename>postgres_fdw</filename>'s handling of |
| asynchronous queries (Etsuro Fujita) |
| </para> |
| |
| <para> |
| These errors could lead to crashes or incorrect results when |
| attempting to parallelize scans of foreign tables. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Tom Lane <tgl@sss.pgh.pa.us> |
| Branch: master [bd233bdd8] 2022-01-25 18:52:44 -0500 |
| Branch: REL_14_STABLE [803f0b173] 2022-02-01 19:03:41 -0500 |
| Branch: REL_13_STABLE [4d7d196ff] 2022-02-01 19:03:41 -0500 |
| Branch: REL_12_STABLE [aa2215d6b] 2022-02-01 19:03:41 -0500 |
| Branch: REL_11_STABLE [e41176bd6] 2022-02-01 19:03:41 -0500 |
| Branch: REL_10_STABLE [a72c43012] 2022-02-01 19:03:41 -0500 |
| --> |
| <para> |
| Change <application>configure</application> to use |
| Python's <application>sysconfig</application> module, rather than |
| the deprecated <application>distutils</application> module, to |
| determine how to build PL/Python (Peter Eisentraut, Tom Lane, Andres |
| Freund) |
| </para> |
| |
| <para> |
| With Python 3.10, this |
| avoids <application>configure</application>-time warnings |
| about <application>distutils</application> being deprecated and |
| scheduled for removal in Python 3.12. Presumably, once 3.12 is |
| out, <literal>configure --with-python</literal> would fail |
| altogether. This future-proofing does come at a |
| cost: <application>sysconfig</application> did not exist before |
| Python 2.7, nor before 3.2 in the Python 3 branch, so it is no |
| longer possible to build PL/Python against long-dead Python |
| versions. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Tom Lane <tgl@sss.pgh.pa.us> |
| Branch: master [b63710164] 2021-11-30 17:18:04 -0500 |
| Branch: REL_14_STABLE [175edafd1] 2021-11-30 17:18:04 -0500 |
| --> |
| <para> |
| Re-allow cross-compilation |
| without <application>OpenSSL</application> (Tom Lane) |
| </para> |
| |
| <para> |
| <application>configure</application> should assume |
| that <filename>/dev/urandom</filename> will be available on the |
| target system, but it failed instead. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Andres Freund <andres@anarazel.de> |
| Branch: master [c89f40974] 2022-01-30 16:42:14 -0800 |
| Branch: REL_14_STABLE [8484e3812] 2022-01-30 16:42:42 -0800 |
| Branch: REL_13_STABLE [0dc0fe7b6] 2022-01-30 16:42:45 -0800 |
| Branch: REL_12_STABLE [f173738d5] 2022-01-30 16:42:47 -0800 |
| Branch: REL_11_STABLE [ad95a639a] 2022-01-30 16:42:49 -0800 |
| Branch: REL_10_STABLE [2557a03f8] 2022-01-30 16:43:07 -0800 |
| --> |
| <para> |
| Fix PL/Perl compile failure on Windows with Perl 5.28 and later |
| (Victor Wagner) |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Peter Eisentraut <peter@eisentraut.org> |
| Branch: master [99e4d24a9] 2021-11-25 14:19:22 +0100 |
| Branch: REL_14_STABLE [1cc13b83e] 2021-11-25 14:30:12 +0100 |
| Branch: REL_13_STABLE [04875ae92] 2021-11-25 14:30:46 +0100 |
| Branch: REL_12_STABLE [0d335cbd5] 2021-11-25 14:31:01 +0100 |
| Branch: REL_11_STABLE [a83b1bab0] 2021-11-25 14:32:26 +0100 |
| Branch: REL_10_STABLE [4339e10f0] 2021-11-25 14:32:43 +0100 |
| --> |
| <para> |
| Fix PL/Python compile failure with Python 3.11 and later (Peter |
| Eisentraut) |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Michael Paquier <michael@paquier.xyz> |
| Branch: master [b2265d305] 2021-11-24 13:03:23 +0900 |
| Branch: REL_14_STABLE [0e681fa45] 2021-11-24 13:03:55 +0900 |
| Branch: REL_13_STABLE [baef657d3] 2021-11-24 13:03:59 +0900 |
| Branch: REL_12_STABLE [420d5e40b] 2021-11-24 13:04:03 +0900 |
| Branch: REL_11_STABLE [1061e41ff] 2021-11-24 13:04:07 +0900 |
| Branch: REL_10_STABLE [82881a9b9] 2021-11-24 13:04:12 +0900 |
| --> |
| <para> |
| Add support for building with Visual Studio 2022 (Hans Buschmann) |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Andrew Dunstan <andrew@dunslane.net> |
| Branch: master [c3879a7b4] 2022-01-07 16:07:45 -0500 |
| Branch: REL_14_STABLE [a7772e874] 2022-01-07 16:14:04 -0500 |
| Branch: REL_13_STABLE [f3ded9c46] 2022-01-07 16:14:16 -0500 |
| Branch: REL_12_STABLE [a4cde9153] 2022-01-07 16:14:23 -0500 |
| Branch: REL_11_STABLE [c7fa0f55d] 2022-01-07 16:14:32 -0500 |
| Branch: REL_10_STABLE [d897361c7] 2022-01-07 16:14:40 -0500 |
| Branch: master [f80900be0] 2022-01-20 10:13:18 -0500 |
| Branch: REL_14_STABLE [156a846d9] 2022-01-20 10:20:40 -0500 |
| Branch: REL_13_STABLE [31680730e] 2022-01-20 10:20:51 -0500 |
| Branch: REL_12_STABLE [22d8c2570] 2022-01-20 10:21:02 -0500 |
| Branch: REL_11_STABLE [0a79feeca] 2022-01-20 10:21:12 -0500 |
| Branch: REL_10_STABLE [a5bd14d93] 2022-01-20 10:21:28 -0500 |
| --> |
| <para> |
| Allow the <filename>.bat</filename> wrapper scripts in our MSVC |
| build system to be called without first changing into their |
| directory (Anton Voloshin, Andrew Dunstan) |
| </para> |
| </listitem> |
| |
| </itemizedlist> |
| |
| </sect2> |
| </sect1> |
| |
| <sect1 id="release-14-1"> |
| <title>Release 14.1</title> |
| |
| <formalpara> |
| <title>Release date:</title> |
| <para>2021-11-11</para> |
| </formalpara> |
| |
| <para> |
| This release contains a variety of fixes from 14.0. |
| For information about new features in major release 14, see |
| <xref linkend="release-14"/>. |
| </para> |
| |
| <sect2> |
| <title>Migration to Version 14.1</title> |
| |
| <para> |
| A dump/restore is not required for those running 14.X. |
| </para> |
| |
| <para> |
| However, note that installations using physical replication should |
| update standby servers before the primary server, as explained in |
| the third changelog entry below. |
| </para> |
| |
| <para> |
| Also, several bugs have been found that may have resulted in corrupted |
| indexes, as explained in the next several changelog entries. If any |
| of those cases apply to you, it's recommended to reindex |
| possibly-affected indexes after updating. |
| </para> |
| </sect2> |
| |
| <sect2> |
| <title>Changes</title> |
| |
| <itemizedlist> |
| |
| <listitem> |
| <!-- |
| Author: Tom Lane <tgl@sss.pgh.pa.us> |
| Branch: master [28e241255] 2021-11-08 11:01:43 -0500 |
| Branch: REL_14_STABLE [9d5a76b8d] 2021-11-08 11:01:43 -0500 |
| Branch: REL_13_STABLE [e92ed93e8] 2021-11-08 11:01:43 -0500 |
| Branch: REL_12_STABLE [d1bd26740] 2021-11-08 11:01:43 -0500 |
| Branch: REL_11_STABLE [9394fb828] 2021-11-08 11:01:43 -0500 |
| Branch: REL_10_STABLE [9ae0f1112] 2021-11-08 11:01:43 -0500 |
| Branch: REL9_6_STABLE [046c2c846] 2021-11-08 11:01:43 -0500 |
| --> |
| <para> |
| Make the server reject extraneous data after an SSL or GSS |
| encryption handshake (Tom Lane) |
| </para> |
| |
| <para> |
| A man-in-the-middle with the ability to inject data into the TCP |
| connection could stuff some cleartext data into the start of a |
| supposedly encryption-protected database session. |
| This could be abused to send faked SQL commands to the server, |
| although that would only work if the server did not demand any |
| authentication data. (However, a server relying on SSL certificate |
| authentication might well not do so.) |
| </para> |
| |
| <para> |
| The <productname>PostgreSQL</productname> Project thanks |
| Jacob Champion for reporting this problem. |
| (CVE-2021-23214) |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Tom Lane <tgl@sss.pgh.pa.us> |
| Branch: master [160c02588] 2021-11-08 11:14:56 -0500 |
| Branch: REL_14_STABLE [30547d791] 2021-11-08 11:14:56 -0500 |
| Branch: REL_13_STABLE [844b31692] 2021-11-08 11:14:56 -0500 |
| Branch: REL_12_STABLE [36bb95ef2] 2021-11-08 11:14:56 -0500 |
| Branch: REL_11_STABLE [a021a1d2a] 2021-11-08 11:14:56 -0500 |
| Branch: REL_10_STABLE [e65d9c8cd] 2021-11-08 11:14:56 -0500 |
| Branch: REL9_6_STABLE [d83cdfdca] 2021-11-08 11:14:57 -0500 |
| --> |
| <para> |
| Make <application>libpq</application> reject extraneous data after |
| an SSL or GSS encryption handshake (Tom Lane) |
| </para> |
| |
| <para> |
| A man-in-the-middle with the ability to inject data into the TCP |
| connection could stuff some cleartext data into the start of a |
| supposedly encryption-protected database session. |
| This could probably be abused to inject faked responses to the |
| client's first few queries, although other details of libpq's |
| behavior make that harder than it sounds. A different line of |
| attack is to exfiltrate the client's password, or other sensitive |
| data that might be sent early in the session. That has been shown |
| to be possible with a server vulnerable to CVE-2021-23214. |
| </para> |
| |
| <para> |
| The <productname>PostgreSQL</productname> Project thanks |
| Jacob Champion for reporting this problem. |
| (CVE-2021-23222) |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Alvaro Herrera <alvherre@alvh.no-ip.org> |
| Branch: master [ff9f111bc] 2021-09-29 11:21:51 -0300 |
| Branch: REL_14_STABLE [64a8687a6] 2021-09-29 11:41:01 -0300 |
| Branch: REL_13_STABLE [1d97d3d08] 2021-09-29 11:21:51 -0300 |
| Branch: REL_12_STABLE [1df0a914d] 2021-09-29 11:21:51 -0300 |
| Branch: REL_11_STABLE [cfedb279a] 2021-09-29 11:21:51 -0300 |
| Branch: REL_10_STABLE [d9fe2cc7d] 2021-09-29 11:21:51 -0300 |
| Branch: REL9_6_STABLE [148c6ee3b] 2021-09-29 11:21:51 -0300 |
| Branch: master [d03bca4d7] 2021-09-30 10:01:03 -0300 |
| Branch: REL_14_STABLE [e3731bac5] 2021-09-30 10:01:03 -0300 |
| Branch: master [d186d233d] 2021-10-01 18:03:11 -0300 |
| Branch: REL_14_STABLE [0ce67bce0] 2021-10-01 18:03:11 -0300 |
| Branch: master [010e52337] 2021-10-13 18:49:27 -0300 |
| Branch: REL_14_STABLE [79c7fe1af] 2021-10-13 18:49:27 -0300 |
| Branch: REL_13_STABLE [2cdf97fd1] 2021-10-13 18:49:27 -0300 |
| Branch: REL_12_STABLE [4b7abbe48] 2021-10-13 18:49:27 -0300 |
| Branch: REL_11_STABLE [6287b8e19] 2021-10-13 18:49:27 -0300 |
| Branch: REL_10_STABLE [41cce2326] 2021-10-13 18:49:27 -0300 |
| Branch: REL9_6_STABLE [5ec87619b] 2021-10-13 18:49:27 -0300 |
| Branch: REL_14_STABLE [494ec0037] 2021-11-01 13:07:23 -0300 |
| Branch: REL_13_STABLE [17227825c] 2021-11-01 13:07:23 -0300 |
| Branch: REL_12_STABLE [da782bc93] 2021-11-01 13:07:23 -0300 |
| Branch: REL_11_STABLE [5ef210047] 2021-11-01 13:07:23 -0300 |
| Branch: REL_10_STABLE [656312c2a] 2021-11-01 13:07:23 -0300 |
| Branch: REL9_6_STABLE [99197701e] 2021-11-01 13:07:23 -0300 |
| --> |
| <para> |
| Fix physical replication for cases where the primary crashes |
| after shipping a WAL segment that ends with a partial WAL record |
| (Álvaro Herrera) |
| </para> |
| |
| <para> |
| If the primary did not survive long enough to finish writing the |
| rest of the incomplete WAL record, then the previous crash-recovery |
| logic had it back up and overwrite WAL starting from the beginning |
| of the incomplete WAL record. This is problematic since standby |
| servers may already have copies of that WAL segment. They will then |
| see an inconsistent next segment, and will not be able to recover |
| without manual intervention. To fix, do not back up over a WAL |
| segment boundary when restarting after a crash. Instead write a new |
| type of WAL record at the start of the next WAL segment, informing |
| readers that the incomplete WAL record will never be finished and |
| must be disregarded. |
| </para> |
| |
| <para> |
| When applying this update, it's best to update standby servers |
| before the primary, so that they will be ready to handle this new |
| WAL record type if the primary happens to crash. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Peter Geoghegan <pg@bowt.ie> |
| Branch: master [9bacec15b] 2021-11-02 12:06:17 -0700 |
| Branch: REL_14_STABLE [61a86ed55] 2021-11-02 12:06:16 -0700 |
| --> |
| <para> |
| Ensure that parallel <command>VACUUM</command> doesn't miss any |
| indexes (Peter Geoghegan, Masahiko Sawada) |
| </para> |
| |
| <para> |
| A parallel <command>VACUUM</command> would fail to process indexes |
| that are below the <varname>min_parallel_index_scan_size</varname> |
| cutoff, if the table also has at least two indexes that are above |
| that size. This could result in those indexes becoming corrupt, |
| since they'd still contain references to any heap entries removed by |
| the <command>VACUUM</command>; subsequent queries using such indexes |
| would be likely to return rows they shouldn't. |
| This problem does not affect autovacuum, since it doesn't use |
| parallel vacuuming. However, it is advisable to reindex any |
| manually-vacuumed tables that have the right mix of index sizes. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Noah Misch <noah@leadboat.com> |
| Branch: master [3cd9c3b92] 2021-10-23 18:36:38 -0700 |
| Branch: REL_14_STABLE [a5b9a0000] 2021-10-23 18:36:42 -0700 |
| Branch: REL_13_STABLE [a9d0a5409] 2021-10-23 18:36:42 -0700 |
| Branch: REL_12_STABLE [fe5d44a1d] 2021-10-23 18:36:42 -0700 |
| Branch: REL_11_STABLE [df6158139] 2021-10-23 18:36:43 -0700 |
| Branch: REL_10_STABLE [560124a37] 2021-10-23 18:36:43 -0700 |
| Branch: REL9_6_STABLE [518493243] 2021-10-23 18:36:43 -0700 |
| --> |
| <para> |
| Fix <command>CREATE INDEX CONCURRENTLY</command> to wait for |
| the latest prepared transactions (Andrey Borodin) |
| </para> |
| |
| <para> |
| Rows inserted by just-prepared transactions might be omitted from |
| the new index, causing queries relying on the index to miss such |
| rows. The previous fix for this type of problem failed to account |
| for <command>PREPARE TRANSACTION</command> commands that were still |
| in progress when <command>CREATE INDEX CONCURRENTLY</command> |
| checked for them. As before, in installations that have enabled |
| prepared transactions (<varname>max_prepared_transactions</varname> |
| > 0), it's recommended to reindex any concurrently-built indexes |
| in case this problem occurred when they were built. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Noah Misch <noah@leadboat.com> |
| Branch: master [fdd965d07] 2021-10-23 18:36:38 -0700 |
| Branch: REL_14_STABLE [dde966efb] 2021-10-23 18:36:42 -0700 |
| Branch: REL_13_STABLE [2e33b4359] 2021-10-23 18:36:42 -0700 |
| Branch: REL_12_STABLE [0869e53d3] 2021-10-23 18:36:42 -0700 |
| Branch: REL_11_STABLE [5141e471b] 2021-10-23 18:36:43 -0700 |
| Branch: REL_10_STABLE [db86746fd] 2021-10-23 18:36:43 -0700 |
| Branch: REL9_6_STABLE [e428699cb] 2021-10-23 18:36:43 -0700 |
| --> |
| <para> |
| Avoid race condition that can cause backends to fail to add entries |
| for new rows to an index being built concurrently (Noah Misch, |
| Andrey Borodin) |
| </para> |
| |
| <para> |
| While it's apparently rare in the field, this case could potentially |
| affect any index built or reindexed with |
| the <literal>CONCURRENTLY</literal> option. It is recommended to |
| reindex any such indexes to make sure they are correct. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Michael Paquier <michael@paquier.xyz> |
| Branch: master [add5cf28d] 2021-11-01 11:38:23 +0900 |
| Branch: REL_14_STABLE [f255de9a4] 2021-11-01 11:40:22 +0900 |
| Branch: REL_13_STABLE [77f7909a4] 2021-11-01 11:40:29 +0900 |
| --> |
| <para> |
| Fix <command>REINDEX CONCURRENTLY</command> to preserve operator |
| class parameters that were attached to the target index |
| (Michael Paquier) |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Michael Paquier <michael@paquier.xyz> |
| Branch: master [98ec35b0b] 2021-10-21 10:39:01 +0900 |
| Branch: REL_14_STABLE [5040c9641] 2021-10-21 10:39:07 +0900 |
| --> |
| <para> |
| Fix incorrect creation of shared dependencies when cloning a |
| database that contains non-builtin objects (Aleksander Alekseev) |
| </para> |
| |
| <para> |
| The effects of this error are probably limited in practice. In |
| principle, it could allow a role to be dropped while it still owns |
| objects; but most installations would never want to drop a role |
| that had been used for objects they'd added |
| to <literal>template1</literal>. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Alvaro Herrera <alvherre@alvh.no-ip.org> |
| Branch: master [d6f1e16c8] 2021-10-18 19:08:25 -0300 |
| Branch: REL_14_STABLE [72d064217] 2021-10-18 19:08:25 -0300 |
| Branch: REL_13_STABLE [fe35528a5] 2021-10-18 19:08:25 -0300 |
| Branch: REL_12_STABLE [8b26be8a3] 2021-10-18 19:08:25 -0300 |
| Branch: REL_11_STABLE [b703b7d31] 2021-10-18 19:08:25 -0300 |
| Branch: REL_10_STABLE [d36bdc4e9] 2021-10-18 19:08:25 -0300 |
| --> |
| <para> |
| Ensure that the relation cache is invalidated for a table being |
| attached to or detached from a partitioned table (Amit Langote, |
| Álvaro Herrera) |
| </para> |
| |
| <para> |
| This oversight could allow misbehavior of subsequent inserts/updates |
| addressed directly to the partition, but only in currently-existing |
| sessions. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Michael Paquier <michael@paquier.xyz> |
| Branch: master [5b0e7fe1d] 2021-10-13 16:38:07 +0900 |
| Branch: REL_14_STABLE [922e15c47] 2021-10-13 16:38:15 +0900 |
| --> |
| <para> |
| Fix corruption of parse tree while creating a range type (Alex |
| Kozhemyakin, Sergey Shinderuk) |
| </para> |
| |
| <para> |
| <command>CREATE TYPE</command> incorrectly freed an element of the |
| parse tree, which could cause problems for a later event trigger, or |
| if the <command>CREATE TYPE</command> command was stored in the plan |
| cache and used again later. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Tom Lane <tgl@sss.pgh.pa.us> |
| Branch: master [3e310d837] 2021-10-19 13:54:45 -0400 |
| Branch: REL_14_STABLE [04dae19f4] 2021-10-19 13:54:45 -0400 |
| Branch: REL_13_STABLE [30e61a8cd] 2021-10-19 13:54:46 -0400 |
| Branch: REL_12_STABLE [ae7b1dd59] 2021-10-19 13:54:46 -0400 |
| Branch: REL_11_STABLE [0d08c279b] 2021-10-19 13:54:46 -0400 |
| --> |
| <para> |
| Fix updates of element fields in arrays of domain over composite |
| (Tom Lane) |
| </para> |
| |
| <para> |
| A command such as <literal>UPDATE tab SET fld[1].subfld = |
| val</literal> failed if the array's elements were domains rather |
| than plain composites. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Alvaro Herrera <alvherre@alvh.no-ip.org> |
| Branch: master [c6bc655ee] 2021-10-01 18:29:18 -0300 |
| Branch: REL_14_STABLE [20047609d] 2021-10-01 18:29:18 -0300 |
| Branch: REL_13_STABLE [170206e45] 2021-10-01 18:29:18 -0300 |
| --> |
| <para> |
| Disallow the combination of <literal>FETCH FIRST WITH TIES</literal> |
| and <literal>FOR UPDATE SKIP LOCKED</literal> (David Christensen) |
| </para> |
| |
| <para> |
| <literal>FETCH FIRST WITH TIES</literal> necessarily fetches one |
| more row than requested, since it cannot stop until it finds a row |
| that is not a tie. In our current implementation, |
| if <literal>FOR UPDATE</literal> is used then that row will also get |
| locked even though it is not returned. That results in undesirable |
| behavior if the <literal>SKIP LOCKED</literal> option is specified. |
| It's difficult to change this without introducing a different set of |
| undesirable behaviors, so for now, forbid the combination. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Michael Paquier <michael@paquier.xyz> |
| Branch: master [fdd885714] 2021-10-19 11:03:52 +0900 |
| Branch: REL_14_STABLE [b1b797ec7] 2021-10-19 11:04:00 +0900 |
| Branch: REL_13_STABLE [85dc4292a] 2021-10-19 11:04:04 +0900 |
| --> |
| <para> |
| Disallow <literal>ALTER INDEX index ALTER COLUMN col SET |
| (options)</literal> (Nathan Bossart, Michael Paquier) |
| </para> |
| |
| <para> |
| While the parser accepted this, it's undocumented and doesn't |
| actually work. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Dean Rasheed <dean.a.rasheed@gmail.com> |
| Branch: master [e54a758d2] 2021-10-06 13:16:51 +0100 |
| Branch: REL_14_STABLE [8e26b868d] 2021-10-06 13:19:25 +0100 |
| Branch: REL_13_STABLE [9ab94ccb1] 2021-10-06 13:20:23 +0100 |
| Branch: REL_12_STABLE [676218034] 2021-10-06 13:21:27 +0100 |
| Branch: REL_11_STABLE [b2a0f1673] 2021-10-06 13:22:33 +0100 |
| Branch: REL_10_STABLE [4853baaac] 2021-10-06 13:23:13 +0100 |
| Branch: REL9_6_STABLE [0de8f9bc8] 2021-10-06 13:24:22 +0100 |
| --> |
| <para> |
| Fix corner-case loss of precision in |
| numeric <function>power()</function> (Dean Rasheed) |
| </para> |
| |
| <para> |
| The result could be inaccurate when the first argument is very close |
| to 1. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: David Rowley <drowley@postgresql.org> |
| Branch: master [39a310567] 2021-11-08 14:40:33 +1300 |
| Branch: REL_14_STABLE [1f194ed6c] 2021-11-08 14:41:13 +1300 |
| --> |
| <para> |
| Avoid choosing the wrong hash equality operator for Memoize plans |
| (David Rowley) |
| </para> |
| |
| <para> |
| This error could result in crashes or incorrect query results. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Tom Lane <tgl@sss.pgh.pa.us> |
| Branch: master [4d5f651f1] 2021-10-14 12:43:55 -0400 |
| Branch: REL_14_STABLE [fd059ac2e] 2021-10-14 12:43:43 -0400 |
| Branch: REL_13_STABLE [fdd6a4d8d] 2021-10-14 12:43:43 -0400 |
| --> |
| <para> |
| Fix planner error with pulling up subquery expressions into function |
| rangetable entries (Tom Lane) |
| </para> |
| |
| <para> |
| If a function in <literal>FROM</literal> laterally references the |
| output of some sub-<literal>SELECT</literal> earlier in |
| the <literal>FROM</literal> clause, and we are able to flatten that |
| sub-<literal>SELECT</literal> into the outer query, the |
| expression(s) copied into the function expression were not fully |
| processed. This could lead to crashes at execution. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Tom Lane <tgl@sss.pgh.pa.us> |
| Branch: master [8c1144ba7] 2021-10-01 14:59:35 -0400 |
| Branch: REL_14_STABLE [a54509bfd] 2021-10-01 14:59:35 -0400 |
| Branch: REL_13_STABLE [7adbe186f] 2021-10-01 14:59:35 -0400 |
| Branch: REL_12_STABLE [334fb8c3d] 2021-10-01 14:59:35 -0400 |
| Branch: REL_11_STABLE [5863d348a] 2021-10-01 14:59:35 -0400 |
| Branch: REL_10_STABLE [f951ea3a2] 2021-10-01 14:59:35 -0400 |
| --> |
| <para> |
| Avoid using MCV-only statistics to estimate the range of a column |
| (Tom Lane) |
| </para> |
| |
| <para> |
| There are corner cases in which <command>ANALYZE</command> will |
| build a most-common-values (MCV) list but not a histogram, even |
| though the MCV list does not account for all the observed values. |
| In such cases, keep the planner from using the MCV list alone to |
| estimate the range of column values. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Tom Lane <tgl@sss.pgh.pa.us> |
| Branch: master [7b5d4c29e] 2021-10-01 11:10:12 -0400 |
| Branch: REL_14_STABLE [e6adaa179] 2021-10-01 11:10:12 -0400 |
| Branch: REL_13_STABLE [04ef2021e] 2021-10-01 11:10:12 -0400 |
| Branch: REL_12_STABLE [cded2c460] 2021-10-01 11:10:12 -0400 |
| Branch: REL_11_STABLE [5abbda985] 2021-10-01 11:10:12 -0400 |
| --> |
| <para> |
| Fix restoration of a Portal's snapshot inside a subtransaction |
| (Bertrand Drouvot) |
| </para> |
| |
| <para> |
| If a procedure commits or rolls back a transaction, and then its |
| next significant action is inside a new subtransaction, snapshot |
| management went wrong, leading to a dangling pointer and probable |
| crash. A typical example in PL/pgSQL is a <literal>COMMIT</literal> |
| immediately followed by a <literal>BEGIN ... EXCEPTION</literal> |
| block that performs a query. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Michael Paquier <michael@paquier.xyz> |
| Branch: master [409f9ca44] 2021-10-18 11:55:42 +0900 |
| Branch: REL_14_STABLE [5b353aaff] 2021-10-18 11:56:48 +0900 |
| Branch: REL_13_STABLE [8f4fe8d7f] 2021-10-18 11:56:52 +0900 |
| Branch: REL_12_STABLE [a207b8521] 2021-10-18 11:56:54 +0900 |
| Branch: REL_11_STABLE [506aa1f71] 2021-10-18 11:56:57 +0900 |
| Branch: REL_10_STABLE [d1a6a08df] 2021-10-18 11:57:02 +0900 |
| Branch: REL9_6_STABLE [f49bf8263] 2021-10-18 11:57:07 +0900 |
| --> |
| <para> |
| Clean up correctly if a transaction fails after exporting its |
| snapshot (Dilip Kumar) |
| </para> |
| |
| <para> |
| This oversight would only cause a problem if the same session |
| attempted to export a snapshot again. The most likely scenario for |
| that is creation of a replication slot (followed by rollback) |
| and then creation of another replication slot. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Alexander Korotkov <akorotkov@postgresql.org> |
| Branch: master [05e6e78c1] 2021-11-06 19:13:58 +0300 |
| Branch: REL_14_STABLE [b0f6bd48f] 2021-11-06 19:13:53 +0300 |
| Branch: REL_13_STABLE [e1fee28a0] 2021-11-06 18:34:19 +0300 |
| Branch: REL_12_STABLE [8f779a1a3] 2021-11-06 18:34:21 +0300 |
| Branch: REL_11_STABLE [691c0df73] 2021-11-06 18:34:23 +0300 |
| Branch: REL_10_STABLE [774d00573] 2021-11-06 18:34:26 +0300 |
| Branch: REL9_6_STABLE [7381b79ad] 2021-11-06 18:34:31 +0300 |
| --> |
| <para> |
| Prevent wraparound of overflowed-subtransaction tracking on standby |
| servers (Kyotaro Horiguchi, Alexander Korotkov) |
| </para> |
| |
| <para> |
| This oversight could cause significant performance degradation |
| (manifesting as excessive SubtransSLRU traffic) on standby servers. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Michael Paquier <michael@paquier.xyz> |
| Branch: master [8a4237908] 2021-10-04 14:05:20 +0900 |
| Branch: REL_14_STABLE [828f7f000] 2021-10-04 14:05:48 +0900 |
| Branch: REL_13_STABLE [194e535a0] 2021-10-04 14:05:52 +0900 |
| Branch: REL_12_STABLE [3c3f118d5] 2021-10-04 14:05:55 +0900 |
| Branch: REL_11_STABLE [0a561d4d0] 2021-10-04 14:05:59 +0900 |
| Branch: REL_10_STABLE [8a6a1fe07] 2021-10-04 14:06:03 +0900 |
| Branch: REL9_6_STABLE [e2b2a9e1c] 2021-10-04 14:06:09 +0900 |
| --> |
| <para> |
| Ensure that prepared transactions are properly accounted for during |
| promotion of a standby server (Michael Paquier, Andres Freund) |
| </para> |
| |
| <para> |
| There was a narrow window where a prepared transaction could be |
| omitted from a snapshot taken by a concurrently-running session. |
| If that session then used the snapshot to perform data updates, |
| erroneous results or data corruption could occur. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Tom Lane <tgl@sss.pgh.pa.us> |
| Branch: master [39ae0ef85] 2021-10-11 11:56:52 -0400 |
| Branch: REL_14_STABLE [2c25db32e] 2021-10-11 11:56:52 -0400 |
| --> |
| <para> |
| Fix <quote>could not find RecursiveUnion</quote> error |
| when <command>EXPLAIN</command> tries to print a filter condition |
| attached to a WorkTableScan node (Tom Lane) |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Alvaro Herrera <alvherre@alvh.no-ip.org> |
| Branch: master [c2c618ff1] 2021-10-19 19:08:45 -0300 |
| Branch: REL_14_STABLE [3ce3fb2f7] 2021-10-19 19:08:45 -0300 |
| Branch: REL_13_STABLE [842fe6123] 2021-10-19 19:08:45 -0300 |
| Branch: REL_12_STABLE [6c8d1c197] 2021-10-19 19:08:45 -0300 |
| Branch: master [cd124d205] 2021-10-20 13:05:42 -0300 |
| Branch: REL_14_STABLE [718278855] 2021-10-20 13:05:42 -0300 |
| Branch: REL_13_STABLE [a73a3671d] 2021-10-20 13:05:42 -0300 |
| Branch: REL_12_STABLE [3c8c49945] 2021-10-20 13:05:42 -0300 |
| --> |
| <para> |
| Ensure that the correct lock level is used when renaming a table |
| (Nathan Bossart, Álvaro Herrera) |
| </para> |
| |
| <para> |
| For historical reasons, <command>ALTER INDEX ... RENAME</command> |
| can be applied to any sort of relation. The lock level required to |
| rename an index is lower than that required to rename a table or |
| other kind of relation, but the code got this wrong and would use |
| the weaker lock level whenever the command is spelled <command>ALTER |
| INDEX</command>. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Alvaro Herrera <alvherre@alvh.no-ip.org> |
| Branch: master [d74b54b3d] 2021-11-05 12:29:35 -0300 |
| Branch: REL_14_STABLE [02e20bb2d] 2021-11-05 12:29:35 -0300 |
| Branch: REL_13_STABLE [bf5cdcfd5] 2021-11-05 12:29:34 -0300 |
| Branch: REL_12_STABLE [3eff168a2] 2021-11-05 12:29:34 -0300 |
| Branch: REL_11_STABLE [92224e470] 2021-11-05 12:29:34 -0300 |
| Branch: REL_10_STABLE [58b600f64] 2021-11-05 12:29:34 -0300 |
| Branch: REL9_6_STABLE [e0eaeafd6] 2021-11-05 12:29:35 -0300 |
| --> |
| <para> |
| Avoid null-pointer-dereference crash when dropping a role that owns |
| objects being dropped concurrently (Álvaro Herrera) |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Heikki Linnakangas <heikki.linnakangas@iki.fi> |
| Branch: master [6b1b405eb] 2021-11-03 10:52:38 +0200 |
| Branch: REL_14_STABLE [4ebd740cd] 2021-11-03 10:54:33 +0200 |
| Branch: REL_13_STABLE [07070c008] 2021-11-03 10:54:36 +0200 |
| Branch: REL_12_STABLE [11a399f9c] 2021-11-03 10:54:39 +0200 |
| Branch: REL_11_STABLE [6bf00da11] 2021-11-03 10:54:42 +0200 |
| Branch: REL_10_STABLE [7b55bb892] 2021-11-03 11:09:08 +0200 |
| Branch: REL9_6_STABLE [8f32afee0] 2021-11-03 11:15:02 +0200 |
| Branch: master [d5ab0681b] 2021-11-03 19:38:17 +0200 |
| Branch: REL_14_STABLE [f4e3b6271] 2021-11-03 19:41:35 +0200 |
| Branch: REL_13_STABLE [b7299b664] 2021-11-03 19:41:38 +0200 |
| Branch: REL_12_STABLE [7dc9a310e] 2021-11-03 19:41:41 +0200 |
| Branch: REL_11_STABLE [b110af5f7] 2021-11-03 19:41:44 +0200 |
| Branch: REL_10_STABLE [245799d39] 2021-11-03 19:41:46 +0200 |
| Branch: REL9_6_STABLE [71aeaf245] 2021-11-03 19:41:49 +0200 |
| --> |
| <para> |
| Prevent <quote>snapshot reference leak</quote> warning |
| when <function>lo_export()</function> or a related function fails |
| (Heikki Linnakangas) |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Tom Lane <tgl@sss.pgh.pa.us> |
| Branch: master [01fc65270] 2021-11-02 13:36:47 -0400 |
| Branch: REL_14_STABLE [16a56774f] 2021-11-02 13:36:53 -0400 |
| Branch: REL_13_STABLE [ada667b45] 2021-11-02 13:36:57 -0400 |
| --> |
| <para> |
| Fix inefficient code generation for CoerceToDomain expression nodes |
| (Ranier Vilela) |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Tom Lane <tgl@sss.pgh.pa.us> |
| Branch: master [6301c3ada] 2021-10-31 15:31:29 -0400 |
| Branch: REL_14_STABLE [8424dfced] 2021-10-31 15:31:38 -0400 |
| Branch: REL_13_STABLE [df238aed1] 2021-10-31 15:31:44 -0400 |
| Branch: master [e9d9ba2a4] 2021-11-01 16:24:39 -0400 |
| Branch: REL_14_STABLE [ad87bf355] 2021-11-01 16:24:40 -0400 |
| Branch: REL_13_STABLE [e477642a1] 2021-11-01 16:24:40 -0400 |
| Branch: master [65c6cab13] 2021-11-02 11:31:54 -0400 |
| Branch: REL_14_STABLE [08cfa5981] 2021-11-02 11:31:54 -0400 |
| Branch: REL_13_STABLE [0151af40c] 2021-11-02 11:31:54 -0400 |
| --> |
| <para> |
| Avoid O(N^2) behavior in some list-manipulation operations |
| (Nathan Bossart, Tom Lane) |
| </para> |
| |
| <para> |
| These changes fix slow processing in several scenarios, including: |
| when a standby replays a transaction that held many exclusive locks |
| on the primary; when many files are due to be unlinked after a |
| checkpoint; when hash aggregation involves many batches; and when |
| <filename>pg_trgm</filename> extracts indexable conditions from a |
| complex regular expression. Only the first of these scenarios has |
| actually been reported from the field, but they all seem like |
| plausible consequences of inefficient list deletions. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Peter Geoghegan <pg@bowt.ie> |
| Branch: master [a5213adf3] 2021-10-27 12:10:47 -0700 |
| Branch: REL_14_STABLE [d078fe83d] 2021-10-27 12:10:45 -0700 |
| Branch: REL_13_STABLE [f8cce4a3d] 2021-10-27 12:10:43 -0700 |
| Branch: master [c2381b510] 2021-10-27 13:09:24 -0700 |
| Branch: REL_14_STABLE [6cac34339] 2021-10-27 13:09:01 -0700 |
| Branch: REL_13_STABLE [d5a2ffbce] 2021-10-27 13:09:00 -0700 |
| --> |
| <para> |
| Add more defensive checks around B-tree posting list splits |
| (Peter Geoghegan) |
| </para> |
| |
| <para> |
| This change should help detect index corruption involving duplicate |
| table TIDs. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Tomas Vondra <tomas.vondra@postgresql.org> |
| Branch: master [d91353f4b] 2021-11-06 01:50:44 +0100 |
| Branch: REL_14_STABLE [f7829feb7] 2021-11-06 01:53:36 +0100 |
| --> |
| <para> |
| Avoid assertion failure when inserting NaN into a BRIN |
| float8 or float4 minmax_multi_ops index (Tomas Vondra) |
| </para> |
| |
| <para> |
| In production builds, such cases would result in a somewhat |
| inefficient, but not actually incorrect, index. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Fujii Masao <fujii@postgresql.org> |
| Branch: master [e3e29cec1] 2021-10-12 09:50:17 +0900 |
| Branch: REL_14_STABLE [62e821ad2] 2021-10-12 09:51:17 +0900 |
| --> |
| <para> |
| Allow the autovacuum launcher process to respond |
| to <function>pg_log_backend_memory_contexts()</function> requests |
| more quickly (Koyu Tanigawa) |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Daniel Gustafsson <dgustafsson@postgresql.org> |
| Branch: master [0ded7039f] 2021-10-01 22:47:05 +0200 |
| Branch: REL_14_STABLE [a5e83ad79] 2021-10-01 22:47:05 +0200 |
| --> |
| <para> |
| Fix memory leak in HMAC hash calculations (Sergey Shinderuk) |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Thomas Munro <tmunro@postgresql.org> |
| Branch: master [8781b0ce2] 2021-10-26 12:54:55 +1300 |
| Branch: REL_14_STABLE [181361a0c] 2021-10-26 13:09:00 +1300 |
| Branch: REL_13_STABLE [24b7cf8a5] 2021-10-26 13:04:40 +1300 |
| Branch: REL_12_STABLE [8fef901e3] 2021-10-26 13:01:52 +1300 |
| --> |
| <para> |
| Disallow setting <varname>huge_pages</varname> |
| to <literal>on</literal> when <varname>shared_memory_type</varname> |
| is <literal>sysv</literal> (Thomas Munro) |
| </para> |
| |
| <para> |
| Previously, this setting was accepted, but it did nothing for lack |
| of any implementation. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Tom Lane <tgl@sss.pgh.pa.us> |
| Branch: master [a0558cfa3] 2021-10-03 13:21:20 -0400 |
| Branch: REL_14_STABLE [e0eba586b] 2021-10-03 13:21:20 -0400 |
| --> |
| <para> |
| Fix checking of query type in PL/pgSQL's <command>RETURN |
| QUERY</command> statement (Tom Lane) |
| </para> |
| |
| <para> |
| <command>RETURN QUERY</command> should accept any query that can |
| return tuples, e.g. <command>UPDATE RETURNING</command>. v14 |
| accidentally disallowed anything but <command>SELECT</command>; |
| moreover, the <command>RETURN QUERY EXECUTE</command> variant |
| failed to apply any query-type check at all. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Tom Lane <tgl@sss.pgh.pa.us> |
| Branch: master [2acc84c6f] 2021-10-22 15:22:25 -0400 |
| Branch: REL_14_STABLE [3ad2c2455] 2021-10-22 15:22:25 -0400 |
| Branch: REL_13_STABLE [476006023] 2021-10-22 15:22:26 -0400 |
| Branch: REL_12_STABLE [52b927a73] 2021-10-22 15:22:26 -0400 |
| Branch: REL_11_STABLE [871dfe4b7] 2021-10-22 15:22:26 -0400 |
| Branch: REL_10_STABLE [10f9faf6d] 2021-10-22 15:22:26 -0400 |
| Branch: REL9_6_STABLE [b1df061f7] 2021-10-22 15:22:26 -0400 |
| --> |
| <para> |
| Fix <application>pg_dump</application> to dump non-global default |
| privileges correctly (Neil Chen, Masahiko Sawada) |
| </para> |
| |
| <para> |
| If a global (unrestricted) <command>ALTER DEFAULT |
| PRIVILEGES</command> command revoked some present-by-default |
| privilege, for example <literal>EXECUTE</literal> for functions, and |
| then a restricted <command>ALTER DEFAULT PRIVILEGES</command> |
| command granted that privilege again for a selected role or |
| schema, <application>pg_dump</application> failed to dump the |
| restricted privilege grant correctly. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Tom Lane <tgl@sss.pgh.pa.us> |
| Branch: master [e2ff7d9a8] 2021-10-16 12:23:57 -0400 |
| Branch: REL_14_STABLE [b5152e3ba] 2021-10-16 12:24:11 -0400 |
| Branch: REL_13_STABLE [6a262ba8c] 2021-10-16 12:24:17 -0400 |
| Branch: REL_12_STABLE [fd182a92a] 2021-10-16 12:24:24 -0400 |
| Branch: REL_11_STABLE [ca7a4ce58] 2021-10-16 12:24:33 -0400 |
| Branch: REL_10_STABLE [2e2a23283] 2021-10-16 12:24:40 -0400 |
| --> |
| <para> |
| Make <application>pg_dump</application> acquire shared lock on |
| partitioned tables that are to be dumped (Tom Lane) |
| </para> |
| |
| <para> |
| This oversight was usually pretty harmless, since |
| once <application>pg_dump</application> has locked any of the leaf |
| partitions, that would suffice to prevent significant DDL on the |
| partitioned table itself. However problems could ensue when dumping |
| a childless partitioned table, since no relevant lock would be held. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Tom Lane <tgl@sss.pgh.pa.us> |
| Branch: master [40dfac4fc] 2021-10-16 15:02:55 -0400 |
| Branch: REL_14_STABLE [3e4c8db93] 2021-10-16 15:03:05 -0400 |
| Branch: REL_13_STABLE [0b5f557b7] 2021-10-16 15:03:10 -0400 |
| Branch: REL_12_STABLE [5b0b2983a] 2021-10-16 15:03:15 -0400 |
| Branch: REL_11_STABLE [58955c84f] 2021-10-16 15:03:21 -0400 |
| --> |
| <para> |
| Fix crash in <application>pg_dump</application> when attempting to |
| dump trigger definitions from a pre-8.3 server (Tom Lane) |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Daniel Gustafsson <dgustafsson@postgresql.org> |
| Branch: master [998d060f3] 2021-10-19 12:59:54 +0200 |
| Branch: REL_14_STABLE [3e2f32b01] 2021-10-19 12:59:54 +0200 |
| Branch: REL_13_STABLE [687fe8a9d] 2021-10-19 12:59:54 +0200 |
| Branch: REL_12_STABLE [e788883de] 2021-10-19 12:59:54 +0200 |
| Branch: REL_11_STABLE [038892c81] 2021-10-19 12:59:54 +0200 |
| Branch: REL_10_STABLE [4fda03b67] 2021-10-19 12:59:54 +0200 |
| Branch: REL9_6_STABLE [ef1f15819] 2021-10-19 12:59:54 +0200 |
| --> |
| <para> |
| Fix incorrect filename in <application>pg_restore</application>'s |
| error message about an invalid large object TOC file (Daniel |
| Gustafsson) |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Fujii Masao <fujii@postgresql.org> |
| Branch: master [d33674708] 2021-09-29 21:46:56 +0900 |
| Branch: REL_14_STABLE [8021334d3] 2021-09-29 21:47:25 +0900 |
| Branch: REL_13_STABLE [3cc85d7d5] 2021-09-29 21:47:31 +0900 |
| Branch: master [2acb7cc6b] 2021-09-29 21:48:52 +0900 |
| Branch: REL_14_STABLE [8231c500e] 2021-09-29 21:49:29 +0900 |
| Branch: REL_13_STABLE [8cf4f7118] 2021-09-29 21:49:36 +0900 |
| Branch: REL_12_STABLE [c5f7e702d] 2021-09-29 21:49:40 +0900 |
| --> |
| <para> |
| Ensure that <application>pgbench</application> exits with non-zero |
| status after a socket-level failure (Yugo Nagata, Fabien Coelho) |
| </para> |
| |
| <para> |
| The desired behavior is to finish out the run but then exit with |
| status 2. Also, fix the reporting of such errors. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Peter Geoghegan <pg@bowt.ie> |
| Branch: master [d2bf06db3] 2021-10-13 14:08:12 -0700 |
| Branch: REL_14_STABLE [dd58194cf] 2021-10-13 14:08:11 -0700 |
| Branch: master [cd3f429d9] 2021-10-14 14:50:26 -0700 |
| Branch: REL_14_STABLE [5863115e4] 2021-10-14 14:50:25 -0700 |
| --> |
| <para> |
| Prevent <application>pg_amcheck</application> from checking |
| temporary relations, as well as indexes that are invalid or not |
| ready (Mark Dilger) |
| </para> |
| |
| <para> |
| This avoids unhelpful checks of relations that will almost certainly |
| appear inconsistent. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Peter Geoghegan <pg@bowt.ie> |
| Branch: master [292698f15] 2021-10-11 17:21:48 -0700 |
| Branch: REL_14_STABLE [e7712155e] 2021-10-11 17:21:46 -0700 |
| --> |
| <para> |
| Make <filename>contrib/amcheck</filename> skip unlogged tables |
| when running on a standby server (Mark Dilger) |
| </para> |
| |
| <para> |
| It's appropriate to do this since such tables will be empty, |
| and unlogged indexes were already handled similarly. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Tom Lane <tgl@sss.pgh.pa.us> |
| Branch: master [a667b0668] 2021-10-31 19:13:48 -0400 |
| Branch: REL_14_STABLE [7104e0b24] 2021-10-31 19:13:48 -0400 |
| Branch: REL_13_STABLE [3a5b313ce] 2021-10-31 19:13:48 -0400 |
| Branch: REL_12_STABLE [16d0da5c8] 2021-10-31 19:13:48 -0400 |
| Branch: REL_11_STABLE [5dd067430] 2021-10-31 19:13:48 -0400 |
| Branch: REL_10_STABLE [d87d5f8d8] 2021-10-31 19:13:48 -0400 |
| Branch: REL9_6_STABLE [fdb60ca83] 2021-10-31 19:13:48 -0400 |
| --> |
| <para> |
| Change <filename>contrib/pg_stat_statements</filename> to read |
| its <quote>query texts</quote> file in units of at most 1GB |
| (Tom Lane) |
| </para> |
| |
| <para> |
| Such large query text files are very unusual, but if they do occur, |
| the previous coding would fail on Windows 64 (which rejects |
| individual read requests of more than 2GB). |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Tom Lane <tgl@sss.pgh.pa.us> |
| Branch: master [3071bbfe4] 2021-10-06 15:50:24 -0400 |
| Branch: REL_14_STABLE [12ff678e1] 2021-10-06 15:50:24 -0400 |
| Branch: REL_13_STABLE [aee83f39a] 2021-10-06 15:50:24 -0400 |
| Branch: REL_12_STABLE [228897374] 2021-10-06 15:50:24 -0400 |
| Branch: REL_11_STABLE [88807757d] 2021-10-06 15:50:24 -0400 |
| Branch: REL_10_STABLE [2e33fbda1] 2021-10-06 15:50:24 -0400 |
| Branch: REL9_6_STABLE [36c9f7d96] 2021-10-06 15:50:24 -0400 |
| --> |
| <para> |
| Fix null-pointer crash |
| when <filename>contrib/postgres_fdw</filename> tries to report a |
| data conversion error (Tom Lane) |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Jeff Davis <jdavis@postgresql.org> |
| Branch: master [7821a0bf2] 2021-10-14 12:24:00 -0700 |
| Branch: REL_14_STABLE [0b90f1c4c] 2021-10-14 12:24:22 -0700 |
| Branch: REL_13_STABLE [20f785732] 2021-10-14 12:24:47 -0700 |
| Branch: REL_12_STABLE [ab11f6e46] 2021-10-14 12:25:07 -0700 |
| Branch: REL_11_STABLE [3f5d481ef] 2021-10-14 12:25:30 -0700 |
| Branch: REL_10_STABLE [9364f64a2] 2021-10-14 12:25:48 -0700 |
| Branch: REL9_6_STABLE [ae6abeb88] 2021-10-14 12:26:26 -0700 |
| --> |
| <para> |
| Ensure that <function>GetSharedSecurityLabel()</function> can be |
| used in a newly-started session that has not yet built its critical |
| relation cache entries (Jeff Davis) |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Andrew Dunstan <andrew@dunslane.net> |
| Branch: master [f4ce6c4d3] 2021-10-22 09:49:07 -0400 |
| Branch: REL_14_STABLE [52c0c1136] 2021-10-22 09:50:16 -0400 |
| --> |
| <para> |
| When running a TAP test, include the module's own directory |
| in <envar>PATH</envar> (Andrew Dunstan) |
| </para> |
| |
| <para> |
| This allows tests to find built programs that are not installed, |
| such as custom test drivers. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Tom Lane <tgl@sss.pgh.pa.us> |
| Branch: master [9b8d68cc6] 2021-10-02 16:05:42 -0400 |
| Branch: REL_14_STABLE [fa8db4879] 2021-10-02 16:06:09 -0400 |
| Branch: REL_13_STABLE [9c76689de] 2021-10-02 16:06:23 -0400 |
| Branch: REL_12_STABLE [e5b25f19b] 2021-10-02 16:06:45 -0400 |
| Branch: REL_11_STABLE [9cc919b51] 2021-10-02 16:06:55 -0400 |
| Branch: REL_10_STABLE [e323630cd] 2021-10-02 16:07:16 -0400 |
| Branch: REL9_6_STABLE [dbec5a2fe] 2021-10-02 16:07:37 -0400 |
| Branch: master [ad740067a] 2021-10-02 16:05:10 -0400 |
| Branch: REL_14_STABLE [81464999b] 2021-10-02 16:06:09 -0400 |
| Branch: REL_13_STABLE [7ba8eb81f] 2021-10-02 16:06:23 -0400 |
| Branch: REL_12_STABLE [4721e8aa6] 2021-10-02 16:06:45 -0400 |
| Branch: REL_11_STABLE [bb6d42669] 2021-10-02 16:06:55 -0400 |
| Branch: REL_10_STABLE [cb0799db0] 2021-10-02 16:07:16 -0400 |
| Branch: REL9_6_STABLE [37cbe0f79] 2021-10-02 16:07:36 -0400 |
| Branch: master [c1aa3b3c0] 2021-10-04 14:52:39 -0400 |
| Branch: REL_14_STABLE [919c08d90] 2021-10-04 14:52:17 -0400 |
| Branch: REL_13_STABLE [c53ff69e1] 2021-10-04 14:52:17 -0400 |
| Branch: REL_12_STABLE [07873a5dc] 2021-10-04 14:52:17 -0400 |
| Branch: REL_11_STABLE [d0b0b70dc] 2021-10-04 14:52:17 -0400 |
| Branch: REL_10_STABLE [cd2479142] 2021-10-04 14:52:17 -0400 |
| Branch: REL9_6_STABLE [b5f34ae08] 2021-10-04 14:52:17 -0400 |
| --> |
| <para> |
| Use the CLDR project's data to map Windows time zone names to IANA |
| time zones (Tom Lane) |
| </para> |
| |
| <para> |
| When running on Windows, <application>initdb</application> attempts |
| to set the new cluster's <varname>timezone</varname> parameter to |
| the IANA time zone matching the system's prevailing time zone. |
| We were using a mapping table that we'd generated years ago and |
| updated only fitfully; unsurprisingly, it contained a number of |
| errors as well as omissions of recently-added zones. It turns out |
| that CLDR has been tracking the most appropriate mappings, so start |
| using their data. This change will not affect any existing |
| installation, only newly-initialized clusters. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Tom Lane <tgl@sss.pgh.pa.us> |
| Branch: master [937aafd6d] 2021-10-29 11:38:18 -0400 |
| Branch: REL_14_STABLE [0c8a40b39] 2021-10-29 11:38:32 -0400 |
| Branch: REL_13_STABLE [4cd72add0] 2021-10-29 11:38:38 -0400 |
| Branch: REL_12_STABLE [14b8d25d6] 2021-10-29 11:38:47 -0400 |
| Branch: REL_11_STABLE [91455f7c6] 2021-10-29 11:38:53 -0400 |
| Branch: REL_10_STABLE [d0fe211ce] 2021-10-29 11:38:58 -0400 |
| Branch: REL9_6_STABLE [22a498b9b] 2021-10-29 11:39:05 -0400 |
| --> |
| <para> |
| Update time zone data files to <application>tzdata</application> |
| release 2021e for DST law changes in Fiji, Jordan, Palestine, and |
| Samoa, plus historical corrections for Barbados, Cook Islands, |
| Guyana, Niue, Portugal, and Tonga. |
| </para> |
| |
| <para> |
| Also, the Pacific/Enderbury zone has been renamed to Pacific/Kanton. |
| Also, the following zones have been merged into nearby, more-populous |
| zones whose clocks have agreed with them since 1970: Africa/Accra, |
| America/Atikokan, America/Blanc-Sablon, America/Creston, |
| America/Curacao, America/Nassau, America/Port_of_Spain, |
| Antarctica/DumontDUrville, and Antarctica/Syowa. |
| In all these cases, the previous zone name remains as an alias. |
| </para> |
| </listitem> |
| |
| </itemizedlist> |
| |
| </sect2> |
| </sect1> |
| |
| <sect1 id="release-14"> |
| <title>Release 14</title> |
| |
| <formalpara> |
| <title>Release date:</title> |
| <para>2021-09-30</para> |
| </formalpara> |
| |
| <sect2> |
| <title>Overview</title> |
| |
| <para> |
| <productname>PostgreSQL</productname> 14 contains many new features and |
| enhancements, including: |
| </para> |
| |
| <itemizedlist> |
| <listitem> |
| <para> |
| Stored procedures can now return data via <literal>OUT</literal> |
| parameters. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <para> |
| The SQL-standard <literal>SEARCH</literal> |
| and <literal>CYCLE</literal> options for common table expressions |
| have been implemented. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <para> |
| Subscripting can now be applied to any data type for which |
| it is a useful notation, not only arrays. In this release, |
| the <type>jsonb</type> and <type>hstore</type> types have gained |
| subscripting operators. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <para> |
| Range types have been extended by adding multiranges, allowing |
| representation of noncontiguous data ranges. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <para> |
| Numerous performance improvements have been made for parallel |
| queries, heavily-concurrent workloads, partitioned tables, logical |
| replication, and vacuuming. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <para> |
| B-tree index updates are managed more efficiently, reducing index |
| bloat. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <para> |
| <command>VACUUM</command> automatically becomes more aggressive, and |
| skips inessential cleanup, if the database starts to approach a |
| transaction ID wraparound condition. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <para> |
| Extended statistics can now be collected on expressions, allowing |
| better planning results for complex queries. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <para> |
| <application>libpq</application> now has the ability to pipeline |
| multiple queries, which can boost throughput over high-latency |
| connections. |
| </para> |
| </listitem> |
| </itemizedlist> |
| |
| <para> |
| The above items and other new features |
| of <productname>PostgreSQL</productname> 14 are explained in more |
| detail in the sections below. |
| </para> |
| |
| </sect2> |
| |
| <sect2> |
| |
| <title>Migration to Version 14</title> |
| |
| <para> |
| A dump/restore using <xref linkend="app-pg-dumpall"/> or use of <xref |
| linkend="pgupgrade"/> or logical replication is required for those |
| wishing to migrate data from any previous release. See <xref |
| linkend="upgrading"/> for general information on migrating to new major |
| releases. |
| </para> |
| |
| <para> |
| Version 14 contains a number of changes that may affect compatibility |
| with previous releases. Observe the following incompatibilities: |
| </para> |
| |
| <itemizedlist> |
| |
| <listitem> |
| <!-- |
| Author: Tom Lane <tgl@sss.pgh.pa.us> |
| 2020-11-04 [9e38c2bb5] Declare assorted array functions using anycompatible not |
| --> |
| |
| <para> |
| User-defined objects that reference certain built-in array functions |
| along with their argument types must be recreated (Tom Lane) |
| </para> |
| |
| <para> |
| Specifically, <link |
| linkend="functions-array"><function>array_append()</function></link>, |
| <function>array_prepend()</function>, |
| <function>array_cat()</function>, |
| <function>array_position()</function>, |
| <function>array_positions()</function>, |
| <function>array_remove()</function>, |
| <function>array_replace()</function>, and <link |
| linkend="functions-math"><function>width_bucket()</function></link> |
| used to take <type>anyarray</type> arguments but now take |
| <type>anycompatiblearray</type>. Therefore, user-defined objects |
| like aggregates and operators that reference those array function |
| signatures must be dropped before upgrading, and recreated once the |
| upgrade completes. |
| </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 |
| --> |
| |
| <para> |
| Remove deprecated containment operators <literal>@</literal> |
| and <literal>~</literal> for built-in <link |
| linkend="functions-geometry">geometric data types</link> and |
| contrib modules <xref linkend="cube"/>, <xref linkend="hstore"/>, |
| <xref linkend="intarray"/>, and <xref linkend="seg"/> (Justin Pryzby) |
| </para> |
| |
| <para> |
| The more consistently named <literal><@</literal> |
| and <literal>@></literal> have been recommended for many years. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Alexander Korotkov <akorotkov@postgresql.org> |
| 2021-01-31 [0c4f355c6] Fix parsing of complex morphs to tsquery |
| --> |
| |
| <para> |
| Fix <link |
| linkend="functions-textsearch"><function>to_tsquery()</function></link> |
| and <function>websearch_to_tsquery()</function> to properly parse |
| query text containing discarded tokens (Alexander Korotkov) |
| </para> |
| |
| <para> |
| Certain discarded tokens, like underscore, caused the output of |
| these functions to produce incorrect tsquery output, e.g., both |
| <literal>websearch_to_tsquery('"pg_class pg"')</literal> and <literal>to_tsquery('pg_class |
| <-> pg')</literal> used to output <literal>( 'pg' & 'class' ) <-> 'pg'</literal>, |
| but now both output <literal>'pg' <-> 'class' <-> 'pg'</literal>. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Alexander Korotkov <akorotkov@postgresql.org> |
| 2021-05-03 [eb086056f] Make websearch_to_tsquery() parse text in quotes as a si |
| --> |
| |
| <para> |
| Fix <link |
| linkend="functions-textsearch"><function>websearch_to_tsquery()</function></link> |
| to properly parse multiple adjacent discarded tokens in quotes |
| (Alexander Korotkov) |
| </para> |
| |
| <para> |
| Previously, quoted text that contained multiple adjacent discarded |
| tokens was treated as multiple tokens, causing incorrect tsquery |
| output, e.g., <literal>websearch_to_tsquery('"aaa: bbb"')</literal> used to output |
| <literal>'aaa' <2> 'bbb'</literal>, but now outputs <literal>'aaa' <-> 'bbb'</literal>. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Peter Eisentraut <peter@eisentraut.org> |
| 2021-04-06 [a2da77cdb] Change return type of EXTRACT to numeric |
| --> |
| |
| <para> |
| Change <link |
| linkend="functions-datetime"><function>EXTRACT()</function></link> |
| to return type <type>numeric</type> instead of <type>float8</type> |
| (Peter Eisentraut) |
| </para> |
| |
| <para> |
| This avoids loss-of-precision issues in some usages. The old |
| behavior can still be obtained by using the old underlying function |
| <function>date_part()</function>. |
| </para> |
| |
| <para> |
| Also, <function>EXTRACT(date)</function> now throws an error for units |
| that are not part of the <type>date</type> data type. |
| </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 |
| --> |
| |
| <para> |
| Change <link |
| linkend="functions-aggregate"><function>var_samp()</function></link> |
| and <function>stddev_samp()</function> with numeric parameters to |
| return NULL when the input is a single NaN value (Tom Lane) |
| </para> |
| |
| <para> |
| Previously <literal>NaN</literal> was returned. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Joe Conway <mail@joeconway.com> |
| 2021-03-31 [b12bd4869] Fix has_column_privilege function corner case |
| --> |
| |
| <para> |
| Return false for <link |
| linkend="functions-info"><function>has_column_privilege()</function></link> |
| checks on non-existent or dropped columns when using attribute |
| numbers (Joe Conway) |
| </para> |
| |
| <para> |
| Previously such attribute numbers returned an invalid-column error. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Tom Lane <tgl@sss.pgh.pa.us> |
| 2020-07-20 [a4faef8f8] Fix some corner cases for window ranges with infinite of |
| --> |
| |
| <para> |
| Fix handling of infinite <link |
| linkend="syntax-window-functions">window function</link> ranges |
| (Tom Lane) |
| </para> |
| |
| <para> |
| Previously window frame clauses like <literal>'inf' PRECEDING AND |
| 'inf' FOLLOWING</literal> returned incorrect results. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Tom Lane <tgl@sss.pgh.pa.us> |
| 2020-09-17 [76f412ab3] Remove factorial operators, leaving only the factorial() |
| --> |
| |
| <para> |
| Remove factorial operators <literal>!</literal> and |
| <literal>!!</literal>, as well as function |
| <function>numeric_fac()</function> (Mark Dilger) |
| </para> |
| |
| <para> |
| The <link |
| linkend="functions-math"><function>factorial()</function></link> |
| function is still supported. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Peter Eisentraut <peter@eisentraut.org> |
| 2020-06-18 [0a40563ea] Disallow factorial of negative numbers |
| --> |
| |
| <para> |
| Disallow <function>factorial()</function> of negative numbers |
| (Peter Eisentraut) |
| </para> |
| |
| <para> |
| Previously such cases returned 1. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Tom Lane <tgl@sss.pgh.pa.us> |
| 2020-09-17 [1ed6b8956] Remove support for postfix (right-unary) operators. |
| --> |
| |
| <para> |
| Remove support for <link linkend="sql-createoperator">postfix</link> |
| (right-unary) operators (Mark Dilger) |
| </para> |
| |
| <para> |
| <application>pg_dump</application> and |
| <application>pg_upgrade</application> will warn if postfix operators |
| are being dumped. |
| </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 |
| --> |
| |
| <para> |
| Allow <literal>\D</literal> and <literal>\W</literal> shorthands to |
| match newlines in <link linkend="functions-posix-regexp">regular |
| expression</link> newline-sensitive mode (Tom Lane) |
| </para> |
| |
| <para> |
| Previously they did not match newlines in this |
| mode, but that disagrees with the behavior of other common regular |
| expression engines. <literal>[^[:digit:]]</literal> or |
| <literal>[^[:word:]]</literal> can be used to get the old behavior. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Tom Lane <tgl@sss.pgh.pa.us> |
| 2021-03-02 [4aea704a5] Fix semantics of regular expression back-references. |
| --> |
| |
| <para> |
| Disregard constraints when matching regular expression <link |
| linkend="posix-escape-sequences">back-references</link> (Tom Lane) |
| </para> |
| |
| <para> |
| For example, in <literal>(^\d+).*\1</literal>, |
| the <literal>^</literal> constraint should be applied at the start |
| of the string, but not when matching <literal>\1</literal>. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Tom Lane <tgl@sss.pgh.pa.us> |
| 2021-02-25 [2a0af7fe4] Allow complemented character class escapes within regex |
| --> |
| |
| <para> |
| Disallow <literal>\w</literal> as a range start or end in regular |
| expression character classes (Tom Lane) |
| </para> |
| |
| <para> |
| This previously was allowed but produced unexpected results. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Tom Lane <tgl@sss.pgh.pa.us> |
| 2021-04-07 [3db826bd5] Tighten up allowed names for custom GUC parameters. |
| Author: Tom Lane <tgl@sss.pgh.pa.us> |
| 2021-04-07 [3db826bd5] Tighten up allowed names for custom GUC parameters. |
| --> |
| |
| <para> |
| Require <link linkend="runtime-config-custom">custom server |
| parameter</link> names to use only characters that are valid in |
| unquoted <acronym>SQL</acronym> identifiers (Tom Lane) |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| 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> |
| Change the default of the <xref linkend="guc-password-encryption"/> |
| server parameter to <literal>scram-sha-256</literal> (Peter |
| Eisentraut) |
| </para> |
| |
| <para> |
| Previously it was <literal>md5</literal>. All new passwords will |
| be stored as SHA256 unless this server setting is changed or |
| the password is specified in MD5 format. 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 Geoghegan <pg@bowt.ie> |
| 2021-03-10 [9f3665fbf] Don't consider newly inserted tuples in nbtree VACUUM. |
| Author: Peter Geoghegan <pg@bowt.ie> |
| 2021-03-11 [effdd3f3b] Add back vacuum_cleanup_index_scale_factor parameter. |
| --> |
| |
| <para> |
| Remove server parameter |
| <varname>vacuum_cleanup_index_scale_factor</varname> (Peter Geoghegan) |
| </para> |
| |
| <para> |
| This setting was ignored starting in |
| <productname>PostgreSQL</productname> version 13.3. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Tom Lane <tgl@sss.pgh.pa.us> |
| 2020-12-08 [a676386b5] Remove operator_precedence_warning. |
| --> |
| |
| <para> |
| Remove server parameter <varname>operator_precedence_warning</varname> |
| (Tom Lane) |
| </para> |
| |
| <para> |
| This setting was used for warning applications about |
| <productname>PostgreSQL</productname> 9.5 changes. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Bruce Momjian <bruce@momjian.us> |
| 2020-10-05 [253f1025d] Overhaul pg_hba.conf clientcert's API |
| --> |
| |
| <para> |
| Overhaul the specification of <literal>clientcert</literal> in <link |
| linkend="auth-pg-hba-conf"><filename>pg_hba.conf</filename></link> |
| (Kyotaro Horiguchi) |
| </para> |
| |
| <para> |
| Values |
| <literal>1</literal>/<literal>0</literal>/<literal>no-verify</literal> |
| are no longer supported; only the strings |
| <literal>verify-ca</literal> and <literal>verify-full</literal> |
| can be used. Also, disallow <literal>verify-ca</literal> if cert |
| authentication is enabled since cert requires |
| <literal>verify-full</literal> checking. |
| </para> |
| </listitem> |
| |
| <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 |
| --> |
| |
| <para> |
| Remove support for <link |
| linkend="runtime-config-connection-ssl"><acronym>SSL</acronym></link> |
| compression (Daniel Gustafsson, Michael Paquier) |
| </para> |
| |
| <para> |
| This was already disabled by default in previous |
| <productname>PostgreSQL</productname> releases, and most modern |
| OpenSSL and <acronym>TLS</acronym> 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 <link linkend="libpq">libpq</link> support |
| for the version 2 <link linkend="protocol">wire protocol</link> |
| (Heikki Linnakangas) |
| </para> |
| |
| <para> |
| This was last used as the default in |
| <productname>PostgreSQL</productname> 7.3 (released in 2002). |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Peter Eisentraut <peter@eisentraut.org> |
| 2020-06-11 [5333e014a] Remove deprecated syntax from CREATE/DROP LANGUAGE |
| --> |
| |
| <para> |
| Disallow single-quoting of the language name in the |
| <link linkend="sql-createlanguage"><command>CREATE/DROP |
| LANGUAGE</command></link> command (Peter Eisentraut) |
| </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 |
| --> |
| |
| <para> |
| Remove the <link linkend="xfunc-sql-composite-functions">composite |
| types</link> that were formerly created for sequences and toast |
| tables (Tom Lane) |
| </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 |
| --> |
| |
| <para> |
| Process doubled quote marks in <link linkend="ecpg">ecpg</link> |
| <acronym>SQL</acronym> command strings correctly (Tom Lane) |
| </para> |
| |
| <para> |
| Previously <literal>'abc''def'</literal> was passed to the server |
| as <literal>'abc'def'</literal>, and <literal>"abc""def"</literal> |
| was passed as <literal>"abc"def"</literal>, causing syntax errors. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Tom Lane <tgl@sss.pgh.pa.us> |
| 2020-08-08 [20e7e1fe3] Remove <@ from contrib/intarray's GiST operator classes. |
| --> |
| |
| <para> |
| Prevent the containment operators (<literal><@</literal> and |
| <literal>@></literal>) for <xref linkend="intarray"/> from using |
| GiST indexes (Tom Lane) |
| </para> |
| |
| <para> |
| 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: Thomas Munro <tmunro@postgresql.org> |
| 2021-01-29 [514b411a2] Retire pg_standby. |
| --> |
| |
| <para> |
| Remove contrib program <application>pg_standby</application> |
| (Justin Pryzby) |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Peter Eisentraut <peter@eisentraut.org> |
| 2020-11-25 [f73999262] tablefunc: Reject negative number of tuples passed to no |
| --> |
| |
| <para> |
| Prevent <xref linkend="tablefunc"/>'s function |
| <function>normal_rand()</function> from accepting negative values |
| (Ashutosh Bapat) |
| </para> |
| |
| <para> |
| Negative values produced undesirable results. |
| </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: Stephen Frost <sfrost@snowman.net> |
| 2021-04-05 [6c3ffd697] Add pg_read_all_data and pg_write_all_data roles |
| --> |
| |
| <para> |
| Add predefined roles <link |
| linkend="predefined-roles"><literal>pg_read_all_data</literal></link> |
| and <literal>pg_write_all_data</literal> (Stephen Frost) |
| </para> |
| |
| <para> |
| These non-login roles can be used to give read or write permission |
| to all tables, views, and sequences. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Noah Misch <noah@leadboat.com> |
| 2021-03-26 [a14a0118a] Add "pg_database_owner" default role. |
| --> |
| |
| <para> |
| Add predefined role <link |
| linkend="predefined-roles"><literal>pg_database_owner</literal></link> |
| that contains only the current database's owner (Noah Misch) |
| </para> |
| |
| <para> |
| This is especially useful in template databases. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Tomas Vondra <tomas.vondra@postgresql.org> |
| 2021-03-18 [cd91de0d1] Remove temporary files after backend crash |
| --> |
| |
| <para> |
| Remove temporary files after backend crashes (Euler Taveira) |
| </para> |
| |
| <para> |
| Previously, such files were retained for debugging purposes. If |
| necessary, deletion can be disabled with the new server parameter |
| <xref linkend="guc-remove-temp-files-after-crash"/>. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Thomas Munro <tmunro@postgresql.org> |
| 2021-04-03 [c30f54ad7] Detect POLLHUP/POLLRDHUP while running queries. |
| --> |
| |
| <para> |
| Allow long-running queries to be canceled if the client disconnects |
| (Sergey Cherkashin, Thomas Munro) |
| </para> |
| |
| <para> |
| The server parameter <xref |
| linkend="guc-client-connection-check-interval"/> allows control |
| over whether loss of connection is checked for intra-query. |
| (This is supported on Linux and a few other operating systems.) |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Magnus Hagander <magnus@hagander.net> |
| 2021-04-08 [aaf043257] Add functions to wait for backend termination |
| --> |
| |
| <para> |
| Add an optional timeout parameter to <link |
| linkend="functions-admin-signal"><function>pg_terminate_backend()</function></link> |
| (Magnus Hagander) |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Noah Misch <noah@leadboat.com> |
| 2021-03-30 [0ff8bbdee] Accept slightly-filled pages for tuples larger than fill |
| --> |
| |
| <para> |
| Allow wide tuples to be always added to almost-empty heap pages |
| (John Naylor, Floris van Nee) |
| </para> |
| |
| <para> |
| Previously tuples whose insertion would have exceeded the page's |
| <link linkend="sql-createtable">fill factor</link> were instead |
| added to new pages. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Peter Eisentraut <peter@eisentraut.org> |
| 2021-04-07 [5c55dc8b4] libpq: Set Server Name Indication (SNI) for SSL connecti |
| --> |
| |
| <para> |
| Add Server Name Indication (<acronym>SNI</acronym>) in |
| <acronym>SSL</acronym> connection packets (Peter Eisentraut) |
| </para> |
| |
| <para> |
| This can be disabled by turning off client connection option <link |
| linkend="libpq-paramkeywords"><literal>sslsni</literal></link>. |
| </para> |
| </listitem> |
| |
| </itemizedlist> |
| |
| <sect4> |
| <title><link linkend="routine-vacuuming">Vacuuming</link></title> |
| |
| <itemizedlist> |
| |
| <listitem> |
| <!-- |
| Author: Peter Geoghegan <pg@bowt.ie> |
| 2021-04-07 [5100010ee] Teach VACUUM to bypass unnecessary index vacuuming. |
| Author: Peter Geoghegan <pg@bowt.ie> |
| 2021-06-18 [3499df0de] Support disabling index bypassing by VACUUM. |
| --> |
| |
| <para> |
| Allow vacuum to skip index vacuuming when the number of removable |
| index entries is insignificant (Masahiko Sawada, Peter Geoghegan) |
| </para> |
| |
| <para> |
| The vacuum parameter <link |
| linkend="sql-vacuum"><literal>INDEX_CLEANUP</literal></link> has a |
| new default of <literal>auto</literal> that enables this optimization. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Peter Geoghegan <pg@bowt.ie> |
| 2021-03-21 [9dd963ae2] Recycle nbtree pages deleted during same VACUUM. |
| --> |
| |
| <para> |
| Allow vacuum to more eagerly add deleted btree pages to the free |
| space map (Peter Geoghegan) |
| </para> |
| |
| <para> |
| Previously vacuum could only add pages to the free space map |
| that were marked as deleted by previous vacuums. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Peter Geoghegan <pg@bowt.ie> |
| 2021-04-07 [3c3b8a4b2] Truncate line pointer array during VACUUM. |
| --> |
| |
| <para> |
| Allow vacuum to reclaim space used by unused trailing heap |
| line pointers (Matthias van de Meent, Peter Geoghegan) |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Alvaro Herrera <alvherre@alvh.no-ip.org> |
| 2020-11-25 [c98763bf5] Avoid spurious waits in concurrent indexing |
| Author: Alvaro Herrera <alvherre@alvh.no-ip.org> |
| 2021-01-15 [f9900df5f] Avoid spurious wait in concurrent reindex |
| Author: Alvaro Herrera <alvherre@alvh.no-ip.org> |
| 2021-02-23 [d9d076222] VACUUM: ignore indexing operations with CONCURRENTLY |
| --> |
| |
| <para> |
| Allow vacuum to be more aggressive in removing dead rows during |
| minimal-locking index operations (Álvaro Herrera) |
| </para> |
| |
| <para> |
| Specifically, <command>CREATE INDEX CONCURRENTLY</command> and |
| <command>REINDEX CONCURRENTLY</command> no longer limit the dead |
| row removal of other relations. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Fujii Masao <fujii@postgresql.org> |
| 2020-12-08 [e2ac3fed3] Speed up rechecking if relation needs to be vacuumed or |
| --> |
| |
| <para> |
| Speed up vacuuming of databases with many relations (Tatsuhito |
| Kasahara) |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Peter Geoghegan <pg@bowt.ie> |
| 2021-01-27 [e19594c5c] Reduce the default value of vacuum_cost_page_miss. |
| --> |
| |
| <para> |
| Reduce the default value of <xref |
| linkend="guc-vacuum-cost-page-miss"/> to better reflect current |
| hardware capabilities (Peter Geoghegan) |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Michael Paquier <michael@paquier.xyz> |
| 2021-02-09 [7cb3048f3] Add option PROCESS_TOAST to VACUUM |
| --> |
| |
| <para> |
| Add ability to skip vacuuming of <acronym>TOAST</acronym> tables |
| (Nathan Bossart) |
| </para> |
| |
| <para> |
| <link linkend="sql-vacuum"><command>VACUUM</command></link> now |
| has a <literal>PROCESS_TOAST</literal> option which can be set to |
| false to disable <acronym>TOAST</acronym> processing, and <link |
| linkend="app-vacuumdb"><application>vacuumdb</application></link> |
| has a <option>--no-process-toast</option> option. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Tomas Vondra <tomas.vondra@postgresql.org> |
| 2021-01-17 [7db0cd214] Set PD_ALL_VISIBLE and visibility map bits in COPY FREEZ |
| --> |
| |
| <para> |
| Have <link linkend="sql-copy"><command>COPY FREEZE</command></link> |
| appropriately update page visibility bits (Anastasia Lubennikova, |
| Pavan Deolasee, Jeff Janes) |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Peter Geoghegan <pg@bowt.ie> |
| 2021-04-07 [1e55e7d17] Add wraparound failsafe to VACUUM. |
| --> |
| |
| <para> |
| Cause vacuum operations to be more aggressive if the table is near |
| xid or multixact wraparound (Masahiko Sawada, Peter Geoghegan) |
| </para> |
| |
| <para> |
| This is controlled by <xref linkend="guc-vacuum-failsafe-age"/> |
| and <xref linkend="guc-vacuum-multixact-failsafe-age"/>. |
| </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 |
| --> |
| |
| <para> |
| 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: 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 <link |
| linkend="guc-log-autovacuum-min-duration">autovacuum logging |
| output</link> (Masahiko Sawada) |
| </para> |
| </listitem> |
| |
| </itemizedlist> |
| </sect4> |
| |
| <sect4> |
| <title><link linkend="ddl-partitioning">Partitioning</link></title> |
| |
| <itemizedlist> |
| |
| <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. |
| --> |
| |
| <para> |
| Improve the performance of updates and deletes on partitioned tables |
| with many partitions (Amit Langote, Tom Lane) |
| </para> |
| |
| <para> |
| This change greatly reduces the planner's overhead for such cases, |
| and also allows updates/deletes on partitioned tables to use |
| execution-time partition pruning. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Alvaro Herrera <alvherre@alvh.no-ip.org> |
| 2021-03-25 [71f4c8c6f] ALTER TABLE ... DETACH PARTITION ... CONCURRENTLY |
| --> |
| |
| <para> |
| Allow partitions to be <link |
| linkend="sql-altertable">detached</link> in a non-blocking manner |
| (Álvaro Herrera) |
| </para> |
| |
| <para> |
| The syntax is <command>ALTER TABLE ... DETACH PARTITION |
| ... CONCURRENTLY</command>, and <command>FINALIZE</command>. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Tom Lane <tgl@sss.pgh.pa.us> |
| 2020-09-28 [2dfa3fea8] Remove complaints about COLLATE clauses in partition bou |
| --> |
| |
| <para> |
| Ignore <literal>COLLATE</literal> clauses in partition boundary |
| values (Tom Lane) |
| </para> |
| |
| <para> |
| Previously any such clause had to match the collation of the |
| partition key; but it's more consistent to consider that it's |
| automatically coerced to the collation of the partition key. |
| </para> |
| </listitem> |
| |
| </itemizedlist> |
| |
| </sect4> |
| |
| <sect4> |
| <title>Indexes</title> |
| |
| <itemizedlist> |
| |
| <listitem> |
| <!-- |
| Author: Peter Geoghegan <pg@bowt.ie> |
| 2021-01-13 [9dc718bdf] Pass down "logically unchanged index" hint. |
| Author: Peter Geoghegan <pg@bowt.ie> |
| 2021-01-13 [d168b6668] Enhance nbtree index tuple deletion. |
| --> |
| |
| <para> |
| Allow btree index additions to <link |
| linkend="btree-deletion">remove expired index entries</link> |
| to prevent page splits (Peter Geoghegan) |
| </para> |
| |
| <para> |
| This is particularly helpful for reducing index bloat on tables |
| whose indexed columns are frequently updated. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Tomas Vondra <tomas.vondra@postgresql.org> |
| 2021-03-26 [ab596105b] BRIN minmax-multi indexes |
| --> |
| |
| <para> |
| Allow <link linkend="brin"><acronym>BRIN</acronym></link> indexes |
| to record multiple min/max values per range (Tomas Vondra) |
| </para> |
| |
| <para> |
| This is useful if there are groups of values in each page range. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Tomas Vondra <tomas.vondra@postgresql.org> |
| 2021-03-26 [77b88cd1b] BRIN bloom indexes |
| --> |
| |
| <para> |
| Allow <acronym>BRIN</acronym> indexes to use bloom filters |
| (Tomas Vondra) |
| </para> |
| |
| <para> |
| This allows <acronym>BRIN</acronym> indexes to be used effectively |
| with data that is not well-localized in the heap. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Heikki Linnakangas <heikki.linnakangas@iki.fi> |
| 2020-09-17 [16fa9b2b3] Add support for building GiST index by sorting. |
| --> |
| |
| <para> |
| Allow some <link linkend="gist">GiST</link> 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: Tom Lane <tgl@sss.pgh.pa.us> |
| 2021-04-05 [09c1c6ab4] Support INCLUDE'd columns in SP-GiST. |
| --> |
| |
| <para> |
| Allow <link linkend="spgist">SP-GiST</link> indexes to contain |
| <literal>INCLUDE</literal>'d columns (Pavel Borisov) |
| </para> |
| </listitem> |
| |
| </itemizedlist> |
| |
| </sect4> |
| |
| <sect4> |
| <title>Optimizer</title> |
| |
| <itemizedlist> |
| |
| <listitem> |
| <!-- |
| Author: David Rowley <drowley@postgresql.org> |
| 2021-04-08 [50e17ad28] Speedup ScalarArrayOpExpr evaluation |
| --> |
| |
| <para> |
| Allow hash lookup for <literal>IN</literal> clauses with many |
| constants (James Coleman, David Rowley) |
| </para> |
| |
| <para> |
| Previously the code always sequentially scanned the list |
| of values. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Dean Rasheed <dean.a.rasheed@gmail.com> |
| 2020-12-03 [25a9e54d2] Improve estimation of OR clauses using extended statisti |
| Author: Dean Rasheed <dean.a.rasheed@gmail.com> |
| 2020-12-08 [88b0898fe] Improve estimation of OR clauses using multiple extended |
| Author: Dean Rasheed <dean.a.rasheed@gmail.com> |
| 2020-12-08 [4f5760d4a] Improve estimation of ANDs under ORs using extended stat |
| --> |
| |
| <para> |
| Increase the number of places <link |
| linkend="planner-stats-extended">extended statistics</link> can |
| be used for <literal>OR</literal> clause estimation (Tomas Vondra, |
| Dean Rasheed) |
| </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 <link |
| linkend="view-pg-stats-ext-exprs"><structname>pg_stats_ext_exprs</structname></link> |
| reports such statistics. |
| </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 <link |
| linkend="datatype-oid-table"><type>TIDs</type></link> (Edmund |
| Horner, David Rowley) |
| </para> |
| |
| <para> |
| Previously a sequential scan was required for non-equality |
| <type>TID</type> 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 <link linkend="sql-explain"><command>EXPLAIN CREATE TABLE |
| AS</command></link> and <command>EXPLAIN CREATE MATERIALIZED |
| VIEW</command> to honor <literal>IF NOT EXISTS</literal> |
| (Bharath Rupireddy) |
| </para> |
| |
| <para> |
| Previously, if the object already existed, |
| <command>EXPLAIN</command> would fail. |
| </para> |
| </listitem> |
| |
| </itemizedlist> |
| |
| </sect4> |
| |
| <sect4> |
| <title>General Performance</title> |
| |
| <itemizedlist> |
| |
| <listitem> |
| <!-- |
| Author: Andres Freund <andres@anarazel.de> |
| 2020-08-12 [dc7420c2c] snapshot scalability: Don't compute global horizons whil |
| Author: Andres Freund <andres@anarazel.de> |
| 2020-08-13 [1f51c17c6] snapshot scalability: Move PGXACT->xmin back to PGPROC. |
| Author: Andres Freund <andres@anarazel.de> |
| 2020-08-14 [941697c3c] snapshot scalability: Introduce dense array of in-progre |
| Author: Andres Freund <andres@anarazel.de> |
| 2020-08-14 [5788e258b] snapshot scalability: Move PGXACT->vacuumFlags to ProcGl |
| Author: Andres Freund <andres@anarazel.de> |
| 2020-08-14 [73487a60f] snapshot scalability: Move subxact info to ProcGlobal, r |
| Author: Andres Freund <andres@anarazel.de> |
| 2020-08-17 [623a9ba79] snapshot scalability: cache snapshots using a xact compl |
| --> |
| |
| <para> |
| Improve the speed of computing <acronym>MVCC</acronym> <link |
| linkend="mvcc">visibility snapshots</link> on systems with many |
| CPUs and high session counts (Andres Freund) |
| </para> |
| |
| <para> |
| This also improves performance when there are many idle sessions. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: David Rowley <drowley@postgresql.org> |
| 2021-04-02 [9eacee2e6] Add Result Cache executor node (take 2) |
| --> |
| |
| <para> |
| Add executor method to memoize results from the inner side of a |
| nested-loop join (David Rowley) |
| </para> |
| |
| <para> |
| This is useful if only a small percentage of rows is checked on |
| the inner side. It can be disabled via server parameter <xref |
| linkend="guc-enable-memoize"/>. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: David Rowley <drowley@postgresql.org> |
| 2020-09-15 [62e221e1c] Allow incremental sorts for windowing functions |
| --> |
| |
| <para> |
| Allow <link linkend="functions-window">window functions</link> |
| to perform incremental sorts (David Rowley) |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: David Rowley <drowley@postgresql.org> |
| 2020-07-26 [56788d215] Allocate consecutive blocks during parallel seqscans |
| --> |
| |
| <para> |
| Improve the I/O performance of parallel sequential scans (Thomas |
| Munro, David Rowley) |
| </para> |
| |
| <para> |
| This was done by allocating blocks in groups to <link |
| linkend="guc-max-parallel-workers">parallel workers</link>. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Etsuro Fujita <efujita@postgresql.org> |
| 2021-03-31 [27e1f1456] Add support for asynchronous execution. |
| --> |
| |
| <para> |
| Allow a query referencing multiple <link |
| linkend="sql-createforeigntable">foreign tables</link> to perform |
| foreign table scans in parallel (Robert Haas, Kyotaro Horiguchi, |
| Thomas Munro, Etsuro Fujita) |
| </para> |
| |
| <para> |
| <link |
| linkend="postgres-fdw"><application>postgres_fdw</application></link> |
| supports this type of scan if <literal>async_capable</literal> |
| is set. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Stephen Frost <sfrost@snowman.net> |
| 2021-03-16 [c6fc50cb4] Use pre-fetching for ANALYZE |
| --> |
| |
| <para> |
| Allow <link linkend="vacuum-for-statistics">analyze</link> to do |
| page prefetching (Stephen Frost) |
| </para> |
| |
| <para> |
| This is controlled by <xref |
| linkend="guc-maintenance-io-concurrency"/>. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Tom Lane <tgl@sss.pgh.pa.us> |
| 2021-02-20 [08c0d6ad6] Invent "rainbow" arcs within the regex engine. |
| Author: Tom Lane <tgl@sss.pgh.pa.us> |
| 2021-02-20 [824bf7190] Recognize "match-all" NFAs within the regex engine. |
| Author: Tom Lane <tgl@sss.pgh.pa.us> |
| 2021-02-20 [cebc1d34e] Fix regex engine to suppress useless concatenation sub-R |
| Author: Tom Lane <tgl@sss.pgh.pa.us> |
| 2021-02-20 [581043089] Convert regex engine's subre tree from binary to N-ary s |
| Author: Tom Lane <tgl@sss.pgh.pa.us> |
| 2021-02-20 [ea1268f63] Avoid generating extra subre tree nodes for capturing pa |
| Author: Tom Lane <tgl@sss.pgh.pa.us> |
| 2021-02-21 [190c79884] Simplify memory management for regex DFAs a little. |
| Author: Tom Lane <tgl@sss.pgh.pa.us> |
| 2021-02-26 [0fc1af174] Improve memory management in regex compiler. |
| Author: Tom Lane <tgl@sss.pgh.pa.us> |
| 2021-03-02 [0c3405cf1] Improve performance of regular expression back-reference |
| Author: Tom Lane <tgl@sss.pgh.pa.us> |
| 2021-03-02 [4604f83fd] Suppress unnecessary regex subre nodes in a couple more |
| Author: Tom Lane <tgl@sss.pgh.pa.us> |
| 2021-03-08 [6c20bdb2a] Further tweak memory management for regex DFAs. |
| Author: Tom Lane <tgl@sss.pgh.pa.us> |
| 2021-05-03 [f68970e33] Fix performance issue in new regex match-all detection c |
| --> |
| |
| <para> |
| Improve performance of <link |
| linkend="functions-posix-regexp">regular expression</link> |
| searches (Tom Lane) |
| </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 |
| --> |
| |
| <para> |
| Dramatically improve Unicode normalization performance (John Naylor) |
| </para> |
| |
| <para> |
| This speeds <link |
| linkend="functions-string"><function>normalize()</function></link> |
| and <literal>IS NORMALIZED</literal>. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Robert Haas <rhaas@postgresql.org> |
| 2021-03-19 [bbe0a81db] Allow configurable LZ4 TOAST compression. |
| --> |
| |
| <para> |
| Add ability to use <link linkend="sql-createtable">LZ4 |
| compression</link> on <acronym>TOAST</acronym> data (Dilip Kumar) |
| </para> |
| |
| <para> |
| This can be set at the column level, or set as a default via server |
| parameter <xref linkend="guc-default-toast-compression"/>. |
| The server must be compiled with <link |
| linkend="configure-options-features"><option>--with-lz4</option></link> |
| to support this feature. The default setting is still pglz. |
| </para> |
| </listitem> |
| |
| </itemizedlist> |
| |
| </sect4> |
| |
| <sect4> |
| <title>Monitoring</title> |
| |
| <itemizedlist> |
| |
| <listitem> |
| <!-- |
| Author: Bruce Momjian <bruce@momjian.us> |
| 2021-04-07 [4f0b0966c] Make use of in-core query id added by commit 5fd9dfa5f5 |
| Author: Bruce Momjian <bruce@momjian.us> |
| 2021-04-07 [f57a2f5e0] Add csvlog output for the new query_id value |
| Author: Bruce Momjian <bruce@momjian.us> |
| 2021-04-20 [9660834dd] adjust query id feature to use pg_stat_activity.query_id |
| Author: Bruce Momjian <bruce@momjian.us> |
| 2021-05-03 [f7a97b6ec] Update query_id computation |
| Author: Alvaro Herrera <alvherre@alvh.no-ip.org> |
| 2021-05-15 [cafde58b3] Allow compute_query_id to be set to 'auto' and make it d |
| --> |
| |
| <para> |
| If server parameter <xref linkend="guc-compute-query-id"/> |
| is enabled, display the query id in <link |
| linkend="monitoring-pg-stat-activity-view"><structname>pg_stat_activity</structname></link>, |
| <link linkend="sql-explain"><command>EXPLAIN |
| VERBOSE</command></link>, <link |
| linkend="runtime-config-logging">csvlog</link>, and optionally in |
| <xref linkend="guc-log-line-prefix"/> (Julien Rouhaud) |
| </para> |
| |
| <para> |
| A query id computed by an extension will also be displayed. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Stephen Frost <sfrost@snowman.net> |
| 2021-03-16 [94d13d474] Improve logging of auto-vacuum and auto-analyze |
| --> |
| |
| <para> |
| Improve logging of <link linkend="autovacuum">auto-vacuum</link> |
| and auto-analyze (Stephen Frost, Jakub Wartak) |
| </para> |
| |
| <para> |
| This reports I/O timings for auto-vacuum and auto-analyze if <xref |
| linkend="guc-track-io-timing"/> is enabled. Also, report buffer |
| read and dirty rates for auto-analyze. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Michael Paquier <michael@paquier.xyz> |
| 2021-04-07 [9afffcb83] Add some information about authenticated identity via lo |
| --> |
| |
| <para> |
| Add information about the original user name supplied by the |
| client to the output of <xref linkend="guc-log-connections"/> |
| (Jacob Champion) |
| </para> |
| </listitem> |
| |
| </itemizedlist> |
| |
| </sect4> |
| |
| <sect4> |
| <title>System Views</title> |
| |
| <itemizedlist> |
| |
| <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 |
| --> |
| |
| <para> |
| Add system view <link |
| linkend="copy-progress-reporting"><structname>pg_stat_progress_copy</structname></link> |
| to report <command>COPY</command> progress (Josef Šimánek, |
| Matthias van de Meent) |
| </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 |
| --> |
| |
| <para> |
| Add system view <link |
| linkend="monitoring-pg-stat-wal-view"><structname>pg_stat_wal</structname></link> |
| to report <acronym>WAL</acronym> activity (Masahiro Ikeda) |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Amit Kapila <akapila@postgresql.org> |
| 2020-10-08 [986816750] Track statistics for spilling of changes from ReorderBuf |
| Author: Amit Kapila <akapila@postgresql.org> |
| 2020-10-20 [03d51b776] Change the attribute name in pg_stat_replication_slots v |
| Author: Amit Kapila <akapila@postgresql.org> |
| 2020-10-29 [8e90ec558] Track statistics for streaming of changes from ReorderBu |
| Author: Amit Kapila <akapila@postgresql.org> |
| 2021-04-16 [f5fc2f5b2] Add information of total data processed to replication s |
| --> |
| |
| <para> |
| Add system view <link |
| linkend="monitoring-pg-stat-replication-slots-view"><structname>pg_stat_replication_slots</structname></link> |
| to report replication slot activity (Masahiko Sawada, Amit Kapila, |
| Vignesh C) |
| </para> |
| |
| <para> |
| The function <link |
| linkend="monitoring-stats-functions"><function>pg_stat_reset_replication_slot()</function></link> |
| resets slot statistics. |
| </para> |
| </listitem> |
| |
| <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 |
| --> |
| |
| <para> |
| Add system view <link |
| linkend="view-pg-backend-memory-contexts"><structname>pg_backend_memory_contexts</structname></link> |
| to report session memory usage (Atsushi Torikoshi, Fujii Masao) |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Fujii Masao <fujii@postgresql.org> |
| 2021-04-06 [43620e328] Add function to log the memory contexts of specified bac |
| --> |
| |
| <para> |
| Add function <link |
| linkend="functions-admin-signal"><function>pg_log_backend_memory_contexts()</function></link> |
| to output the memory contexts of arbitrary backends (Atsushi |
| Torikoshi) |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Magnus Hagander <magnus@hagander.net> |
| 2021-01-17 [960869da0] Add pg_stat_database counters for sessions and session t |
| --> |
| |
| <para> |
| Add session statistics to the <link |
| linkend="monitoring-pg-stat-database-view"><structname>pg_stat_database</structname></link> |
| system view (Laurenz Albe) |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Fujii Masao <fujii@postgresql.org> |
| 2020-07-20 [d05b172a7] Add generic_plans and custom_plans fields into pg_prepar |
| --> |
| |
| <para> |
| Add columns to <link |
| linkend="view-pg-prepared-statements"><structname>pg_prepared_statements</structname></link> |
| to report generic and custom plan counts (Atsushi Torikoshi, |
| Kyotaro Horiguchi) |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Fujii Masao <fujii@postgresql.org> |
| 2021-02-15 [46d6e5f56] Display the time when the process started waiting for th |
| --> |
| |
| <para> |
| Add lock wait start time to <link |
| linkend="view-pg-locks"><structname>pg_locks</structname></link> |
| (Atsushi Torikoshi) |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Fujii Masao <fujii@postgresql.org> |
| 2021-03-15 [d75288fb2] Make archiver process an auxiliary process. |
| --> |
| |
| <para> |
| Make the archiver process visible in |
| <structname>pg_stat_activity</structname> (Kyotaro Horiguchi) |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Fujii Masao <fujii@postgresql.org> |
| 2021-03-24 [84007043f] Rename wait event WalrcvExit to WalReceiverExit. |
| --> |
| |
| <para> |
| Add wait event <link |
| linkend="monitoring-pg-stat-activity-view"><literal>WalReceiverExit</literal></link> |
| to report <acronym>WAL</acronym> receiver exit wait time (Fujii |
| Masao) |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Peter Eisentraut <peter@eisentraut.org> |
| 2021-02-17 [f40c6969d] Routine usage information schema tables |
| --> |
| |
| <para> |
| Implement information schema view <link |
| linkend="infoschema-routine-column-usage"><structname>routine_column_usage</structname></link> |
| to track columns referenced by function and procedure default |
| expressions (Peter Eisentraut) |
| </para> |
| </listitem> |
| |
| </itemizedlist> |
| |
| </sect4> |
| |
| <sect4> |
| <title>Authentication</title> |
| |
| <itemizedlist> |
| |
| <listitem> |
| <!-- |
| Author: Andrew Dunstan <andrew@dunslane.net> |
| 2021-03-29 [6d7a6feac] Allow matching the DN of a client certificate for authen |
| --> |
| |
| <para> |
| Allow an SSL certificate's distinguished name (<acronym>DN</acronym>) |
| to be matched for client certificate authentication (Andrew |
| Dunstan) |
| </para> |
| |
| <para> |
| The new <link |
| linkend="auth-pg-hba-conf"><filename>pg_hba.conf</filename></link> |
| option <literal>clientname=DN</literal> allows comparison with |
| certificate attributes beyond the <literal>CN</literal> and can |
| be combined with ident maps. |
| </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 |
| --> |
| |
| <para> |
| Allow <filename>pg_hba.conf</filename> and <link |
| linkend="auth-username-maps"><filename>pg_ident.conf</filename></link> |
| 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: Peter Eisentraut <peter@eisentraut.org> |
| 2021-02-18 [f5465fade] Allow specifying CRL directory |
| --> |
| |
| <para> |
| Allow the specification of a certificate revocation list |
| (<acronym>CRL</acronym>) directory (Kyotaro Horiguchi) |
| </para> |
| |
| <para> |
| This is controlled by server parameter <xref |
| linkend="guc-ssl-crl-dir"/> and libpq connection option |
| <xref linkend='libpq-connect-sslcrldir'/>. Previously only |
| single <acronym>CRL</acronym> 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> |
| |
| </itemizedlist> |
| |
| </sect4> |
| |
| <sect4> |
| <title>Server Configuration</title> |
| |
| <itemizedlist> |
| |
| <listitem> |
| <!-- |
| Author: Tom Lane <tgl@sss.pgh.pa.us> |
| 2021-01-06 [9877374be] Add idle_session_timeout. |
| --> |
| |
| <para> |
| Add server parameter <xref linkend="guc-idle-session-timeout"/> |
| to close idle sessions (Li Japin) |
| </para> |
| |
| <para> |
| This is similar to <xref |
| linkend="guc-idle-in-transaction-session-timeout"/>. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Stephen Frost <sfrost@snowman.net> |
| 2021-03-24 [bbcc4eb2e] Change checkpoint_completion_target default to 0.9 |
| --> |
| |
| <para> |
| Change <xref linkend="guc-checkpoint-completion-target"/> default |
| to 0.9 (Stephen Frost) |
| </para> |
| |
| <para> |
| The previous default was 0.5. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Michael Paquier <michael@paquier.xyz> |
| 2020-08-03 [b8fdee7d0] Add %P to log_line_prefix for parallel group leader |
| --> |
| |
| <para> |
| Allow <literal>%P</literal> |
| in <xref linkend="guc-log-line-prefix"/> to report the |
| parallel group leader's PID for a parallel worker (Justin Pryzby) |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Michael Paquier <michael@paquier.xyz> |
| 2020-11-07 [a05dbf477] Add GUC_LIST_INPUT and GUC_LIST_QUOTE to unix_socket_dir |
| --> |
| |
| <para> |
| Allow <xref linkend="guc-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. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Thomas Munro <tmunro@postgresql.org> |
| 2020-07-31 [84b1c63ad] Preallocate some DSM space at startup. |
| --> |
| |
| <para> |
| Allow startup allocation of dynamic shared memory (Thomas Munro) |
| </para> |
| |
| <para> |
| This is controlled by <xref |
| linkend="guc-min-dynamic-shared-memory"/>. This allows more |
| use of huge pages. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Thomas Munro <tmunro@postgresql.org> |
| 2020-07-17 [d2bddc250] Add huge_page_size setting for use on Linux. |
| --> |
| |
| <para> |
| Add server parameter <xref linkend="guc-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: Heikki Linnakangas <heikki.linnakangas@iki.fi> |
| 2020-11-12 [9c4f5192f] Allow pg_rewind to use a standby server as the source sy |
| --> |
| |
| <para> |
| Allow standby servers to be rewound via <link |
| linkend="app-pgrewind"><application>pg_rewind</application></link> |
| (Heikki Linnakangas) |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Fujii Masao <fujii@postgresql.org> |
| 2020-12-02 [942305a36] Allow restore_command parameter to be changed with reloa |
| --> |
| |
| <para> |
| Allow the <xref linkend="guc-restore-command"/> setting to be changed |
| during a server reload (Sergei Kornilov) |
| </para> |
| |
| <para> |
| You can also set <varname>restore_command</varname> to an empty |
| string and reload to force recovery to only read from the <link |
| linkend="storage-file-layout"><filename>pg_wal</filename></link> |
| directory. |
| </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 |
| --> |
| |
| <para> |
| Add server parameter <xref |
| linkend="guc-log-recovery-conflict-waits"/> to report long recovery |
| conflict wait times (Bertrand Drouvot, Masahiko Sawada) |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Peter Eisentraut <peter@eisentraut.org> |
| 2021-01-18 [15251c0a6] Pause recovery for insufficient parameter settings |
| --> |
| |
| <para> |
| Pause recovery on a hot standby server if the primary changes its |
| parameters in a way that prevents replay on the standby (Peter |
| Eisentraut) |
| </para> |
| |
| <para> |
| Previously the standby would shut down immediately. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Robert Haas <rhaas@postgresql.org> |
| 2021-03-11 [32fd2b57d] Be clear about whether a recovery pause has taken effect |
| --> |
| |
| <para> |
| Add function <link |
| linkend="functions-recovery-control"><function>pg_get_wal_replay_pause_state()</function></link> |
| to report the recovery state (Dilip Kumar) |
| </para> |
| |
| <para> |
| It gives more detailed information than <link |
| linkend="functions-recovery-control"><function>pg_is_wal_replay_paused()</function></link>, |
| which still exists. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Tom Lane <tgl@sss.pgh.pa.us> |
| 2021-01-05 [bf8a662c9] Introduce a new GUC_REPORT setting "in_hot_standby". |
| --> |
| |
| <para> |
| Add new read-only server parameter <xref linkend="guc-in-hot-standby"/> |
| (Haribabu Kommi, Greg Nancarrow, Tom Lane) |
| </para> |
| |
| <para> |
| This allows clients to easily detect whether they are connected to |
| a hot standby server. |
| </para> |
| </listitem> |
| |
| <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: Thomas Munro <tmunro@postgresql.org> |
| 2021-03-20 [61752afb2] Provide recovery_init_sync_method=syncfs. |
| --> |
| |
| <para> |
| Allow file system sync at the start of crash recovery on Linux |
| (Thomas Munro) |
| </para> |
| |
| <para> |
| By default, <productname>PostgreSQL</productname> |
| opens and fsyncs each data file in the database cluster at the |
| start of crash recovery. A new setting, <xref |
| linkend="guc-recovery-init-sync-method"/><literal>=syncfs</literal>, |
| instead syncs each filesystem used by the cluster. |
| This allows for faster recovery on systems with many database files. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Michael Paquier <michael@paquier.xyz> |
| 2020-07-12 [b1e48bbe6] Include replication origins in SQL functions for commit |
| --> |
| |
| <para> |
| Add function <link |
| linkend="functions-info"><function>pg_xact_commit_timestamp_origin()</function></link> |
| to return the commit timestamp and replication origin of the |
| specified transaction (Movead Li) |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Michael Paquier <michael@paquier.xyz> |
| 2020-07-12 [b1e48bbe6] Include replication origins in SQL functions for commit |
| --> |
| |
| <para> |
| Add the replication origin to the record returned by <link |
| linkend="functions-info"><function>pg_last_committed_xact()</function></link> |
| (Movead Li) |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Michael Paquier <michael@paquier.xyz> |
| 2020-06-14 [cc072641d] Replace superuser check by ACLs for replication origin f |
| --> |
| |
| <para> |
| Allow replication <link linkend="functions-replication">origin |
| functions</link> to be controlled using standard function permission |
| controls (Martín Marqués) |
| </para> |
| |
| <para> |
| Previously these functions could only be executed by superusers, |
| and this is still the default. |
| </para> |
| </listitem> |
| |
| </itemizedlist> |
| |
| <sect4> |
| <title><link linkend="logical-replication">Logical Replication</link></title> |
| |
| <itemizedlist> |
| |
| <listitem> |
| <!-- |
| Author: Amit Kapila <akapila@postgresql.org> |
| 2020-09-03 [464824323] Add support for streaming to built-in logical replicatio |
| 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> |
| 2020-08-08 [7259736a6] Implement streaming mode in ReorderBuffer. |
| --> |
| |
| <para> |
| Allow logical replication to stream long in-progress transactions |
| to subscribers (Dilip Kumar, Amit Kapila, Ajin |
| Cherian, Tomas Vondra, Nikhil Sontakke, Stas Kelvich) |
| </para> |
| |
| <para> |
| Previously transactions that exceeded <xref |
| linkend="guc-logical-decoding-work-mem"/> were written to disk |
| until the transaction completed. |
| </para> |
| </listitem> |
| |
| <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 <acronym>API</acronym> to allow |
| streaming large in-progress transactions (Tomas Vondra, Dilip |
| Kumar, Amit Kapila) |
| </para> |
| |
| <para> |
| The output functions begin with <link |
| linkend="logicaldecoding-output-plugin-stream-start"><literal>stream</literal></link>. |
| <application>test_decoding</application> also supports these. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Amit Kapila <akapila@postgresql.org> |
| 2021-02-12 [ce0fdbfe9] Allow multiple xacts during table sync in logical replic |
| --> |
| |
| <para> |
| Allow multiple transactions during table sync in logical |
| replication (Peter Smith, Amit Kapila, Takamichi Osumi) |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Amit Kapila <akapila@postgresql.org> |
| 2020-07-20 [0bead9af4] Immediately WAL-log subtransaction and top-level XID ass |
| --> |
| |
| <para> |
| Immediately <acronym>WAL</acronym>-log subtransaction and top-level |
| <type>XID</type> association (Tomas Vondra, Dilip Kumar, Amit |
| Kapila) |
| </para> |
| |
| <para> |
| This is useful for logical decoding. |
| </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 |
| --> |
| |
| <para> |
| Enhance logical decoding APIs to handle two-phase commits (Ajin |
| Cherian, Amit Kapila, Nikhil Sontakke, Stas Kelvich) |
| </para> |
| |
| <para> |
| This is controlled via <link |
| linkend="functions-replication"><function>pg_create_logical_replication_slot()</function></link>. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Amit Kapila <akapila@postgresql.org> |
| 2020-07-23 [c55040ccd] WAL Log invalidations at command end with wal_level=logi |
| --> |
| |
| <para> |
| Add cache invalidation messages to the <acronym>WAL</acronym> |
| during command completion when using logical replication (Dilip |
| Kumar, Tomas Vondra, Amit Kapila) |
| </para> |
| |
| <para> |
| This allows logical streaming of in-progress transactions. |
| When logical replication is disabled, invalidation messages are |
| generated only at transaction completion. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Amit Kapila <akapila@postgresql.org> |
| 2020-10-15 [d7eb52d71] Execute invalidation messages for each XLOG_XACT_INVALID |
| --> |
| |
| <para> |
| Allow logical decoding to more efficiently process cache |
| invalidation messages (Dilip Kumar) |
| </para> |
| |
| <para> |
| This allows <link linkend="logicaldecoding">logical decoding</link> |
| to work efficiently in presence of a large amount of |
| <acronym>DDL</acronym>. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Amit Kapila <akapila@postgresql.org> |
| 2021-04-06 [ac4645c01] Allow pgoutput to send logical decoding messages. |
| --> |
| |
| <para> |
| Allow control over whether logical decoding messages are sent to |
| the replication stream (David Pirotte, Euler Taveira) |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Tom Lane <tgl@sss.pgh.pa.us> |
| 2020-07-18 [9de77b545] Allow logical replication to transfer data in binary for |
| --> |
| |
| <para> |
| Allow logical replication subscriptions to use binary transfer mode |
| (Dave Cramer) |
| </para> |
| |
| <para> |
| This is faster than text mode, but slightly less robust. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Amit Kapila <akapila@postgresql.org> |
| 2021-03-30 [f64ea6dc5] Add a xid argument to the filter_prepare callback for ou |
| --> |
| |
| <para> |
| Allow logical decoding to be filtered by xid (Markus Wanner) |
| </para> |
| </listitem> |
| |
| </itemizedlist> |
| </sect4> |
| |
| </sect3> |
| |
| <sect3> |
| <title><link linkend="sql-select"><command>SELECT</command></link>, <link linkend="sql-insert"><command>INSERT</command></link></title> |
| |
| <itemizedlist> |
| |
| <listitem> |
| <!-- |
| Author: Tom Lane <tgl@sss.pgh.pa.us> |
| 2020-09-18 [06a7c3154] Allow most keywords to be used as column labels without |
| --> |
| |
| <para> |
| Reduce the number of keywords that can't be used as column labels |
| without <literal>AS</literal> (Mark Dilger) |
| </para> |
| |
| <para> |
| There are now 90% fewer restricted keywords. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Peter Eisentraut <peter@eisentraut.org> |
| 2021-03-31 [055fee7eb] Allow an alias to be attached to a <literal>JOIN ... USING</literal> |
| --> |
| |
| <para> |
| Allow an alias to be specified for <literal>JOIN</literal>'s |
| <literal>USING</literal> clause (Peter Eisentraut) |
| </para> |
| |
| <para> |
| The alias is created by writing <literal>AS</literal> after the |
| <literal>USING</literal> clause. It can be used as a table |
| qualification for the merged <literal>USING</literal> columns. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Tomas Vondra <tomas.vondra@postgresql.org> |
| 2021-03-18 [be45be9c3] Implement GROUP BY DISTINCT |
| --> |
| |
| <para> |
| Allow <literal>DISTINCT</literal> to be added to <literal>GROUP |
| BY</literal> to remove duplicate <literal>GROUPING SET</literal> |
| combinations (Vik Fearing) |
| </para> |
| |
| <para> |
| For example, <literal>GROUP BY CUBE (a,b), CUBE (b,c)</literal> |
| will generate duplicate grouping combinations without |
| <literal>DISTINCT</literal>. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Tom Lane <tgl@sss.pgh.pa.us> |
| 2020-11-22 [17958972f] Allow a multi-row <command>INSERT</command> to specify DEFAULTs for a gener |
| --> |
| |
| <para> |
| Properly handle <literal>DEFAULT</literal> entries in multi-row |
| <literal>VALUES</literal> lists in <command>INSERT</command> |
| (Dean Rasheed) |
| </para> |
| |
| <para> |
| Such cases used to throw an error. |
| </para> |
| </listitem> |
| |
| <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 |
| --> |
| |
| <para> |
| Add <acronym>SQL</acronym>-standard <literal>SEARCH</literal> |
| and <literal>CYCLE</literal> clauses for <link |
| linkend="queries-with">common table expressions</link> (Peter |
| Eisentraut) |
| </para> |
| |
| <para> |
| The same results could be accomplished using existing syntax, but |
| much less conveniently. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Tom Lane <tgl@sss.pgh.pa.us> |
| 2021-04-13 [6c0373ab7] Allow table-qualified variable names in ON CONFLICT ... |
| --> |
| |
| <para> |
| Allow column names in the <literal>WHERE</literal> clause |
| of <literal>ON CONFLICT</literal> to be table-qualified (Tom Lane) |
| </para> |
| |
| <para> |
| Only the target table can be referenced, however. |
| </para> |
| </listitem> |
| |
| </itemizedlist> |
| |
| </sect3> |
| |
| <sect3> |
| <title>Utility Commands</title> |
| |
| <itemizedlist> |
| |
| <listitem> |
| <!-- |
| Author: Thomas Munro <tmunro@postgresql.org> |
| 2021-03-17 [9e7ccd9ef] Enable parallelism in REFRESH MATERIALIZED VIEW. |
| --> |
| |
| <para> |
| Allow <link linkend="sql-refreshmaterializedview"><command>REFRESH |
| MATERIALIZED VIEW</command></link> to use parallelism (Bharath |
| Rupireddy) |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Michael Paquier <michael@paquier.xyz> |
| 2021-02-04 [c5b286047] Add TABLESPACE option to REINDEX |
| Author: Michael Paquier <michael@paquier.xyz> |
| 2021-03-03 [57e6db706] Add - -tablespace option to reindexdb |
| --> |
| |
| <para> |
| Allow <link linkend="sql-reindex"><command>REINDEX</command></link> |
| to change the tablespace of the new index (Alexey Kondratov, |
| Michael Paquier, Justin Pryzby) |
| </para> |
| |
| <para> |
| This is done by specifying a <literal>TABLESPACE</literal> clause. |
| A <option>--tablespace</option> option was also added to <link |
| linkend="app-reindexdb"><application>reindexdb</application></link> |
| to control this. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Michael Paquier <michael@paquier.xyz> |
| 2020-09-08 [a6642b3ae] Add support for partitioned tables and indexes in REINDE |
| --> |
| |
| <para> |
| Allow <command>REINDEX</command> to process all child tables or |
| indexes of a partitioned relation (Justin Pryzby, Michael Paquier) |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Alvaro Herrera <alvherre@alvh.no-ip.org> |
| 2020-11-25 [c98763bf5] Avoid spurious waits in concurrent indexing |
| Author: Alvaro Herrera <alvherre@alvh.no-ip.org> |
| 2021-01-15 [f9900df5f] Avoid spurious wait in concurrent reindex |
| Author: Alvaro Herrera <alvherre@alvh.no-ip.org> |
| 2021-02-23 [d9d076222] VACUUM: ignore indexing operations with CONCURRENTLY |
| --> |
| |
| <para> |
| Allow index commands using <command>CONCURRENTLY</command> to |
| avoid waiting for the completion of other operations using |
| <command>CONCURRENTLY</command> (Álvaro Herrera) |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Tom Lane <tgl@sss.pgh.pa.us> |
| 2020-07-25 [0a0727ccf] Improve performance of binary COPY FROM through better b |
| --> |
| |
| <para> |
| Improve the performance of <link linkend="sql-copy"><command>COPY |
| FROM</command></link> in binary mode (Bharath Rupireddy, Amit |
| Langote) |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Tom Lane <tgl@sss.pgh.pa.us> |
| 2020-11-04 [40c24bfef] Improve our ability to regurgitate SQL-syntax function c |
| --> |
| |
| <para> |
| Preserve <acronym>SQL</acronym> standard syntax for SQL-defined |
| functions in <link linkend="sql-createview">view definitions</link> |
| (Tom Lane) |
| </para> |
| |
| <para> |
| Previously, calls to SQL-standard functions such as <link |
| linkend="functions-datetime-extract"><function>EXTRACT()</function></link> |
| were shown in plain function-call syntax. The original syntax |
| is now preserved when displaying a view or rule. |
| </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 <acronym>SQL</acronym>-standard |
| clause <literal>GRANTED BY</literal> to <link |
| linkend="sql-grant"><command>GRANT</command></link> and <link |
| linkend="sql-revoke"><command>REVOKE</command></link> (Peter |
| Eisentraut) |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Tom Lane <tgl@sss.pgh.pa.us> |
| 2020-11-14 [92bf7e2d0] Provide the OR REPLACE option for CREATE TRIGGER. |
| --> |
| |
| <para> |
| Add <literal>OR REPLACE</literal> option for <link |
| linkend="sql-createtrigger"><command>CREATE TRIGGER</command></link> |
| (Takamichi Osumi) |
| </para> |
| |
| <para> |
| This allows pre-existing triggers to be conditionally replaced. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Fujii Masao <fujii@postgresql.org> |
| 2021-04-08 [8ff1c9464] Allow TRUNCATE command to truncate foreign tables. |
| --> |
| |
| <para> |
| Allow <link |
| linkend="sql-truncate"><command>TRUNCATE</command></link> to |
| operate on foreign tables (Kazutaka Onishi, Kohei KaiGai) |
| </para> |
| |
| <para> |
| The <link |
| linkend="postgres-fdw"><application>postgres_fdw</application></link> |
| module also now supports this. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Peter Eisentraut <peter@eisentraut.org> |
| 2021-04-06 [82ed7748b] ALTER SUBSCRIPTION ... ADD/DROP PUBLICATION |
| --> |
| |
| <para> |
| Allow publications to be more easily added to and removed from a |
| subscription (Japin Li) |
| </para> |
| |
| <para> |
| The new syntax is <link |
| linkend="sql-altersubscription"><command>ALTER SUBSCRIPTION |
| ... ADD/DROP PUBLICATION</command></link>. This avoids having to |
| specify all publications to add/remove entries. |
| </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 |
| --> |
| |
| <para> |
| Add primary keys, unique constraints, and foreign keys to <link |
| linkend="catalogs">system catalogs</link> (Peter Eisentraut) |
| </para> |
| |
| <para> |
| These changes help <acronym>GUI</acronym> tools analyze the system |
| catalogs. The existing unique indexes of catalogs now have |
| associated <literal>UNIQUE</literal> or <literal>PRIMARY |
| KEY</literal> constraints. Foreign key relationships are not |
| actually stored or implemented as constraints, but can be obtained |
| for display from the |
| function <link linkend="functions-info-catalog-table">pg_get_catalog_foreign_keys()</link>. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Peter Eisentraut <peter@eisentraut.org> |
| 2020-09-17 [45b980570] Allow CURRENT_ROLE where CURRENT_USER is accepted |
| --> |
| |
| <para> |
| Allow <link |
| linkend="functions-info"><literal>CURRENT_ROLE</literal></link> |
| every place <literal>CURRENT_USER</literal> is accepted (Peter |
| Eisentraut) |
| </para> |
| </listitem> |
| |
| </itemizedlist> |
| |
| </sect3> |
| |
| <sect3> |
| <title>Data Types</title> |
| |
| <itemizedlist> |
| |
| <listitem> |
| <!-- |
| Author: Tom Lane <tgl@sss.pgh.pa.us> |
| 2020-12-09 [c7aba7c14] Support subscripting of arbitrary types, not only arrays |
| --> |
| |
| <para> |
| Allow extensions and built-in data types to implement <link |
| linkend="sql-altertype">subscripting</link> (Dmitry Dolgov) |
| </para> |
| |
| <para> |
| Previously subscript handling was hard-coded into the server, so |
| that subscripting could only be applied to array types. This change |
| allows subscript notation to be used to extract or assign portions |
| of a value of any type for which the concept makes sense. |
| </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 |
| --> |
| |
| <para> |
| Allow subscripting of <link |
| linkend="datatype-json"><type>JSONB</type></link> (Dmitry Dolgov) |
| </para> |
| |
| <para> |
| <type>JSONB</type> subscripting can be used to extract and assign |
| to portions of <type>JSONB</type> documents. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Author: Alexander Korotkov <akorotkov@postgresql.org> |
| 2020-12-20 [6df7a9698] Multirange datatypes |
| Author: Alexander Korotkov <akorotkov@postgresql.org> |
| 2020-12-29 [db6335b5b] Add support of multirange matching to the existing range |
| Author: Alexander Korotkov <akorotkov@postgresql.org> |
| 2020-12-30 [62097a4cc] Fix selectivity estimation @> (anymultirange, anyrange) |
| Author: Alexander Korotkov <akorotkov@postgresql.org> |
| 2021-07-18 [244ad5415] Support for unnest(multirange) |
| --> |
| |
| <para> |
| Add support for <link linkend="rangetypes">multirange data |
| types</link> (Paul Jungwirth, Alexander Korotkov) |
| </para> |
| |
| <para> |
| These are like range data types, but they allow the specification |
| of multiple, ordered, non-overlapping ranges. An associated |
| multirange type is automatically created for every range type. |
| </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 |
| --> |
| |
| <para> |
| Add support for the <link |
| linkend="textsearch-snowball-dictionary">stemming</link> of |
| languages Armenian, Basque, Catalan, Hindi, Serbian, and Yiddish |
| (Peter Eisentraut) |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Tom Lane <tgl@sss.pgh.pa.us> |
| 2020-09-23 [83b61319a] Improve behavior of tsearch_readline(), and remove t_rea |
| --> |
| |
| <para> |
| Allow <link linkend="textsearch-intro-configurations">tsearch data |
| files</link> to have unlimited line lengths (Tom Lane) |
| </para> |
| |
| <para> |
| The previous limit was 4K bytes. Also remove function |
| <function>t_readline()</function>. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Tom Lane <tgl@sss.pgh.pa.us> |
| 2020-07-22 [a57d312a7] Support infinity and -infinity in the numeric data type. |
| --> |
| |
| <para> |
| Add support for <literal>Infinity</literal> and |
| <literal>-Infinity</literal> values in the <link |
| linkend="datatype-numeric">numeric data type</link> (Tom Lane) |
| </para> |
| |
| <para> |
| Floating-point data types already supported these. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Tom Lane <tgl@sss.pgh.pa.us> |
| 2020-11-23 [0cc993278] Rename the "point is strictly above/below point" compari |
| --> |
| |
| <para> |
| Add <link linkend="functions-geometry">point operators</link> |
| <literal><<|</literal> and <literal>|>></literal> |
| representing strictly above/below tests (Emre Hasegeli) |
| </para> |
| |
| <para> |
| Previously these were called <literal>>^</literal> |
| and <literal><^</literal>, but that naming is inconsistent with |
| other geometric data types. The old names remain available, |
| but may someday be removed. |
| </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 <link |
| linkend="datatype-pg-lsn"><type>LSN</type></link> and numeric |
| (byte) values (Fujii Masao) |
| </para> |
| </listitem> |
| |
| <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 <link linkend="protocol-format-codes">binary data |
| transfer</link> to be more forgiving of array and record |
| <type>OID</type> 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> |
| Create composite array types for system catalogs (Wenjing Zeng) |
| </para> |
| |
| <para> |
| User-defined relations have long had composite types associated |
| with them, and also array types over those composite types. |
| System catalogs now do as well. This change also fixes an |
| inconsistency that creating a user-defined table in single-user |
| mode would fail to create a composite array type. |
| </para> |
| </listitem> |
| |
| </itemizedlist> |
| |
| </sect3> |
| |
| <sect3> |
| <title>Functions</title> |
| |
| <itemizedlist> |
| |
| <listitem> |
| <!-- |
| Author: Peter Eisentraut <peter@eisentraut.org> |
| 2021-04-07 [e717a9a18] SQL-standard function body |
| --> |
| |
| <para> |
| Allow <acronym>SQL</acronym>-language <link |
| linkend="sql-createfunction">functions</link> and <link |
| linkend="sql-createprocedure">procedures</link> to use |
| <acronym>SQL</acronym>-standard function bodies (Peter Eisentraut) |
| </para> |
| |
| <para> |
| Previously only string-literal function bodies were supported. |
| When writing a function or procedure in SQL-standard syntax, |
| the body is parsed immediately and stored as a parse tree. |
| This allows better tracking of function dependencies, and can have |
| security benefits. |
| </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 |
| --> |
| |
| <para> |
| Allow <link linkend="sql-createprocedure">procedures</link> to have |
| <literal>OUT</literal> parameters (Peter Eisentraut) |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Tom Lane <tgl@sss.pgh.pa.us> |
| 2020-11-04 [9e38c2bb5] Declare assorted array functions using anycompatible not |
| --> |
| |
| <para> |
| Allow some array functions to operate on a mix of compatible data |
| types (Tom Lane) |
| </para> |
| |
| <para> |
| The functions <link |
| linkend="functions-array"><function>array_append()</function></link>, |
| <function>array_prepend()</function>, |
| <function>array_cat()</function>, |
| <function>array_position()</function>, |
| <function>array_positions()</function>, |
| <function>array_remove()</function>, |
| <function>array_replace()</function>, and <link |
| linkend="functions-math"><function>width_bucket()</function></link> |
| now take <type>anycompatiblearray</type> instead |
| of <type>anyarray</type> arguments. This makes them less fussy |
| about exact matches of argument types. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Tom Lane <tgl@sss.pgh.pa.us> |
| 2021-03-03 [0a687c8f1] Add trim_array() function. |
| --> |
| |
| <para> |
| Add <acronym>SQL</acronym>-standard <link |
| linkend="functions-array"><function>trim_array()</function></link> |
| function (Vik Fearing) |
| </para> |
| |
| <para> |
| This could already be done with array slices, but less easily. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Tom Lane <tgl@sss.pgh.pa.us> |
| 2021-01-18 [a6cf3df4e] Add bytea equivalents of ltrim() and rtrim(). |
| --> |
| |
| <para> |
| Add <type>bytea</type> equivalents of <link |
| linkend="functions-binarystring"><function>ltrim()</function></link> |
| and <function>rtrim()</function> (Joel Jacobson) |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Tom Lane <tgl@sss.pgh.pa.us> |
| 2020-11-13 [ec0294fb2] Support negative indexes in split_part(). |
| --> |
| |
| <para> |
| Support negative indexes in <link |
| linkend="functions-string"><function>split_part()</function></link> |
| (Nikhil Benesch) |
| </para> |
| |
| <para> |
| Negative values start from the last field and count backward. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Tom Lane <tgl@sss.pgh.pa.us> |
| 2020-09-02 [66f163068] Add string_to_table() function. |
| --> |
| |
| <para> |
| Add <link |
| linkend="functions-string"><function>string_to_table()</function></link> |
| function to split a string on delimiters (Pavel Stehule) |
| </para> |
| |
| <para> |
| This is similar to the <link |
| linkend="functions-string"><function>regexp_split_to_table()</function></link> |
| function. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Peter Eisentraut <peter@eisentraut.org> |
| 2021-03-29 [f37fec837] Add unistr function |
| --> |
| |
| <para> |
| Add <link |
| linkend="functions-string"><function>unistr()</function></link> |
| 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 strings. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Peter Eisentraut <peter@eisentraut.org> |
| 2021-03-06 [f9a0392e1] Add bit_xor aggregate function |
| --> |
| |
| <para> |
| Add <link |
| linkend="functions-aggregate"><function>bit_xor()</function></link> |
| XOR aggregate function (Alexey Bashtanov) |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Peter Eisentraut <peter@eisentraut.org> |
| 2021-03-23 [a6715af1e] Add bit_count SQL function |
| --> |
| |
| <para> |
| Add function <link |
| linkend="functions-binarystring"><function>bit_count()</function></link> |
| to return the number of bits set in a bit or byte string (David |
| Fetter) |
| </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 |
| --> |
| |
| <para> |
| Add <link |
| linkend="functions-datetime-bin"><function>date_bin()</function></link> |
| function (John Naylor) |
| </para> |
| |
| <para> |
| This function <quote>bins</quote> input timestamps, grouping them |
| into intervals of a uniform length aligned with a specified origin. |
| </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 |
| --> |
| |
| <para> |
| Allow <link |
| linkend="functions-datetime"><function>make_timestamp()</function></link>/<function>make_timestamptz()</function> |
| to accept negative years (Peter Eisentraut) |
| </para> |
| |
| <para> |
| Negative values are interpreted as <literal>BC</literal> years. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Peter Eisentraut <peter@eisentraut.org> |
| 2020-06-29 [78c887679] Add current substring regular expression syntax |
| --> |
| |
| <para> |
| Add newer regular expression <link |
| linkend="functions-string"><function>substring()</function></link> |
| syntax (Peter Eisentraut) |
| </para> |
| |
| <para> |
| The new SQL-standard syntax is <literal>SUBSTRING(text SIMILAR |
| pattern ESCAPE escapechar)</literal>. The previous standard syntax was |
| <literal>SUBSTRING(text FROM pattern FOR escapechar)</literal>, |
| which is still accepted by <productname>PostgreSQL</productname>. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Tom Lane <tgl@sss.pgh.pa.us> |
| 2021-02-25 [2a0af7fe4] Allow complemented character class escapes within regex |
| --> |
| |
| <para> |
| Allow complemented character class escapes <link |
| linkend="posix-escape-sequences">\D</link>, <literal>\S</literal>, |
| and <literal>\W</literal> within regular expression brackets (Tom Lane) |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Tom Lane <tgl@sss.pgh.pa.us> |
| 2021-02-25 [2a0af7fe4] Allow complemented character class escapes within regex |
| --> |
| |
| <para> |
| Add <link |
| linkend="posix-bracket-expressions"><literal>[[:word:]]</literal></link> |
| as a regular expression character class, equivalent |
| to <literal>\w</literal> (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 |
| --> |
| |
| <para> |
| Allow more flexible data types for default values of <link |
| linkend="functions-window"><function>lead()</function></link> |
| and <function>lag()</function> window functions (Vik Fearing) |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Tom Lane <tgl@sss.pgh.pa.us> |
| 2020-11-04 [fac83dbd6] Remove underflow error in float division with infinite d |
| --> |
| |
| <para> |
| Make non-zero <link linkend="datatype-float">floating-point values</link> |
| divided by infinity return zero (Kyotaro Horiguchi) |
| </para> |
| |
| <para> |
| Previously such operations produced underflow errors. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Tom Lane <tgl@sss.pgh.pa.us> |
| 2020-07-20 [4fb6aeb4f] Make floating-point "NaN / 0" return NaN instead of rais |
| --> |
| |
| <para> |
| Make floating-point division of NaN by zero return NaN |
| (Tom Lane) |
| </para> |
| |
| <para> |
| Previously this returned an error. |
| </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. |
| --> |
| |
| <para> |
| Cause <link |
| linkend="functions-math"><function>exp()</function></link> and |
| <function>power()</function> for negative-infinity exponents to |
| return zero (Tom Lane) |
| </para> |
| |
| <para> |
| Previously they often returned underflow errors. |
| </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 |
| --> |
| |
| <para> |
| Improve the accuracy of geometric computations involving |
| infinity (Tom Lane) |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Tom Lane <tgl@sss.pgh.pa.us> |
| 2020-07-25 [8a37951ee] Mark built-in coercion functions as leakproof where poss |
| --> |
| |
| <para> |
| Mark built-in type coercion functions as leakproof where possible |
| (Tom Lane) |
| </para> |
| |
| <para> |
| This allows more use of functions that require type conversion in |
| security-sensitive situations. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Michael Paquier <michael@paquier.xyz> |
| 2020-07-15 [2a10fdc43] Eliminate cache lookup errors in SQL functions for objec |
| --> |
| |
| <para> |
| Change <link |
| linkend="functions-info"><function>pg_describe_object()</function></link>, |
| <function>pg_identify_object()</function>, and |
| <function>pg_identify_object_as_address()</function> to always report |
| helpful error messages for non-existent objects (Michael Paquier) |
| </para> |
| </listitem> |
| |
| </itemizedlist> |
| |
| </sect3> |
| |
| <sect3> |
| <title><link linkend="plpgsql">PL/pgSQL</link></title> |
| |
| <itemizedlist> |
| |
| <listitem> |
| <!-- |
| Author: Tom Lane <tgl@sss.pgh.pa.us> |
| 2021-01-04 [c9d529848] Re-implement pl/pgsql's expression and assignment parsin |
| --> |
| |
| <para> |
| Improve PL/pgSQL's <link |
| linkend="plpgsql-expressions">expression</link> and <link |
| linkend="plpgsql-statements-assignment">assignment</link> parsing |
| (Tom Lane) |
| </para> |
| |
| <para> |
| This change allows assignment to array slices and nested record |
| fields. |
| </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 |
| --> |
| |
| <para> |
| Allow plpgsql's <link |
| linkend="plpgsql-control-structures"><literal>RETURN |
| QUERY</literal></link> to execute its query using parallelism |
| (Tom Lane) |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Tom Lane <tgl@sss.pgh.pa.us> |
| 2021-01-25 [ee895a655] Improve performance of repeated CALLs within plpgsql pro |
| --> |
| |
| <para> |
| Improve performance of repeated <link |
| linkend="plpgsql-transactions">CALL</link>s within plpgsql |
| procedures (Pavel Stehule, Tom Lane) |
| </para> |
| </listitem> |
| |
| </itemizedlist> |
| |
| </sect3> |
| |
| <sect3> |
| <title>Client Interfaces</title> |
| |
| <itemizedlist> |
| |
| <listitem> |
| <!-- |
| Author: Alvaro Herrera <alvherre@alvh.no-ip.org> |
| 2021-03-15 [acb7e4eb6] Implement pipeline mode in libpq |
| --> |
| |
| <para> |
| Add <link linkend="libpq-pipeline-sending">pipeline</link> mode |
| to libpq (Craig Ringer, Matthieu Garrigues, Álvaro Herrera) |
| </para> |
| |
| <para> |
| This allows multiple queries to be sent, only waiting for completion |
| when a specific synchronization message is sent. |
| </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 |
| --> |
| |
| <para> |
| Enhance libpq's <link |
| linkend="libpq-paramkeywords"><option>target_session_attrs</option></link> |
| parameter options (Haribabu Kommi, Greg Nancarrow, Vignesh C, |
| Tom Lane) |
| </para> |
| |
| <para> |
| The new options are <literal>read-only</literal>, |
| <literal>primary</literal>, <literal>standby</literal>, and |
| <literal>prefer-standby</literal>. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Alvaro Herrera <alvherre@alvh.no-ip.org> |
| 2021-03-30 [198b3716d] Improve PQtrace() output format |
| --> |
| |
| <para> |
| Improve the output format of libpq's <link |
| linkend="libpq-control"><function>PQtrace()</function></link> |
| (Aya Iwata, Álvaro Herrera) |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Michael Meskes <meskes@postgresql.org> |
| 2021-03-24 [ad8305a43] Add DECLARE STATEMENT command to ECPG |
| --> |
| |
| <para> |
| Allow an ECPG SQL identifier to be linked to |
| a specific connection (Hayato Kuroda) |
| </para> |
| |
| <para> |
| This is done via <link |
| linkend="ecpg-sql-declare-statement"><literal>DECLARE |
| ... STATEMENT</literal></link>. |
| </para> |
| </listitem> |
| |
| </itemizedlist> |
| |
| </sect3> |
| |
| <sect3> |
| <title>Client Applications</title> |
| |
| <itemizedlist> |
| |
| <listitem> |
| <!-- |
| Author: Michael Paquier <michael@paquier.xyz> |
| 2020-06-22 [9550ea302] Add - -no-index-cleanup and - -no-truncate to vacuumdb. |
| --> |
| |
| <para> |
| Allow <link |
| linkend="app-vacuumdb"><application>vacuumdb</application></link> |
| to skip index cleanup and truncation (Nathan Bossart) |
| </para> |
| |
| <para> |
| The options are <option>--no-index-cleanup</option> and |
| <option>--no-truncate</option>. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Michael Paquier <michael@paquier.xyz> |
| 2021-03-31 [6568cef26] Add support for - -extension in pg_dump |
| --> |
| |
| <para> |
| Allow <link |
| linkend="app-pgdump"><application>pg_dump</application></link> |
| to dump only certain extensions (Guillaume Lelarge) |
| </para> |
| |
| <para> |
| This is controlled by option <option>--extension</option>. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Dean Rasheed <dean.a.rasheed@gmail.com> |
| 2021-04-06 [6b258e3d6] pgbench: Function to generate random permutations. |
| --> |
| |
| <para> |
| Add <link |
| linkend="pgbench"><application>pgbench</application></link> |
| <function>permute()</function> function to randomly shuffle values |
| (Fabien Coelho, Hironobu Suzuki, Dean Rasheed) |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Fujii Masao <fujii@postgresql.org> |
| 2021-09-01 [d760d942c] pgbench: Fix bug in measurement of disconnection delays. |
| --> |
| |
| <para> |
| Include disconnection times in the reconnection overhead measured |
| by <application>pgbench</application> with <option>-C</option> |
| (Yugo Nagata) |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Tom Lane <tgl@sss.pgh.pa.us> |
| 2020-09-17 [99175141c] Improve common/logging.c's support for multiple verbosit |
| --> |
| |
| <para> |
| Allow multiple verbose option specifications (<option>-v</option>) |
| to increase the logging verbosity (Tom Lane) |
| </para> |
| |
| <para> |
| This behavior is supported by <link |
| linkend="app-pgdump"><application>pg_dump</application></link>, |
| <link |
| linkend="app-pg-dumpall"><application>pg_dumpall</application></link>, |
| and <link |
| linkend="app-pgrestore"><application>pg_restore</application></link>. |
| </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 |
| --> |
| |
| <para> |
| Allow <application>psql</application>'s <literal>\df</literal> |
| and <literal>\do</literal> commands to specify function and |
| operator argument types (Greg Sabino Mullane, Tom Lane) |
| </para> |
| |
| <para> |
| This helps reduce the number of matches printed for overloaded names. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Michael Paquier <michael@paquier.xyz> |
| 2020-09-02 [07f386ede] Add access method names to \d[i|m|t]+ in psql |
| --> |
| |
| <para> |
| Add an access method column to <application>psql</application>'s |
| <literal>\d[i|m|t]+</literal> 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> |
| Allow <application>psql</application>'s <literal>\dt</literal> |
| and <literal>\di</literal> to show <acronym>TOAST</acronym> |
| tables and their indexes (Justin Pryzby) |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Tomas Vondra <tomas.vondra@postgresql.org> |
| 2021-01-20 [ad600bba0] psql \dX: list extended statistics objects |
| --> |
| |
| <para> |
| Add <application>psql</application> command <literal>\dX</literal> |
| to list extended statistics objects (Tatsuro Yamada) |
| </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 |
| --> |
| |
| <para> |
| Fix <application>psql</application>'s <literal>\dT</literal> to |
| understand array syntax and backend grammar aliases, |
| like <literal>int</literal> for <literal>integer</literal> |
| (Greg Sabino Mullane, Tom Lane) |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Tom Lane <tgl@sss.pgh.pa.us> |
| 2021-04-03 [55873a00e] Improve psql's behavior when the editor is exited withou |
| --> |
| |
| <para> |
| When editing the previous query or a file with |
| <application>psql</application>'s <literal>\e</literal>, or using |
| <literal>\ef</literal> and <literal>\ev</literal>, ignore the |
| results if the editor exits without saving (Laurenz Albe) |
| </para> |
| |
| <para> |
| Previously, such edits would load the previous query into |
| the query buffer, and typically execute it immediately. This was |
| deemed to be probably not what the user wants. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Michael Paquier <michael@paquier.xyz> |
| 2020-07-21 [c273d9d8c] Rework tab completion of COPY and \copy in psql |
| Author: Michael Paquier <michael@paquier.xyz> |
| 2020-07-30 [f1af75c5f] Include partitioned tables for tab completion of VACUUM |
| Author: Michael Paquier <michael@paquier.xyz> |
| 2020-08-11 [1f75b4541] Improve tab completion of REINDEX in psql |
| Author: Michael Paquier <michael@paquier.xyz> |
| 2020-09-17 [7307df16a] Improve tab completion of IMPORT FOREIGN SCHEMA in psql |
| Author: Fujii Masao <fujii@postgresql.org> |
| 2020-09-28 [0baf82fa0] Improve tab-completion for DEALLOCATE. |
| Author: Michael Paquier <michael@paquier.xyz> |
| 2020-10-24 [0b46e82c0] Add tab completion for ALTER TABLE .. FORCE ROW LEVEL SE |
| Author: Michael Paquier <michael@paquier.xyz> |
| 2020-11-18 [bf0aa7c4b] Add tab completion for CREATE [OR REPLACE] TRIGGER in ps |
| Author: Fujii Masao <fujii@postgresql.org> |
| 2021-01-14 [3f238b882] Improve tab-completion for CLOSE, DECLARE, FETCH and MOV |
| Author: Thomas Munro <tmunro@postgresql.org> |
| 2021-02-05 [e1c02d92a] Tab-complete CREATE DATABASE ... LOCALE. |
| Author: Michael Paquier <michael@paquier.xyz> |
| 2021-02-17 [e6b8e83b9] Add psql completion for [ NO ] DEPENDS ON EXTENSION |
| Author: Thomas Munro <tmunro@postgresql.org> |
| 2021-02-23 [5bc09a747] Tab-complete CREATE COLLATION. |
| Author: Fujii Masao <fujii@postgresql.org> |
| 2021-02-25 [6b40d9bdb] Improve tab-completion for TRUNCATE. |
| Author: Michael Paquier <michael@paquier.xyz> |
| 2021-03-19 [5b2266e33] Improve tab completion of IMPORT FOREIGN SCHEMA with \h |
| Author: Tom Lane <tgl@sss.pgh.pa.us> |
| 2021-04-08 [d1fcbde57] Add support for tab-completion of type arguments in \df, |
| Author: Fujii Masao <fujii@postgresql.org> |
| 2021-04-12 [81e094bdf] Support tab-complete for TRUNCATE on foreign tables. |
| Author: Michael Paquier <michael@paquier.xyz> |
| 2021-04-21 [22b2dec31] Add CURRENT_ROLE to list of roles for tab completion of |
| Author: Alvaro Herrera <alvherre@alvh.no-ip.org> |
| 2021-04-26 [6dd1042ed] psql: tab-complete ALTER ... DETACH CONCURRENTLY / FINAL |
| Author: Michael Paquier <michael@paquier.xyz> |
| 2021-05-13 [1906cc07d] Make saner the tab completion of INSERT and DELETE in ps |
| --> |
| |
| <para> |
| Improve tab completion (Vignesh C, Michael Paquier, Justin Pryzby, |
| Georgios Kokolatos, Julien Rouhaud) |
| </para> |
| </listitem> |
| |
| </itemizedlist> |
| |
| </sect4> |
| |
| </sect3> |
| |
| <sect3> |
| <title>Server Applications</title> |
| |
| <itemizedlist> |
| |
| <listitem> |
| <!-- |
| Author: Robert Haas <rhaas@postgresql.org> |
| 2021-03-12 [970609283] Add pg_amcheck, a CLI for contrib/amcheck. |
| --> |
| |
| <para> |
| Add command-line utility <link |
| linkend="app-pgamcheck"><application>pg_amcheck</application></link> |
| to simplify running <filename>contrib/amcheck</filename> |
| tests on many relations |
| (Mark Dilger) |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Magnus Hagander <magnus@hagander.net> |
| 2021-01-17 [e09155bd6] Add - -no-instructions parameter to initdb |
| --> |
| |
| <para> |
| Add <option>--no-instructions</option> option to <link |
| linkend="app-initdb"><application>initdb</application></link> |
| (Magnus Hagander) |
| </para> |
| |
| <para> |
| This suppresses the server startup instructions that are normally |
| printed. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Magnus Hagander <magnus@hagander.net> |
| 2020-11-09 [8f113698b] Remove analyze_new_cluster script from pg_upgrade |
| --> |
| |
| <para> |
| Stop <link |
| linkend="pgupgrade"><application>pg_upgrade</application></link> |
| from creating <filename>analyze_new_cluster</filename> script |
| (Magnus Hagander) |
| </para> |
| |
| <para> |
| Instead, give comparable <link |
| linkend="app-vacuumdb"><application>vacuumdb</application></link> |
| instructions. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Magnus Hagander <magnus@hagander.net> |
| 2020-11-10 [d2e4bf688] Remove -o option to postmaster |
| --> |
| |
| <para> |
| Remove support for the <link |
| linkend="app-postgres"><application>postmaster</application></link> |
| <option>-o</option> option (Magnus Hagander) |
| </para> |
| |
| <para> |
| This option was unnecessary since all passed options could already |
| be specified directly. |
| </para> |
| </listitem> |
| |
| </itemizedlist> |
| |
| </sect3> |
| |
| <sect3> |
| <title>Documentation</title> |
| |
| <itemizedlist> |
| |
| <listitem> |
| <!-- |
| Author: Stephen Frost <sfrost@snowman.net> |
| 2021-04-01 [c9c41c7a3] Rename Default Roles to Predefined Roles |
| --> |
| |
| <para> |
| Rename "Default Roles" to <link |
| linkend="predefined-roles">"Predefined Roles"</link> (Bruce Momjian, |
| Stephen Frost) |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Peter Eisentraut <peter@eisentraut.org> |
| 2020-06-16 [4c5cf5431] doc: Document factorial function |
| --> |
| |
| <para> |
| Add documentation for the <link |
| linkend="function-factorial"><function>factorial()</function></link> |
| function (Peter Eisentraut) |
| </para> |
| |
| <para> |
| With the removal of the ! operator in this release, |
| <function>factorial()</function> is the only built-in way to compute |
| a factorial. |
| </para> |
| </listitem> |
| |
| </itemizedlist> |
| |
| </sect3> |
| |
| <sect3> |
| <title>Source Code</title> |
| |
| <itemizedlist> |
| |
| <listitem> |
| <!-- |
| Author: Michael Paquier <michael@paquier.xyz> |
| 2021-02-01 [fe61df7f8] Introduce - -with-ssl={openssl} as a configure option |
| --> |
| |
| <para> |
| Add configure option <link |
| linkend="configure-options-features"><literal>--with-ssl={openssl}</literal></link> |
| to allow future choice of the SSL library to use (Daniel Gustafsson, |
| Michael Paquier) |
| </para> |
| |
| <para> |
| The spelling <option>--with-openssl</option> is kept for |
| compatibility. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Peter Eisentraut <peter@eisentraut.org> |
| 2020-11-25 [c9f0624bc] Add support for abstract Unix-domain sockets |
| --> |
| |
| <para> |
| Add support for <link linkend="guc-unix-socket-directories">abstract |
| Unix-domain sockets</link> (Peter Eisentraut) |
| </para> |
| |
| <para> |
| This is currently supported on <productname>Linux</productname> |
| and <productname>Windows</productname>. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Tom Lane <tgl@sss.pgh.pa.us> |
| 2020-10-09 [bed90759f] Fix our Windows stat() emulation to handle file sizes > |
| --> |
| |
| <para> |
| Allow Windows to properly handle files larger than four gigabytes |
| (Juan José Santamaría Flecha) |
| </para> |
| |
| <para> |
| For example this allows <link |
| linkend="sql-copy"><command>COPY,</command></link> <link |
| linkend="configure-options-misc"><acronym>WAL</acronym></link> |
| files, and relation segment files to be larger than four gigabytes. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Peter Eisentraut <peter@eisentraut.org> |
| 2021-01-06 [4656e3d66] Replace CLOBBER_CACHE_ALWAYS with run-time GUC |
| Author: Tom Lane <tgl@sss.pgh.pa.us> |
| 2021-07-01 [d04770801] Add - -clobber-cache option to initdb, for CCA testing. |
| Author: Tom Lane <tgl@sss.pgh.pa.us> |
| 2021-07-13 [6201fa3c1] Rename debug_invalidate_system_caches_always to debug_di |
| --> |
| |
| <para> |
| Add server parameter <xref linkend="guc-debug-discard-caches"/> |
| to control cache flushing for test purposes (Craig Ringer) |
| </para> |
| |
| <para> |
| Previously this behavior could only be set at compile time. |
| To invoke it during <application>initdb</application>, use the new |
| option <option>--discard-caches</option>. |
| </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 <productname>valgrind</productname> |
| error detection ability (Á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> |
| Add a test module for the regular expression package (Tom Lane) |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Andres Freund <andres@anarazel.de> |
| 2020-11-09 [6c57f2ed1] jit: Add support for LLVM 12. |
| --> |
| |
| <para> |
| Add support for <productname>LLVM</productname> version 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 |
| <productname>OpenSSL</productname> <acronym>EVP API</acronym> |
| (Michael Paquier) |
| </para> |
| |
| <para> |
| This is more modern and supports <acronym>FIPS</acronym> mode. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Magnus Hagander <magnus@hagander.net> |
| 2020-11-20 [16f96c74d] Remove ability to independently select random number gen |
| --> |
| |
| <para> |
| Remove separate build-time control over the choice of random number |
| generator (Daniel Gustafsson) |
| </para> |
| |
| <para> |
| This is now always determined by the choice of SSL library. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Heikki Linnakangas <heikki.linnakangas@iki.fi> |
| 2021-01-28 [6c5576075] Add direct conversion routines between EUC_TW and Big5. |
| --> |
| |
| <para> |
| Add direct conversion routines between EUC_TW and Big5 encodings |
| (Heikki Linnakangas) |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Thomas Munro <tmunro@postgresql.org> |
| 2020-11-20 [ca051d8b1] Add collation versions for FreeBSD. |
| --> |
| |
| <para> |
| Add collation version support for <productname>FreeBSD</productname> |
| (Thomas Munro) |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Tom Lane <tgl@sss.pgh.pa.us> |
| 2020-08-01 [9f9682783] Invent "amadjustmembers" AM method for validating opclas |
| --> |
| |
| <para> |
| Add <link |
| linkend="index-api"><structfield>amadjustmembers</structfield></link> |
| to the index access method <acronym>API</acronym> (Tom Lane) |
| </para> |
| |
| <para> |
| This allows an index access method to provide validity checking |
| during creation of a new operator class or family. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Tom Lane <tgl@sss.pgh.pa.us> |
| 2021-06-19 [6991e774e] Provide feature-test macros for libpq features added in |
| --> |
| |
| <para> |
| Provide feature-test macros in <filename>libpq-fe.h</filename> |
| for recently-added <application>libpq</application> features |
| (Tom Lane, Álvaro Herrera) |
| </para> |
| |
| <para> |
| Historically, applications have usually used compile-time checks |
| of <literal>PG_VERSION_NUM</literal> to test whether a feature is |
| available. But that's normally the server version, which might |
| not be a good guide to <application>libpq</application>'s |
| version. <filename>libpq-fe.h</filename> now |
| offers <literal>#define</literal> symbols denoting |
| application-visible features added in v14; the intent is to keep |
| adding symbols for such features in future versions. |
| </para> |
| </listitem> |
| |
| </itemizedlist> |
| |
| </sect3> |
| |
| <sect3> |
| <title>Additional Modules</title> |
| |
| <itemizedlist> |
| |
| <listitem> |
| <!-- |
| Author: Tom Lane <tgl@sss.pgh.pa.us> |
| 2020-12-11 [0ec5f7e78] Allow subscripting of hstore values. |
| --> |
| |
| <para> |
| Allow subscripting of <link |
| linkend="hstore"><application>hstore</application></link> values |
| (Tom Lane, Dmitry Dolgov) |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Alexander Korotkov <akorotkov@postgresql.org> |
| 2020-11-15 [935f66665] Handle equality operator in contrib/pg_trgm |
| --> |
| |
| <para> |
| Allow GiST/GIN <link |
| linkend="pgtrgm"><application>pg_trgm</application></link> indexes |
| to do equality lookups (Julien Rouhaud) |
| </para> |
| |
| <para> |
| This is similar to <literal>LIKE</literal> except no wildcards |
| are honored. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Tom Lane <tgl@sss.pgh.pa.us> |
| 2021-03-06 [1265a9c8f] Add binary I/O capability for cube datatype. |
| --> |
| |
| <para> |
| Allow the <link |
| linkend="cube"><application>cube</application></link> data type |
| to be transferred in binary mode (KaiGai Kohei) |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Peter Eisentraut <peter@eisentraut.org> |
| 2020-06-30 [ee0202d55] pgstattuple: Have pgstattuple_approx accept TOAST tables |
| --> |
| |
| <para> |
| Allow <link |
| linkend="pgstattuple"><function>pgstattuple_approx()</function></link> |
| to report on <acronym>TOAST</acronym> tables (Peter Eisentraut) |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Robert Haas <rhaas@postgresql.org> |
| 2020-09-10 [34a947ca1] New contrib module, pg_surgery, with heap surgery functi |
| --> |
| |
| <para> |
| Add contrib module <link |
| linkend="pgsurgery"><application>pg_surgery</application></link> |
| which allows changes to row visibility (Ashutosh Sharma) |
| </para> |
| |
| <para> |
| This is useful for correcting database corruption. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Robert Haas <rhaas@postgresql.org> |
| 2020-09-24 [aecf5ee2b] Add new 'old_snapshot' contrib module. |
| --> |
| |
| <para> |
| Add contrib module <link |
| linkend="oldsnapshot"><application>old_snapshot</application></link> |
| to report the <type>XID</type>/time mapping used by an active |
| <xref linkend="guc-old-snapshot-threshold"/> (Robert Haas) |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Robert Haas <rhaas@postgresql.org> |
| 2020-10-22 [866e24d47] Extend amcheck to check heap pages. |
| --> |
| |
| <para> |
| Allow <link |
| linkend="amcheck"><application>amcheck</application></link> to |
| also check heap pages (Mark Dilger) |
| </para> |
| |
| <para> |
| Previously it only checked B-Tree index pages. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Heikki Linnakangas <heikki.linnakangas@iki.fi> |
| 2021-01-13 [756ab2912] Add functions to 'pageinspect' to inspect GiST indexes. |
| Author: Peter Geoghegan <pg@bowt.ie> |
| 2021-02-14 [9e596b65f] Add "LP_DEAD item?" column to GiST pageinspect functions |
| --> |
| |
| <para> |
| Allow <link |
| linkend="pageinspect"><application>pageinspect</application></link> |
| to inspect GiST indexes (Andrey Borodin, Heikki Linnakangas) |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Peter Eisentraut <peter@eisentraut.org> |
| 2021-01-19 [f18aa1b20] pageinspect: Change block number arguments to bigint |
| --> |
| |
| <para> |
| Change <application>pageinspect</application> block numbers |
| to be <link linkend="datatype-int"><type>bigints</type></link> |
| (Peter Eisentraut) |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Alexander Korotkov <akorotkov@postgresql.org> |
| 2020-07-20 [d98c08cdc] Update btree_gist extension for parallel query |
| --> |
| |
| <para> |
| Mark <link |
| linkend="btree-gist"><application>btree_gist</application></link> |
| functions as parallel safe (Steven Winfield) |
| </para> |
| </listitem> |
| |
| </itemizedlist> |
| |
| <sect4> |
| <title><link linkend="pgstatstatements">pg_stat_statements</link></title> |
| |
| <itemizedlist> |
| |
| <listitem> |
| <!-- |
| Author: Bruce Momjian <bruce@momjian.us> |
| 2021-04-07 [5fd9dfa5f] Move pg_stat_statements query jumbling to core. |
| --> |
| |
| <para> |
| Move query hash computation from |
| <application>pg_stat_statements</application> to the core server |
| (Julien Rouhaud) |
| </para> |
| |
| <para> |
| The new server parameter <xref linkend="guc-compute-query-id"/>'s |
| default of <literal>auto</literal> will automatically enable query |
| id computation when this extension is loaded. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Magnus Hagander <magnus@hagander.net> |
| 2021-04-08 [6b4d23fee] Track identical top vs nested queries independently in p |
| --> |
| |
| <para> |
| Cause <application>pg_stat_statements</application> to track top |
| and nested statements separately (Julien Rohaud) |
| </para> |
| |
| <para> |
| Previously, when tracking all statements, identical top and nested |
| statements were tracked as a single entry; but it seems more useful |
| to separate such usages. |
| </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 |
| --> |
| |
| <para> |
| Add row counts for utility commands to |
| <application>pg_stat_statements</application> (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> |
| Add <structname>pg_stat_statements_info</structname> system view |
| to show <application>pg_stat_statements</application> activity |
| (Katsuragi Yuta, Yuki Seino, Naoki Nakamichi) |
| </para> |
| </listitem> |
| |
| </itemizedlist> |
| |
| </sect4> |
| |
| <sect4> |
| <title><link linkend="postgres-fdw"><application>postgres_fdw</application></link></title> |
| |
| <itemizedlist> |
| |
| <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 |
| --> |
| |
| <para> |
| Allow <application>postgres_fdw</application> to |
| <command>INSERT</command> rows in bulk (Takayuki Tsunakawa, Tomas |
| Vondra, Amit Langote) |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Fujii Masao <fujii@postgresql.org> |
| 2021-04-07 [a3740c48e] postgres_fdw: Allow partitions specified in LIMIT TO to |
| --> |
| |
| <para> |
| Allow <application>postgres_fdw</application> |
| to import table partitions if specified by <link |
| linkend="sql-importforeignschema"><command>IMPORT FOREIGN SCHEMA |
| ... LIMIT TO</command></link> (Matthias van de Meent) |
| </para> |
| |
| <para> |
| By default, only the root of a partitioned table is imported. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Fujii Masao <fujii@postgresql.org> |
| 2021-01-18 [708d165dd] postgres_fdw: Add function to list cached connections to |
| --> |
| |
| <para> |
| Add <application>postgres_fdw</application> function |
| <function>postgres_fdw_get_connections()</function> to report open |
| foreign server connections (Bharath Rupireddy) |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Fujii Masao <fujii@postgresql.org> |
| 2021-04-02 [b1be3074a] postgres_fdw: Add option to control whether to keep conn |
| --> |
| |
| <para> |
| Allow control over whether foreign servers keep connections open |
| after transaction completion (Bharath Rupireddy) |
| </para> |
| |
| <para> |
| This is controlled by <varname>keep_connections</varname> and |
| defaults to on. |
| </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. |
| --> |
| |
| <para> |
| Allow <application>postgres_fdw</application> to reestablish |
| foreign server connections if necessary (Bharath Rupireddy) |
| </para> |
| |
| <para> |
| Previously foreign server restarts could cause foreign table |
| access errors. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Fujii Masao <fujii@postgresql.org> |
| 2021-01-26 [411ae6499] postgres_fdw: Add functions to discard cached connection |
| --> |
| |
| <para> |
| Add <application>postgres_fdw</application> functions to discard |
| cached connections (Bharath Rupireddy) |
| </para> |
| </listitem> |
| |
| </itemizedlist> |
| |
| </sect4> |
| |
| </sect3> |
| |
| </sect2> |
| |
| <sect2 id="release-14-acknowledgements"> |
| <title>Acknowledgments</title> |
| |
| <para> |
| The following individuals (in alphabetical order) have contributed |
| to this release as patch authors, committers, reviewers, testers, |
| or reporters of issues. |
| </para> |
| |
| <simplelist> |
| <member>Abhijit Menon-Sen</member> |
| <member>Ádám Balogh</member> |
| <member>Adrian Ho</member> |
| <member>Ahsan Hadi</member> |
| <member>Ajin Cherian</member> |
| <member>Aleksander Alekseev</member> |
| <member>Alessandro Gherardi</member> |
| <member>Alex Kozhemyakin</member> |
| <member>Alexander Korotkov</member> |
| <member>Alexander Lakhin</member> |
| <member>Alexander Nawratil</member> |
| <member>Alexander Pyhalov</member> |
| <member>Alexandra Wang</member> |
| <member>Alexey Bashtanov</member> |
| <member>Alexey Bulgakov</member> |
| <member>Alexey Kondratov</member> |
| <member>Álvaro Herrera</member> |
| <member>Amit Kapila</member> |
| <member>Amit Khandekar</member> |
| <member>Amit Langote</member> |
| <member>Amul Sul</member> |
| <member>Anastasia Lubennikova</member> |
| <member>Andreas Grob</member> |
| <member>Andreas Kretschmer</member> |
| <member>Andreas Seltenreich</member> |
| <member>Andreas Wicht</member> |
| <member>Andres Freund</member> |
| <member>Andrew Bille</member> |
| <member>Andrew Dunstan</member> |
| <member>Andrew Gierth</member> |
| <member>Andrey Borodin</member> |
| <member>Andrey Lepikhov</member> |
| <member>Andy Fan</member> |
| <member>Anton Voloshin</member> |
| <member>Antonin Houska</member> |
| <member>Arne Roland</member> |
| <member>Arseny Sher</member> |
| <member>Arthur Nascimento</member> |
| <member>Arthur Zakirov</member> |
| <member>Ashutosh Bapat</member> |
| <member>Ashutosh Sharma</member> |
| <member>Ashwin Agrawal</member> |
| <member>Asif Rehman</member> |
| <member>Asim Praveen</member> |
| <member>Atsushi Torikoshi</member> |
| <member>Aya Iwata</member> |
| <member>Barry Pederson</member> |
| <member>Bas Poot</member> |
| <member>Bauyrzhan Sakhariyev</member> |
| <member>Beena Emerson</member> |
| <member>Benoît Lobréau</member> |
| <member>Bernd Helmle</member> |
| <member>Bernhard M. Wiedemann</member> |
| <member>Bertrand Drouvot</member> |
| <member>Bharath Rupireddy</member> |
| <member>Boris Kolpackov</member> |
| <member>Brar Piening</member> |
| <member>Brian Ye</member> |
| <member>Bruce Momjian</member> |
| <member>Bryn Llewellyn</member> |
| <member>Cameron Daniel</member> |
| <member>Chapman Flack</member> |
| <member>Charles Samborski</member> |
| <member>Charlie Hornsby</member> |
| <member>Chen Jiaoqian</member> |
| <member>Chris Wilson</member> |
| <member>Christian Quest</member> |
| <member>Christoph Berg</member> |
| <member>Christophe Courtois</member> |
| <member>Corey Huinker</member> |
| <member>Craig Ringer</member> |
| <member>Dagfinn Ilmari Mannsåker</member> |
| <member>Dana Burd</member> |
| <member>Daniel Cherniy</member> |
| <member>Daniel Gustafsson</member> |
| <member>Daniel Vérité</member> |
| <member>Daniel Westermann</member> |
| <member>Daniele Varrazzo</member> |
| <member>Dar Alathar-Yemen</member> |
| <member>Darafei Praliaskouski</member> |
| <member>Dave Cramer</member> |
| <member>David Christensen</member> |
| <member>David Fetter</member> |
| <member>David G. Johnston</member> |
| <member>David Geier</member> |
| <member>David Gilman</member> |
| <member>David Pirotte</member> |
| <member>David Rowley</member> |
| <member>David Steele</member> |
| <member>David Turon</member> |
| <member>David Zhang</member> |
| <member>Dean Rasheed</member> |
| <member>Denis Patron</member> |
| <member>Dian Fay</member> |
| <member>Dilip Kumar</member> |
| <member>Dimitri Nüscheler</member> |
| <member>Dmitriy Kuzmin</member> |
| <member>Dmitry Dolgov</member> |
| <member>Dmitry Marakasov</member> |
| <member>Domagoj Smoljanovic</member> |
| <member>Dong Wook</member> |
| <member>Douglas Doole</member> |
| <member>Duncan Sands</member> |
| <member>Edmund Horner</member> |
| <member>Edson Richter</member> |
| <member>Egor Rogov</member> |
| <member>Ekaterina Kiryanova</member> |
| <member>Elena Indrupskaya</member> |
| <member>Emil Iggland</member> |
| <member>Emre Hasegeli</member> |
| <member>Eric Thinnes</member> |
| <member>Erik Rijkers</member> |
| <member>Erwin Brandstetter</member> |
| <member>Etienne Stalmans</member> |
| <member>Etsuro Fujita</member> |
| <member>Eugen Konkov</member> |
| <member>Euler Taveira</member> |
| <member>Fabien Coelho</member> |
| <member>Fabrízio de Royes Mello</member> |
| <member>Federico Caselli</member> |
| <member>Felix Lechner</member> |
| <member>Filip Gospodinov</member> |
| <member>Floris Van Nee</member> |
| <member>Frank Gagnepain</member> |
| <member>Frits Jalvingh</member> |
| <member>Georgios Kokolatos</member> |
| <member>Greg Nancarrow</member> |
| <member>Greg Rychlewski</member> |
| <member>Greg Sabino Mullane</member> |
| <member>Gregory Smith</member> |
| <member>Grigory Smolkin</member> |
| <member>Guillaume Lelarge</member> |
| <member>Guy Burgess</member> |
| <member>Guyren Howe</member> |
| <member>Haiying Tang</member> |
| <member>Hamid Akhtar</member> |
| <member>Hans Buschmann</member> |
| <member>Hao Wu</member> |
| <member>Haribabu Kommi</member> |
| <member>Harisai Hari</member> |
| <member>Hayato Kuroda</member> |
| <member>Heath Lord</member> |
| <member>Heikki Linnakangas</member> |
| <member>Henry Hinze</member> |
| <member>Herwig Goemans</member> |
| <member>Himanshu Upadhyaya</member> |
| <member>Hironobu Suzuki</member> |
| <member>Hiroshi Inoue</member> |
| <member>Hisanori Kobayashi</member> |
| <member>Honza Horak</member> |
| <member>Hou Zhijie</member> |
| <member>Hubert Lubaczewski</member> |
| <member>Hubert Zhang</member> |
| <member>Ian Barwick</member> |
| <member>Ibrar Ahmed</member> |
| <member>Ildus Kurbangaliev</member> |
| <member>Isaac Morland</member> |
| <member>Israel Barth</member> |
| <member>Itamar Gafni</member> |
| <member>Jacob Champion</member> |
| <member>Jaime Casanova</member> |
| <member>Jaime Soler</member> |
| <member>Jakub Wartak</member> |
| <member>James Coleman</member> |
| <member>James Hilliard</member> |
| <member>James Hunter</member> |
| <member>James Inform</member> |
| <member>Jan Mussler</member> |
| <member>Japin Li</member> |
| <member>Jasen Betts</member> |
| <member>Jason Harvey</member> |
| <member>Jason Kim</member> |
| <member>Jeevan Ladhe</member> |
| <member>Jeff Davis</member> |
| <member>Jeff Janes</member> |
| <member>Jelte Fennema</member> |
| <member>Jeremy Evans</member> |
| <member>Jeremy Finzel</member> |
| <member>Jeremy Smith</member> |
| <member>Jesse Kinkead</member> |
| <member>Jesse Zhang</member> |
| <member>Jie Zhang</member> |
| <member>Jim Doty</member> |
| <member>Jim Nasby</member> |
| <member>Jimmy Angelakos</member> |
| <member>Jimmy Yih</member> |
| <member>Jiri Fejfar</member> |
| <member>Joe Conway</member> |
| <member>Joel Jacobson</member> |
| <member>John Naylor</member> |
| <member>John Thompson</member> |
| <member>Jonathan Katz</member> |
| <member>Josef Šimánek</member> |
| <member>Joseph Nahmias</member> |
| <member>Josh Berkus</member> |
| <member>Juan José Santamaría Flecha</member> |
| <member>Julien Rouhaud</member> |
| <member>Junfeng Yang</member> |
| <member>Jürgen Purtz</member> |
| <member>Justin Pryzby</member> |
| <member>Kazutaka Onishi</member> |
| <member>Keisuke Kuroda</member> |
| <member>Kelly Min</member> |
| <member>Kensuke Okamura</member> |
| <member>Kevin Sweet</member> |
| <member>Kevin Yeap</member> |
| <member>Kirk Jamison</member> |
| <member>Kohei KaiGai</member> |
| <member>Konstantin Knizhnik</member> |
| <member>Kota Miyake</member> |
| <member>Krzysztof Gradek</member> |
| <member>Kuntal Ghosh</member> |
| <member>Kyle Kingsbury</member> |
| <member>Kyotaro Horiguchi</member> |
| <member>Laurent Hasson</member> |
| <member>Laurenz Albe</member> |
| <member>Lee Dong Wook</member> |
| <member>Li Japin</member> |
| <member>Liu Huailing</member> |
| <member>Luc Vlaming</member> |
| <member>Ludovic Kuty</member> |
| <member>Luis Roberto</member> |
| <member>Lukas Eder</member> |
| <member>Ma Liangzhu</member> |
| <member>Maciek Sakrejda</member> |
| <member>Madan Kumar</member> |
| <member>Magnus Hagander</member> |
| <member>Mahendra Singh Thalor</member> |
| <member>Maksim Milyutin</member> |
| <member>Marc Boeren</member> |
| <member>Marcin Krupowicz</member> |
| <member>Marco Atzeri</member> |
| <member>Marek Szuba</member> |
| <member>Marina Polyakova</member> |
| <member>Mario Emmenlauer</member> |
| <member>Mark Dilger</member> |
| <member>Mark Wong</member> |
| <member>Mark Zhao</member> |
| <member>Markus Wanner</member> |
| <member>Martín Marqués</member> |
| <member>Martin Visser</member> |
| <member>Masahiko Sawada</member> |
| <member>Masahiro Ikeda</member> |
| <member>Masao Fujii</member> |
| <member>Mathis Rudolf</member> |
| <member>Matthias van de Meent</member> |
| <member>Matthieu Garrigues</member> |
| <member>Matthijs van der Vleuten</member> |
| <member>Maxim Orlov</member> |
| <member>Melanie Plageman</member> |
| <member>Merlin Moncure</member> |
| <member>Michael Banck</member> |
| <member>Michael Brown</member> |
| <member>Michael Meskes</member> |
| <member>Michael Paquier</member> |
| <member>Michael Paul Killian</member> |
| <member>Michael Powers</member> |
| <member>Michael Vastola</member> |
| <member>Michail Nikolaev</member> |
| <member>Michal Albrycht</member> |
| <member>Mikael Gustavsson</member> |
| <member>Movead Li</member> |
| <member>Muhammad Usama</member> |
| <member>Nagaraj Raj</member> |
| <member>Naoki Nakamichi</member> |
| <member>Nathan Bossart</member> |
| <member>Nathan Long</member> |
| <member>Nazli Ugur Koyluoglu</member> |
| <member>Neha Sharma</member> |
| <member>Neil Chen</member> |
| <member>Nick Cleaton</member> |
| <member>Nico Williams</member> |
| <member>Nikhil Benesch</member> |
| <member>Nikhil Sontakke</member> |
| <member>Nikita Glukhov</member> |
| <member>Nikita Konev</member> |
| <member>Nikolai Berkoff</member> |
| <member>Nikolay Samokhvalov</member> |
| <member>Nikolay Shaplov</member> |
| <member>Nitin Jadhav</member> |
| <member>Noah Misch</member> |
| <member>Noriyoshi Shinoda</member> |
| <member>Odin Ugedal</member> |
| <member>Oleg Bartunov</member> |
| <member>Oleg Samoilov</member> |
| <member>Önder Kalaci</member> |
| <member>Pascal Legrand</member> |
| <member>Paul Förster</member> |
| <member>Paul Guo</member> |
| <member>Paul Jungwirth</member> |
| <member>Paul Martinez</member> |
| <member>Paul Sivash</member> |
| <member>Pavan Deolasee</member> |
| <member>Pavel Boev</member> |
| <member>Pavel Borisov</member> |
| <member>Pavel Luzanov</member> |
| <member>Pavel Stehule</member> |
| <member>Pengcheng Liu</member> |
| <member>Peter Eisentraut</member> |
| <member>Peter Geoghegan</member> |
| <member>Peter Smith</member> |
| <member>Peter Vandivier</member> |
| <member>Petr Fedorov</member> |
| <member>Petr Jelínek</member> |
| <member>Phil Krylov</member> |
| <member>Philipp Gramzow</member> |
| <member>Philippe Beaudoin</member> |
| <member>Phillip Menke</member> |
| <member>Pierre Giraud</member> |
| <member>Prabhat Sahu</member> |
| <member>Quan Zongliang</member> |
| <member>Rafi Shamim</member> |
| <member>Rahila Syed</member> |
| <member>Rajkumar Raghuwanshi</member> |
| <member>Ranier Vilela</member> |
| <member>Regina Obe</member> |
| <member>Rémi Lapeyre</member> |
| <member>Robert Foggia</member> |
| <member>Robert Grange</member> |
| <member>Robert Haas</member> |
| <member>Robert Kahlert</member> |
| <member>Robert Sosinski</member> |
| <member>Robert Treat</member> |
| <member>Robin Abbi</member> |
| <member>Robins Tharakan</member> |
| <member>Roger Mason</member> |
| <member>Rohit Bhogate</member> |
| <member>Roman Zharkov</member> |
| <member>Ron L. Johnson</member> |
| <member>Ronan Dunklau</member> |
| <member>Ryan Lambert</member> |
| <member>Ryo Matsumura</member> |
| <member>Saeed Hubaishan</member> |
| <member>Sait Talha Nisanci</member> |
| <member>Sandro Mani</member> |
| <member>Santosh Udupi</member> |
| <member>Scott Ribe</member> |
| <member>Sehrope Sarkuni</member> |
| <member>Sergei Kornilov</member> |
| <member>Sergey Bernikov</member> |
| <member>Sergey Cherkashin</member> |
| <member>Sergey Koposov</member> |
| <member>Sergey Shinderuk</member> |
| <member>Sergey Zubkovsky</member> |
| <member>Shawn Wang</member> |
| <member>Shay Rojansky</member> |
| <member>Shi Yu</member> |
| <member>Shinya Kato</member> |
| <member>Shinya Okano</member> |
| <member>Sigrid Ehrenreich</member> |
| <member>Simon Norris</member> |
| <member>Simon Riggs</member> |
| <member>Sofoklis Papasofokli</member> |
| <member>Soumyadeep Chakraborty</member> |
| <member>Stas Kelvich</member> |
| <member>Stephan Springl</member> |
| <member>Stéphane Lorek</member> |
| <member>Stephen Frost</member> |
| <member>Steven Winfield</member> |
| <member>Surafel Temesgen</member> |
| <member>Suraj Kharage</member> |
| <member>Sven Klemm</member> |
| <member>Takamichi Osumi</member> |
| <member>Takashi Menjo</member> |
| <member>Takayuki Tsunakawa</member> |
| <member>Tang Haiying</member> |
| <member>Tatsuhito Kasahara</member> |
| <member>Tatsuo Ishii</member> |
| <member>Tatsuro Yamada</member> |
| <member>Theodor Arsenij Larionov-Trichkin</member> |
| <member>Thomas Kellerer</member> |
| <member>Thomas Munro</member> |
| <member>Thomas Trenz</member> |
| <member>Tijs van Dam</member> |
| <member>Tom Ellis</member> |
| <member>Tom Gottfried</member> |
| <member>Tom Lane</member> |
| <member>Tom Vijlbrief</member> |
| <member>Tomas Barton</member> |
| <member>Tomas Vondra</member> |
| <member>Tomohiro Hiramitsu</member> |
| <member>Tony Reix</member> |
| <member>Vaishnavi Prabakaran</member> |
| <member>Valentin Gatien-Baron</member> |
| <member>Victor Wagner</member> |
| <member>Victor Yegorov</member> |
| <member>Vignesh C</member> |
| <member>Vik Fearing</member> |
| <member>Vitaly Ustinov</member> |
| <member>Vladimir Sitnikov</member> |
| <member>Vyacheslav Shablistyy</member> |
| <member>Wang Shenhao</member> |
| <member>Wei Wang</member> |
| <member>Wells Oliver</member> |
| <member>Wenjing Zeng</member> |
| <member>Wolfgang Walther</member> |
| <member>Yang Lin</member> |
| <member>Yanliang Lei</member> |
| <member>Yaoguang Chen</member> |
| <member>Yaroslav Pashinsky</member> |
| <member>Yaroslav Schekin</member> |
| <member>Yasushi Yamashita</member> |
| <member>Yoran Heling</member> |
| <member>YoungHwan Joo</member> |
| <member>Yugo Nagata</member> |
| <member>Yuki Seino</member> |
| <member>Yukun Wang</member> |
| <member>Yulin Pei</member> |
| <member>Yura Sokolov</member> |
| <member>Yuta Katsuragi</member> |
| <member>Yuta Kondo</member> |
| <member>Yuzuko Hosoya</member> |
| <member>Zhihong Yu</member> |
| <member>Zhiyong Wu</member> |
| <member>Zsolt Ero</member> |
| </simplelist> |
| </sect2> |
| |
| </sect1> |