Commit ab22eea8 authored by Tom Lane's avatar Tom Lane

First-draft release notes for 14.2.

As usual, the release notes for older branches will be made by cutting
these down, but put them up for community review first.
parent 2a3958e4
<!-- doc/src/sgml/release-14.sgml --> <!-- doc/src/sgml/release-14.sgml -->
<!-- See header comment in release.sgml about typical markup --> <!-- See header comment in release.sgml about typical markup -->
<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: 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>
This happens when the last transaction that could <quote>see</quote>
the tuple ends while the page is being pruned. It was then possible
to remove a tuple that is pointed to by a redirect item elsewhere on
the page. While that causes no immediate problem, when the item slot
is re-used by some new tuple, that tuple would be thought to be part
of the pre-existing HOT chain, creating a form of index corruption.
If this seems to have affected a table, <command>REINDEX</command>
should repair the damage.
</para>
</listitem>
<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: 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 (&Aacute;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.
If you have created statistics objects for partitioned tables, you
may wish to explicitly <command>ANALYZE</command> those tables after
installing this update, rather than waiting for auto-analyze to do it.
</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>
A previous bug fix disabled building of extended statistics for
old-style inheritance trees, but any existing statistics data was
not removed, and that data would become more and more out-of-date
over time. Adjust the planner to ignore such data. Extended
statistics for the individual child tables are still built and used,
however.
</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 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 reduce confusion, the role name to be acted on is now always
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 happens because
that's how it's stored in the index. This fix changes the logic to
store <type>char(<replaceable>N</replaceable>)</type> values with
the expected amount of space padding. The behavior of the 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"> <sect1 id="release-14-1">
<title>Release 14.1</title> <title>Release 14.1</title>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment