diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-05-04 12:19:15 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-05-04 12:19:15 +0000 |
commit | 6eb9c5a5657d1fe77b55cc261450f3538d35a94d (patch) | |
tree | 657d8194422a5daccecfd42d654b8a245ef7b4c8 /doc/src/sgml/release-13.sgml | |
parent | Initial commit. (diff) | |
download | postgresql-13-73454d6995747e64f28a9a04610870096b2aba31.tar.xz postgresql-13-73454d6995747e64f28a9a04610870096b2aba31.zip |
Adding upstream version 13.4.upstream/13.4upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'doc/src/sgml/release-13.sgml')
-rw-r--r-- | doc/src/sgml/release-13.sgml | 9114 |
1 files changed, 9114 insertions, 0 deletions
diff --git a/doc/src/sgml/release-13.sgml b/doc/src/sgml/release-13.sgml new file mode 100644 index 0000000..434ddfc --- /dev/null +++ b/doc/src/sgml/release-13.sgml @@ -0,0 +1,9114 @@ +<!-- doc/src/sgml/release-13.sgml --> +<!-- See header comment in release.sgml about typical markup --> + + <sect1 id="release-13-4"> + <title>Release 13.4</title> + + <formalpara> + <title>Release date:</title> + <para>2021-08-12</para> + </formalpara> + + <para> + This release contains a variety of fixes from 13.3. + For information about new features in major release 13, see + <xref linkend="release-13"/>. + </para> + + <sect2> + <title>Migration to Version 13.4</title> + + <para> + A dump/restore is not required for those running 13.X. + </para> + + <para> + However, if you are upgrading from a version earlier than 13.2, + see <xref linkend="release-13-2"/>. + </para> + </sect2> + + <sect2> + <title>Changes</title> + + <itemizedlist> + + <listitem> +<!-- +Author: Tom Lane <tgl@sss.pgh.pa.us> +Branch: master Release: REL_14_BR [6ee41a301] 2021-05-31 12:03:00 -0400 +Branch: REL_13_STABLE [fe6f63286] 2021-05-31 12:03:00 -0400 +Branch: REL_12_STABLE [6f9e7f21f] 2021-05-31 12:03:00 -0400 +Branch: REL_11_STABLE [fe194f731] 2021-05-31 12:03:00 -0400 +--> + <para> + Fix mis-planning of repeated application of a projection step + (Tom Lane) + </para> + + <para> + The planner could create an incorrect plan in cases where two + ProjectionPaths were stacked on top of each other. The only known + way to trigger that situation involves parallel sort operations, but + there may be other instances. The result would be crashes or + incorrect query results. + Disclosure of server memory contents is also possible. + (CVE-2021-3677) + </para> + </listitem> + + <listitem> +<!-- +Author: Michael Paquier <michael@paquier.xyz> +Branch: master Release: REL_14_BR [01e6f1a84] 2021-05-25 10:10:09 +0900 +Branch: REL_13_STABLE [a23c0b00f] 2021-05-25 10:11:13 +0900 +Branch: REL_12_STABLE [3f8072be8] 2021-05-25 10:11:17 +0900 +Branch: REL_11_STABLE [96918b76f] 2021-05-25 10:11:21 +0900 +Branch: REL_10_STABLE [c64b5d10d] 2021-05-25 10:11:26 +0900 +Branch: REL9_6_STABLE [7777df34d] 2021-05-25 10:11:33 +0900 +--> + <para> + Disallow SSL renegotiation more completely (Michael Paquier) + </para> + + <para> + SSL renegotiation has been disabled for some time, but the server + would still cooperate with a client-initiated renegotiation request. + A maliciously crafted renegotiation request could result in a server + crash (see OpenSSL issue CVE-2021-3449). Disable the feature + altogether on OpenSSL versions that permit doing so, which are + 1.1.0h and newer. + </para> + </listitem> + + <listitem> +<!-- +Author: Tom Lane <tgl@sss.pgh.pa.us> +Branch: master Release: REL_14_BR [84f5c2908] 2021-05-21 14:03:59 -0400 +Branch: REL_13_STABLE [d18ee6f92] 2021-05-21 14:03:53 -0400 +Branch: REL_12_STABLE [41c6a5bec] 2021-05-21 14:03:53 -0400 +Branch: REL_11_STABLE [ef9480509] 2021-05-21 14:03:53 -0400 +Branch: master Release: REL_14_BR [3a09d75b4] 2021-06-10 12:27:27 -0400 +Branch: REL_13_STABLE [6e43f1c2d] 2021-06-10 12:27:27 -0400 +Branch: REL_12_STABLE [26383da7d] 2021-06-10 12:27:27 -0400 +Branch: REL_11_STABLE [eea081ad0] 2021-06-10 12:27:27 -0400 +Branch: master Release: REL_14_BR [d102aafb6] 2021-06-22 17:48:39 -0400 +Branch: REL_13_STABLE [6f1321d5a] 2021-06-22 17:48:39 -0400 +Branch: REL_12_STABLE [29d5d5761] 2021-06-22 17:48:39 -0400 +Branch: REL_11_STABLE [77200c569] 2021-06-22 17:48:39 -0400 +Branch: master [ef12f32c0] 2021-07-31 11:50:14 -0400 +Branch: REL_14_STABLE [ec410c985] 2021-07-31 11:50:14 -0400 +Branch: REL_13_STABLE [93f99693f] 2021-07-31 11:50:14 -0400 +Branch: REL_12_STABLE [f26043645] 2021-07-31 11:50:14 -0400 +Branch: REL_11_STABLE [cefb1230e] 2021-07-31 11:50:14 -0400 +Branch: master Release: REL_14_BR [f21fadafa] 2021-05-20 18:32:37 -0400 +Branch: REL_13_STABLE [c64183f23] 2021-05-20 18:32:37 -0400 +Branch: REL_12_STABLE [8d341d6cb] 2021-05-20 18:32:37 -0400 +Branch: REL_11_STABLE [0c1b2cb17] 2021-05-20 18:32:37 -0400 +--> + <para> + Restore the Portal-level snapshot after <command>COMMIT</command> + or <command>ROLLBACK</command> within a procedure (Tom Lane) + </para> + + <para> + This change fixes cases where an attempt to fetch a toasted value + immediately after <command>COMMIT</command>/<command>ROLLBACK</command> + would fail with errors like <quote>no known snapshots</quote> or + <quote>missing chunk number 0 for toast value</quote>. + </para> + + <para> + Some extensions may attempt to execute SQL code outside of any + Portal. They are responsible for ensuring that an outer snapshot + exists before doing so. Previously, not providing a snapshot might + work or it might not; now it will consistently fail + with <quote>cannot execute SQL without an outer snapshot or + portal</quote>. + </para> + </listitem> + + <listitem> +<!-- +Author: Tom Lane <tgl@sss.pgh.pa.us> +Branch: master Release: REL_14_BR [ba2c6d6ce] 2021-06-08 17:50:29 -0400 +Branch: REL_13_STABLE [c1fd756fd] 2021-06-08 17:50:15 -0400 +Branch: REL_12_STABLE [c3b508268] 2021-06-08 17:50:15 -0400 +Branch: REL_11_STABLE [2757865fa] 2021-06-08 17:50:15 -0400 +Branch: master Release: REL_14_BR [be9009890] 2021-06-08 18:40:06 -0400 +Branch: REL_13_STABLE [c5b281841] 2021-06-08 18:40:06 -0400 +Branch: REL_12_STABLE [182323300] 2021-06-08 18:40:06 -0400 +Branch: REL_11_STABLE [5b7bf9f72] 2021-06-08 18:40:06 -0400 +--> + <para> + Avoid misbehavior when persisting the output of a cursor that's + reading a non-stable query (Tom Lane) + </para> + + <para> + Previously, we'd always rewind and re-read the whole query result, + possibly getting results different from the earlier execution, + causing great confusion later. For a NO SCROLL cursor, we can fix + this by only storing the not-yet-read portion of the query output, + which is sufficient since a NO SCROLL cursor can't be backed up. + Cursors with the SCROLL option remain at hazard, but that was + already documented to be an unsafe option to use with a non-stable + query. Make those documentation warnings stronger. + </para> + + <para> + Also force NO SCROLL mode for the implicit cursor used by + a <application>PL/pgSQL</application> FOR-over-query loop, + to avoid this type of problem when persisting such a cursor + during an intra-procedure commit. + </para> + </listitem> + + <listitem> +<!-- +Author: Tom Lane <tgl@sss.pgh.pa.us> +Branch: master Release: REL_14_BR [1103033ae] 2021-06-01 11:12:56 -0400 +Branch: REL_13_STABLE [e5b0fffa1] 2021-06-01 11:12:56 -0400 +Branch: REL_12_STABLE [762fe98b1] 2021-06-01 11:12:56 -0400 +Branch: REL_11_STABLE [dc272157a] 2021-06-01 11:12:56 -0400 +Branch: REL_10_STABLE [39862dde4] 2021-06-01 11:12:56 -0400 +Branch: REL9_6_STABLE [3eca18522] 2021-06-01 11:12:56 -0400 +--> + <para> + Reject <literal>SELECT ... GROUP BY GROUPING SETS (()) FOR + UPDATE</literal> (Tom Lane) + </para> + + <para> + This should be disallowed, just as <literal>FOR UPDATE</literal> + with a plain <literal>GROUP BY</literal> is disallowed, but the test + for that failed to handle empty grouping sets correctly. + The end result would be a null-pointer dereference in the executor. + </para> + </listitem> + + <listitem> +<!-- +Author: Tom Lane <tgl@sss.pgh.pa.us> +Branch: master [a9da1934e] 2021-07-09 11:02:26 -0400 +Branch: REL_14_STABLE [39b6e85f1] 2021-07-09 11:02:26 -0400 +Branch: REL_13_STABLE [6edccac16] 2021-07-09 11:02:26 -0400 +Branch: REL_12_STABLE [9c729bd30] 2021-07-09 11:02:26 -0400 +Branch: REL_11_STABLE [158594f99] 2021-07-09 11:02:26 -0400 +Branch: REL_10_STABLE [51df19a05] 2021-07-09 11:02:26 -0400 +Branch: REL9_6_STABLE [f0271cb15] 2021-07-09 11:02:26 -0400 +--> + <para> + Reject cases where a query in <literal>WITH</literal> + rewrites to just <command>NOTIFY</command> (Tom Lane) + </para> + + <para> + Such cases previously crashed. + </para> + </listitem> + + <listitem> +<!-- +Author: Dean Rasheed <dean.a.rasheed@gmail.com> +Branch: master [e7fc488ad] 2021-07-10 12:42:59 +0100 +Branch: REL_14_STABLE [06883d58f] 2021-07-10 12:45:00 +0100 +Branch: REL_13_STABLE [f23a9b8a4] 2021-07-10 12:46:13 +0100 +Branch: REL_12_STABLE [357b66ef9] 2021-07-10 12:47:45 +0100 +Branch: REL_11_STABLE [5763ef42c] 2021-07-10 12:48:59 +0100 +Branch: REL_10_STABLE [54a0ec1bd] 2021-07-10 12:50:05 +0100 +Branch: REL9_6_STABLE [f8abf6944] 2021-07-10 12:51:22 +0100 +--> + <para> + In <type>numeric</type> multiplication, round the result rather than + failing if it would have more than 16383 digits after the decimal + point (Dean Rasheed) + </para> + </listitem> + + <listitem> +<!-- +Author: Dean Rasheed <dean.a.rasheed@gmail.com> +Branch: master [4dd5ce2fd] 2021-07-31 11:21:44 +0100 +Branch: REL_14_STABLE [0d6b87497] 2021-07-31 11:23:48 +0100 +Branch: REL_13_STABLE [053ec4e0c] 2021-07-31 11:25:39 +0100 +Branch: REL_12_STABLE [5c62920fa] 2021-07-31 11:27:02 +0100 +Branch: REL_11_STABLE [dcd0ab672] 2021-07-31 11:28:10 +0100 +Branch: REL_10_STABLE [39b0bda67] 2021-07-31 11:29:50 +0100 +Branch: REL9_6_STABLE [5cf350ce0] 2021-07-31 11:31:18 +0100 +Branch: REL_11_STABLE [434ddfb79] 2021-08-05 22:24:28 +0100 +Branch: master [2642df9fa] 2021-08-06 21:29:15 +0100 +Branch: REL_14_STABLE [032556570] 2021-08-06 21:30:25 +0100 +Branch: REL_13_STABLE [da188b993] 2021-08-06 21:31:20 +0100 +Branch: REL_12_STABLE [cc4420f88] 2021-08-06 21:31:58 +0100 +Branch: REL_11_STABLE [7a9c9acfe] 2021-08-06 21:32:46 +0100 +Branch: REL_10_STABLE [f20b6bc96] 2021-08-06 21:33:25 +0100 +Branch: REL9_6_STABLE [5b7b92ad7] 2021-08-06 21:34:04 +0100 +--> + <para> + Fix corner-case errors and loss of precision when + raising <type>numeric</type> values to very large powers + (Dean Rasheed) + </para> + </listitem> + + <listitem> +<!-- +Author: Dean Rasheed <dean.a.rasheed@gmail.com> +Branch: master [226ec49ff] 2021-08-05 09:24:11 +0100 +Branch: REL_14_STABLE [ecbdbdfd9] 2021-08-05 09:27:35 +0100 +Branch: REL_13_STABLE [a72ad6315] 2021-08-05 09:29:13 +0100 +Branch: REL_12_STABLE [43644bd3b] 2021-08-05 09:30:37 +0100 +Branch: REL_11_STABLE [4851940a5] 2021-08-05 09:32:03 +0100 +Branch: REL_10_STABLE [661558bc3] 2021-08-05 09:33:55 +0100 +Branch: REL9_6_STABLE [ed3e1663c] 2021-08-05 09:35:46 +0100 +--> + <para> + Fix division-by-zero failure in <function>to_char()</function> + with <literal>EEEE</literal> format and a <type>numeric</type> input + value less than 10^(-1001) (Dean Rasheed) + </para> + </listitem> + + <listitem> +<!-- +Author: David Rowley <drowley@postgresql.org> +Branch: master [55fe60938] 2021-07-09 14:04:30 +1200 +Branch: REL_14_STABLE [6de3a21bb] 2021-07-09 14:04:40 +1200 +Branch: REL_13_STABLE [6f88b68ff] 2021-07-09 14:04:49 +1200 +Branch: REL_12_STABLE [efc42a1e1] 2021-07-09 14:04:56 +1200 +Branch: REL_11_STABLE [45bad6a39] 2021-07-09 14:05:05 +1200 +Branch: REL_10_STABLE [1efcd5720] 2021-07-09 14:05:15 +1200 +Branch: REL9_6_STABLE [674ee3b76] 2021-07-09 14:05:24 +1200 +Branch: REL_13_STABLE [87103002c] 2021-07-09 15:12:31 +1200 +Branch: REL_12_STABLE [b18621139] 2021-07-09 15:13:01 +1200 +Branch: REL_11_STABLE [137af4f27] 2021-07-09 15:13:29 +1200 +Branch: REL_10_STABLE [dd76aa54a] 2021-07-09 15:14:01 +1200 +Branch: REL9_6_STABLE [3e474a708] 2021-07-09 15:14:26 +1200 +--> + <para> + Fix <function>pg_size_pretty(bigint)</function> to round negative + values consistently with the way it rounds positive ones (and + consistently with the <type>numeric</type> version) (Dean Rasheed, + David Rowley) + </para> + </listitem> + + <listitem> +<!-- +Author: Tom Lane <tgl@sss.pgh.pa.us> +Branch: master Release: REL_14_BR [1250aad42] 2021-06-12 13:29:24 -0400 +Branch: REL_13_STABLE [f479ea94b] 2021-06-12 13:29:24 -0400 +Branch: REL_12_STABLE [7681b78fb] 2021-06-12 13:29:24 -0400 +Branch: REL_11_STABLE [25d1ef1aa] 2021-06-12 13:29:24 -0400 +Branch: REL_10_STABLE [26a053533] 2021-06-12 13:29:24 -0400 +Branch: REL9_6_STABLE [c1ffbbcbc] 2021-06-12 13:29:24 -0400 +--> + <para> + Make <literal>pg_filenode_relation(0, 0)</literal> return NULL + rather than failing (Justin Pryzby) + </para> + </listitem> + + <listitem> +<!-- +Author: Tom Lane <tgl@sss.pgh.pa.us> +Branch: master [626731db2] 2021-07-11 12:54:24 -0400 +Branch: REL_14_STABLE [69dfc36fd] 2021-07-11 12:54:24 -0400 +Branch: REL_13_STABLE [1c612bc98] 2021-07-11 12:54:24 -0400 +Branch: REL_12_STABLE [92340ba5a] 2021-07-11 12:54:24 -0400 +Branch: REL_11_STABLE [6bd9ae173] 2021-07-11 12:54:24 -0400 +Branch: REL_10_STABLE [1d49c8887] 2021-07-11 12:54:24 -0400 +Branch: REL9_6_STABLE [734be249d] 2021-07-11 12:54:24 -0400 +--> + <para> + Make <command>ALTER EXTENSION</command> lock the extension when + adding or removing a member object (Tom Lane) + </para> + + <para> + The previous coding allowed <command>ALTER EXTENSION + ADD/DROP</command> to occur concurrently with <command>DROP + EXTENSION</command>, leading to a crash or corrupt catalog entries. + </para> + </listitem> + + <listitem> +<!-- +Author: Amit Kapila <akapila@postgresql.org> +Branch: master [29abde637] 2021-07-19 10:36:15 +0530 +Branch: REL_14_STABLE [40295d158] 2021-07-19 10:54:21 +0530 +Branch: REL_13_STABLE [bfa2a926d] 2021-07-19 11:04:21 +0530 +Branch: REL_12_STABLE [f2f459f18] 2021-07-19 11:15:03 +0530 +Branch: REL_11_STABLE [eb158e74a] 2021-07-19 11:23:35 +0530 +Branch: REL_10_STABLE [22fd784af] 2021-07-19 11:32:08 +0530 +--> + <para> + Fix <command>ALTER SUBSCRIPTION</command> to reject an empty slot + name (Japin Li) + </para> + </listitem> + + <listitem> +<!-- +Author: Alvaro Herrera <alvherre@alvh.no-ip.org> +Branch: master [df80fa2ee] 2021-07-16 13:01:43 -0400 +Branch: REL_14_STABLE [eef92de11] 2021-07-16 13:01:43 -0400 +Branch: REL_13_STABLE [c31516ae5] 2021-07-16 13:01:43 -0400 +Branch: REL_12_STABLE [7584ec1f6] 2021-07-16 13:01:43 -0400 +Branch: REL_11_STABLE [fed35bd4a] 2021-07-16 13:01:43 -0400 +--> + <para> + When cloning a partitioned table's triggers to a new partition, + ensure that their enabled status is copied + (Álvaro Herrera) + </para> + </listitem> + + <listitem> +<!-- +Author: Tom Lane <tgl@sss.pgh.pa.us> +Branch: master [9179a82d7] 2021-08-07 13:29:32 -0400 +Branch: REL_14_STABLE [2c915905e] 2021-08-07 13:29:32 -0400 +Branch: REL_13_STABLE [ba9f665a4] 2021-08-07 13:29:32 -0400 +Branch: REL_12_STABLE [1ff1e4a60] 2021-08-07 13:29:32 -0400 +Branch: REL_11_STABLE [d33fc4110] 2021-08-07 13:29:32 -0400 +Branch: REL_10_STABLE [ac818984a] 2021-08-07 13:29:32 -0400 +Branch: REL9_6_STABLE [c08b3a9eb] 2021-08-07 13:29:32 -0400 +Author: Michael Paquier <michael@paquier.xyz> +Branch: master Release: REL_14_BR [187682c32] 2021-06-03 15:28:24 +0900 +Branch: REL_13_STABLE [75d66d10e] 2021-06-03 15:28:37 +0900 +Branch: REL_12_STABLE [4ceaa760b] 2021-06-03 15:28:41 +0900 +Branch: REL_11_STABLE [dbc9dbba5] 2021-06-03 15:28:45 +0900 +Branch: REL_10_STABLE [20f70f558] 2021-06-03 15:28:53 +0900 +Branch: REL9_6_STABLE [d9525c46c] 2021-06-03 15:29:01 +0900 +--> + <para> + Avoid alias conflicts in queries generated + for <command>REFRESH MATERIALIZED VIEW CONCURRENTLY</command> + (Tom Lane, Bharath Rupireddy) + </para> + + <para> + This command failed on materialized views containing columns with + certain names, notably <structfield>mv</structfield> + and <structfield>newdata</structfield>. + </para> + </listitem> + + <listitem> +<!-- +Author: Tom Lane <tgl@sss.pgh.pa.us> +Branch: master [6310809c4] 2021-07-24 18:35:52 -0400 +Branch: REL_14_STABLE [712ba6b8b] 2021-07-24 18:35:52 -0400 +Branch: REL_13_STABLE [f47408cdc] 2021-07-24 18:35:52 -0400 +Branch: REL_12_STABLE [899785b4f] 2021-07-24 18:35:52 -0400 +Branch: REL_11_STABLE [7b2262a21] 2021-07-24 18:35:52 -0400 +Branch: REL_10_STABLE [654372169] 2021-07-24 18:35:52 -0400 +Branch: REL9_6_STABLE [1861390e6] 2021-07-24 18:35:52 -0400 +--> + <para> + Fix <command>PREPARE TRANSACTION</command> to check correctly + for conflicting session-lifespan and transaction-lifespan locks + (Tom Lane) + </para> + + <para> + A transaction cannot be prepared if it has both session-lifespan and + transaction-lifespan locks on the same advisory-lock ID value. This + restriction was not fully checked, which could lead to a PANIC + during <command>PREPARE TRANSACTION</command>. + </para> + </listitem> + + <listitem> +<!-- +Author: Tom Lane <tgl@sss.pgh.pa.us> +Branch: master Release: REL_14_BR [d21fca084] 2021-06-18 18:00:09 -0400 +Branch: REL_13_STABLE [33af10c59] 2021-06-18 18:00:09 -0400 +Branch: REL_12_STABLE [c58a41605] 2021-06-18 18:00:09 -0400 +Branch: REL_11_STABLE [ea5ae3ae1] 2021-06-18 18:00:09 -0400 +Branch: REL_10_STABLE [b7e3a4407] 2021-06-18 18:00:09 -0400 +Branch: REL9_6_STABLE [0b29b41e5] 2021-06-18 18:00:09 -0400 +--> + <para> + Fix misbehavior of <command>DROP OWNED BY</command> when the target + role is listed more than once in an RLS policy (Tom Lane) + </para> + </listitem> + + <listitem> +<!-- +Author: Tom Lane <tgl@sss.pgh.pa.us> +Branch: master Release: REL_14_BR [5a0f1c8c0] 2021-06-25 13:59:38 -0400 +Branch: REL_13_STABLE [ba815f00a] 2021-06-25 13:59:38 -0400 +Branch: REL_12_STABLE [f851696a2] 2021-06-25 13:59:38 -0400 +Branch: REL_11_STABLE [fea89d64e] 2021-06-25 13:59:38 -0400 +Branch: REL_10_STABLE [f5b780c45] 2021-06-25 13:59:38 -0400 +Branch: REL9_6_STABLE [9c7a150ae] 2021-06-25 13:59:38 -0400 +--> + <para> + Skip unnecessary error tests when removing a role from an RLS policy + during <command>DROP OWNED BY</command> (Tom Lane) + </para> + + <para> + Notably, this fixes some cases where it was necessary to be a + superuser to use <command>DROP OWNED BY</command>. + </para> + </listitem> + + <listitem> +<!-- +Author: Thomas Munro <tmunro@postgresql.org> +Branch: master Release: REL_14_BR [9f12a3b95] 2020-11-04 15:13:08 +1300 +Branch: REL_13_STABLE [6dcb185bf] 2021-06-22 13:21:25 +1200 +--> + <para> + Re-allow old-style Windows locale names in <command>CREATE + COLLATION</command> commands (Thomas Munro) + </para> + + <para> + Previously we were failing because the operating system can't + provide version information for such locales. At some point + we may decide to require version information, but no such policy + exists yet, so re-allow the case for now. + </para> + </listitem> + + <listitem> +<!-- +Author: Tom Lane <tgl@sss.pgh.pa.us> +Branch: master Release: REL_14_BR [4b1007445] 2021-05-21 15:12:08 -0400 +Branch: REL_13_STABLE [849c7971d] 2021-05-21 15:12:19 -0400 +Branch: REL_12_STABLE [61feb8670] 2021-05-21 15:12:37 -0400 +--> + <para> + Disallow whole-row variables in <literal>GENERATED</literal> + expressions (Tom Lane) + </para> + + <para> + Use of a whole-row variable clearly violates the rule that a + generated column cannot depend on itself, so such cases have no + well-defined behavior. The actual behavior frequently included a + crash. + </para> + </listitem> + + <listitem> +<!-- +Author: Tom Lane <tgl@sss.pgh.pa.us> +Branch: master Release: REL_14_BR [2b0ee126b] 2021-05-21 15:02:06 -0400 +Branch: REL_13_STABLE [77e3204ec] 2021-05-21 15:02:07 -0400 +Branch: REL_12_STABLE [dfe51ffbe] 2021-05-21 15:02:07 -0400 +--> + <para> + Fix usage of <structfield>tableoid</structfield> + in <literal>GENERATED</literal> expressions (Tom Lane) + </para> + + <para> + Some code paths failed to provide a valid value for this system + column while evaluating a <literal>GENERATED</literal> expression. + </para> + </listitem> + + <listitem> +<!-- +Author: Andrew Dunstan <andrew@dunslane.net> +Branch: master Release: REL_14_BR [0a4efdc7e] 2021-06-18 06:51:12 -0400 +Branch: REL_13_STABLE [5b6b5e5ee] 2021-06-18 07:44:58 -0400 +Branch: REL_12_STABLE [6432bfe8a] 2021-06-18 07:46:21 -0400 +Branch: REL_11_STABLE [306c31804] 2021-06-18 07:53:08 -0400 +Branch: REL_11_STABLE [0d3b69ae0] 2021-06-18 11:45:45 -0400 +--> + <para> + Don't store a <quote>fast default</quote> when adding a column to a + foreign table (Andrew Dunstan) + </para> + + <para> + The fast default is useless since no local heap storage exists for + such a table, but it confused subsequent operations. In addition to + suppressing creation of such catalog entries in <command>ALTER + TABLE</command> commands, adjust the downstream code to cope + when one is incorrectly present. + </para> + </listitem> + + <listitem> +<!-- +Author: Michael Paquier <michael@paquier.xyz> +Branch: master Release: REL_14_BR [83158f74d] 2020-09-14 13:56:41 +0900 +Branch: REL_13_STABLE [acb60edf0] 2021-06-28 10:39:09 +0900 +Branch: REL_12_STABLE [e52f7cbec] 2021-06-28 10:43:01 +0900 +Branch: REL_11_STABLE [08acba558] 2021-06-28 10:43:04 +0900 +Branch: REL_10_STABLE [3c465883b] 2021-06-28 10:43:08 +0900 +Branch: REL9_6_STABLE [d3d0cbeb6] 2021-06-28 10:43:13 +0900 +Branch: master Release: REL_14_BR [09a69f6e2] 2021-06-28 11:17:05 +0900 +Branch: REL_13_STABLE [fd7bc10ab] 2021-06-28 11:17:12 +0900 +Branch: REL_12_STABLE [ce8949c4b] 2021-06-28 11:17:16 +0900 +Branch: REL_11_STABLE [38ca11ade] 2021-06-28 11:17:20 +0900 +Branch: REL_10_STABLE [5160d5bb1] 2021-06-28 11:17:25 +0900 +Branch: REL9_6_STABLE [21257a8f6] 2021-06-28 11:17:30 +0900 +--> + <para> + Allow index state flags to be updated transactionally + (Michael Paquier, Andrey Lepikhov) + </para> + + <para> + This avoids failures when dealing with index predicates that aren't + really immutable. While that's not considered a supported case, the + original reason for using a non-transactional update here is long + gone, so we may as well change it. + </para> + </listitem> + + <listitem> +<!-- +Author: Tom Lane <tgl@sss.pgh.pa.us> +Branch: REL_13_STABLE [102f31a20] 2021-06-18 12:09:22 -0400 +Branch: REL_12_STABLE [b2c740c42] 2021-06-18 12:09:22 -0400 +Branch: REL_11_STABLE [4b8b3562e] 2021-06-18 12:09:22 -0400 +Branch: REL_10_STABLE [f172438ef] 2021-06-18 12:09:22 -0400 +Branch: REL9_6_STABLE [1a3d30255] 2021-06-18 12:09:22 -0400 +--> + <para> + Avoid corrupting the plan cache entry when <command>CREATE + DOMAIN</command> or <command>ALTER DOMAIN</command> appears + in a cached plan (Tom Lane) + </para> + </listitem> + + <listitem> +<!-- +Author: Tom Lane <tgl@sss.pgh.pa.us> +Branch: master Release: REL_14_BR [f560209c6] 2020-09-14 12:35:00 -0400 +Branch: REL_13_STABLE [4a20de9d9] 2021-06-25 10:46:10 -0400 +Branch: REL_12_STABLE [04a476057] 2021-06-25 10:46:10 -0400 +Branch: REL_11_STABLE [c39983600] 2021-06-25 10:46:10 -0400 +Branch: REL_10_STABLE [4040139f2] 2021-06-25 10:46:10 -0400 +--> + <para> + Make walsenders show their latest replication commands + in <structname>pg_stat_activity</structname> (Tom Lane) + </para> + + <para> + Previously, a walsender would show its latest SQL command, which was + confusing if it's now doing some replication operation instead. + Now we show replication-protocol commands on the same footing as SQL + commands. + </para> + </listitem> + + <listitem> +<!-- +Author: Alvaro Herrera <alvherre@alvh.no-ip.org> +Branch: master [93a0bf239] 2021-07-27 15:44:12 -0400 +Branch: REL_14_STABLE [ad3b40eb2] 2021-07-27 15:44:12 -0400 +Branch: REL_13_STABLE [b8f91d7f9] 2021-07-27 15:44:12 -0400 +Branch: REL_12_STABLE [6feb229f5] 2021-07-27 15:44:12 -0400 +Branch: REL_11_STABLE [ddd1eac99] 2021-07-27 15:44:12 -0400 +Branch: REL_10_STABLE [04fa0e11a] 2021-07-27 15:44:12 -0400 +Branch: REL9_6_STABLE [85ec6c322] 2021-07-27 15:44:12 -0400 +--> + <para> + Make + <structname>pg_settings</structname>.<structfield>pending_restart</structfield> + show as true when the pertinent entry + in <filename>postgresql.conf</filename> has been removed + (Álvaro Herrera) + </para> + + <para> + <structfield>pending_restart</structfield> correctly showed the case + where an entry that cannot be changed without a postmaster restart + has been modified, but not where the entry had been removed + altogether. + </para> + </listitem> + + <listitem> +<!-- +Author: Tom Lane <tgl@sss.pgh.pa.us> +Branch: master [28d936031] 2021-07-25 14:02:27 -0400 +Branch: REL_14_STABLE [b154ee63b] 2021-07-25 14:02:27 -0400 +Branch: REL_13_STABLE [2b8f3f5a7] 2021-07-25 14:02:27 -0400 +--> + <para> + On 64-bit Windows, allow the effective value + of <varname>work_mem</varname> + times <varname>hash_mem_multiplier</varname> to exceed 2GB + (Tom Lane) + </para> + + <para> + This allows <varname>hash_mem_multiplier</varname> to be used for + its intended purpose of preventing large hash aggregations from + spilling to disk, even when <quote>large</quote> means multiple + gigabytes. + </para> + </listitem> + + <listitem> +<!-- +Author: Tom Lane <tgl@sss.pgh.pa.us> +Branch: master Release: REL_14_BR [889592344] 2021-06-02 14:38:14 -0400 +Branch: REL_13_STABLE [6753a5b7e] 2021-06-02 14:38:14 -0400 +Branch: REL_12_STABLE [bdd096f1a] 2021-06-02 14:38:14 -0400 +--> + <para> + Fix mis-planning of queries involving regular tables that are + inheritance children of foreign tables (Amit Langote) + </para> + + <para> + <command>SELECT FOR UPDATE</command> and related commands would fail + with assertion failures or <quote>could not find junk column</quote> + errors in such cases. + </para> + </listitem> + + <listitem> +<!-- +Author: Tom Lane <tgl@sss.pgh.pa.us> +Branch: master [d23ac62af] 2021-07-09 13:38:24 -0400 +Branch: REL_14_STABLE [1d98fdaed] 2021-07-09 13:38:24 -0400 +Branch: REL_13_STABLE [9807b9aed] 2021-07-09 13:38:24 -0400 +--> + <para> + Fix pullup of constant function-in-FROM results when the FROM item + is marked <literal>LATERAL</literal> (Tom Lane) + </para> + </listitem> + + <listitem> +<!-- +Author: Robert Haas <rhaas@postgresql.org> +Branch: master Release: REL_14_BR [caba8f0d4] 2021-06-09 16:17:00 -0400 +Branch: REL_13_STABLE [082656429] 2021-06-09 16:17:13 -0400 +Branch: REL_12_STABLE [5d950c721] 2021-06-09 16:19:52 -0400 +Branch: REL_11_STABLE [ca158c168] 2021-06-09 16:20:10 -0400 +Branch: REL_10_STABLE [31bda6a22] 2021-06-09 16:20:28 -0400 +Branch: REL9_6_STABLE [6eb5b9ae3] 2021-06-09 16:21:14 -0400 +Branch: master Release: REL_14_BR [4dcb1d087] 2021-06-10 09:46:08 -0400 +Branch: REL_13_STABLE [3465328aa] 2021-06-10 09:47:25 -0400 +Branch: REL_12_STABLE [2208d71a0] 2021-06-10 09:34:39 -0400 +Branch: REL_11_STABLE [534b9be80] 2021-06-10 09:43:35 -0400 +Branch: REL_10_STABLE [1c2c6a9a2] 2021-06-10 09:48:07 -0400 +Branch: REL9_6_STABLE [6cd0e55f9] 2021-06-10 09:51:00 -0400 +Branch: REL9_6_STABLE [75212a854] 2021-06-09 16:16:21 -0400 +Branch: REL_13_STABLE [99a0a2ada] 2021-06-09 12:28:39 -0400 +Branch: REL_12_STABLE [6fc2febc2] 2021-06-09 12:29:00 -0400 +Branch: REL_11_STABLE [38982b8b7] 2021-06-09 12:30:28 -0400 +Branch: REL_10_STABLE [9778a191a] 2021-06-09 12:30:49 -0400 +Author: Andrew Dunstan <andrew@dunslane.net> +Branch: master Release: REL_14_BR [c3652f976] 2021-06-12 08:43:54 -0400 +Branch: REL_13_STABLE [45322bd9b] 2021-06-12 08:51:29 -0400 +Branch: REL_12_STABLE [1730a3334] 2021-06-12 08:54:28 -0400 +Branch: REL_11_STABLE [8b9e1275c] 2021-06-12 08:55:29 -0400 +Branch: REL_10_STABLE [0cd8a55bd] 2021-06-12 08:55:39 -0400 +Branch: REL9_6_STABLE [dee7ad20d] 2021-06-12 08:55:55 -0400 +Branch: master Release: REL_14_BR [9d97c3408] 2021-06-13 07:19:34 -0400 +Branch: REL_13_STABLE [47d5781cb] 2021-06-13 07:19:34 -0400 +Branch: REL_12_STABLE [914c716ca] 2021-06-13 07:19:35 -0400 +Branch: REL_11_STABLE [8cb3d95c2] 2021-06-13 07:19:36 -0400 +Branch: REL_10_STABLE [319d616dd] 2021-06-13 07:19:38 -0400 +Branch: REL9_6_STABLE [84cb4be71] 2021-06-13 07:19:40 -0400 +Branch: master Release: REL_14_BR [54a5ed220] 2021-06-15 15:35:47 -0400 +Branch: REL_13_STABLE [d906d106f] 2021-06-15 15:36:50 -0400 +Branch: REL_12_STABLE [fb3d6b0e1] 2021-06-15 15:36:59 -0400 +Branch: REL_11_STABLE [c0a758780] 2021-06-15 15:37:07 -0400 +Branch: REL_10_STABLE [1dc53c914] 2021-06-15 15:37:15 -0400 +Branch: REL9_6_STABLE [e46f6a078] 2021-06-15 15:37:24 -0400 +--> + <para> + Fix corner-case failure of a new standby to follow a new primary + (Dilip Kumar, Robert Haas) + </para> + + <para> + Under a narrow combination of conditions, the standby could wind up + trying to follow the wrong WAL timeline. + </para> + </listitem> + + <listitem> +<!-- +Author: Fujii Masao <fujii@postgresql.org> +Branch: master [a00c138b7] 2021-07-29 01:31:41 +0900 +Branch: REL_14_STABLE [f2a3d7404] 2021-07-29 01:33:33 +0900 +Branch: REL_13_STABLE [a66b05b42] 2021-07-29 01:34:13 +0900 +Branch: REL_12_STABLE [d7ded08e6] 2021-07-29 01:35:00 +0900 +Branch: REL_11_STABLE [02ef4d1e2] 2021-07-29 01:35:05 +0900 +Branch: REL_10_STABLE [25fe5b2bb] 2021-07-29 01:35:10 +0900 +Branch: REL9_6_STABLE [32d182dd0] 2021-07-29 01:35:52 +0900 +--> + <para> + Update minimum recovery point when WAL replay of a transaction abort + record causes file truncation (Fujii Masao) + </para> + + <para> + File truncation is irreversible, so it's no longer safe to stop + recovery at a point earlier than that record. The corresponding + case for transaction commit was fixed years ago, but this one was + overlooked. + </para> + </listitem> + + <listitem> +<!-- +Author: Alvaro Herrera <alvherre@alvh.no-ip.org> +Branch: master [ead9e51e8] 2021-07-16 12:07:30 -0400 +Branch: REL_14_STABLE [e5bcbb107] 2021-07-16 12:07:30 -0400 +Branch: REL_13_STABLE [866237a6f] 2021-07-16 12:07:30 -0400 +Branch: master [8589299e0] 2021-07-17 13:19:17 -0400 +Branch: REL_14_STABLE [d8f3b021c] 2021-07-17 13:19:17 -0400 +Branch: REL_13_STABLE [7099ba058] 2021-07-17 13:19:17 -0400 +Branch: master [0d2cb6b2b] 2021-07-19 17:21:07 -0400 +Branch: REL_14_STABLE [1e8751380] 2021-07-19 17:21:07 -0400 +Branch: REL_13_STABLE [ce413eba4] 2021-07-19 17:21:07 -0400 +Branch: master [ce197e91d] 2021-07-29 17:09:06 -0400 +Branch: REL_14_STABLE [f951f6f69] 2021-07-29 17:09:06 -0400 +Branch: REL_13_STABLE [41d27ee7b] 2021-07-29 17:26:25 -0400 +--> + <para> + Advance oldest-required-WAL-segment horizon properly after a + replication slot is invalidated (Kyotaro Horiguchi) + </para> + + <para> + If all slots were invalidated, the horizon would not move again, + eventually allowing the server's WAL storage to run out of space. + </para> + </listitem> + + <listitem> +<!-- +Author: Tom Lane <tgl@sss.pgh.pa.us> +Branch: master [50371df26] 2021-07-02 16:04:54 -0400 +Branch: REL_14_STABLE [63a952167] 2021-07-02 16:05:20 -0400 +Branch: REL_13_STABLE [7fc97752d] 2021-07-02 16:04:54 -0400 +Branch: REL_12_STABLE [feff61557] 2021-07-02 16:04:54 -0400 +Branch: REL_11_STABLE [32d50b895] 2021-07-02 16:04:54 -0400 +Branch: REL_10_STABLE [0b5089e8c] 2021-07-02 16:04:54 -0400 +--> + <para> + In walreceivers, avoid attempting catalog lookups after an error + (Masahiko Sawada, Bharath Rupireddy) + </para> + </listitem> + + <listitem> +<!-- +Author: Fujii Masao <fujii@postgresql.org> +Branch: master Release: REL_14_BR [2945a488a] 2020-11-16 18:27:51 +0900 +Branch: REL_13_STABLE [8d091922f] 2021-07-25 11:15:30 +0900 +Branch: REL_12_STABLE [1bcfda30f] 2021-07-25 11:16:02 +0900 +Branch: REL_11_STABLE [9c83398f8] 2021-07-25 11:16:13 +0900 +Branch: REL_10_STABLE [710fabfa2] 2021-07-25 11:16:26 +0900 +Branch: REL9_6_STABLE [8e5be9cfe] 2021-07-25 11:16:34 +0900 +--> + <para> + Ensure that a standby server's startup process will respond to a + shutdown signal promptly while waiting for WAL to arrive (Fujii + Masao, Soumyadeep Chakraborty) + </para> + </listitem> + + <listitem> +<!-- +Author: Amit Kapila <akapila@postgresql.org> +Branch: master Release: REL_14_BR [b786304c2] 2021-06-28 09:29:38 +0530 +Branch: REL_13_STABLE [741deb260] 2021-06-28 08:42:48 +0530 +Branch: REL_12_STABLE [b75c1f687] 2021-06-28 09:17:10 +0530 +Branch: REL_11_STABLE [c62c3769f] 2021-06-28 09:09:42 +0530 +--> + <para> + Correctly clear shared state after failing to become a member of a + transaction commit group (Amit Kapila) + </para> + + <para> + Given the right timing, this could cause an assertion failure when + some later session re-uses the same PGPROC object. + </para> + </listitem> + + <listitem> +<!-- +Author: Heikki Linnakangas <heikki.linnakangas@iki.fi> +Branch: master Release: REL_14_BR [b6d8d2073] 2021-06-24 10:45:23 +0300 +Branch: REL_13_STABLE [2a0ab13f8] 2021-06-24 10:45:34 +0300 +Branch: REL_12_STABLE [caac19650] 2021-06-24 10:45:43 +0300 +Branch: REL_11_STABLE [c78bb32c1] 2021-06-24 10:45:46 +0300 +Branch: REL_10_STABLE [a5eacd86b] 2021-06-24 10:45:49 +0300 +Branch: REL9_6_STABLE [85ae8ccb2] 2021-06-24 10:45:52 +0300 +Branch: master Release: REL_14_BR [9b8ed0f52] 2021-06-24 11:19:03 +0300 +Branch: REL_13_STABLE [6fb377e5f] 2021-06-24 11:19:31 +0300 +Branch: REL_12_STABLE [8b01a403c] 2021-06-24 11:19:34 +0300 +Branch: REL_11_STABLE [eb3bd243a] 2021-06-24 11:19:37 +0300 +Branch: REL_10_STABLE [fbbc48995] 2021-06-24 11:19:40 +0300 +Branch: REL9_6_STABLE [5956795cb] 2021-06-24 11:19:44 +0300 +--> + <para> + Add locking to avoid reading incorrect relmapper data in the face of + a concurrent write from another process (Heikki Linnakangas) + </para> + </listitem> + + <listitem> +<!-- +Author: Alvaro Herrera <alvherre@alvh.no-ip.org> +Branch: master Release: REL_14_BR [5cc1cd502] 2021-06-11 19:07:32 -0400 +Branch: REL_13_STABLE [065ce069a] 2021-06-11 19:07:32 -0400 +Branch: REL_12_STABLE [0c7efd975] 2021-06-11 19:07:32 -0400 +--> + <para> + Improve progress reporting for the sort phase of a parallel btree + index build (Matthias van de Meent) + </para> + </listitem> + + <listitem> +<!-- +Author: Tom Lane <tgl@sss.pgh.pa.us> +Branch: master Release: REL_14_BR [fe6a20ce5] 2021-06-12 12:59:15 -0400 +Branch: REL_13_STABLE [8b5055812] 2021-06-12 12:59:15 -0400 +Branch: REL_12_STABLE [1f280e833] 2021-06-12 12:59:15 -0400 +Branch: REL_11_STABLE [9eecea7f3] 2021-06-12 12:59:15 -0400 +Branch: REL_10_STABLE [4745c119e] 2021-06-12 12:59:15 -0400 +--> + <para> + Improve checks for violations of replication protocol (Tom Lane) + </para> + + <para> + Logical replication workers frequently used Asserts to check for + cases that could be triggered by invalid or out-of-order replication + commands. This seems unwise, so promote these tests to regular + error checks. + </para> + </listitem> + + <listitem> +<!-- +Author: Tom Lane <tgl@sss.pgh.pa.us> +Branch: master Release: REL_14_BR [ab55d742e] 2021-06-11 16:12:41 -0400 +Branch: REL_13_STABLE [b270713fd] 2021-06-11 16:12:36 -0400 +Author: Michael Paquier <michael@paquier.xyz> +Branch: master Release: REL_14_BR [bfd96b7a3] 2021-06-12 15:29:48 +0900 +Branch: REL_13_STABLE [fad9c8e93] 2021-06-12 15:30:00 +0900 +--> + <para> + Fix assorted crash cases in logical replication of partitioned-table + updates (Amit Langote, Tom Lane) + </para> + </listitem> + + <listitem> +<!-- +Author: Tom Lane <tgl@sss.pgh.pa.us> +Branch: master Release: REL_14_BR [b39630fd4] 2021-05-22 21:25:29 -0400 +Branch: REL_13_STABLE [5b4791b45] 2021-05-22 21:24:48 -0400 +--> + <para> + Fix potential crash when firing AFTER triggers of partitioned tables + in logical replication workers (Tom Lane) + </para> + </listitem> + + <listitem> +<!-- +Author: Amit Kapila <akapila@postgresql.org> +Branch: master Release: REL_14_BR [6d0eb3855] 2021-05-21 07:54:27 +0530 +Branch: REL_13_STABLE [c83c0257e] 2021-05-21 08:03:38 +0530 +Branch: REL_12_STABLE [18c6242b7] 2021-05-21 08:17:25 +0530 +Branch: REL_11_STABLE [71787b23e] 2021-05-21 08:31:10 +0530 +--> + <para> + Fix deadlock when multiple logical replication workers try to + truncate the same table (Peter Smith, Haiying Tang) + </para> + </listitem> + + <listitem> +<!-- +Author: Amit Kapila <akapila@postgresql.org> +Branch: master Release: REL_14_BR [4daa140a2] 2021-06-15 08:28:36 +0530 +Branch: REL_13_STABLE [602a32a68] 2021-06-15 08:41:16 +0530 +Branch: REL_12_STABLE [40ad7ebff] 2021-06-15 08:50:12 +0530 +Branch: REL_11_STABLE [1f8a934e0] 2021-06-15 09:02:32 +0530 +Branch: REL_10_STABLE [35f56c124] 2021-06-15 09:10:24 +0530 +Branch: REL9_6_STABLE [43acadfce] 2021-06-15 09:18:38 +0530 +Branch: REL_13_STABLE [56e366f67] 2021-06-24 15:21:50 +0530 +Branch: REL_12_STABLE [72b51e214] 2021-06-24 15:25:13 +0530 +Branch: REL_11_STABLE [e95f617ac] 2021-06-24 15:26:37 +0530 +--> + <para> + Fix error cases and memory leaks in logical decoding of speculative + insertions (Dilip Kumar) + </para> + </listitem> + + <listitem> +<!-- +Author: Amit Kapila <akapila@postgresql.org> +Branch: master Release: REL_14_BR [eb89cb43a] 2021-06-01 14:27:14 +0530 +Branch: REL_13_STABLE [d25056812] 2021-06-01 14:25:19 +0530 +Branch: REL_13_STABLE [357cb8f07] 2021-06-18 08:51:18 +0530 +--> + <para> + Fix memory leak in logical replication output (Amit Langote) + </para> + </listitem> + + <listitem> +<!-- +Author: Jeff Davis <jdavis@postgresql.org> +Branch: master [dd0e37cc1] 2021-07-10 10:26:38 -0700 +Branch: REL_14_STABLE [10a07973c] 2021-07-10 10:27:07 -0700 +Branch: REL_13_STABLE [edd9a2bf7] 2021-07-10 10:27:27 -0700 +Branch: REL_12_STABLE [5b1621d2f] 2021-07-10 10:28:15 -0700 +Branch: REL_11_STABLE [52c168db9] 2021-07-10 10:28:33 -0700 +--> + <para> + Avoid leaving an invalid record-type hash table entry behind after + an error (Sait Talha Nisanci) + </para> + + <para> + This could lead to later crashes or memory leakage. + </para> + </listitem> + + <listitem> +<!-- +Author: Tom Lane <tgl@sss.pgh.pa.us> +Branch: master Release: REL_14_BR [131ea3e90] 2021-06-16 19:30:17 -0400 +Branch: REL_13_STABLE [d03a41d1c] 2021-06-16 19:30:17 -0400 +Branch: REL_12_STABLE [17d962cca] 2021-06-16 19:30:17 -0400 +Branch: REL_11_STABLE [9cf163266] 2021-06-16 19:30:17 -0400 +Branch: REL_10_STABLE [a6f7745a3] 2021-06-16 19:30:17 -0400 +Branch: REL9_6_STABLE [c50596cdc] 2021-06-16 19:30:17 -0400 +--> + <para> + Fix plan cache reference leaks in some error cases in + <command>CREATE TABLE ... AS EXECUTE</command> (Tom Lane) + </para> + </listitem> + + <listitem> +<!-- +Author: Thomas Munro <tmunro@postgresql.org> +Branch: master Release: REL_14_BR [b1d653890] 2021-05-29 15:12:34 +1200 +Branch: REL_13_STABLE [d41fda6aa] 2021-05-29 15:13:44 +1200 +Branch: REL_12_STABLE [82248f227] 2021-05-29 15:14:53 +1200 +Branch: REL_11_STABLE [a15d84470] 2021-05-29 15:16:15 +1200 +--> + <para> + Fix race condition in code for sharing tuple descriptors across + parallel workers (Thomas Munro) + </para> + + <para> + Given the right timing, a crash could result. + </para> + </listitem> + + <listitem> +<!-- +Author: Alvaro Herrera <alvherre@alvh.no-ip.org> +Branch: master Release: REL_14_BR [96540f80f] 2021-06-11 12:16:14 -0400 +Branch: REL_13_STABLE [218b10100] 2021-06-11 12:16:14 -0400 +--> + <para> + Fix race condition when invalidating an obsolete replication slot + concurrently with an attempt to drop or update it (Andres Freund, + Álvaro Herrera) + </para> + </listitem> + + <listitem> +<!-- +Author: Tom Lane <tgl@sss.pgh.pa.us> +Branch: master Release: REL_14_BR [30d8bad49] 2021-05-15 12:21:06 -0400 +Branch: REL_13_STABLE [c3cc73e14] 2021-05-15 12:21:06 -0400 +Branch: REL_12_STABLE [6bcb51968] 2021-05-15 12:21:06 -0400 +Branch: REL_11_STABLE [6fcbaea7a] 2021-05-15 12:21:06 -0400 +Branch: REL_10_STABLE [c76ceacbd] 2021-05-15 12:21:06 -0400 +Branch: REL9_6_STABLE [5d195dc40] 2021-05-15 12:21:06 -0400 +--> + <para> + Fix possible race condition when releasing BackgroundWorkerSlots + (Tom Lane) + </para> + + <para> + It's likely that this doesn't fix any observable bug on Intel + hardware, but machines with weaker memory ordering rules could + have problems. + </para> + </listitem> + + <listitem> +<!-- +Author: David Rowley <drowley@postgresql.org> +Branch: master [41469253e] 2021-07-13 12:40:16 +1200 +Branch: REL_14_STABLE [a3b8d91cc] 2021-07-13 12:42:04 +1200 +Branch: REL_13_STABLE [204f646a2] 2021-07-13 12:42:43 +1200 +Branch: REL_12_STABLE [6f1c7a2d0] 2021-07-13 12:44:36 +1200 +Branch: REL_11_STABLE [187e9c399] 2021-07-13 12:45:35 +1200 +Branch: REL_10_STABLE [b55e478a4] 2021-07-13 12:46:12 +1200 +Branch: REL9_6_STABLE [87b7a652b] 2021-07-13 12:46:52 +1200 +Branch: master [5bd38d2f2] 2021-07-13 13:27:05 +1200 +Branch: REL_14_STABLE [a92709fed] 2021-07-13 13:27:44 +1200 +Branch: REL_13_STABLE [2fde8e49a] 2021-07-13 13:28:19 +1200 +Branch: REL_12_STABLE [645c5d119] 2021-07-13 13:30:26 +1200 +Branch: REL_11_STABLE [eff751ea5] 2021-07-13 13:31:00 +1200 +Branch: REL_10_STABLE [d7f10f39c] 2021-07-13 13:31:29 +1200 +Branch: REL9_6_STABLE [d0e44bae4] 2021-07-13 13:32:10 +1200 +--> + <para> + Fix latent crash in sorting code (Ronan Dunklau) + </para> + + <para> + One code path could attempt to free a null pointer. The case + appears unreachable in the core server's use of sorting, but perhaps + it could be triggered by extensions. + </para> + </listitem> + + <listitem> +<!-- +Author: Peter Geoghegan <pg@bowt.ie> +Branch: master Release: REL_14_BR [8f72bbac3] 2021-05-14 15:08:02 -0700 +Branch: REL_13_STABLE [fa675af59] 2021-05-14 15:08:00 -0700 +--> + <para> + Harden B-tree posting list split code against corrupt data + (Peter Geoghegan) + </para> + + <para> + Throw an error, rather than crashing, for an attempt to insert an + item with a TID identical to an existing entry. While that + shouldn't ever happen, it has been reported to happen when the index + is inconsistent with its table. + </para> + </listitem> + + <listitem> +<!-- +Author: Tom Lane <tgl@sss.pgh.pa.us> +Branch: master Release: REL_14_BR [c3c35a733] 2021-05-14 15:07:34 -0400 +Branch: REL_13_STABLE [dc714c120] 2021-05-14 15:07:34 -0400 +Branch: REL_12_STABLE [4e046281f] 2021-05-14 15:07:34 -0400 +Branch: REL_11_STABLE [d776045eb] 2021-05-14 15:07:34 -0400 +Branch: REL_10_STABLE [e87a0d2e0] 2021-05-14 15:07:34 -0400 +Branch: REL9_6_STABLE [5015d3c35] 2021-05-14 15:07:34 -0400 +--> + <para> + Prevent infinite loops in SP-GiST index insertion (Tom Lane) + </para> + + <para> + In the event that INCLUDE columns take up enough space to prevent a + leaf index tuple from ever fitting on a page, the text_ops operator + class would get into an infinite loop vainly trying to make the + tuple fit. + While pre-v11 versions don't have INCLUDE columns, back-patch this + anti-looping fix to them anyway, as it seems like a good defense + against bugs in operator classes. + </para> + </listitem> + + <listitem> +<!-- +Author: Tom Lane <tgl@sss.pgh.pa.us> +Branch: master Release: REL_14_BR [eb7a6b922] 2021-05-14 13:29:39 -0400 +Branch: REL_13_STABLE [c1b72bf04] 2021-05-14 13:26:55 -0400 +Branch: REL_12_STABLE [004288d3c] 2021-05-14 13:26:55 -0400 +Branch: REL_11_STABLE [f4ee4082f] 2021-05-14 13:26:55 -0400 +Branch: REL_10_STABLE [fe64adc93] 2021-05-14 13:26:55 -0400 +Branch: REL9_6_STABLE [4c6cfcc37] 2021-05-14 13:26:55 -0400 +Branch: master Release: REL_14_BR [e47f93f98] 2021-05-14 13:29:39 -0400 +Branch: REL_13_STABLE [63831c162] 2021-05-14 12:54:26 -0400 +Branch: REL_12_STABLE [4c646b179] 2021-05-14 12:54:26 -0400 +Branch: REL_11_STABLE [8274f4517] 2021-05-14 12:54:26 -0400 +Branch: REL_10_STABLE [39b8ccb08] 2021-05-14 12:54:26 -0400 +Branch: REL9_6_STABLE [567328989] 2021-05-14 12:54:26 -0400 +--> + <para> + Ensure that SP-GiST index insertion can be terminated by a query + cancel request (Tom Lane, Álvaro Herrera) + </para> + </listitem> + + <listitem> +<!-- +Author: Tom Lane <tgl@sss.pgh.pa.us> +Branch: master [d9809bf86] 2021-07-20 13:01:48 -0400 +Branch: REL_14_STABLE [899564e01] 2021-07-20 13:01:48 -0400 +Branch: REL_13_STABLE [0fce76b99] 2021-07-20 13:01:48 -0400 +Branch: REL_12_STABLE [85189f54a] 2021-07-20 13:01:48 -0400 +Branch: REL_11_STABLE [7321d5c3f] 2021-07-20 13:01:48 -0400 +Branch: REL_10_STABLE [4eac891b1] 2021-07-20 13:01:48 -0400 +Branch: REL9_6_STABLE [dffec69fe] 2021-07-20 13:01:48 -0400 +--> + <para> + Fix uninitialized-variable bug that could + cause <application>PL/pgSQL</application> to act as though + an <literal>INTO</literal> clause + specified <literal>STRICT</literal>, even though it didn't + (Tom Lane) + </para> + </listitem> + + <listitem> +<!-- +Author: Tom Lane <tgl@sss.pgh.pa.us> +Branch: master [6f5d9bce5] 2021-06-28 14:17:41 -0400 +Branch: REL_14_STABLE [cf1f545bf] 2021-06-28 14:17:42 -0400 +Branch: REL_13_STABLE [1603deca3] 2021-06-28 14:17:42 -0400 +Branch: REL_12_STABLE [240d56fc4] 2021-06-28 14:17:42 -0400 +Branch: REL_11_STABLE [34c24e5a4] 2021-06-28 14:17:42 -0400 +Branch: REL_10_STABLE [06a2b2fe5] 2021-06-28 14:17:42 -0400 +Branch: REL9_6_STABLE [b54be47cd] 2021-06-28 14:17:42 -0400 +--> + <para> + Don't abort the process for an out-of-memory failure in libpq's + printing functions (Tom Lane) + </para> + </listitem> + + <listitem> +<!-- +Author: John Naylor <john.naylor@postgresql.org> +Branch: master [5fcf3945b] 2021-07-30 15:39:22 -0400 +Branch: REL_14_STABLE [f051b87ac] 2021-07-30 16:28:43 -0400 +Branch: REL_13_STABLE [171bf1cea] 2021-07-30 16:18:59 -0400 +Branch: REL_12_STABLE [d9589eb62] 2021-07-30 15:59:10 -0400 +Branch: REL_11_STABLE [c7181a32c] 2021-07-30 16:12:17 -0400 +Branch: REL_10_STABLE [231c19a89] 2021-07-30 16:40:42 -0400 +Branch: REL9_6_STABLE [cfcb0ceab] 2021-07-30 16:34:33 -0400 +Branch: REL_11_STABLE [9455e7f50] 2021-07-30 18:54:38 -0400 +Branch: REL_10_STABLE [f3cd6aeb8] 2021-07-30 18:54:10 -0400 +Branch: REL9_6_STABLE [fa27389c5] 2021-07-30 18:52:55 -0400 +--> + <para> + In <application>ecpg</application>, allow the <type>numeric</type> + value <systemitem>INT_MIN</systemitem> (usually -2147483648) to be + converted to integer (John Naylor) + </para> + </listitem> + + <listitem> +<!-- +Author: Tom Lane <tgl@sss.pgh.pa.us> +Branch: master Release: REL_14_BR [42f94f56b] 2021-06-07 14:15:25 -0400 +Branch: REL_13_STABLE [5b6436874] 2021-06-07 14:15:25 -0400 +Branch: REL_12_STABLE [fc896f45d] 2021-06-07 14:15:25 -0400 +Branch: REL_11_STABLE [89a5499ef] 2021-06-07 14:15:25 -0400 +Branch: REL_10_STABLE [4826fe4c5] 2021-06-07 14:15:25 -0400 +Branch: REL9_6_STABLE [ac600c541] 2021-06-07 14:15:25 -0400 +Branch: REL_10_STABLE [0b116346b] 2021-06-07 13:12:35 -0400 +Branch: REL9_6_STABLE [7cdb97632] 2021-06-07 13:12:35 -0400 +--> + <para> + In <application>psql</application> and other client programs, avoid + overrunning the ends of strings when dealing with invalidly-encoded + data (Tom Lane) + </para> + + <para> + An incorrectly-encoded multibyte character near the end of a string + could cause various processing loops to run past the string's + terminating NUL, with results ranging from no detectable issue to + a program crash, depending on what happens to be in the following + memory. This is reminiscent of CVE-2006-2313, although these + particular cases do not appear to have interesting security + consequences. + </para> + </listitem> + + <listitem> +<!-- +Author: Alvaro Herrera <alvherre@alvh.no-ip.org> +Branch: master [f0e21f2f6] 2021-07-16 17:29:22 -0400 +Branch: REL_14_STABLE [3c5b7c628] 2021-07-16 17:29:22 -0400 +Branch: REL_13_STABLE [cc340af33] 2021-07-16 17:29:22 -0400 +Branch: REL_12_STABLE [5992c94dc] 2021-07-16 17:29:22 -0400 +Branch: REL_11_STABLE [ccfc3cbb3] 2021-07-16 17:29:22 -0400 +--> + <para> + Fix <application>pg_dump</application> to correctly handle triggers + on partitioned tables whose enabled status is different from their + parent triggers' status + (Justin Pryzby, Álvaro Herrera) + </para> + </listitem> + + <listitem> +<!-- +Author: Tom Lane <tgl@sss.pgh.pa.us> +Branch: master Release: REL_14_BR [f807e3410] 2021-06-13 14:32:42 -0400 +Branch: REL_13_STABLE [bc7885b7f] 2021-06-13 14:32:42 -0400 +Branch: REL_12_STABLE [b7c5823ac] 2021-06-13 14:32:42 -0400 +Branch: REL_11_STABLE [73fa76241] 2021-06-13 14:32:42 -0400 +Branch: REL_10_STABLE [05fccab6a] 2021-06-13 14:32:42 -0400 +Branch: REL9_6_STABLE [dd53b46c7] 2021-06-13 14:32:42 -0400 +--> + <para> + Avoid <quote>invalid creation date in header</quote> warnings + observed when running <application>pg_restore</application> on an + archive file created in a different time zone (Tom Lane) + </para> + </listitem> + + <listitem> +<!-- +Author: Bruce Momjian <bruce@momjian.us> +Branch: master [74cf7d46a] 2021-07-26 22:38:15 -0400 +Branch: REL_14_STABLE [695b4a113] 2021-07-26 22:38:14 -0400 +Branch: REL_13_STABLE [0a5e708e2] 2021-07-26 22:38:14 -0400 +Branch: REL_12_STABLE [7626e9f2b] 2021-07-26 22:38:14 -0400 +Branch: REL_11_STABLE [c4ba87f52] 2021-07-26 22:38:14 -0400 +Branch: REL_10_STABLE [71121450e] 2021-07-26 22:38:14 -0400 +Branch: REL9_6_STABLE [088dbf3bc] 2021-07-26 22:38:14 -0400 +--> + <para> + Make <application>pg_upgrade</application> carry forward the old + installation's <literal>oldestXID</literal> value (Bertrand Drouvot) + </para> + + <para> + Previously, the new installation's <literal>oldestXID</literal> was + set to a value old enough to (usually) force immediate + anti-wraparound autovacuuming. That's not desirable from a + performance standpoint; what's worse, installations using large + values of <varname>autovacuum_freeze_max_age</varname> could suffer + unwanted forced shutdowns soon after an upgrade. + </para> + </listitem> + + <listitem> +<!-- +Author: Bruce Momjian <bruce@momjian.us> +Branch: master [e462856a7] 2021-08-03 11:58:15 -0400 +Branch: REL_14_STABLE [4051a7775] 2021-08-03 11:58:15 -0400 +Branch: REL_13_STABLE [a81c71e3a] 2021-08-03 11:58:15 -0400 +Branch: REL_12_STABLE [49e319cea] 2021-08-03 11:58:15 -0400 +Branch: REL_11_STABLE [3d2b6cd6f] 2021-08-03 11:58:14 -0400 +Branch: REL_10_STABLE [58974a542] 2021-08-03 11:58:14 -0400 +Branch: REL9_6_STABLE [5e531bb1d] 2021-08-03 11:58:14 -0400 +Branch: master [9e51cc87f] 2021-08-03 12:26:08 -0400 +Branch: REL_14_STABLE [3a0ba31a3] 2021-08-03 12:26:08 -0400 +Branch: REL_13_STABLE [47a573d91] 2021-08-03 12:26:08 -0400 +Branch: REL_12_STABLE [165506217] 2021-08-03 12:26:08 -0400 +Branch: REL_11_STABLE [554a7648e] 2021-08-03 12:26:08 -0400 +Branch: REL_10_STABLE [fcdc461f5] 2021-08-03 12:26:08 -0400 +Branch: REL9_6_STABLE [3ab496ab8] 2021-08-03 12:26:08 -0400 +--> + <para> + Extend <application>pg_upgrade</application> to detect and warn + about extensions that should be upgraded (Bruce Momjian) + </para> + + <para> + A script file is now produced containing the <command>ALTER + EXTENSION UPDATE</command> commands needed to bring extensions up to + the versions that are considered default in the new installation. + </para> + </listitem> + + <listitem> +<!-- +Author: Michael Paquier <michael@paquier.xyz> +Branch: master [7fbe0c8c4] 2021-07-20 12:12:39 +0900 +Branch: REL_14_STABLE [3a0d2d0cb] 2021-07-20 12:12:47 +0900 +Branch: REL_13_STABLE [fb2b86015] 2021-07-20 12:12:51 +0900 +Branch: REL_12_STABLE [b9a0de15e] 2021-07-20 12:12:54 +0900 +Branch: REL_11_STABLE [795a9166e] 2021-07-20 12:12:57 +0900 +Branch: REL_10_STABLE [11dbad74c] 2021-07-20 12:13:01 +0900 +Branch: master [4ef64c425] 2021-07-26 11:13:37 +0900 +Branch: REL_14_STABLE [b0d286719] 2021-07-26 11:14:08 +0900 +Branch: REL_13_STABLE [2c7395aad] 2021-07-26 11:14:11 +0900 +Branch: REL_12_STABLE [c4ef3b81b] 2021-07-26 11:14:14 +0900 +Branch: REL_11_STABLE [9c6fa3403] 2021-07-26 11:14:17 +0900 +Branch: REL_10_STABLE [4372f0685] 2021-07-26 11:14:21 +0900 +--> + <para> + Avoid problems when + switching <application>pg_receivewal</application> between + compressed and non-compressed WAL storage (Michael Paquier) + </para> + </listitem> + + <listitem> +<!-- +Author: Etsuro Fujita <efujita@postgresql.org> +Branch: master [aa769f80e] 2021-08-05 20:00:00 +0900 +Branch: REL_14_STABLE [588d3f597] 2021-08-05 20:00:01 +0900 +Branch: REL_13_STABLE [388a81bf4] 2021-08-05 20:00:02 +0900 +Branch: REL_12_STABLE [bbc0cd8fa] 2021-08-05 20:00:04 +0900 +--> + <para> + Fix <filename>contrib/postgres_fdw</filename> to work usefully with + generated columns (Etsuro Fujita) + </para> + + <para> + <filename>postgres_fdw</filename> will now behave reasonably with + generated columns, so long as a generated column in a foreign table + represents a generated column in the remote table. <command>IMPORT + FOREIGN SCHEMA</command> will now import generated columns that way + by default. + </para> + </listitem> + + <listitem> +<!-- +Author: Tom Lane <tgl@sss.pgh.pa.us> +Branch: master [c7b7311f6] 2021-07-06 12:36:12 -0400 +Branch: REL_14_STABLE [86d491421] 2021-07-06 12:36:12 -0400 +Branch: REL_13_STABLE [bee18616a] 2021-07-06 12:36:13 -0400 +Branch: REL_12_STABLE [bd2e68d0b] 2021-07-06 12:36:13 -0400 +Branch: REL_11_STABLE [a9460dbf1] 2021-07-06 12:36:13 -0400 +Branch: REL_10_STABLE [b23ac5aef] 2021-07-06 12:36:13 -0400 +Branch: REL9_6_STABLE [67f925bbd] 2021-07-06 12:36:13 -0400 +--> + <para> + In <filename>contrib/postgres_fdw</filename>, avoid attempting + catalog lookups after an error (Tom Lane) + </para> + + <para> + While this usually worked, it's not very safe since the error might + have been one that made catalog access nonfunctional. A side effect + of the fix is that messages about data conversion errors will now + mention the query's table and column aliases (if used) rather than + the true underlying name of a foreign table or column. + </para> + </listitem> + + <listitem> +<!-- +Author: Tom Lane <tgl@sss.pgh.pa.us> +Branch: master Release: REL_14_BR [741d7f104] 2021-06-22 21:43:12 -0400 +Branch: REL_13_STABLE [e2cde85ef] 2021-06-22 21:43:12 -0400 +Branch: REL_12_STABLE [f228c401b] 2021-06-22 21:43:12 -0400 +Branch: REL_11_STABLE [a1417e437] 2021-06-22 21:43:12 -0400 +Branch: REL_10_STABLE [1f32b789d] 2021-06-22 21:43:12 -0400 +Branch: REL9_6_STABLE [13f3fd9e4] 2021-06-22 21:43:12 -0400 +Branch: master Release: REL_14_BR [4a054069a] 2021-06-23 11:13:00 -0400 +Branch: REL_13_STABLE [b961bdfe1] 2021-06-23 11:12:31 -0400 +Branch: REL_12_STABLE [d7da3ef08] 2021-06-23 11:12:31 -0400 +Branch: REL_11_STABLE [b1aa0f228] 2021-06-23 11:12:31 -0400 +Branch: REL_10_STABLE [0a8929ca0] 2021-06-23 11:12:31 -0400 +Branch: REL9_6_STABLE [e535a8899] 2021-06-23 11:12:32 -0400 +Branch: master Release: REL_14_BR [a443c1b2d] 2021-06-23 18:41:39 -0400 +Branch: REL_13_STABLE [5179a1ab7] 2021-06-23 18:41:39 -0400 +Branch: REL_12_STABLE [35e6b3bbf] 2021-06-23 18:41:39 -0400 +Branch: REL_11_STABLE [94d8d8d89] 2021-06-23 18:41:39 -0400 +Branch: REL_10_STABLE [5cb74a803] 2021-06-23 18:41:39 -0400 +Branch: REL9_6_STABLE [ad9827a90] 2021-06-23 18:41:39 -0400 +Branch: REL_12_STABLE [7a48dfbb8] 2021-06-24 11:30:32 -0400 +Branch: REL_11_STABLE [c6cb62f61] 2021-06-24 11:30:32 -0400 +Branch: REL_10_STABLE [024e064af] 2021-06-24 11:30:32 -0400 +Branch: REL9_6_STABLE [e0a7036e1] 2021-06-24 11:30:32 -0400 +Author: Michael Paquier <michael@paquier.xyz> +Branch: master Release: REL_13_BR [989d23b04] 2019-08-24 11:45:05 +0900 +Branch: master Release: REL_13_BR [06fdc4e4d] 2019-08-24 12:34:37 +0900 +Branch: REL_12_STABLE [96f3661e4] 2021-06-17 11:57:21 +0900 +Branch: REL_11_STABLE [8f3229942] 2021-06-17 11:57:26 +0900 +Branch: REL_10_STABLE [feac82fa8] 2021-06-17 11:57:35 +0900 +Branch: REL9_6_STABLE [484c81bf7] 2021-06-17 11:57:44 +0900 +Branch: master Release: REL_13_BR [9903338b5] 2019-08-24 11:35:43 +0900 +Branch: REL_12_STABLE [a8f687927] 2021-06-17 11:01:16 +0900 +Branch: REL_11_STABLE [834cb7269] 2021-06-17 11:01:20 +0900 +Branch: REL_10_STABLE [0ed218048] 2021-06-17 11:01:25 +0900 +Branch: REL9_6_STABLE [b7cd5c5b0] 2021-06-17 11:01:32 +0900 +Author: Tom Lane <tgl@sss.pgh.pa.us> +Branch: master Release: REL_14_BR [642c0697c] 2021-06-27 12:45:04 -0400 +Branch: REL_13_STABLE [2d0944865] 2021-06-27 12:45:04 -0400 +Branch: REL_12_STABLE [bc031cf13] 2021-06-27 12:45:04 -0400 +Branch: REL_11_STABLE [1acab1209] 2021-06-27 12:45:04 -0400 +Branch: REL_10_STABLE [7676d9594] 2021-06-27 12:45:04 -0400 +Branch: REL9_6_STABLE [de589c112] 2021-06-27 12:45:04 -0400 +--> + <para> + Improve the isolation-test infrastructure (Tom Lane, Michael Paquier) + </para> + + <para> + Allow isolation test steps to be annotated to show the expected + completion order. This allows getting stable results from + otherwise-racy test cases, without the long delays that we + previously used (not entirely successfully) to fend off race + conditions. + Allow non-quoted identifiers as isolation test session/step names + (formerly, all such names had to be double-quoted). + Detect and warn about unused steps in isolation tests. + Improve display of query results in isolation tests. + Remove isolationtester's <quote>dry-run</quote> mode. + Remove memory leaks in isolationtester itself. + </para> + </listitem> + + <listitem> +<!-- +Author: Tom Lane <tgl@sss.pgh.pa.us> +Branch: master [9753324b7] 2021-07-05 16:51:57 -0400 +Branch: REL_14_STABLE [07f1e0696] 2021-07-05 16:51:57 -0400 +Branch: REL_13_STABLE [2f487116e] 2021-07-05 16:51:57 -0400 +Branch: REL_12_STABLE [3edc2dbc0] 2021-07-05 16:51:57 -0400 +Branch: REL_11_STABLE [76c23bbb4] 2021-07-05 16:51:57 -0400 +Branch: REL_10_STABLE [8c3e36fcc] 2021-07-05 16:51:57 -0400 +Branch: REL9_6_STABLE [b82eabec3] 2021-07-05 16:51:57 -0400 +Branch: master Release: REL_14_BR [e135743ef] 2021-05-11 20:59:58 -0400 +Branch: REL_13_STABLE [834d9284b] 2021-05-11 20:59:45 -0400 +--> + <para> + Reduce overhead of cache-clobber testing (Tom Lane) + </para> + </listitem> + + <listitem> +<!-- +Author: Peter Eisentraut <peter@eisentraut.org> +Branch: master Release: REL_14_BR [4a682d85a] 2021-06-05 07:16:34 +0200 +Branch: REL_13_STABLE [3989f8fb9] 2021-06-17 09:01:22 +0200 +Branch: REL_12_STABLE [9438962ce] 2021-06-17 09:02:20 +0200 +Branch: REL_11_STABLE [1a2752be8] 2021-06-17 09:02:44 +0200 +Branch: REL_10_STABLE [6b6fbfd7e] 2021-06-17 09:03:30 +0200 +Branch: REL9_6_STABLE [9c31e4165] 2021-06-17 09:04:15 +0200 +Branch: REL_12_STABLE [70293e946] 2021-06-17 16:39:13 +0200 +Branch: REL_11_STABLE [ba529a6ff] 2021-06-18 06:51:56 +0200 +Branch: REL_10_STABLE [91709e10a] 2021-06-18 06:52:46 +0200 +Branch: REL9_6_STABLE [ec52b886d] 2021-06-18 06:52:48 +0200 +--> + <para> + Fix <application>PL/Python</application>'s regression tests to pass + with Python 3.10 (Honza Horak) + </para> + </listitem> + + <listitem> +<!-- +Author: Tom Lane <tgl@sss.pgh.pa.us> +Branch: master [3779ac62d] 2021-07-24 13:41:17 -0400 +Branch: REL_14_STABLE [89ad14cd7] 2021-07-24 13:41:17 -0400 +Branch: REL_13_STABLE [c0a6f83de] 2021-07-24 13:41:17 -0400 +Branch: REL_12_STABLE [4c8a14e8d] 2021-07-24 13:41:17 -0400 +Branch: REL_11_STABLE [9329b9235] 2021-07-24 13:41:17 -0400 +Branch: REL_10_STABLE [5a435289d] 2021-07-24 13:41:17 -0400 +Branch: REL9_6_STABLE [7e09b504d] 2021-07-24 13:41:17 -0400 +--> + <para> + Make <literal>printf("%s", NULL)</literal> + print <literal>(null)</literal> instead of crashing (Tom Lane) + </para> + + <para> + This should improve server robustness in corner cases, and it syncs + our <function>printf</function> implementation with common libraries. + </para> + </listitem> + + <listitem> +<!-- +Author: Michael Paquier <michael@paquier.xyz> +Branch: master [17707c059] 2021-06-30 11:48:53 +0900 +Branch: REL_14_STABLE [607a3a43b] 2021-06-30 11:49:10 +0900 +Branch: REL_13_STABLE [41edb2db1] 2021-06-30 11:49:16 +0900 +Branch: REL_12_STABLE [b5ee867a7] 2021-06-30 11:49:20 +0900 +Branch: REL_11_STABLE [93d3d0cf3] 2021-06-30 11:49:24 +0900 +Branch: REL_10_STABLE [d8569db76] 2021-06-30 11:49:29 +0900 +Branch: REL9_6_STABLE [68bad2333] 2021-06-30 11:49:36 +0900 +--> + <para> + Fix incorrect log message when point-in-time recovery stops at + a <command>ROLLBACK PREPARED</command> record (Simon Riggs) + </para> + </listitem> + + <listitem> +<!-- +Author: Michael Paquier <michael@paquier.xyz> +Branch: REL_14_STABLE [0c83eb2e0] 2021-07-14 17:15:01 +0900 +Branch: REL_13_STABLE [522624345] 2021-07-14 17:15:18 +0900 +Branch: REL_12_STABLE [b242e1d23] 2021-07-14 17:15:26 +0900 +Branch: REL_11_STABLE [85a8c3a4b] 2021-07-14 17:15:31 +0900 +--> + <para> + Improve <command>ALTER TABLE</command>'s messages for + wrong-relation-kind errors (Kyotaro Horiguchi) + </para> + </listitem> + + <listitem> +<!-- +Author: Fujii Masao <fujii@postgresql.org> +Branch: master [0e1275fb0] 2021-07-28 01:20:16 +0900 +Branch: REL_14_STABLE [fd90f6ba7] 2021-07-28 01:21:35 +0900 +Branch: REL_13_STABLE [92913fc29] 2021-07-28 01:21:52 +0900 +Branch: REL_12_STABLE [de87c481f] 2021-07-28 01:24:24 +0900 +Branch: REL_11_STABLE [42e6b5ccb] 2021-07-28 01:24:51 +0900 +Branch: REL_10_STABLE [a84f95ffd] 2021-07-28 01:25:53 +0900 +Branch: REL9_6_STABLE [78c21d79d] 2021-07-28 01:26:15 +0900 +--> + <para> + Clarify error messages referring to <quote>non-negative</quote> + values (Bharath Rupireddy) + </para> + </listitem> + + <listitem> +<!-- +Author: Tom Lane <tgl@sss.pgh.pa.us> +Branch: master [d0a02bdb8] 2021-07-09 12:38:55 -0400 +Branch: REL_14_STABLE [5620ec833] 2021-07-09 12:38:55 -0400 +Branch: REL_13_STABLE [55cccdfdf] 2021-07-09 12:38:55 -0400 +Branch: REL_12_STABLE [a5377e7f7] 2021-07-09 12:38:55 -0400 +Branch: REL_11_STABLE [b69e8ad6c] 2021-07-09 12:38:55 -0400 +Branch: REL_10_STABLE [7e0b53ad6] 2021-07-09 12:38:55 -0400 +Branch: REL9_6_STABLE [cd5d3aefa] 2021-07-09 12:38:55 -0400 +Branch: master [31e8cfac5] 2021-07-09 14:15:41 -0400 +Branch: REL_14_STABLE [7f2eca6f9] 2021-07-09 14:15:41 -0400 +Branch: REL_13_STABLE [cbcf5ffb1] 2021-07-09 14:15:41 -0400 +Branch: REL_12_STABLE [83a8bf24e] 2021-07-09 14:15:41 -0400 +Branch: REL_11_STABLE [29a4fbd46] 2021-07-09 14:15:41 -0400 +Branch: REL_10_STABLE [911488b42] 2021-07-09 14:15:41 -0400 +Branch: REL9_6_STABLE [8c9c20899] 2021-07-09 14:15:41 -0400 +Branch: master [53c38a086] 2021-07-09 16:59:07 -0400 +Branch: REL_14_STABLE [9ffad7ae7] 2021-07-09 16:59:07 -0400 +Branch: REL_13_STABLE [32d0bdbfc] 2021-07-09 16:59:07 -0400 +Branch: REL_12_STABLE [e82cde74d] 2021-07-09 16:59:08 -0400 +Branch: REL_11_STABLE [2c28c689f] 2021-07-09 16:59:08 -0400 +Branch: REL_10_STABLE [56533fce7] 2021-07-09 16:59:08 -0400 +Branch: REL9_6_STABLE [3c612d9f6] 2021-07-09 16:59:08 -0400 +Branch: master [9f6be2e79] 2021-07-10 13:19:30 -0400 +Branch: REL_14_STABLE [ebc346e5b] 2021-07-10 13:19:31 -0400 +Branch: REL_13_STABLE [9fca23c1d] 2021-07-10 13:19:31 -0400 +Branch: REL_12_STABLE [03fc042eb] 2021-07-10 13:19:31 -0400 +Branch: REL_11_STABLE [946f62f2f] 2021-07-10 13:19:31 -0400 +--> + <para> + Fix <application>configure</application> to work with OpenLDAP 2.5, + which no longer has a separate <filename>libldap_r</filename> + library (Adrian Ho, Tom Lane) + </para> + + <para> + If there is no <filename>libldap_r</filename> library, we now + silently assume that <filename>libldap</filename> is thread-safe. + </para> + </listitem> + + <listitem> +<!-- +Author: Andrew Dunstan <andrew@dunslane.net> +Branch: master [b8c4261e5] 2021-07-01 15:12:21 -0400 +Branch: REL_14_STABLE [100e9ae53] 2021-07-01 15:15:09 -0400 +Branch: REL_13_STABLE [bd0be7f7a] 2021-07-01 14:31:10 -0400 +Branch: REL_12_STABLE [c71471c96] 2021-07-01 14:51:54 -0400 +Branch: REL_11_STABLE [a7e3a390e] 2021-07-01 14:52:40 -0400 +Branch: REL_10_STABLE [b796435be] 2021-07-01 15:07:20 -0400 +Branch: REL9_6_STABLE [cbd5d7c85] 2021-07-01 15:11:53 -0400 +Branch: master [7355c241e] 2021-07-01 15:47:46 -0400 +Branch: REL_14_STABLE [1da2ea0cc] 2021-07-01 15:47:47 -0400 +Branch: REL_13_STABLE [8d2be1402] 2021-07-01 15:40:42 -0400 +Branch: REL_12_STABLE [383c29d1e] 2021-07-01 15:43:31 -0400 +Branch: REL_11_STABLE [418041748] 2021-07-01 15:43:53 -0400 +Branch: REL_10_STABLE [177531ee0] 2021-07-01 15:44:06 -0400 +Branch: REL9_6_STABLE [1f7ea06d7] 2021-07-01 15:44:22 -0400 +--> + <para> + Add new make targets <literal>world-bin</literal> + and <literal>install-world-bin</literal> (Andrew Dunstan) + </para> + + <para> + These are the same as <literal>world</literal> + and <literal>install-world</literal> respectively, except that they + do not build or install the documentation. + </para> + </listitem> + + <listitem> +<!-- +Author: Andrew Dunstan <andrew@dunslane.net> +Branch: master [a0fc81326] 2021-07-01 09:02:46 -0400 +Branch: REL_14_STABLE [c4774ce33] 2021-07-01 08:46:21 -0400 +Branch: REL_13_STABLE [a8b564b0c] 2021-07-01 08:46:38 -0400 +Branch: REL_12_STABLE [a40f8ea0f] 2021-07-01 08:47:04 -0400 +Branch: REL_11_STABLE [58ac8300b] 2021-07-01 08:47:21 -0400 +Branch: REL_10_STABLE [16ed3ddbb] 2021-07-01 08:48:24 -0400 +Branch: REL9_6_STABLE [d173a4699] 2021-07-01 09:01:36 -0400 +--> + <para> + Fix make rule for TAP tests (<literal>prove_installcheck</literal>) + to work in PGXS usage (Andrew Dunstan) + </para> + </listitem> + + <listitem> +<!-- +Author: Thomas Munro <tmunro@postgresql.org> +Branch: master Release: REL_14_BR [9b4e4cfe6] 2021-06-25 11:28:20 +1200 +Branch: REL_13_STABLE [d9c05a9ec] 2021-06-25 11:29:00 +1200 +Branch: REL_12_STABLE [47d22649e] 2021-06-25 11:29:20 +1200 +Branch: REL_11_STABLE [6ada4fd06] 2021-06-25 11:29:47 +1200 +--> + <para> + Adjust JIT code to prepare for forthcoming LLVM API change + (Thomas Munro, Andres Freund) + </para> + + <para> + LLVM 13 has made an incompatible API change that will cause crashing + of our previous JIT compiler. + </para> + </listitem> + + <listitem> +<!-- +Author: Tom Lane <tgl@sss.pgh.pa.us> +Branch: master Release: REL_14_BR [126cdaf47] 2021-06-23 14:01:32 -0400 +Branch: REL_13_STABLE [13f365568] 2021-06-23 14:01:32 -0400 +Branch: REL_12_STABLE [7eaf65451] 2021-06-23 14:01:32 -0400 +Branch: REL_11_STABLE [361acef7e] 2021-06-23 14:01:32 -0400 +Branch: REL_10_STABLE [d3a845d1f] 2021-06-23 14:01:32 -0400 +Branch: REL9_6_STABLE [006a829b2] 2021-06-23 14:01:33 -0400 +--> + <para> + Avoid assuming that strings returned by GSSAPI libraries are + null-terminated (Tom Lane) + </para> + + <para> + The GSSAPI spec provides for a string pointer and length. It seems + that in practice the next byte after the string is usually zero, + so that our previous coding didn't actually fail; but we do have + a report of AddressSanitizer complaints. + </para> + </listitem> + + <listitem> +<!-- +Author: Michael Paquier <michael@paquier.xyz> +Branch: master Release: REL_14_BR [025110663] 2021-05-27 20:11:00 +0900 +Branch: REL_13_STABLE [ab81d004e] 2021-05-27 20:11:21 +0900 +Branch: REL_12_STABLE [a75268f1c] 2021-05-27 20:11:24 +0900 +Branch: REL_11_STABLE [cf2e09544] 2021-05-27 20:11:29 +0900 +Branch: REL_10_STABLE [8f507dbc6] 2021-05-27 20:11:33 +0900 +Branch: REL9_6_STABLE [7a4f2e158] 2021-05-27 20:11:38 +0900 +Branch: master Release: REL_14_BR [7ca37fb04] 2020-12-30 12:56:06 -0500 +Branch: REL_13_STABLE [e2f21ff60] 2021-06-01 09:27:25 +0900 +Branch: REL_12_STABLE [02037af3f] 2021-06-01 09:27:31 +0900 +Branch: REL_13_STABLE [949e32ee5] 2021-06-08 13:40:03 +0900 +Branch: REL_12_STABLE [b7684bd10] 2021-06-08 13:40:10 +0900 +--> + <para> + Enable building with GSSAPI on MSVC (Michael Paquier) + </para> + + <para> + Fix various incompatibilities with modern Kerberos builds. + </para> + </listitem> + + <listitem> +<!-- +Author: Andrew Dunstan <andrew@dunslane.net> +Branch: master Release: REL_14_BR [fb424ae85] 2021-05-28 09:30:16 -0400 +Branch: REL_13_STABLE [c828a7246] 2021-05-28 09:31:50 -0400 +Branch: REL_12_STABLE [ae3ef8569] 2021-05-28 09:32:09 -0400 +Branch: REL_11_STABLE [3f70d7e44] 2021-05-28 09:32:24 -0400 +Branch: REL_10_STABLE [a8c1062a1] 2021-05-28 09:32:31 -0400 +Branch: REL9_6_STABLE [abbd70022] 2021-05-28 09:32:46 -0400 +Branch: master Release: REL_14_BR [d69fcb9ca] 2021-05-28 09:35:11 -0400 +Branch: REL_13_STABLE [bb18bc224] 2021-05-28 09:36:42 -0400 +Branch: REL_12_STABLE [40a05cf24] 2021-05-28 09:35:42 -0400 +Branch: REL_11_STABLE [a44a2b9ac] 2021-05-28 09:35:49 -0400 +Branch: REL_10_STABLE [d5d89629c] 2021-05-28 09:35:55 -0400 +Branch: REL9_6_STABLE [34a65fc63] 2021-05-28 09:36:10 -0400 +--> + <para> + In MSVC builds, include <option>--with-pgport</option> in the set of + configure options reported by <application>pg_config</application>, + if it had been specified (Andrew Dunstan) + </para> + </listitem> + + </itemizedlist> + + </sect2> + </sect1> + + <sect1 id="release-13-3"> + <title>Release 13.3</title> + + <formalpara> + <title>Release date:</title> + <para>2021-05-13</para> + </formalpara> + + <para> + This release contains a variety of fixes from 13.2. + For information about new features in major release 13, see + <xref linkend="release-13"/>. + </para> + + <sect2> + <title>Migration to Version 13.3</title> + + <para> + A dump/restore is not required for those running 13.X. + </para> + + <para> + However, if you are upgrading from a version earlier than 13.2, + see <xref linkend="release-13-2"/>. + </para> + </sect2> + + <sect2> + <title>Changes</title> + + <itemizedlist> + + <listitem> +<!-- +Author: Tom Lane <tgl@sss.pgh.pa.us> +Branch: master [f02b9085a] 2021-05-10 10:44:38 -0400 +Branch: REL_13_STABLE [467395bfd] 2021-05-10 10:44:38 -0400 +Branch: REL_12_STABLE [3b0f6a7ae] 2021-05-10 10:44:38 -0400 +Branch: REL_11_STABLE [06bfbe854] 2021-05-10 10:44:38 -0400 +Branch: REL_10_STABLE [2fb809d3e] 2021-05-10 10:44:38 -0400 +Branch: REL9_6_STABLE [0c1caa48d] 2021-05-10 10:44:38 -0400 +--> + <para> + Prevent integer overflows in array subscripting calculations + (Tom Lane) + </para> + + <para> + The array code previously did not complain about cases where an + array's lower bound plus length overflows an integer. This resulted + in later entries in the array becoming inaccessible (since their + subscripts could not be written as integers), but more importantly + it confused subsequent assignment operations. This could lead to + memory overwrites, with ensuing crashes or unwanted data + modifications. + (CVE-2021-32027) + </para> + </listitem> + + <listitem> +<!-- +Author: Tom Lane <tgl@sss.pgh.pa.us> +Branch: master [049e1e2ed] 2021-05-10 11:02:29 -0400 +Branch: REL_13_STABLE [4a8656a7e] 2021-05-10 11:02:29 -0400 +Branch: REL_12_STABLE [a5fa3e067] 2021-05-10 11:02:29 -0400 +Branch: REL_11_STABLE [b7d1f32ff] 2021-05-10 11:02:29 -0400 +Branch: REL_10_STABLE [52a441362] 2021-05-10 11:02:30 -0400 +Branch: REL9_6_STABLE [0fcb8e2e0] 2021-05-10 11:02:30 -0400 +--> + <para> + Fix mishandling of <quote>junk</quote> columns in <literal>INSERT + ... ON CONFLICT ... UPDATE</literal> target lists (Tom Lane) + </para> + + <para> + If the <literal>UPDATE</literal> list contains any multi-column + sub-selects (which give rise to junk columns in addition to the + results proper), the <literal>UPDATE</literal> path would end up + storing tuples that include the values of the extra junk columns. + That's fairly harmless in the short run, but if new columns are + added to the table then the values would become accessible, possibly + leading to malfunctions if they don't match the datatypes of the + added columns. + </para> + + <para> + In addition, in versions supporting cross-partition updates, + a cross-partition update triggered by such a case had the reverse + problem: the junk columns were removed from the target list, + typically causing an immediate crash due to malfunction of the + multi-column sub-select mechanism. + (CVE-2021-32028) + </para> + </listitem> + + <listitem> +<!-- +Author: Tom Lane <tgl@sss.pgh.pa.us> +Branch: REL_13_STABLE [a71cfc56b] 2021-04-22 11:46:41 -0400 +Branch: REL_12_STABLE [3fb93103a] 2021-04-22 11:46:41 -0400 +Branch: REL_11_STABLE [27835b547] 2021-04-22 11:46:41 -0400 +Author: Tom Lane <tgl@sss.pgh.pa.us> +Branch: master [d479d0028] 2021-04-22 17:30:55 -0400 +Branch: REL_13_STABLE [2602ee468] 2021-04-22 17:30:42 -0400 +Branch: REL_12_STABLE [05ce4bf8b] 2021-04-22 17:30:42 -0400 +--> + <para> + Fix possibly-incorrect computation of <command>UPDATE + ... RETURNING</command> outputs for joined cross-partition updates + (Amit Langote, Etsuro Fujita) + </para> + + <para> + If an <command>UPDATE</command> for a partitioned table caused a row + to be moved to another partition with a physically different row + type (for example, one with a different set of dropped columns), + computation of <literal>RETURNING</literal> results for that row + could produce errors or wrong answers. No error is observed unless + the <command>UPDATE</command> involves other tables being joined to + the target table. + (CVE-2021-32029) + </para> + </listitem> + + <listitem> +<!-- +Author: Alvaro Herrera <alvherre@alvh.no-ip.org> +Branch: master [6f70d7ca1] 2021-05-05 12:21:50 -0400 +Branch: REL_13_STABLE [923c13520] 2021-05-05 12:14:21 -0400 +Branch: REL_12_STABLE [abce26c9e] 2021-05-05 12:14:21 -0400 +Branch: REL_11_STABLE [a25b98d2c] 2021-05-05 12:14:21 -0400 +--> + <para> + Fix adjustment of constraint deferrability properties in + partitioned tables (Álvaro Herrera) + </para> + + <para> + When applied to a foreign-key constraint of a partitioned table, + <command>ALTER TABLE ... ALTER CONSTRAINT</command> failed to + adjust the <literal>DEFERRABLE</literal> and/or + <literal>INITIALLY DEFERRED</literal> markings of the constraints + and triggers of leaf partitions. This led to unexpected behavior of + such constraints. After updating to this version, any misbehaving + partitioned tables can be fixed by executing a + new <command>ALTER</command> command to set the desired properties. + </para> + + <para> + This change also disallows applying such an <command>ALTER</command> + directly to the constraints of leaf partitions. The only supported + case is for the whole partitioning hierarchy to have identical + constraint properties, so such <command>ALTER</command>s must be + applied at the partition root. + </para> + </listitem> + + <listitem> +<!-- +Author: Peter Eisentraut <peter@eisentraut.org> +Branch: master [a970edbed] 2021-05-04 12:09:08 +0200 +Branch: REL_13_STABLE [64190d65f] 2021-05-04 12:10:22 +0200 +Branch: REL_12_STABLE [13ff139a2] 2021-05-04 12:10:51 +0200 +--> + <para> + When attaching a child table with <command>ALTER TABLE + ... INHERIT</command>, insist that any generated columns in the + parent be generated the same way in the child (Peter Eisentraut) + </para> + </listitem> + + <listitem> +<!-- +Author: Tom Lane <tgl@sss.pgh.pa.us> +Branch: master [f52c5d674] 2021-03-12 11:08:42 -0500 +Branch: REL_13_STABLE [8a2297776] 2021-03-12 11:08:42 -0500 +Branch: REL_12_STABLE [e7f7950f6] 2021-03-12 11:08:42 -0500 +Branch: REL_11_STABLE [6c34f186c] 2021-03-12 11:08:42 -0500 +Branch: REL_10_STABLE [e5794cd59] 2021-03-12 11:08:42 -0500 +--> + <para> + Forbid marking an identity column as nullable (Vik Fearing) + </para> + + <para> + <literal>GENERATED ... AS IDENTITY</literal> implies <literal>NOT + NULL</literal>, so don't allow it to be combined with an + explicit <literal>NULL</literal> specification. + </para> + </listitem> + + <listitem> +<!-- +Author: Tom Lane <tgl@sss.pgh.pa.us> +Branch: master [69d5ca484] 2021-04-13 15:10:18 -0400 +Branch: REL_13_STABLE [c39aa1e87] 2021-04-13 15:10:18 -0400 +Branch: REL_12_STABLE [a7fcb6285] 2021-04-13 15:10:18 -0400 +Branch: REL_11_STABLE [c7f0275fb] 2021-04-13 15:10:18 -0400 +Branch: REL_10_STABLE [46b6635b7] 2021-04-13 15:10:18 -0400 +Branch: REL9_6_STABLE [041f4efd2] 2021-04-13 15:10:18 -0400 +--> + <para> + Allow <literal>ALTER ROLE/DATABASE ... SET</literal> to set + the <varname>role</varname>, <varname>session_authorization</varname>, + and <varname>temp_buffers</varname> parameters (Tom Lane) + </para> + + <para> + Previously, over-eager validity checks might reject these commands, + even if the values would have worked when used later. This created + a command ordering hazard for dump/reload and upgrade scenarios. + </para> + </listitem> + + <listitem> +<!-- +Author: Michael Paquier <michael@paquier.xyz> +Branch: master [bd1208098] 2021-02-10 13:06:48 +0900 +Branch: REL_13_STABLE [849383138] 2021-02-10 13:09:09 +0900 +Branch: REL_12_STABLE [85edb1f26] 2021-02-10 13:09:12 +0900 +Author: Michael Paquier <michael@paquier.xyz> +Branch: master [4f4726005] 2021-02-10 16:59:04 +0900 +Branch: REL_13_STABLE [c6cd20d91] 2021-02-10 16:59:33 +0900 +Branch: REL_12_STABLE [5b2945ec0] 2021-02-10 16:59:43 +0900 +--> + <para> + Ensure that <command>REINDEX CONCURRENTLY</command> preserves any + statistics target that's been set for the index (Michael Paquier) + </para> + </listitem> + + <listitem> +<!-- +Author: Fujii Masao <fujii@postgresql.org> +Branch: master [8a55cb5ba] 2021-02-19 21:57:52 +0900 +Branch: REL_13_STABLE [422012c98] 2021-02-19 21:58:43 +0900 +Branch: REL_12_STABLE [fadcc4e81] 2021-02-19 21:59:26 +0900 +--> + <para> + Fix <command>COMMIT AND CHAIN</command> to work correctly when the + current transaction has live savepoints (Fujii Masao) + </para> + </listitem> + + <listitem> +<!-- +Author: Tom Lane <tgl@sss.pgh.pa.us> +Branch: master [80ca8464f] 2021-02-25 20:47:32 -0500 +Branch: REL_13_STABLE [49076fd3b] 2021-02-25 20:47:32 -0500 +--> + <para> + Fix list-manipulation bug in <literal>WITH RECURSIVE</literal> + processing (Michael Paquier, Tom Lane) + </para> + + <para> + Sufficiently deep nesting of <literal>WITH</literal> constructs + (at least seven levels) triggered core dumps or incorrect complaints + of faulty <literal>WITH</literal> nesting. + </para> + </listitem> + + <listitem> +<!-- +Author: Tom Lane <tgl@sss.pgh.pa.us> +Branch: master [c402b02b9] 2021-04-12 14:37:49 -0400 +Branch: REL_13_STABLE [8a7bd1e6c] 2021-04-12 14:37:22 -0400 +Branch: REL_12_STABLE [27011bcff] 2021-04-12 14:37:22 -0400 +Branch: REL_11_STABLE [fb2cca828] 2021-04-12 14:37:22 -0400 +Branch: REL_10_STABLE [4b0aecee8] 2021-04-12 14:37:22 -0400 +Branch: REL9_6_STABLE [a6158a4d9] 2021-04-12 14:37:22 -0400 +--> + <para> + Fix bug with coercing the result of a <literal>COLLATE</literal> + expression to a non-collatable type (Tom Lane) + </para> + + <para> + This led to a parse tree in which the <literal>COLLATE</literal> + appears to be applied to a non-collatable value. While that + normally has no real impact (since <literal>COLLATE</literal> has no + effect at runtime), it was possible to construct views that would be + rejected during dump/reload. + </para> + </listitem> + + <listitem> +<!-- +Author: Alvaro Herrera <alvherre@alvh.no-ip.org> +Branch: master [25936fd46] 2021-02-27 18:09:15 -0300 +Branch: REL_13_STABLE [2688852a4] 2021-02-27 18:09:15 -0300 +Branch: REL_12_STABLE [262eb990c] 2021-02-27 18:09:15 -0300 +--> + <para> + Fix use-after-free bug in saving tuples for <literal>AFTER</literal> + triggers (Amit Langote) + </para> + + <para> + This could cause crashes in some situations. + </para> + </listitem> + + <listitem> +<!-- +Author: Tom Lane <tgl@sss.pgh.pa.us> +Branch: master [2efcd502e] 2021-04-30 14:10:26 -0400 +Branch: REL_13_STABLE [4d225ba0e] 2021-04-30 14:10:26 -0400 +Branch: REL_12_STABLE [89768ee69] 2021-04-30 14:10:26 -0400 +Branch: REL_11_STABLE [ebc2ff076] 2021-04-30 14:10:26 -0400 +Branch: REL_10_STABLE [0627f3630] 2021-04-30 14:10:26 -0400 +Branch: REL9_6_STABLE [73bad52a9] 2021-04-30 14:10:26 -0400 +--> + <para> + Disallow calling window functions and procedures via + the <quote>fast path</quote> wire protocol message (Tom Lane) + </para> + + <para> + Only plain functions are supported here. While trying to call + an aggregate function failed already, calling a window function + would crash, and calling a procedure would work only if the + procedure did no transaction control. + </para> + </listitem> + + <listitem> +<!-- +Author: Michael Paquier <michael@paquier.xyz> +Branch: master [f7aab36d6] 2021-04-28 11:17:58 +0900 +Branch: REL_13_STABLE [f3c453787] 2021-04-28 11:18:17 +0900 +Branch: REL_12_STABLE [7e76cb1d8] 2021-04-28 11:18:20 +0900 +Branch: REL_11_STABLE [5b717e13c] 2021-04-28 11:18:24 +0900 +Branch: REL_10_STABLE [90c9bad30] 2021-04-28 11:18:28 +0900 +Branch: REL9_6_STABLE [6e41ff056] 2021-04-28 11:18:33 +0900 +Author: Michael Paquier <michael@paquier.xyz> +Branch: master [f93f0b5b2] 2021-04-28 11:58:08 +0900 +Branch: REL_13_STABLE [a928297bc] 2021-04-28 11:58:43 +0900 +Branch: REL_12_STABLE [85a3e0be1] 2021-04-28 11:58:46 +0900 +Branch: REL_11_STABLE [669f73666] 2021-04-28 11:58:50 +0900 +Branch: REL_10_STABLE [b797918d2] 2021-04-28 11:58:55 +0900 +Branch: REL9_6_STABLE [0d05a3a1d] 2021-04-28 11:59:00 +0900 +--> + <para> + Extend <function>pg_identify_object_as_address()</function> + to support event triggers (Joel Jacobson) + </para> + </listitem> + + <listitem> +<!-- +Author: Michael Paquier <michael@paquier.xyz> +Branch: master [7a3972597] 2021-04-12 11:30:50 +0900 +Branch: REL_13_STABLE [be79debd9] 2021-04-12 11:31:26 +0900 +Branch: REL_12_STABLE [82dd5706e] 2021-04-12 11:31:30 +0900 +Branch: REL_11_STABLE [5656f2c3d] 2021-04-12 11:31:35 +0900 +Branch: REL_10_STABLE [1cc110f68] 2021-04-12 11:31:40 +0900 +Branch: REL9_6_STABLE [6540322fa] 2021-04-12 11:31:46 +0900 +--> + <para> + Fix <function>to_char()</function>'s handling of Roman-numeral month + format codes with negative intervals (Julien Rouhaud) + </para> + + <para> + Previously, such cases would usually cause a crash. + </para> + </listitem> + + <listitem> +<!-- +Author: Tom Lane <tgl@sss.pgh.pa.us> +Branch: master [5c06abb9b] 2021-03-08 18:21:51 -0500 +Branch: REL_13_STABLE [fe2b5386b] 2021-03-08 18:21:51 -0500 +Branch: REL_12_STABLE [8fff8a874] 2021-03-08 18:21:51 -0500 +Branch: REL_11_STABLE [ea42ccbce] 2021-03-08 18:21:51 -0500 +Branch: REL_10_STABLE [37228ecde] 2021-03-08 18:21:51 -0500 +--> + <para> + Check that the argument + of <function>pg_import_system_collations()</function> is a valid + schema OID (Tom Lane) + </para> + </listitem> + + <listitem> +<!-- +Author: Tom Lane <tgl@sss.pgh.pa.us> +Branch: master [b5a66e735] 2021-02-18 22:38:55 -0500 +Branch: REL_13_STABLE [bf9d3a5f8] 2021-02-18 22:38:55 -0500 +Branch: REL_12_STABLE [e7cddb5f2] 2021-02-18 22:38:55 -0500 +Branch: REL_11_STABLE [6e6fecf49] 2021-02-18 22:38:55 -0500 +Branch: REL_10_STABLE [b06450979] 2021-02-18 22:38:55 -0500 +Branch: REL9_6_STABLE [ab208421e] 2021-02-18 22:38:55 -0500 +--> + <para> + Fix use of uninitialized value while parsing an + <literal>\{<replaceable>m</replaceable>,<replaceable>n</replaceable>\}</literal> + quantifier in a BRE-mode regular expression (Tom Lane) + </para> + + <para> + This error could cause the quantifier to act non-greedy, that is + behave like an + <literal>{<replaceable>m</replaceable>,<replaceable>n</replaceable>}?</literal> + quantifier would do in full regular expressions. + </para> + </listitem> + + <listitem> +<!-- +Author: Tom Lane <tgl@sss.pgh.pa.us> +Branch: master [375398244] 2021-04-20 11:32:02 -0400 +Branch: REL_13_STABLE [7bfba4f19] 2021-04-20 11:32:02 -0400 +--> + <para> + Fix <quote>could not find pathkey item to sort</quote> planner + errors in some situations where the sort key involves an aggregate + or window function (James Coleman, Tom Lane) + </para> + </listitem> + + <listitem> +<!-- +Author: Tomas Vondra <tomas.vondra@postgresql.org> +Branch: master [33e52ad9a] 2021-03-26 22:34:58 +0100 +Branch: REL_13_STABLE [67251c82a] 2021-03-26 22:37:45 +0100 +Branch: REL_12_STABLE [88acb0135] 2021-03-26 22:40:00 +0100 +Branch: REL_11_STABLE [2a307df1b] 2021-03-26 22:44:01 +0100 +Branch: REL_10_STABLE [e5eb40eed] 2021-03-26 22:46:15 +0100 +--> + <para> + Don't ignore system columns when estimating the number of groups + using extended statistics (Tomas Vondra) + </para> + + <para> + This led to strange estimates for queries such as <literal>SELECT + ... GROUP BY a, b, ctid</literal>. + </para> + </listitem> + + <listitem> +<!-- +Author: Tom Lane <tgl@sss.pgh.pa.us> +Branch: master [ae4867ec7] 2021-02-12 16:26:47 -0500 +Branch: REL_13_STABLE [3a02d68a9] 2021-02-12 16:26:47 -0500 +Branch: REL_12_STABLE [0347470b3] 2021-02-12 16:26:47 -0500 +Branch: REL_11_STABLE [a28df6fa3] 2021-02-12 16:26:47 -0500 +Branch: REL_10_STABLE [374f1cefe] 2021-02-12 16:26:47 -0500 +Branch: REL9_6_STABLE [f4d781dae] 2021-02-12 16:26:47 -0500 +--> + <para> + Avoid divide-by-zero when estimating selectivity of a regular + expression with a very long fixed prefix (Tom Lane) + </para> + + <para> + This typically led to a <literal>NaN</literal> selectivity value, + causing assertion failures or strange planner behavior. + </para> + </listitem> + + <listitem> +<!-- +Author: Tomas Vondra <tomas.vondra@postgresql.org> +Branch: master [23607a815] 2021-04-07 15:58:36 +0200 +Branch: REL_13_STABLE [1aad1d181] 2021-04-07 15:59:30 +0200 +Branch: REL_12_STABLE [847612fda] 2021-04-07 16:01:27 +0200 +Branch: REL_11_STABLE [7d3a53461] 2021-04-07 16:02:51 +0200 +Branch: REL_10_STABLE [e4f251be7] 2021-04-07 16:04:05 +0200 +Branch: REL9_6_STABLE [df97ee6ea] 2021-04-07 16:05:21 +0200 +--> + <para> + Fix access-off-the-end-of-the-table error in BRIN index bitmap scans + (Tomas Vondra) + </para> + + <para> + If the page range size used by a BRIN index isn't a power of two, + there were corner cases in which a bitmap scan could try to fetch + pages past the actual end of the table, leading to <quote>could not + open file</quote> errors. + </para> + </listitem> + + <listitem> +<!-- +Author: Tom Lane <tgl@sss.pgh.pa.us> +Branch: master [38bb3aef3] 2021-02-16 12:07:14 -0500 +Branch: REL_13_STABLE [0d779d22a] 2021-02-16 12:07:14 -0500 +--> + <para> + Fix potentially wrong answers from GIN <type>tsvector</type> index + searches, when there are many matching tuples (Tom Lane) + </para> + + <para> + If the number of index matches became large enough to make the + bitmap holding them become lossy (a threshold that depends + on <varname>work_mem</varname>), the code could get confused about + whether rechecks are required, allowing rows to be returned that + don't actually match the query. + </para> + </listitem> + + <listitem> +<!-- +Author: Michael Paquier <michael@paquier.xyz> +Branch: master [909b449e0] 2021-03-22 14:02:26 +0900 +Branch: REL_13_STABLE [78c24e97d] 2021-03-22 14:02:36 +0900 +--> + <para> + Fix concurrency issues with WAL segment recycling on Windows + (Michael Paquier) + </para> + + <para> + This reverts a change that caused intermittent <quote>could not + rename file ...: Permission denied</quote> log messages. While + there were not serious consequences, the log spam was annoying. + </para> + </listitem> + + <listitem> +<!-- +Author: Michael Paquier <michael@paquier.xyz> +Branch: master [595b9cba2] 2021-03-22 08:30:53 +0900 +Branch: REL_13_STABLE [6e5ce888a] 2021-03-22 08:31:01 +0900 +Branch: REL_12_STABLE [4b1dd9b1e] 2021-03-22 08:31:05 +0900 +Branch: REL_11_STABLE [f1d550f18] 2021-03-22 08:31:09 +0900 +Branch: REL_10_STABLE [1ec7162a8] 2021-03-22 08:31:14 +0900 +--> + <para> + Avoid incorrect timeline change while recovering uncommitted + two-phase transactions from WAL (Soumyadeep Chakraborty, Jimmy Yih, + Kevin Yeap) + </para> + + <para> + This error could lead to subsequent WAL records being written under + the wrong timeline ID, leading to consistency problems, or even + complete failure to be able to restart the server, later on. + </para> + </listitem> + + <listitem> +<!-- +Author: Fujii Masao <fujii@postgresql.org> +Branch: master [ad8b67492] 2021-04-06 02:25:37 +0900 +Branch: REL_13_STABLE [e7bcfd717] 2021-04-06 02:27:11 +0900 +Branch: REL_12_STABLE [dd5b7e486] 2021-04-06 02:27:22 +0900 +Branch: REL_11_STABLE [b59d3abaf] 2021-04-06 02:27:30 +0900 +Branch: REL_10_STABLE [b9cf9d7d3] 2021-04-06 02:27:39 +0900 +Branch: REL9_6_STABLE [e3bf96216] 2021-04-06 02:27:48 +0900 +--> + <para> + Ensure that locks are released while shutting down a standby + server's startup process (Fujii Masao) + </para> + + <para> + When a standby server is shut down while still in recovery, some + locks might be left held. This causes assertion failures in debug + builds; it's unclear whether any serious consequence could occur + in production builds. + </para> + </listitem> + + <listitem> +<!-- +Author: Alvaro Herrera <alvherre@alvh.no-ip.org> +Branch: master [4e8c0f1a0] 2021-05-07 11:46:37 -0400 +Branch: REL_13_STABLE [ef70b6f8e] 2021-05-07 11:46:37 -0400 +Branch: REL_12_STABLE [cfebc7080] 2021-05-07 11:46:37 -0400 +Branch: REL_11_STABLE [b40865ebd] 2021-05-07 11:46:37 -0400 +Branch: REL_10_STABLE [1803c7626] 2021-05-07 11:46:37 -0400 +--> + <para> + Fix crash when a logical replication worker does <command>ALTER + SUBSCRIPTION REFRESH</command> (Peter Smith) + </para> + + <para> + The core code won't do this, but a replica trigger could. + </para> + </listitem> + + <listitem> +<!-- +Author: Thomas Munro <tmunro@postgresql.org> +Branch: master [f900a79ec] 2021-02-15 16:04:59 +1300 +Branch: REL_13_STABLE [6c23e5ae9] 2021-02-15 16:05:42 +1300 +Branch: REL_12_STABLE [a27f3a7f4] 2021-02-15 16:06:18 +1300 +Branch: REL_11_STABLE [1fefe8879] 2021-02-15 16:06:25 +1300 +Branch: REL_10_STABLE [800131df7] 2021-02-15 16:08:24 +1300 +Branch: REL9_6_STABLE [09a3b19e3] 2021-02-15 16:09:14 +1300 +--> + <para> + Ensure we default to <varname>wal_sync_method</varname> + = <literal>fdatasync</literal> on recent FreeBSD (Thomas Munro) + </para> + + <para> + FreeBSD 13 supports <literal>open_datasync</literal>, which would + normally become the default choice. However, it's unclear whether + that is actually an improvement for Postgres, so preserve the + existing default for now. + </para> + </listitem> + + <listitem> +<!-- +Author: Peter Geoghegan <pg@bowt.ie> +Branch: master [9f3665fbf] 2021-03-10 16:27:01 -0800 +Branch: REL_13_STABLE [9663d1244] 2021-03-10 16:26:58 -0800 +Author: Peter Geoghegan <pg@bowt.ie> +Branch: master [5f8727f5a] 2021-03-10 17:07:57 -0800 +Branch: REL_13_STABLE [1fc5a5738] 2021-03-10 17:07:55 -0800 +--> + <para> + Disable the <varname>vacuum_cleanup_index_scale_factor</varname> + parameter and storage option (Peter Geoghegan) + </para> + + <para> + The notion of tracking <quote>stale</quote> index statistics proved + to interact badly with + the <varname>autovacuum_vacuum_insert_threshold</varname> parameter, + resulting in unnecessary full-index scans and consequent degradation + of autovacuum performance. The latter mechanism seems superior, so + remove the stale-statistics logic. The control parameter for that, + <varname>vacuum_cleanup_index_scale_factor</varname>, will be + removed entirely in v14. In v13, it remains present to avoid + breaking existing configuration files, but it no longer does + anything. + </para> + </listitem> + + <listitem> +<!-- +Author: Alvaro Herrera <alvherre@alvh.no-ip.org> +Branch: master [e798d095d] 2021-05-04 10:09:12 -0400 +Branch: REL_13_STABLE [91a6b3862] 2021-05-04 10:09:11 -0400 +Branch: REL_12_STABLE [72fabd4bf] 2021-05-04 10:09:11 -0400 +--> + <para> + Pass the correct trigger OID to object post-alter hooks + during <command>ALTER CONSTRAINT</command> (Álvaro Herrera) + </para> + + <para> + When updating trigger properties during <command>ALTER + CONSTRAINT</command>, the post-alter hook was told that we are + updating a trigger, but the constraint's OID was passed instead of + the trigger's. + </para> + </listitem> + + <listitem> +<!-- +Author: Thomas Munro <tmunro@postgresql.org> +Branch: master [637668fb1] 2021-02-15 14:27:33 +1300 +Branch: REL_13_STABLE [9fe40913c] 2021-02-15 14:20:42 +1300 +Branch: REL_12_STABLE [840eda04e] 2021-02-15 14:20:52 +1300 +Branch: REL_11_STABLE [acafdd9ed] 2021-02-15 14:21:01 +1300 +Branch: REL_10_STABLE [4b426f77c] 2021-02-15 14:22:08 +1300 +Branch: REL9_6_STABLE [8a07e5bd8] 2021-02-15 14:22:19 +1300 +--> + <para> + Ensure we finish cleaning up when interrupted while detaching a DSM + segment (Thomas Munro) + </para> + + <para> + This error could result in temporary files not being cleaned up + promptly after a parallel query. + </para> + </listitem> + + <listitem> +<!-- +Author: Tom Lane <tgl@sss.pgh.pa.us> +Branch: master [e835e89a0] 2021-03-20 12:47:21 -0400 +Branch: REL_13_STABLE [4b41f6923] 2021-03-20 12:47:35 -0400 +Branch: REL_12_STABLE [2f31414f4] 2021-03-20 12:47:42 -0400 +Branch: REL_11_STABLE [8c830148d] 2021-03-20 12:47:48 -0400 +Branch: REL_10_STABLE [ad6c19066] 2021-03-20 12:47:53 -0400 +Author: Tom Lane <tgl@sss.pgh.pa.us> +Branch: master [9bacdf9f5] 2021-03-18 22:22:47 -0400 +Branch: REL_13_STABLE [12354839e] 2021-03-18 22:21:58 -0400 +Branch: REL_12_STABLE [4eca51d44] 2021-03-18 22:21:58 -0400 +Branch: REL_11_STABLE [20f11ca0d] 2021-03-18 22:21:58 -0400 +Branch: REL_10_STABLE [ba986b7bc] 2021-03-18 22:21:58 -0400 +Author: Tom Lane <tgl@sss.pgh.pa.us> +Branch: master [377b7a830] 2021-03-18 22:22:47 -0400 +Branch: REL_13_STABLE [642b0b69b] 2021-03-18 22:09:41 -0400 +Branch: REL_12_STABLE [fc552f868] 2021-03-18 22:09:41 -0400 +Branch: REL_11_STABLE [26a3ae06d] 2021-03-18 22:09:41 -0400 +Branch: REL_10_STABLE [5058e95a6] 2021-03-18 22:09:41 -0400 +Branch: REL9_6_STABLE [7e2521770] 2021-03-18 22:09:41 -0400 +Author: Tom Lane <tgl@sss.pgh.pa.us> +Branch: master [d303849b0] 2021-03-18 22:22:47 -0400 +Branch: REL_13_STABLE [eba939551] 2021-03-18 21:44:43 -0400 +Branch: REL_12_STABLE [92bc14a10] 2021-03-18 21:44:43 -0400 +Branch: REL_11_STABLE [099d2914f] 2021-03-18 21:44:43 -0400 +Branch: REL_10_STABLE [0b618ddf8] 2021-03-18 21:44:43 -0400 +Branch: REL9_6_STABLE [09e961929] 2021-03-18 21:44:43 -0400 +Author: Tom Lane <tgl@sss.pgh.pa.us> +Branch: master [415ffdc22] 2021-03-18 22:22:47 -0400 +Branch: REL_13_STABLE [ea3989f34] 2021-03-18 20:50:56 -0400 +Branch: REL_12_STABLE [1452a0bb8] 2021-03-18 20:50:56 -0400 +Author: Tom Lane <tgl@sss.pgh.pa.us> +Branch: master [28644fac1] 2021-03-18 22:22:47 -0400 +Branch: REL_13_STABLE [536836970] 2021-03-18 20:37:09 -0400 +Branch: REL_12_STABLE [fbcc9fe33] 2021-03-18 20:37:09 -0400 +Branch: REL_11_STABLE [967b693ea] 2021-03-18 20:37:09 -0400 +Branch: REL_10_STABLE [2bed650c4] 2021-03-18 20:37:09 -0400 +Author: Tom Lane <tgl@sss.pgh.pa.us> +Branch: master [4b12ab18c] 2021-03-16 16:03:06 -0400 +Branch: REL_13_STABLE [4d072bf2a] 2021-03-16 16:02:49 -0400 +Branch: REL_12_STABLE [6e3475556] 2021-03-16 16:02:49 -0400 +Branch: REL_11_STABLE [a2764d87d] 2021-03-16 16:02:50 -0400 +Branch: REL_10_STABLE [7ce7f2b79] 2021-03-16 16:02:50 -0400 +--> + <para> + Fix assorted minor memory leaks in the server (Tom Lane, Andres Freund) + </para> + </listitem> + + <listitem> +<!-- +Author: Fujii Masao <fujii@postgresql.org> +Branch: master [614b7f18b] 2021-02-18 23:28:15 +0900 +Branch: REL_13_STABLE [d4b667e93] 2021-02-18 23:28:58 +0900 +--> + <para> + Fix uninitialized variable in walreceiver's statistics in shared + memory (Fujii Masao) + </para> + + <para> + This error was harmless on most platforms, but could cause issues + on platforms lacking atomic variables and/or spinlock support. + </para> + </listitem> + + <listitem> +<!-- +Author: Peter Eisentraut <peter@eisentraut.org> +Branch: master [b94409a02] 2021-05-03 12:18:27 +0200 +Branch: REL_13_STABLE [e48ce7ef0] 2021-05-03 21:01:09 +0200 +Author: Peter Eisentraut <peter@eisentraut.org> +Branch: master [fa8fbadb9] 2021-05-10 11:40:03 +0200 +Branch: REL_13_STABLE [0d204a4b0] 2021-05-10 13:56:21 +0200 +--> + <para> + Reduce the overhead of dtrace probes for LWLock operations, when + dtrace support is compiled in but not active (Peter Eisentraut) + </para> + </listitem> + + <listitem> +<!-- +Author: Tom Lane <tgl@sss.pgh.pa.us> +Branch: master [c2db458c1] 2021-04-13 13:37:07 -0400 +Branch: REL_13_STABLE [97b7ad468] 2021-04-13 13:37:07 -0400 +Branch: REL_12_STABLE [6530df6c2] 2021-04-13 13:37:07 -0400 +Branch: REL_11_STABLE [22f2a98cf] 2021-04-13 13:37:07 -0400 +--> + <para> + Fix failure when a PL/pgSQL <command>DO</command> block makes use of + both composite-type variables and transaction control (Tom Lane) + </para> + + <para> + Previously, such cases led to errors about leaked tuple descriptors. + </para> + </listitem> + + <listitem> +<!-- +Author: Tom Lane <tgl@sss.pgh.pa.us> +Branch: master [51c54bb60] 2021-03-11 14:43:45 -0500 +Branch: REL_13_STABLE [3580b4a0c] 2021-03-11 14:43:45 -0500 +Branch: REL_12_STABLE [56defbdd0] 2021-03-11 14:43:45 -0500 +Branch: REL_11_STABLE [d3a557894] 2021-03-11 14:43:45 -0500 +Branch: REL_10_STABLE [d2be6cdc5] 2021-03-11 14:43:45 -0500 +Branch: REL9_6_STABLE [a98e53e10] 2021-03-11 14:43:45 -0500 +--> + <para> + Prevent infinite loop in <application>libpq</application> + if a ParameterDescription message with a corrupt length is received + (Tom Lane) + </para> + </listitem> + + <listitem> +<!-- +Author: Alvaro Herrera <alvherre@alvh.no-ip.org> +Branch: master [75dbfe4ca] 2021-03-02 15:39:34 -0300 +Branch: REL_13_STABLE [b52fd1e7c] 2021-03-02 15:39:34 -0300 +Branch: REL_12_STABLE [f92776791] 2021-03-02 15:39:34 -0300 +Branch: REL_11_STABLE [ae1c1d84e] 2021-03-02 15:39:34 -0300 +Branch: REL_10_STABLE [926139dd0] 2021-03-02 15:39:34 -0300 +--> + <para> + When <application>initdb</application> prints instructions about how + to start the server, make the path shown + for <application>pg_ctl</application> use backslash separators on + Windows (Nitin Jadhav) + </para> + </listitem> + + <listitem> +<!-- +Author: Tom Lane <tgl@sss.pgh.pa.us> +Branch: master [ea8013854] 2021-03-23 14:27:50 -0400 +Branch: REL_13_STABLE [c6eac71a8] 2021-03-23 14:27:50 -0400 +Branch: REL_12_STABLE [beac4bd65] 2021-03-23 14:27:50 -0400 +Branch: REL_11_STABLE [d75edab42] 2021-03-23 14:27:50 -0400 +Branch: REL_10_STABLE [d5a905ed5] 2021-03-23 14:27:50 -0400 +Branch: REL9_6_STABLE [4f670c64e] 2021-03-23 14:27:50 -0400 +--> + <para> + Fix <application>psql</application> to restore the previous behavior + of <literal>\connect + service=<replaceable>something</replaceable></literal> (Tom Lane) + </para> + + <para> + A previous bug fix caused environment variables (such + as <varname>PGPORT</varname>) to override entries in the service + file in this context. Restore the previous behavior, in which the + priority is the other way around. + </para> + </listitem> + + <listitem> +<!-- +Author: Fujii Masao <fujii@postgresql.org> +Branch: master [fe06819f1] 2021-02-19 22:01:25 +0900 +Branch: REL_13_STABLE [be7485a1e] 2021-02-19 22:02:19 +0900 +Branch: REL_12_STABLE [67b3ee292] 2021-02-19 22:02:44 +0900 +--> + <para> + Fix <application>psql</application>'s <literal>ON_ERROR_ROLLBACK</literal> + feature to handle <literal>COMMIT AND CHAIN</literal> commands + correctly (Arthur Nascimento) + </para> + + <para> + Previously, this case failed with <quote>savepoint + "pg_psql_temporary_savepoint" does not exist</quote>. + </para> + </listitem> + + <listitem> +<!-- +Author: Alvaro Herrera <alvherre@alvh.no-ip.org> +Branch: master [8d645a116] 2021-03-29 18:34:39 -0300 +Branch: REL_13_STABLE [f50dc2c72] 2021-03-29 18:34:39 -0300 +--> + <para> + In <application>psql</application>, avoid repeated <quote>could not + print result table</quote> failures after the first such error + (Álvaro Herrera) + </para> + </listitem> + + <listitem> +<!-- +Author: Tom Lane <tgl@sss.pgh.pa.us> +Branch: master [48d67fd89] 2021-03-12 12:20:15 -0500 +Branch: REL_13_STABLE [6ed059933] 2021-03-12 12:20:15 -0500 +Branch: REL_12_STABLE [60e5c2b14] 2021-03-12 12:20:15 -0500 +Branch: REL_11_STABLE [33aa7d13d] 2021-03-12 12:20:15 -0500 +Branch: REL_10_STABLE [8915e7906] 2021-03-12 12:20:15 -0500 +Branch: REL9_6_STABLE [a42c4438b] 2021-03-12 12:20:15 -0500 +--> + <para> + Fix race condition in detection of file modification by + <application>psql</application>'s <literal>\e</literal> and related + commands (Laurenz Albe) + </para> + + <para> + A very fast typist could fool the code's file-timestamp-based + detection of whether the temporary edit file was changed. + </para> + </listitem> + + <listitem> +<!-- +Author: Peter Eisentraut <peter@eisentraut.org> +Branch: master [feb270d10] 2021-05-04 14:18:16 +0200 +Branch: REL_13_STABLE [a6a3a274a] 2021-05-04 14:18:23 +0200 +Branch: REL_12_STABLE [bdaa0d2d7] 2021-05-04 14:18:33 +0200 +--> + <para> + Fix <application>pg_dump</application>'s dumping of + generated columns in partitioned tables (Peter Eisentraut) + </para> + + <para> + A fix introduced in the previous minor release should not be applied + to partitioned tables, only traditionally-inherited tables. + </para> + </listitem> + + <listitem> +<!-- +Author: Tom Lane <tgl@sss.pgh.pa.us> +Branch: master [ec03f2df1] 2021-04-01 13:34:16 -0400 +Branch: REL_13_STABLE [35421a470] 2021-04-01 13:34:16 -0400 +Branch: REL_12_STABLE [84c5e0dd2] 2021-04-01 13:34:16 -0400 +Branch: REL_11_STABLE [25fe401d5] 2021-04-01 13:34:16 -0400 +Branch: REL_10_STABLE [1b6961c8f] 2021-04-01 13:34:16 -0400 +Branch: REL9_6_STABLE [2c9b857af] 2021-04-01 13:34:16 -0400 +--> + <para> + Fix missed file version check + in <application>pg_restore</application> (Tom Lane) + </para> + + <para> + When reading a custom-format archive from a non-seekable source, + <application>pg_restore</application> neglected to check the + archive version. If it was fed a newer archive version than it + can support, it would fail messily later on. + </para> + </listitem> + + <listitem> +<!-- +Author: Tom Lane <tgl@sss.pgh.pa.us> +Branch: master [57c081de0] 2021-04-29 15:24:37 -0400 +Branch: REL_13_STABLE [bbcfee0e5] 2021-04-29 15:24:37 -0400 +Branch: REL_12_STABLE [ba86371b9] 2021-04-29 15:24:37 -0400 +Branch: REL_11_STABLE [404946d40] 2021-04-29 15:24:37 -0400 +Branch: REL_10_STABLE [d5722c927] 2021-04-29 15:24:37 -0400 +Branch: REL9_6_STABLE [54a233071] 2021-04-29 15:24:38 -0400 +--> + <para> + Add some more checks to <application>pg_upgrade</application> for + user tables containing non-upgradable data types (Tom Lane) + </para> + + <para> + Fix detection of some cases where a non-upgradable data type is + embedded within a container type (such as an array or range). + Also disallow upgrading when user tables contain columns of + system-defined composite types, since those types' OIDs are not + stable across versions. + </para> + </listitem> + + <listitem> +<!-- +Author: Fujii Masao <fujii@postgresql.org> +Branch: master [2eb1fc8b1] 2021-04-03 00:07:00 +0900 +Branch: REL_13_STABLE [104164361] 2021-04-03 00:07:49 +0900 +Branch: REL_12_STABLE [24bcce3bd] 2021-04-03 00:08:05 +0900 +--> + <para> + Fix incorrect progress-reporting calculation + in <application>pg_checksums</application> (Shinya Kato) + </para> + </listitem> + + <listitem> +<!-- +Author: Fujii Masao <fujii@postgresql.org> +Branch: master [51893c846] 2021-03-23 09:53:08 +0900 +Branch: REL_13_STABLE [34279fd4f] 2021-03-23 09:54:38 +0900 +Branch: REL_12_STABLE [4220e06f4] 2021-03-23 09:54:59 +0900 +Branch: REL_11_STABLE [4a2627c41] 2021-03-23 09:55:21 +0900 +Branch: REL_10_STABLE [5386a8506] 2021-03-23 09:55:33 +0900 +Branch: REL9_6_STABLE [e73068b07] 2021-03-23 09:55:49 +0900 +--> + <para> + Fix <application>pg_waldump</application> to + count <literal>XACT</literal> records correctly when generating + per-record statistics (Kyotaro Horiguchi) + </para> + </listitem> + + <listitem> +<!-- +Author: Alvaro Herrera <alvherre@alvh.no-ip.org> +Branch: master [8deb6b38d] 2021-02-23 17:30:21 -0300 +Branch: REL_13_STABLE [28f4b6108] 2021-02-23 17:30:21 -0300 +Branch: REL_12_STABLE [2796ae2ad] 2021-02-23 17:30:21 -0300 +Branch: REL_11_STABLE [258391707] 2021-02-23 17:30:21 -0300 +Branch: REL_10_STABLE [bf518fefa] 2021-02-23 17:30:21 -0300 +Branch: REL9_6_STABLE [0ccebe779] 2021-02-23 17:30:21 -0300 +--> + <para> + Fix <filename>contrib/amcheck</filename> to not complain about the + tuple flags <literal>HEAP_XMAX_LOCK_ONLY</literal> + and <literal>HEAP_KEYS_UPDATED</literal> both being set + (Julien Rouhaud) + </para> + + <para> + This is a valid state after <literal>SELECT FOR UPDATE</literal>. + </para> + </listitem> + + <listitem> +<!-- +Author: Noah Misch <noah@leadboat.com> +Branch: master [455dbc010] 2021-04-12 19:24:41 -0700 +Branch: REL_13_STABLE [13881199e] 2021-04-12 19:24:58 -0700 +Branch: REL_12_STABLE [4749c7ff4] 2021-04-12 19:27:09 -0700 +Branch: REL_11_STABLE [c8da16ba1] 2021-04-12 19:27:31 -0700 +Branch: REL_10_STABLE [fb9812b6c] 2021-04-12 19:27:36 -0700 +Branch: REL9_6_STABLE [f488d19f3] 2021-04-12 19:27:38 -0700 +--> + <para> + Adjust VPATH build rules to support recent Oracle Developer Studio + compiler versions (Noah Misch) + </para> + </listitem> + + <listitem> +<!-- +Author: Noah Misch <noah@leadboat.com> +Branch: master [c3556f6fa] 2021-04-12 19:24:21 -0700 +Branch: REL_13_STABLE [766c8fce5] 2021-04-12 19:24:24 -0700 +Branch: REL_12_STABLE [e3ac7d176] 2021-04-12 19:24:25 -0700 +Branch: REL_11_STABLE [4a3de4092] 2021-04-12 19:24:25 -0700 +Branch: REL_10_STABLE [72a9bd047] 2021-04-12 19:24:25 -0700 +Branch: REL9_6_STABLE [14652a19f] 2021-04-12 19:24:26 -0700 +--> + <para> + Fix testing of PL/Python for Python 3 on Solaris (Noah Misch) + </para> + </listitem> + + </itemizedlist> + + </sect2> + </sect1> + + <sect1 id="release-13-2"> + <title>Release 13.2</title> + + <formalpara> + <title>Release date:</title> + <para>2021-02-11</para> + </formalpara> + + <para> + This release contains a variety of fixes from 13.1. + For information about new features in major release 13, see + <xref linkend="release-13"/>. + </para> + + <sect2> + <title>Migration to Version 13.2</title> + + <para> + A dump/restore is not required for those running 13.X. + </para> + + <para> + However, see the first changelog item below concerning a possible + need to update stored views. Also see the third and fourth changelog + items, which describe cases in which reindexing indexes after the + upgrade may be advisable. + </para> + </sect2> + + <sect2> + <title>Changes</title> + + <itemizedlist> + + <listitem> +<!-- +Author: Tom Lane <tgl@sss.pgh.pa.us> +Branch: master [c028faf2a] 2021-02-08 10:14:09 -0500 +Branch: REL_13_STABLE [d525fbcfd] 2021-02-08 10:14:09 -0500 +--> + <para> + Fix failure to check per-column <literal>SELECT</literal> privileges + in some join queries (Tom Lane) + </para> + + <para> + In some cases involving joins, the parser failed to record all the + columns read by a query in the column-usage bitmaps that are used + for permissions checking. Although the executor would still insist + on some sort of <literal>SELECT</literal> privilege to run the + query, this meant that a user having <literal>SELECT</literal> + privilege on only one column of a table could nonetheless read all + its columns through a suitably crafted query. + </para> + + <para> + A stored view that is subject to this problem will have incomplete + column-usage bitmaps, and thus permissions will still not be + enforced properly on the view after updating. In installations that + depend on column-level permissions for security, it is recommended + to <command>CREATE OR REPLACE</command> all user-defined views to + cause them to be re-parsed. + </para> + + <para> + The <productname>PostgreSQL</productname> Project thanks + Sven Klemm for reporting this problem. + (CVE-2021-20229) + </para> + </listitem> + + <listitem> +<!-- +Author: Heikki Linnakangas <heikki.linnakangas@iki.fi> +Branch: master [6214e2b22] 2021-02-08 11:01:51 +0200 +Branch: REL_13_STABLE [8e56684d5] 2021-02-08 11:01:55 +0200 +Branch: REL_12_STABLE [f50e88899] 2021-02-08 11:01:55 +0200 +Branch: REL_11_STABLE [cb5868cc1] 2021-02-08 11:01:55 +0200 +--> + <para> + Fix information leakage in constraint-violation error messages + (Heikki Linnakangas) + </para> + + <para> + If an <command>UPDATE</command> command attempts to move a row to a + different partition but finds that it violates some constraint on + the new partition, and the columns in that partition are in + different physical positions than in the parent table, the error + message could reveal the contents of columns that the user does not + have <literal>SELECT</literal> privilege on. + (CVE-2021-3393) + </para> + </listitem> + + <listitem> +<!-- +Author: Heikki Linnakangas <heikki.linnakangas@iki.fi> +Branch: master [6b4d3046f] 2021-01-20 11:58:03 +0200 +Branch: REL_13_STABLE [b8403d140] 2021-01-20 11:58:25 +0200 +Branch: REL_12_STABLE [0326635dd] 2021-01-20 11:58:27 +0200 +--> + <para> + Fix incorrect detection of concurrent page splits while inserting + into a GiST index (Heikki Linnakangas) + </para> + + <para> + Concurrent insertions could lead to a corrupt index with entries + placed in the wrong pages. It's recommended to reindex any GiST + index that's been subject to concurrent insertions. + </para> + </listitem> + + <listitem> +<!-- +Author: Noah Misch <noah@leadboat.com> +Branch: master [8a54e12a3] 2021-01-30 00:00:27 -0800 +Branch: REL_13_STABLE [86a5b309c] 2021-01-30 00:00:42 -0800 +Branch: REL_12_STABLE [be843ce29] 2021-01-30 00:01:56 -0800 +Branch: REL_11_STABLE [d1ab4bf6e] 2021-01-30 00:02:08 -0800 +Branch: REL_10_STABLE [179775135] 2021-01-30 00:02:11 -0800 +Branch: REL9_6_STABLE [d683d6528] 2021-01-30 00:04:05 -0800 +Branch: REL9_5_STABLE [77a0e14f0] 2021-01-30 00:05:34 -0800 +--> + <para> + Fix <command>CREATE INDEX CONCURRENTLY</command> to wait for + concurrent prepared transactions (Andrey Borodin) + </para> + + <para> + At the point where <command>CREATE INDEX CONCURRENTLY</command> + waits for all concurrent transactions to complete so that it can see + rows they inserted, it must also wait for all prepared transactions + to complete, for the same reason. Its failure to do so meant that + rows inserted by prepared transactions might be omitted from the new + index, causing queries relying on the index to miss such rows. + 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: Jeff Davis <jdavis@postgresql.org> +Branch: master [05c025896] 2020-12-26 17:25:30 -0800 +Branch: REL_13_STABLE [7b8692eaf] 2020-12-26 17:27:50 -0800 +Branch: master [fa0fdf051] 2020-12-27 09:48:44 -0800 +Branch: REL_13_STABLE [6669cc769] 2020-12-27 12:11:57 -0800 +Branch: master [facad3147] 2020-12-27 12:09:00 -0800 +Branch: REL_13_STABLE [cd7d8cde7] 2020-12-27 12:11:58 -0800 +--> + <para> + Avoid crash when trying to rescan an aggregation plan node + that has both hashed and sorted grouping sets + (Jeff Davis) + </para> + </listitem> + + <listitem> +<!-- +Author: Tom Lane <tgl@sss.pgh.pa.us> +Branch: master [0ff865fbe] 2021-02-04 23:01:37 -0500 +Branch: REL_13_STABLE [6467661b6] 2021-02-04 23:01:33 -0500 +--> + <para> + Fix possible incorrect query results when a hash aggregation node + spills some tuples to disk (Tom Lane) + </para> + + <para> + It was possible for aggregation grouping values to be replaced + by nulls when the tuples are read back in, leading to wrong answers. + </para> + </listitem> + + <listitem> +<!-- +Author: Tom Lane <tgl@sss.pgh.pa.us> +Branch: master [82e0e2930] 2021-02-04 19:12:14 -0500 +Branch: REL_13_STABLE [10fcb83da] 2021-02-04 19:12:09 -0500 +--> + <para> + Fix edge case in incremental sort (Neil Chen) + </para> + + <para> + If the last tuple of a sort batch chanced to be the first tuple of + the next group of already-sorted tuples, the code did the wrong + thing. This could lead to <quote>retrieved too many tuples in a + bounded sort</quote> error messages, or to silently-wrong sorting + results. + </para> + </listitem> + + <listitem> +<!-- +Author: Tom Lane <tgl@sss.pgh.pa.us> +Branch: master [9624321ec] 2021-02-03 19:38:43 -0500 +Branch: REL_13_STABLE [57868d957] 2021-02-03 19:38:29 -0500 +Branch: REL_12_STABLE [77e760d5c] 2021-02-03 19:38:29 -0500 +Branch: REL_11_STABLE [1c3a87746] 2021-02-03 19:38:29 -0500 +--> + <para> + Avoid crash when a <literal>CALL</literal> or <literal>DO</literal> + statement that performs a transaction rollback is executed via + extended query protocol (Thomas Munro, Tom Lane) + </para> + + <para> + In <productname>PostgreSQL</productname> 13, this case reliably + caused a null-pointer dereference. In earlier versions the bug + seems to have no visible symptoms, but it's not quite clear that + it could never cause a problem. + </para> + </listitem> + + <listitem> +<!-- +Author: Alvaro Herrera <alvherre@alvh.no-ip.org> +Branch: master [6f5c8a8ec] 2021-01-28 16:56:07 -0300 +Branch: REL_13_STABLE [16f69062e] 2021-01-28 16:56:07 -0300 +--> + <para> + Avoid unnecessary errors with <literal>BEFORE UPDATE</literal> + triggers on partitioned tables (Álvaro Herrera) + </para> + + <para> + A <literal>BEFORE UPDATE FOR EACH ROW</literal> trigger that + modified the row in any way prevented <command>UPDATE</command> from + moving the row to another partition when needed; but there is no + longer any reason for this restriction. + </para> + </listitem> + + <listitem> +<!-- +Author: Tom Lane <tgl@sss.pgh.pa.us> +Branch: master [1d9351a87] 2021-01-28 13:41:55 -0500 +Branch: REL_13_STABLE [7f1921cb9] 2021-01-28 13:41:55 -0500 +Branch: REL_12_STABLE [7c53a8067] 2021-01-28 13:41:55 -0500 +Branch: REL_11_STABLE [6f94531b0] 2021-01-28 13:41:55 -0500 +--> + <para> + Fix partition pruning logic to handle asymmetric hash partition sets + (Tom Lane) + </para> + + <para> + If a hash-partitioned table has unequally-sized partitions (that is, + varying modulus values), or it lacks partitions for some remainder + values, then the planner's pruning logic could mistakenly conclude + that some partitions don't need to be scanned, leading to failure to + find rows that the query should find. + </para> + </listitem> + + <listitem> +<!-- +Author: Tom Lane <tgl@sss.pgh.pa.us> +Branch: master [a0efda88a] 2021-01-19 13:25:33 -0500 +Branch: REL_13_STABLE [188cd4f44] 2021-01-19 13:25:40 -0500 +Branch: REL_12_STABLE [625315996] 2021-01-19 13:25:45 -0500 +Branch: REL_11_STABLE [794562d07] 2021-01-19 13:25:49 -0500 +Branch: REL_10_STABLE [fac54bd5e] 2021-01-19 13:25:54 -0500 +Branch: REL9_6_STABLE [fe8edbb82] 2021-01-19 13:26:01 -0500 +Branch: REL9_5_STABLE [0ab177bec] 2021-01-19 13:26:05 -0500 +--> + <para> + Avoid incorrect results when <literal>WHERE CURRENT OF</literal> is + applied to a cursor whose plan contains a MergeAppend node (Tom + Lane) + </para> + + <para> + This case is unsupported (in general, a cursor using <literal>ORDER + BY</literal> is not guaranteed to be simply updatable); but the code + previously did not reject it, and could silently give false matches. + </para> + </listitem> + + <listitem> +<!-- +Author: Tom Lane <tgl@sss.pgh.pa.us> +Branch: master [60661bbf2] 2021-01-18 18:32:30 -0500 +Branch: REL_13_STABLE [f0f53195b] 2021-01-18 18:32:40 -0500 +Branch: REL_12_STABLE [ba80489c6] 2021-01-18 18:32:45 -0500 +Branch: REL_11_STABLE [de622e677] 2021-01-18 18:32:49 -0500 +Branch: REL_10_STABLE [5cd94de77] 2021-01-18 18:32:55 -0500 +Branch: REL9_6_STABLE [ffbf17463] 2021-01-18 18:33:02 -0500 +Branch: REL9_5_STABLE [33a46993f] 2021-01-18 18:33:07 -0500 +--> + <para> + Fix crash when <literal>WHERE CURRENT OF</literal> is applied to a + cursor whose plan contains a custom scan node (David Geier) + </para> + </listitem> + + <listitem> +<!-- +Author: Tom Lane <tgl@sss.pgh.pa.us> +Branch: master [55dc86eca] 2021-01-21 15:37:23 -0500 +Branch: REL_13_STABLE [73fc2e5ba] 2021-01-21 15:37:23 -0500 +Branch: REL_12_STABLE [1cce024fd] 2021-01-21 15:37:23 -0500 +--> + <para> + Fix planner's mishandling of placeholders whose evaluation should be + delayed by an outer join (Tom Lane) + </para> + + <para> + This occurs in particular with trivial subqueries containing lateral + references to outer-join outputs. The mistake could result in a + malformed plan. The known cases trigger a <quote>failed to assign + all NestLoopParams to plan nodes</quote> error, but other symptoms + may be possible. + </para> + </listitem> + + <listitem> +<!-- +Author: Tom Lane <tgl@sss.pgh.pa.us> +Branch: master [e98c90099] 2020-12-05 16:16:13 -0500 +Branch: REL_13_STABLE [7d43b76f6] 2020-12-05 16:16:13 -0500 +Branch: REL_12_STABLE [77a94c30d] 2020-12-05 16:16:13 -0500 +--> + <para> + Fix planner's handling of placeholders during removal of useless + RESULT RTEs (Tom Lane) + </para> + + <para> + This oversight could lead to <quote>no relation entry for + relid <replaceable>N</replaceable></quote> planner errors. + </para> + </listitem> + + <listitem> +<!-- +Author: Tom Lane <tgl@sss.pgh.pa.us> +Branch: master [b1738ff6a] 2020-11-30 12:22:43 -0500 +Branch: REL_13_STABLE [666a4de93] 2020-11-30 12:22:43 -0500 +Branch: REL_12_STABLE [4f728a1f5] 2020-11-30 12:22:43 -0500 +Branch: REL_11_STABLE [caecab229] 2020-11-30 12:22:43 -0500 +Branch: REL_10_STABLE [785f4462d] 2020-11-30 12:22:43 -0500 +Branch: REL9_6_STABLE [ab4cbb4bc] 2020-11-30 12:22:43 -0500 +Branch: REL9_5_STABLE [8c5da2d51] 2020-11-30 12:22:43 -0500 +--> + <para> + Fix planner's handling of a placeholder that is computed at some + join level and used only at that same level (Tom Lane) + </para> + + <para> + This oversight could lead to <quote>failed to build + any <replaceable>N</replaceable>-way joins</quote> planner errors. + </para> + </listitem> + + <listitem> +<!-- +Author: Tomas Vondra <tomas.vondra@postgresql.org> +Branch: master [f4a3c0b06] 2020-12-21 18:10:20 +0100 +Branch: REL_13_STABLE [ea190ed14] 2020-12-21 18:16:36 +0100 +--> + <para> + Consider unsorted subpaths when planning a Gather Merge operation + (James Coleman) + </para> + + <para> + It's possible to use such a path by adding an explicit Sort node, + and in some cases that gives rise to a superior plan. + </para> + </listitem> + + <listitem> +<!-- +Author: Tomas Vondra <tomas.vondra@postgresql.org> +Branch: master [86b7cca72] 2020-12-21 18:29:49 +0100 +Branch: REL_13_STABLE [be9c3cd18] 2020-12-21 18:42:58 +0100 +Branch: master [fac1b470a] 2020-12-21 19:36:22 +0100 +Branch: REL_13_STABLE [d0167631e] 2020-12-21 19:36:03 +0100 +--> + <para> + Do not consider <literal>ORDER BY</literal> expressions involving + parallel-restricted functions or set-returning functions when trying + to parallelize sorts (James Coleman) + </para> + + <para> + Such cases cannot safely be pushed into worker processes, but the + incremental sort feature accidentally made us consider them. + </para> + </listitem> + + <listitem> +<!-- +Author: Andrew Gierth <rhodiumtoad@postgresql.org> +Branch: master [660b89928] 2020-11-24 21:58:32 +0000 +Branch: REL_13_STABLE [6dda05704] 2020-11-24 21:16:58 +0000 +Branch: REL_12_STABLE [ae5aa26dc] 2020-11-24 21:17:02 +0000 +Branch: REL_11_STABLE [018e7d98d] 2020-11-24 21:18:37 +0000 +Branch: REL_10_STABLE [321c87e5c] 2020-11-24 21:18:59 +0000 +Branch: REL9_6_STABLE [6402afd98] 2020-11-24 21:19:50 +0000 +Branch: REL9_5_STABLE [59ed45e27] 2020-11-24 21:36:09 +0000 +--> + <para> + Be more careful about whether index AMs support mark/restore + (Andrew Gierth) + </para> + + <para> + This prevents errors about missing support functions in rare edge + cases. + </para> + </listitem> + + <listitem> +<!-- +Author: Fujii Masao <fujii@postgresql.org> +Branch: master [2ad78a87f] 2021-01-15 12:44:17 +0900 +Branch: REL_13_STABLE [60369db86] 2021-01-15 12:45:25 +0900 +Branch: REL_12_STABLE [19a1d7685] 2021-01-15 12:45:51 +0900 +Branch: REL_11_STABLE [97b025ebe] 2021-01-15 12:46:26 +0900 +--> + <para> + Fix overestimate of the amount of shared memory needed for parallel + queries (Takayuki Tsunakawa) + </para> + </listitem> + + <listitem> +<!-- +Author: Michael Paquier <michael@paquier.xyz> +Branch: master [21378e1fe] 2021-01-20 11:38:17 +0900 +Branch: REL_13_STABLE [31e0f9d76] 2021-01-20 11:39:14 +0900 +Branch: REL_12_STABLE [5ad672fc2] 2021-01-20 11:39:17 +0900 +Branch: REL_11_STABLE [1c3a4d44d] 2021-01-20 11:39:21 +0900 +Branch: REL_10_STABLE [74ee3abcf] 2021-01-20 11:39:24 +0900 +Branch: REL9_6_STABLE [7dc3be9df] 2021-01-20 11:39:31 +0900 +Branch: REL9_5_STABLE [0ddb529cf] 2021-01-20 11:39:35 +0900 +--> + <para> + Fix <command>ALTER DEFAULT PRIVILEGES</command> to handle duplicated + arguments safely (Michael Paquier) + </para> + + <para> + Duplicate role or schema names within the same command could lead + to <quote>tuple already updated by self</quote> errors or + unique-constraint violations. + </para> + </listitem> + + <listitem> +<!-- +Author: Noah Misch <noah@leadboat.com> +Branch: master [08db7c63f] 2020-12-25 10:41:59 -0800 +Branch: REL_13_STABLE [9f8a48bb2] 2020-12-25 10:42:02 -0800 +Branch: REL_12_STABLE [c96698806] 2020-12-25 10:42:03 -0800 +Branch: REL_11_STABLE [e83e8509b] 2020-12-25 10:42:03 -0800 +Branch: REL_10_STABLE [d7c197f46] 2020-12-25 10:42:03 -0800 +Branch: REL9_6_STABLE [b81d3791e] 2020-12-25 10:42:04 -0800 +Branch: REL9_5_STABLE [90383a613] 2020-12-25 10:42:04 -0800 +Branch: REL_10_STABLE [d176b9d5e] 2020-12-25 11:02:56 -0800 +Branch: REL9_6_STABLE [3f920e876] 2020-12-25 11:03:05 -0800 +Branch: REL9_5_STABLE [14649bf50] 2020-12-25 11:06:23 -0800 +--> + <para> + Flush ACL-related caches when <structname>pg_authid</structname> + changes (Noah Misch) + </para> + + <para> + This change ensures that permissions-related decisions will promptly + reflect the results of <command>ALTER ROLE ... [NO] INHERIT</command>. + </para> + </listitem> + + <listitem> +<!-- +Author: Noah Misch <noah@leadboat.com> +Branch: master [7da83415e] 2021-01-30 00:12:18 -0800 +Branch: REL_13_STABLE [d798ea750] 2021-01-30 00:13:58 -0800 +--> + <para> + Fix failure to detect <quote>snapshot too old</quote> conditions + in tables rewritten in the current transaction (Kyotaro Horiguchi, + Noah Misch) + </para> + + <para> + This is only a hazard when <varname>wal_level</varname> is set + to <literal>minimal</literal> and the rewrite is performed + by <command>ALTER TABLE SET TABLESPACE</command>. + </para> + </listitem> + + <listitem> +<!-- +Author: Noah Misch <noah@leadboat.com> +Branch: master [360bd2321] 2021-01-30 00:11:38 -0800 +Branch: REL_13_STABLE [e8e3e6749] 2021-01-30 00:12:05 -0800 +--> + <para> + Fix spurious failure of <command>CREATE PUBLICATION</command> + when applied to a table created or rewritten in the current + transaction (Kyotaro Horiguchi) + </para> + + <para> + This is only a hazard when <varname>wal_level</varname> is set + to <literal>minimal</literal>. + </para> + </listitem> + + <listitem> +<!-- +Author: Tom Lane <tgl@sss.pgh.pa.us> +Branch: master [f7f83a55b] 2020-12-01 14:02:27 -0500 +Branch: REL_13_STABLE [dffc82a5b] 2020-12-01 14:02:27 -0500 +Branch: REL_12_STABLE [5f9b05ada] 2020-12-01 14:02:28 -0500 +Branch: REL_11_STABLE [28bb8c496] 2020-12-01 14:02:28 -0500 +Branch: REL_10_STABLE [d98e27dc6] 2020-12-01 14:02:28 -0500 +Branch: REL9_6_STABLE [f00c44002] 2020-12-01 14:02:28 -0500 +Branch: REL9_5_STABLE [fb500296d] 2020-12-01 14:02:28 -0500 +--> + <para> + Prevent misprocessing of ambiguous <command>CREATE TABLE + LIKE</command> clauses (Tom Lane) + </para> + + <para> + A <literal>LIKE</literal> clause is re-examined after initial + creation of the new table, to handle importation of indexes and + such. It was possible for this re-examination to find a different + table of the same name, causing unexpected behavior; one example is + where the new table is a temporary table of the same name as + the <literal>LIKE</literal> target. + </para> + </listitem> + + <listitem> +<!-- +Author: Tom Lane <tgl@sss.pgh.pa.us> +Branch: master [97390fe8a] 2020-11-19 15:03:17 -0500 +Branch: REL_13_STABLE [98f3f1d5c] 2020-11-19 15:03:17 -0500 +Branch: REL_12_STABLE [87ab46421] 2020-11-19 15:03:17 -0500 +Branch: REL_11_STABLE [c690ebbef] 2020-11-19 15:03:17 -0500 +Branch: REL_10_STABLE [513db7b70] 2020-11-19 15:03:17 -0500 +Branch: REL9_6_STABLE [159b6775f] 2020-11-19 15:03:17 -0500 +Branch: REL9_5_STABLE [6631d5f26] 2020-11-19 15:03:17 -0500 +--> + <para> + Rearrange order of operations in <command>CREATE TABLE + LIKE</command> so that indexes are cloned before building foreign + key constraints (Tom Lane) + </para> + + <para> + This fixes the case where a self-referential foreign key constraint + declared in the outer <command>CREATE TABLE</command> depends on an + index that's coming from the <literal>LIKE </literal> clause. + </para> + </listitem> + + <listitem> +<!-- +Author: Tomas Vondra <tomas.vondra@postgresql.org> +Branch: master [c9a0dc348] 2021-01-15 23:31:22 +0100 +Branch: REL_13_STABLE [d26d4c717] 2021-01-15 23:32:54 +0100 +Branch: REL_12_STABLE [943a113bc] 2021-01-15 23:33:16 +0100 +Branch: REL_11_STABLE [f52db9694] 2021-01-15 23:33:44 +0100 +Branch: REL_10_STABLE [c22539756] 2021-01-15 23:34:02 +0100 +--> + <para> + Disallow <command>CREATE STATISTICS</command> on system catalogs + (Tomas Vondra) + </para> + </listitem> + + <listitem> +<!-- +Author: Tom Lane <tgl@sss.pgh.pa.us> +Branch: master [dd705a039] 2021-02-06 15:17:01 -0500 +Branch: REL_13_STABLE [4353bc878] 2021-02-06 15:17:01 -0500 +Branch: REL_12_STABLE [f73321957] 2021-02-06 15:17:01 -0500 +Branch: REL_11_STABLE [580069037] 2021-02-06 15:17:02 -0500 +Branch: REL_10_STABLE [ad85e5efa] 2021-02-06 15:17:02 -0500 +Branch: REL9_6_STABLE [7736ab05f] 2021-02-06 15:17:02 -0500 +Branch: REL9_5_STABLE [5ad03374b] 2021-02-06 15:17:02 -0500 +--> + <para> + Disallow converting an inheritance child table to a view + (Tom Lane) + </para> + </listitem> + + <listitem> +<!-- +Author: Thomas Munro <tmunro@postgresql.org> +Branch: master [9f35f9437] 2020-12-01 13:21:03 +1300 +Branch: REL_13_STABLE [fd3a75d82] 2020-12-01 13:22:01 +1300 +Branch: REL_12_STABLE [50f338574] 2020-12-01 13:37:00 +1300 +Branch: REL_11_STABLE [d5706ad7b] 2020-12-01 13:46:27 +1300 +Branch: REL_10_STABLE [22701755d] 2020-12-01 14:43:04 +1300 +Branch: REL9_6_STABLE [d0bbe2122] 2020-12-01 14:50:41 +1300 +Branch: REL9_5_STABLE [e00928de8] 2020-12-01 14:54:49 +1300 +--> + <para> + Ensure that disk space allocated for a dropped relation is released + promptly at commit (Thomas Munro) + </para> + + <para> + Previously, if the dropped relation spanned multiple 1GB segments, + only the first segment was truncated immediately. Other segments + were simply unlinked, which doesn't authorize the kernel to release + the storage so long as any other backends still have the files open. + </para> + </listitem> + + <listitem> +<!-- +Author: Alvaro Herrera <alvherre@alvh.no-ip.org> +Branch: master [ebfe2dbd6] 2021-01-14 15:32:14 -0300 +Branch: REL_13_STABLE [5b01a6f13] 2021-01-14 15:32:14 -0300 +Branch: REL_12_STABLE [c9b702552] 2021-01-14 15:32:14 -0300 +Branch: REL_11_STABLE [c442b32c2] 2021-01-14 15:32:14 -0300 +--> + <para> + Prevent dropping a tablespace that is referenced by a partitioned + relation, but is not used for any actual storage (Álvaro + Herrera) + </para> + + <para> + Previously this was allowed, but subsequent operations on the + partitioned relation would fail. + </para> + </listitem> + + <listitem> +<!-- +Author: Fujii Masao <fujii@postgresql.org> +Branch: master [3df51ca8b] 2020-11-27 20:16:44 +0900 +Branch: REL_13_STABLE [dcc20946a] 2020-11-27 20:17:33 +0900 +Branch: REL_12_STABLE [fce17e486] 2020-11-27 20:18:02 +0900 +--> + <para> + Fix progress reporting for <command>CLUSTER</command> (Matthias van + de Meent) + </para> + </listitem> + + <listitem> +<!-- +Author: Heikki Linnakangas <heikki.linnakangas@iki.fi> +Branch: master [c444472af] 2021-02-05 11:14:56 +0200 +Branch: REL_13_STABLE [c87cbd51e] 2021-02-05 11:19:48 +0200 +Branch: REL_12_STABLE [9b0ce8957] 2021-02-05 11:16:33 +0200 +Branch: REL_11_STABLE [d9b4163c5] 2021-02-05 11:16:53 +0200 +Branch: REL_10_STABLE [c06632e48] 2021-02-05 11:17:07 +0200 +Branch: REL9_6_STABLE [e152ccc7f] 2021-02-05 11:17:13 +0200 +Branch: REL9_5_STABLE [aaf266157] 2021-02-05 11:17:27 +0200 +--> + <para> + Fix handling of backslash-escaped multibyte characters + in <command>COPY FROM</command> (Heikki Linnakangas) + </para> + + <para> + A backslash followed by a multibyte character was not handled + correctly. In some client character encodings, this could lead to + misinterpreting part of a multibyte character as a field separator + or end-of-copy-data marker. + </para> + </listitem> + + <listitem> +<!-- +Author: Heikki Linnakangas <heikki.linnakangas@iki.fi> +Branch: master [2cccb627f] 2020-11-18 12:39:15 +0200 +Branch: REL_13_STABLE [340ae3cfb] 2020-11-20 14:41:14 +0200 +Branch: REL_12_STABLE [888fa2bae] 2020-11-20 14:46:47 +0200 +Branch: REL_11_STABLE [57b5d8484] 2020-11-20 14:49:25 +0200 +Branch: REL_10_STABLE [1dbe627fd] 2020-11-20 14:49:42 +0200 +Branch: REL9_6_STABLE [02a2dbe91] 2020-11-20 14:57:15 +0200 +Branch: REL9_5_STABLE [ded7db4c1] 2020-11-20 14:57:51 +0200 +--> + <para> + Avoid preallocating executor hash tables + in <command>EXPLAIN</command> without <literal>ANALYZE</literal> + (Alexey Bashtanov) + </para> + </listitem> + + <listitem> +<!-- +Author: Tom Lane <tgl@sss.pgh.pa.us> +Branch: master [9c83b54a9] 2020-11-28 14:03:40 -0500 +Branch: REL_13_STABLE [f5de090cc] 2020-11-28 14:03:40 -0500 +Branch: REL_12_STABLE [cbc7a7a10] 2020-11-28 14:03:40 -0500 +Branch: REL_11_STABLE [40f2fbe71] 2020-11-28 14:03:40 -0500 +Branch: REL_10_STABLE [f6324bbbe] 2020-11-28 14:03:40 -0500 +Branch: REL9_6_STABLE [8a4069766] 2020-11-28 14:03:40 -0500 +Branch: REL9_5_STABLE [60d6c7143] 2020-11-28 14:03:40 -0500 +--> + <para> + Fix recently-introduced race condition + in <command>LISTEN</command>/<command>NOTIFY</command> queue + handling (Tom Lane) + </para> + + <para> + A newly-listening backend could attempt to read SLRU pages that + were in process of being truncated, possibly causing an error. + </para> + </listitem> + + <listitem> +<!-- +Author: Tom Lane <tgl@sss.pgh.pa.us> +Branch: master [ff5d5611c] 2020-12-21 13:11:50 -0500 +Branch: REL_13_STABLE [38d30a14b] 2020-12-21 13:11:51 -0500 +Branch: REL_12_STABLE [38bef9e43] 2020-12-21 13:11:29 -0500 +Branch: REL_11_STABLE [75c8ef5ae] 2020-12-21 13:11:29 -0500 +Branch: REL_10_STABLE [542248f9d] 2020-12-21 13:11:30 -0500 +Branch: REL9_6_STABLE [1d5f3f976] 2020-12-21 13:11:30 -0500 +Branch: REL9_5_STABLE [edcdbc44e] 2020-12-21 13:11:30 -0500 +--> + <para> + Allow the <type>jsonb</type> concatenation operator to handle all + combinations of JSON data types (Tom Lane) + </para> + + <para> + We can concatenate two JSON objects or two JSON arrays. Handle + other cases by wrapping non-array inputs in one-element arrays, + then performing an array concatenation. Previously, some + combinations of inputs followed this rule but others arbitrarily + threw an error. + </para> + </listitem> + + <listitem> +<!-- +Author: Tom Lane <tgl@sss.pgh.pa.us> +Branch: master [afcc8772e] 2021-01-08 12:16:00 -0500 +Branch: REL_13_STABLE [49c928c0c] 2021-01-08 12:16:00 -0500 +Branch: REL_12_STABLE [8354371d0] 2021-01-08 12:16:00 -0500 +Branch: REL_11_STABLE [769908811] 2021-01-08 12:16:00 -0500 +Branch: REL_10_STABLE [2d540ac5f] 2021-01-08 12:16:00 -0500 +Branch: REL9_6_STABLE [085a1cfb3] 2021-01-08 12:16:00 -0500 +Branch: REL9_5_STABLE [0c23f30fa] 2021-01-08 12:16:00 -0500 +--> + <para> + Fix use of uninitialized value while parsing a <literal>*</literal> + quantifier in a BRE-mode regular expression (Tom Lane) + </para> + + <para> + This error could cause the quantifier to act non-greedy, that is + behave like a <literal>*?</literal> quantifier would do in full + regular expressions. + </para> + </listitem> + + <listitem> +<!-- +Author: Dean Rasheed <dean.a.rasheed@gmail.com> +Branch: master [bc43b7c2c] 2021-01-05 11:15:28 +0000 +Branch: REL_13_STABLE [e15c384d7] 2021-01-05 11:08:59 +0000 +Branch: REL_12_STABLE [258b77005] 2021-01-05 11:07:12 +0000 +Branch: REL_11_STABLE [160a9e425] 2021-01-05 11:05:58 +0000 +Branch: REL_10_STABLE [275b190b3] 2021-01-05 11:04:41 +0000 +Branch: REL9_6_STABLE [9a299dff2] 2021-01-05 11:02:46 +0000 +Branch: master [fead67c24] 2021-01-05 11:52:42 +0000 +Branch: REL_13_STABLE [5777b6ea2] 2021-01-05 11:51:21 +0000 +Branch: REL_12_STABLE [740780a61] 2021-01-05 11:50:11 +0000 +Branch: REL_11_STABLE [ab042d010] 2021-01-05 11:48:45 +0000 +Branch: REL_10_STABLE [0097193b1] 2021-01-05 11:46:44 +0000 +Branch: REL9_6_STABLE [f0b9bada5] 2021-01-05 11:45:17 +0000 +--> + <para> + Fix numeric <function>power()</function> for the case where the + exponent is exactly <literal>INT_MIN</literal> (-2147483648) + (Dean Rasheed) + </para> + + <para> + Previously, a result with no significant digits was produced. + </para> + </listitem> + + <listitem> +<!-- +Author: Tom Lane <tgl@sss.pgh.pa.us> +Branch: master [4bd3fad80] 2021-01-04 18:32:44 -0500 +Branch: REL_13_STABLE [9e7d87ca8] 2021-01-04 18:32:40 -0500 +Branch: REL_12_STABLE [7c98759e0] 2021-01-04 18:32:40 -0500 +Branch: REL_11_STABLE [50a420bee] 2021-01-04 18:32:40 -0500 +--> + <para> + Fix integer-overflow cases in <function>substring()</function> + functions (Tom Lane, Pavel Stehule) + </para> + + <para> + If the specified starting index and length overflow an integer when + added together, <function>substring()</function> misbehaved, either + throwing a bogus <quote>negative substring length</quote> error for + a case that should succeed, or failing to complain that a negative + length is negative (and instead returning the whole string, in most + cases). + </para> + </listitem> + + <listitem> +<!-- +Author: Noah Misch <noah@leadboat.com> +Branch: master [6db992833] 2021-01-16 12:21:35 -0800 +Branch: REL_13_STABLE [6eb3fc7fc] 2021-01-16 12:21:38 -0800 +Branch: REL_12_STABLE [66087f7e9] 2021-01-16 12:21:39 -0800 +Branch: REL_11_STABLE [677f6cb1d] 2021-01-16 12:21:39 -0800 +Branch: REL_10_STABLE [9afba9b0e] 2021-01-16 12:21:39 -0800 +Branch: REL9_6_STABLE [1a31d8c52] 2021-01-16 12:21:39 -0800 +Branch: REL9_5_STABLE [c424c75f5] 2021-01-16 12:21:39 -0800 +--> + <para> + Prevent possible data loss from incorrect detection of the + wraparound point of an SLRU log + (Noah Misch) + </para> + + <para> + The wraparound point typically falls in the middle of a page, which + must be rounded off to a page boundary, and that was not done + correctly. No issue could arise unless an installation had gotten + to within one page of SLRU overflow, which is unlikely in a + properly-functioning system. If this did happen, it would manifest + in later <quote>apparent wraparound</quote> or <quote>could not + access status of transaction</quote> errors. + </para> + </listitem> + + <listitem> +<!-- +Author: Fujii Masao <fujii@postgresql.org> +Branch: master [fef5b47f6] 2021-01-14 12:27:11 +0900 +Branch: REL_13_STABLE [94f52929a] 2021-01-14 12:28:47 +0900 +Branch: master [424d7a9b2] 2021-01-14 23:55:33 +0900 +Branch: REL_13_STABLE [8523a0971] 2021-01-14 23:56:45 +0900 +--> + <para> + Fix WAL-reading logic to handle timeline switches correctly (Kyotaro + Horiguchi, Fujii Masao) + </para> + + <para> + Previously, if WAL archiving is enabled, a standby could fail to + follow a primary running on a newer timeline, with errors + like <quote>requested WAL segment has already been removed</quote>. + </para> + </listitem> + + <listitem> +<!-- +Author: Amit Kapila <akapila@postgresql.org> +Branch: master [ee1b38f65] 2021-01-13 08:19:50 +0530 +Branch: REL_13_STABLE [0685c5c1b] 2021-01-13 08:31:45 +0530 +Branch: REL_12_STABLE [0b2ae3c92] 2021-01-13 08:40:06 +0530 +Branch: REL_11_STABLE [7adc408f4] 2021-01-13 08:50:13 +0530 +Branch: REL_10_STABLE [636b6f99c] 2021-01-13 09:01:57 +0530 +Branch: REL9_6_STABLE [f2b268ee0] 2021-01-13 09:12:59 +0530 +Branch: REL9_5_STABLE [4bccceaa9] 2021-01-13 09:22:03 +0530 +--> + <para> + Fix memory leak in walsender processes while sending new snapshots + for logical decoding (Amit Kapila) + </para> + </listitem> + + <listitem> +<!-- +Author: Amit Kapila <akapila@postgresql.org> +Branch: master [044aa9e70] 2021-01-12 08:19:39 +0530 +Branch: REL_13_STABLE [decf3fe61] 2021-01-12 08:30:16 +0530 +--> + <para> + Fix relation cache leak in walsender processes while sending row + changes via the root of a partitioned relation during logical + replication (Amit Langote, Mark Zhao) + </para> + </listitem> + + <listitem> +<!-- +Author: Jeff Davis <jdavis@postgresql.org> +Branch: master [a58db3aa1] 2020-12-14 23:47:30 -0800 +Branch: REL_13_STABLE [fde5f130c] 2020-12-14 23:48:44 -0800 +Branch: REL_12_STABLE [706d84fe7] 2020-12-14 23:48:04 -0800 +Branch: REL_11_STABLE [4ee058a3b] 2020-12-14 23:49:06 -0800 +Branch: REL_10_STABLE [ac7df6e8f] 2020-12-14 23:49:29 -0800 +Branch: REL9_6_STABLE [f10da1e9c] 2020-12-14 23:49:57 -0800 +Branch: REL9_5_STABLE [133a0906d] 2020-12-14 23:50:20 -0800 +--> + <para> + Fix walsender to accept additional commands after + terminating replication (Jeff Davis) + </para> + </listitem> + + <listitem> +<!-- +Author: Fujii Masao <fujii@postgresql.org> +Branch: master [8900b5a9d] 2021-01-06 12:39:18 +0900 +Branch: REL_13_STABLE [0f8977b3f] 2021-01-06 12:30:37 +0900 +Branch: REL_12_STABLE [9f540f840] 2021-01-06 12:31:23 +0900 +Branch: REL_11_STABLE [e83771880] 2021-01-06 12:31:55 +0900 +Branch: REL_10_STABLE [4c20e78f1] 2021-01-06 12:32:32 +0900 +Branch: REL9_6_STABLE [0307b98d8] 2021-01-06 12:33:28 +0900 +--> + <para> + Ensure detection of deadlocks between hot standby backends and the + startup (WAL-application) process (Fujii Masao) + </para> + + <para> + The startup process did not run the deadlock detection code, so that + in situations where the startup process is last to join a circular + wait situation, the deadlock might never be recognized. + </para> + </listitem> + + <listitem> +<!-- +Author: Peter Geoghegan <pg@bowt.ie> +Branch: master [422881744] 2020-12-30 16:29:05 -0800 +Branch: REL_13_STABLE [7a57960ba] 2020-12-30 16:29:03 -0800 +Branch: REL_12_STABLE [4f70e0910] 2020-12-30 16:29:01 -0800 +Branch: master [32d6287d2] 2020-12-30 17:21:42 -0800 +Branch: REL_13_STABLE [55e535226] 2020-12-30 17:21:41 -0800 +Branch: REL_12_STABLE [5f95664e1] 2020-12-30 17:21:39 -0800 +--> + <para> + Fix possible failure to detect recovery conflicts while deleting an + index entry that references a HOT chain (Peter Geoghegan) + </para> + + <para> + The code failed to traverse the HOT chain and might thus compute a + too-old XID horizon, which could lead to incorrect conflict + processing in hot standby. The practical impact of this bug is + limited; in most cases the correct XID horizon would be found anyway + from nearby operations. + </para> + </listitem> + + <listitem> +<!-- +Author: Tom Lane <tgl@sss.pgh.pa.us> +Branch: master [860fe27ee] 2020-12-30 11:38:42 -0500 +Branch: REL_13_STABLE [861e96717] 2020-12-30 11:38:42 -0500 +Branch: REL_12_STABLE [3ca19490b] 2020-12-30 11:38:42 -0500 +--> + <para> + Ensure that a nonempty value + of <varname>krb_server_keyfile</varname> always overrides any + setting of <varname>KRB5_KTNAME</varname> in the server's + environment (Tom Lane) + </para> + + <para> + Previously, which setting took precedence depended on whether the + client requests GSS encryption. + </para> + </listitem> + + <listitem> +<!-- +Author: Tom Lane <tgl@sss.pgh.pa.us> +Branch: master [3995c4249] 2020-12-28 17:58:58 -0500 +Branch: REL_13_STABLE [d05e14d78] 2020-12-28 17:58:58 -0500 +Branch: REL_12_STABLE [7ed616f81] 2020-12-28 17:58:58 -0500 +--> + <para> + In server log messages about failing to match connections + to <filename>pg_hba.conf</filename> entries, include details about + whether GSS encryption has been activated (Kyotaro Horiguchi, Tom + Lane) + </para> + + <para> + This is relevant data if <literal>hostgssenc</literal> + or <literal>hostnogssenc</literal> entries exist. + </para> + </listitem> + + <listitem> +<!-- +Author: Tom Lane <tgl@sss.pgh.pa.us> +Branch: master [622ae4621] 2020-12-28 17:44:17 -0500 +Branch: REL_13_STABLE [c1c88bf03] 2020-12-28 17:44:17 -0500 +Branch: REL_12_STABLE [4cfdd8a47] 2020-12-28 17:44:17 -0500 +--> + <para> + Fix assorted issues in server's support for GSS encryption (Tom Lane) + </para> + + <para> + Remove pointless restriction that only GSS authentication + can be used on a GSS-encrypted connection. + Add GSS encryption information to connection-authorized log messages. + Include GSS-related space when computing the required size of + shared memory (this omission could have caused problems with very + high <varname>max_connections</varname> settings). + Avoid possible infinite recursion when reporting an unrecoverable + GSS encryption error. + </para> + </listitem> + + <listitem> +<!-- +Author: Tom Lane <tgl@sss.pgh.pa.us> +Branch: master [7519bd16d] 2020-12-24 17:00:43 -0500 +Branch: REL_13_STABLE [0217ad806] 2020-12-24 17:00:43 -0500 +Branch: REL_12_STABLE [3d8068edc] 2020-12-24 17:00:43 -0500 +Branch: REL_11_STABLE [b99b6b9d6] 2020-12-24 17:00:43 -0500 +Branch: REL_10_STABLE [1a6b1c460] 2020-12-24 17:00:43 -0500 +--> + <para> + Ensure that unserviced requests for background workers are cleaned + up when the postmaster begins a <quote>smart</quote> + or <quote>fast</quote> shutdown sequence (Tom Lane) + </para> + + <para> + Previously, there was a race condition whereby a child process that + had requested a background worker just before shutdown could wait + indefinitely, preventing shutdown from completing. + </para> + </listitem> + + <listitem> +<!-- +Author: Michael Paquier <michael@paquier.xyz> +Branch: master [6db27037b] 2020-12-23 12:51:22 +0900 +Branch: REL_13_STABLE [1e54664ee] 2020-12-23 12:51:35 +0900 +Branch: REL_12_STABLE [67a9411d2] 2020-12-23 12:51:39 +0900 +Branch: REL_11_STABLE [35ad5c7c7] 2020-12-23 12:51:42 +0900 +Branch: REL_10_STABLE [f3ee99df7] 2020-12-23 12:51:46 +0900 +Branch: REL9_6_STABLE [0b54a80a3] 2020-12-23 12:51:51 +0900 +--> + <para> + Fix portability problem in parsing + of <varname>recovery_target_xid</varname> values (Michael Paquier) + </para> + + <para> + The target XID is potentially 64 bits wide, but it was parsed + with <function>strtoul()</function>, causing misbehavior on + platforms where <type>long</type> is 32 bits (such as Windows). + </para> + </listitem> + + <listitem> +<!-- +Author: Tom Lane <tgl@sss.pgh.pa.us> +Branch: master [275b3411d] 2020-11-30 14:38:00 -0500 +Branch: REL_13_STABLE [fac31b2cd] 2020-11-30 14:38:00 -0500 +Branch: REL_12_STABLE [16a1e1ea4] 2020-11-30 14:38:00 -0500 +Branch: REL_11_STABLE [942e441ee] 2020-11-30 14:38:00 -0500 +--> + <para> + Avoid trying to use parallel index build in a standalone backend + (Yulin Pei) + </para> + </listitem> + + <listitem> +<!-- +Author: Tom Lane <tgl@sss.pgh.pa.us> +Branch: master [29d29d652] 2020-11-15 16:10:58 -0500 +Branch: REL_13_STABLE [7c89246d0] 2020-11-15 16:10:48 -0500 +Branch: REL_12_STABLE [4ac8ee9d4] 2020-11-15 16:10:48 -0500 +Branch: REL_11_STABLE [9cebe4952] 2020-11-15 16:10:48 -0500 +--> + <para> + Allow index AMs to support included columns without necessarily + supporting multiple key columns (Tom Lane) + </para> + </listitem> + + <listitem> +<!-- +Author: Michael Paquier <michael@paquier.xyz> +Branch: master [03f9cd93e] 2020-11-12 10:56:33 +0900 +Branch: REL_13_STABLE [9a94b9253] 2020-11-12 10:56:40 +0900 +--> + <para> + While taking a base backup, avoid executing any SHA256 code if a + backup manifest is not needed (Michael Paquier) + </para> + + <para> + When using OpenSSL operating in FIPS mode, SHA256 hashing is + rejected, leading to an error. This change makes it possible to + take a base backup on such a platform, so long + as <option>--no-manifest</option> is specified. + </para> + </listitem> + + <listitem> +<!-- +Author: Andrew Gierth <rhodiumtoad@postgresql.org> +Branch: master [a3367aa3c] 2021-01-28 10:53:10 +0000 +Branch: REL_13_STABLE [75e3cca42] 2021-01-28 11:09:40 +0000 +Branch: REL_12_STABLE [30f912a41] 2021-01-28 11:09:49 +0000 +Branch: REL_11_STABLE [f7f2a28d4] 2021-01-28 11:09:57 +0000 +--> + <para> + Avoid assertion failure during parallel aggregation of an + aggregate with a non-strict deserialization function (Andrew Gierth) + </para> + + <para> + No such aggregate functions exist in + core <productname>PostgreSQL</productname>, but some extensions + such as PostGIS provide some. The mistake is harmless anyway in a + non-assert build. + </para> + </listitem> + + <listitem> +<!-- +Author: Tom Lane <tgl@sss.pgh.pa.us> +Branch: master [07d46fceb] 2021-01-25 13:03:43 -0500 +Branch: REL_13_STABLE [a26194f22] 2021-01-25 13:03:11 -0500 +Branch: REL_12_STABLE [4641b2a30] 2021-01-25 13:03:11 -0500 +Branch: REL_11_STABLE [a7cdd3f71] 2021-01-25 13:03:11 -0500 +Branch: REL_10_STABLE [d09e8789f] 2021-01-25 13:03:11 -0500 +Branch: REL9_6_STABLE [57a7d6f49] 2021-01-25 13:03:12 -0500 +Branch: REL9_5_STABLE [41309f716] 2021-01-25 13:03:12 -0500 +--> + <para> + Avoid assertion failure in <function>pg_get_functiondef()</function> + when examining a function with a <literal>TRANSFORM</literal> option + (Tom Lane) + </para> + </listitem> + + <listitem> +<!-- +Author: Tom Lane <tgl@sss.pgh.pa.us> +Branch: master [ea80d8d94] 2020-12-28 11:41:25 -0500 +Branch: REL_13_STABLE [0ea25ed10] 2020-12-28 11:41:25 -0500 +Branch: REL_12_STABLE [fd1347f9d] 2020-12-28 11:41:25 -0500 +Branch: REL_11_STABLE [2e15f48d9] 2020-12-28 11:41:25 -0500 +Branch: master [5f2e09bcc] 2020-12-28 11:55:23 -0500 +Branch: REL_13_STABLE [63d78d106] 2020-12-28 11:55:32 -0500 +Branch: REL_12_STABLE [d37965965] 2020-12-28 11:55:37 -0500 +Branch: REL_11_STABLE [7966b41de] 2020-12-28 11:55:41 -0500 +--> + <para> + Fix data structure misallocation in + PL/pgSQL's <command>CALL</command> statement (Tom Lane) + </para> + + <para> + A <command>CALL</command> in a PL/pgSQL procedure, to another + procedure that has OUT parameters, would fail if the called + procedure did a <command>COMMIT</command> + or <command>ROLLBACK</command>. + </para> + </listitem> + + <listitem> +<!-- +Author: Tom Lane <tgl@sss.pgh.pa.us> +Branch: master [ff6ce9a3a] 2020-12-28 15:43:44 -0500 +Branch: REL_13_STABLE [06b844c2b] 2020-12-28 15:43:44 -0500 +Branch: REL_12_STABLE [b3a5bf719] 2020-12-28 15:43:44 -0500 +--> + <para> + In <application>libpq</application>, do not skip trying SSL after + GSS encryption (Tom Lane) + </para> + + <para> + If we successfully made a GSS-encrypted connection, but then failed + during authentication, we would fall back to an unencrypted + connection rather than next trying an SSL-encrypted connection. + This could lead to unexpected connection failure, or to silently + getting an unencrypted connection where an encrypted one is + expected. Fortunately, GSS encryption could only succeed if both + client and server hold valid tickets in the same Kerberos + infrastructure. It seems unlikely for that to be true in an + environment that requires SSL encryption instead. + </para> + </listitem> + + <listitem> +<!-- +Author: Tom Lane <tgl@sss.pgh.pa.us> +Branch: master [cf61b0734] 2020-12-28 12:13:40 -0500 +Branch: REL_13_STABLE [31d2b11b9] 2020-12-28 12:13:40 -0500 +--> + <para> + Make <application>libpq</application>'s + <function>PQconndefaults()</function> function report the correct + default value for <varname>channel_binding</varname> + (Daniele Varrazzo) + </para> + </listitem> + + <listitem> +<!-- +Author: Tom Lane <tgl@sss.pgh.pa.us> +Branch: master [7e5e1bba0] 2020-11-29 15:22:04 -0500 +Branch: REL_13_STABLE [72b930f50] 2020-11-29 15:22:04 -0500 +Branch: REL_12_STABLE [3958abdad] 2020-11-29 15:22:04 -0500 +Branch: REL_11_STABLE [777ac03a6] 2020-11-29 15:22:04 -0500 +Branch: REL_10_STABLE [946277fd4] 2020-11-29 15:22:04 -0500 +Branch: REL9_6_STABLE [3f59a05f0] 2020-11-29 15:22:04 -0500 +Branch: REL9_5_STABLE [e2d5de150] 2020-11-29 15:22:04 -0500 +--> + <para> + In <application>psql</application>, re-allow including a password + in a <replaceable>connection_string</replaceable> argument of a + <command>\connect</command> command (Tom Lane) + </para> + + <para> + This used to work, but a recent bug fix caused the password to be + ignored (resulting in prompting for a password). + </para> + </listitem> + + <listitem> +<!-- +Author: Tom Lane <tgl@sss.pgh.pa.us> +Branch: master [314fb9bae] 2020-11-25 16:19:25 -0500 +Branch: REL_13_STABLE [a0ef08172] 2020-11-25 16:19:25 -0500 +Branch: REL_12_STABLE [ea7a167da] 2020-11-25 16:19:25 -0500 +--> + <para> + In <application>psql</application>'s <command>\d</command> commands, + don't truncate the display of column default values (Tom Lane) + </para> + + <para> + Formerly, they were arbitrarily truncated at 128 characters. + </para> + </listitem> + + <listitem> +<!-- +Author: Tom Lane <tgl@sss.pgh.pa.us> +Branch: master [f76a85000] 2021-01-26 13:04:52 -0500 +Branch: REL_13_STABLE [64bdb6e5f] 2021-01-26 13:04:52 -0500 +Branch: REL_12_STABLE [82f97d33f] 2021-01-26 13:04:52 -0500 +Branch: REL_11_STABLE [3fa7b9078] 2021-01-26 13:04:52 -0500 +Branch: REL_10_STABLE [564cb2579] 2021-01-26 13:04:52 -0500 +Branch: REL9_6_STABLE [2c2e134b7] 2021-01-26 13:04:52 -0500 +Branch: REL9_5_STABLE [131825cd5] 2021-01-26 13:04:52 -0500 +--> + <para> + Fix assorted bugs + in <application>psql</application>'s <command>\help</command> + command (Kyotaro Horiguchi, Tom Lane) + </para> + + <para> + <command>\help</command> with two argument words failed to find a + command description using only the first word, for + example <literal>\help reset all</literal> should show the help + for <command>RESET</command> but did not. + Also, <command>\help</command> often failed to invoke the pager when + it should. It also leaked memory. + </para> + </listitem> + + <listitem> +<!-- +Author: Peter Eisentraut <peter@eisentraut.org> +Branch: master [0bf83648a] 2021-02-03 11:27:13 +0100 +Branch: REL_13_STABLE [1d3ce0223] 2021-02-03 11:43:01 +0100 +Branch: REL_12_STABLE [1dd6baf78] 2021-02-03 11:58:15 +0100 +--> + <para> + Fix <application>pg_dump</application>'s dumping of inherited + generated columns (Peter Eisentraut) + </para> + + <para> + The previous behavior resulted in (harmless) errors during restore. + </para> + </listitem> + + <listitem> +<!-- +Author: Tom Lane <tgl@sss.pgh.pa.us> +Branch: master [9eabfe300] 2021-01-12 13:37:38 -0500 +Branch: REL_13_STABLE [0011c5a0f] 2021-01-12 13:37:38 -0500 +Branch: REL_12_STABLE [436d9c5ca] 2021-01-12 13:37:38 -0500 +Branch: REL_11_STABLE [9f15188a1] 2021-01-12 13:37:38 -0500 +Branch: master [8e396a773] 2021-01-14 16:19:38 -0500 +Branch: REL_13_STABLE [79d3ac72f] 2021-01-14 16:19:38 -0500 +Branch: REL_12_STABLE [0d221ecec] 2021-01-14 16:19:38 -0500 +Branch: REL_11_STABLE [bb12a7f42] 2021-01-14 16:19:38 -0500 +Branch: REL_10_STABLE [1c9791f66] 2021-01-14 16:19:38 -0500 +--> + <para> + In <application>pg_dump</application>, ensure that the restore + script runs <command>ALTER PUBLICATION ADD TABLE</command> commands + as the owner of the publication, and similarly runs <command>ALTER + INDEX ATTACH PARTITION</command> commands as the owner of the + partitioned index (Tom Lane) + </para> + + <para> + Previously, these commands would be run by the role that started the + restore script; which will usually work, but in corner cases that + role might not have adequate permissions. + </para> + </listitem> + + <listitem> +<!-- +Author: Noah Misch <noah@leadboat.com> +Branch: master [f713ff7c6] 2021-01-16 12:21:35 -0800 +Branch: REL_13_STABLE [b8daf894f] 2021-01-16 12:21:38 -0800 +Branch: REL_12_STABLE [a0d31b1c9] 2021-01-16 12:21:39 -0800 +Branch: REL_11_STABLE [c6ff165f9] 2021-01-16 12:21:39 -0800 +Branch: REL_10_STABLE [b933c9c0b] 2021-01-16 12:21:39 -0800 +Branch: REL9_6_STABLE [ad2b7c9bb] 2021-01-16 12:21:39 -0800 +--> + <para> + Fix <application>pg_dump</application> to handle <literal>WITH + GRANT OPTION</literal> in an extension's initial privileges + (Noah Misch) + </para> + + <para> + If an extension's script creates an object and grants privileges + on it with grant option, then later the user revokes such + privileges, <application>pg_dump</application> would generate + incorrect SQL for reproducing the situation. (Few if any extensions + do this today.) + </para> + </listitem> + + <listitem> +<!-- +Author: Heikki Linnakangas <heikki.linnakangas@iki.fi> +Branch: master [2b4f31303] 2020-12-03 15:57:48 +0200 +Branch: REL_13_STABLE [abd0abfb7] 2020-12-03 15:57:52 +0200 +Branch: REL_12_STABLE [020f153db] 2020-12-03 15:57:54 +0200 +Branch: REL_11_STABLE [63e316f0b] 2020-12-03 15:57:57 +0200 +Branch: REL_10_STABLE [8b5c353ec] 2020-12-03 15:58:00 +0200 +Branch: REL9_6_STABLE [0740857de] 2020-12-03 15:58:02 +0200 +Branch: REL9_5_STABLE [81e3c868f] 2020-12-03 15:58:06 +0200 +Branch: master [36a4ac20f] 2020-12-04 18:26:46 +0200 +Branch: REL_13_STABLE [e41a2efbc] 2020-12-04 18:24:34 +0200 +Branch: REL_12_STABLE [ad3fb04b9] 2020-12-04 18:24:57 +0200 +Branch: REL_11_STABLE [cda50f211] 2020-12-04 18:25:12 +0200 +Branch: REL_10_STABLE [45d363145] 2020-12-04 18:25:23 +0200 +Branch: REL9_6_STABLE [a075c84f2] 2020-12-04 18:25:45 +0200 +Branch: REL9_5_STABLE [1dd608bba] 2020-12-04 18:25:54 +0200 +Branch: master [6ba581cf1] 2020-12-07 14:50:20 +0200 +Branch: REL_13_STABLE [e6dc04d43] 2020-12-07 14:50:37 +0200 +Branch: REL_12_STABLE [98f8cdd48] 2020-12-07 14:55:22 +0200 +Branch: REL_11_STABLE [10d9c9d03] 2020-12-07 14:55:23 +0200 +Branch: REL_10_STABLE [d137b14c3] 2020-12-07 14:55:25 +0200 +Branch: REL9_6_STABLE [3ea8e660c] 2020-12-07 14:55:27 +0200 +Branch: REL9_5_STABLE [beb6b45ab] 2020-12-07 14:55:28 +0200 +--> + <para> + In <application>pg_rewind</application>, ensure that all WAL is + accounted for when rewinding a standby server + (Ian Barwick, Heikki Linnakangas) + </para> + </listitem> + + <listitem> +<!-- +Author: Tom Lane <tgl@sss.pgh.pa.us> +Branch: master [c21ea4d53] 2021-01-13 14:52:59 -0500 +Branch: REL_13_STABLE [6b045ca6c] 2021-01-13 14:52:49 -0500 +Branch: REL_12_STABLE [3e214fafc] 2021-01-13 14:52:49 -0500 +Branch: REL_11_STABLE [d8bb22ab3] 2021-01-13 14:52:49 -0500 +--> + <para> + In <application>pgbench</application>, disallow a digit as the first + character of a variable name (Fabien Coelho) + </para> + + <para> + This prevents trying to substitute variables into timestamp literal + values, which may contain strings like <literal>12:34</literal>. + </para> + </listitem> + + <listitem> +<!-- +Author: Alvaro Herrera <alvherre@alvh.no-ip.org> +Branch: REL_13_STABLE [f17e8f33f] 2021-01-26 16:42:13 -0300 +Branch: REL_12_STABLE [fdf9d0054] 2021-01-26 16:42:13 -0300 +Branch: REL_11_STABLE [fdd405c63] 2021-01-26 16:42:13 -0300 +Branch: REL_10_STABLE [11a708f81] 2021-01-26 16:42:13 -0300 +Branch: REL9_6_STABLE [bcae842b9] 2021-01-26 16:42:13 -0300 +Branch: REL9_5_STABLE [f2dc96236] 2021-01-26 16:42:13 -0300 +--> + <para> + Report the correct database name in connection failure error + messages from some client programs (Álvaro Herrera) + </para> + + <para> + If the database name was defaulted rather than given on the command + line, <application>pg_dumpall</application>, + <application>pgbench</application>, <application>oid2name</application>, + and <application>vacuumlo</application> would produce misleading + error messages after a connection failure. + </para> + </listitem> + + <listitem> +<!-- +Author: Tom Lane <tgl@sss.pgh.pa.us> +Branch: master [5c0f7cc54] 2021-02-02 13:49:08 -0500 +Branch: REL_13_STABLE [586891394] 2021-02-02 13:49:08 -0500 +Branch: REL_12_STABLE [742846958] 2021-02-02 13:49:08 -0500 +Branch: REL_11_STABLE [5fc5ff61c] 2021-02-02 13:49:08 -0500 +Branch: REL_10_STABLE [2671125c7] 2021-02-02 13:49:08 -0500 +Branch: REL9_6_STABLE [608cf2bfd] 2021-02-02 13:49:08 -0500 +Branch: REL9_5_STABLE [f0f9ed68d] 2021-02-02 13:49:08 -0500 +--> + <para> + Fix memory leak in <filename>contrib/auto_explain</filename> + (Japin Li) + </para> + + <para> + Memory consumed while producing the <literal>EXPLAIN</literal> + output was not freed until the end of the current transaction (for a + top-level statement) or the end of the surrounding statement (for a + nested statement). This was particularly a problem + with <varname>log_nested_statements</varname> enabled. + </para> + </listitem> + + <listitem> +<!-- +Author: Fujii Masao <fujii@postgresql.org> +Branch: master [e3ebcca84] 2020-12-28 19:56:13 +0900 +Branch: REL_13_STABLE [546f14374] 2020-12-28 19:57:51 +0900 +Branch: REL_12_STABLE [e792ca4ac] 2020-12-28 19:59:00 +0900 +Branch: REL_11_STABLE [294cdd7d0] 2020-12-28 19:59:40 +0900 +Branch: REL_10_STABLE [744357d84] 2020-12-28 20:00:15 +0900 +Branch: REL9_6_STABLE [03b7a1ee7] 2020-12-28 20:00:54 +0900 +Branch: REL9_5_STABLE [b5c73eef8] 2020-12-28 20:01:31 +0900 +--> + <para> + In <filename>contrib/postgres_fdw</filename>, avoid leaking open + connections to remote servers when a user mapping or foreign server + object is dropped (Bharath Rupireddy) + </para> + + <para> + Open connections that depend on a dropped user mapping or foreign + server can no longer be referenced, but formerly they were kept + around anyway for the duration of the local session. + </para> + </listitem> + + <listitem> +<!-- +Author: Etsuro Fujita <efujita@postgresql.org> +Branch: master [5e7fa189e] 2021-02-05 15:30:00 +0900 +Branch: REL_13_STABLE [984384129] 2021-02-05 15:30:02 +0900 +--> + <para> + Fix faulty assertion in <filename>contrib/postgres_fdw</filename> + (Etsuro Fujita) + </para> + </listitem> + + <listitem> +<!-- +Author: Michael Paquier <michael@paquier.xyz> +Branch: master [28d1601ad] 2020-12-08 15:22:12 +0900 +Branch: REL_13_STABLE [dfd8bf2b9] 2020-12-08 15:22:38 +0900 +Branch: REL_12_STABLE [d7ecba937] 2020-12-08 15:22:43 +0900 +Branch: REL_11_STABLE [b88afd8b6] 2020-12-08 15:22:48 +0900 +Branch: REL_10_STABLE [5ba1df0f1] 2020-12-08 15:22:53 +0900 +Branch: REL9_6_STABLE [95992e5ed] 2020-12-08 15:22:59 +0900 +Branch: REL9_5_STABLE [f95d9fd81] 2020-12-08 15:23:02 +0900 +--> + <para> + In <filename>contrib/pgcrypto</filename>, check for error returns + from OpenSSL's EVP functions (Michael Paquier) + </para> + + <para> + We do not really expect errors here, but this change silences + warnings from static analysis tools. + </para> + </listitem> + + <listitem> +<!-- +Author: Tom Lane <tgl@sss.pgh.pa.us> +Branch: master [ff769831e] 2020-12-22 13:23:49 -0500 +Branch: REL_13_STABLE [4b0292253] 2020-12-22 13:23:49 -0500 +Branch: REL_12_STABLE [f581e5383] 2020-12-22 13:23:49 -0500 +Branch: REL_11_STABLE [a1bd14d54] 2020-12-22 13:23:49 -0500 +--> + <para> + Make <filename>contrib/pg_prewarm</filename> more robust when the + cluster is shut down before prewarming is complete (Tom Lane) + </para> + + <para> + Previously, autoprewarm would rewrite its status file with only the + block numbers that it had managed to load so far, thus perhaps + largely disabling the prewarm functionality in the next startup. + Instead, suppress status file updates until the initial loading pass + is complete. + </para> + </listitem> + + <listitem> +<!-- +Author: Andrew Gierth <rhodiumtoad@postgresql.org> +Branch: master [3836d4b64] 2020-11-12 14:34:37 +0000 +Branch: REL_13_STABLE [48ab1fa30] 2020-11-12 14:59:06 +0000 +Branch: REL_12_STABLE [7f69ed4ae] 2020-11-12 14:56:58 +0000 +Branch: REL_11_STABLE [7e3dc147d] 2020-11-12 14:57:04 +0000 +Branch: REL_10_STABLE [068de9dd4] 2020-11-12 14:57:08 +0000 +Branch: REL9_6_STABLE [245a35f96] 2020-11-12 14:57:13 +0000 +Branch: REL9_5_STABLE [4b212b7c8] 2020-11-12 14:55:51 +0000 +--> + <para> + In <filename>contrib/pg_trgm</filename>'s GiST index support, avoid + crash in the rare case that picksplit is called on exactly two index + items (Andrew Gierth, Alexander Korotkov) + </para> + </listitem> + + <listitem> +<!-- +Author: Tom Lane <tgl@sss.pgh.pa.us> +Branch: master [ec29427ce] 2020-11-10 22:51:54 -0500 +Branch: REL_13_STABLE [afce7908d] 2020-11-10 22:51:55 -0500 +Branch: REL_12_STABLE [171c457cd] 2020-11-10 22:51:55 -0500 +Branch: REL_11_STABLE [3a89ea0eb] 2020-11-10 22:51:56 -0500 +Branch: REL_10_STABLE [e87139b43] 2020-11-10 22:51:57 -0500 +Branch: REL9_6_STABLE [cd39c23a2] 2020-11-10 22:51:57 -0500 +Branch: REL9_5_STABLE [210564a74] 2020-11-10 22:51:58 -0500 +--> + <para> + Fix miscalculation of timeouts + in <filename>contrib/pg_prewarm</filename> + and <filename>contrib/postgres_fdw</filename> + (Alexey Kondratov, Tom Lane) + </para> + + <para> + The main loop in <filename>contrib/pg_prewarm</filename>'s + autoprewarm parent process underestimated its desired sleep time by + a factor of 1000, causing it to consume much more CPU than intended. + When waiting for a result from a remote + server, <filename>contrib/postgres_fdw</filename> overestimated the + desired timeout by a factor of 1000 (though this error had been + mitigated by imposing a clamp to 60 seconds). + </para> + + <para> + Both of these errors stemmed from incorrectly converting + seconds-and-microseconds to milliseconds. Introduce a new + API <function>TimestampDifferenceMilliseconds()</function> + to make it easier to get this right in the future. + </para> + </listitem> + + <listitem> +<!-- +Author: Tom Lane <tgl@sss.pgh.pa.us> +Branch: master [4823621db] 2021-01-15 11:28:51 -0500 +Branch: REL_13_STABLE [f44ae4db5] 2021-01-15 11:29:05 -0500 +Branch: REL_12_STABLE [f5d044eae] 2021-01-15 11:29:13 -0500 +Branch: REL_11_STABLE [046c8face] 2021-01-15 11:29:18 -0500 +Branch: REL_10_STABLE [5fa060c8f] 2021-01-15 11:29:26 -0500 +Branch: REL9_6_STABLE [fc6d08b27] 2021-01-15 11:29:34 -0500 +Branch: REL9_5_STABLE [3934543c2] 2021-01-15 11:29:43 -0500 +Branch: master [9d23c15a0] 2021-01-20 12:07:23 -0500 +Branch: REL_13_STABLE [6671e8194] 2021-01-20 12:07:31 -0500 +Branch: REL_12_STABLE [561dd8d8a] 2021-01-20 12:07:35 -0500 +Branch: REL_11_STABLE [cbcff1729] 2021-01-20 12:07:41 -0500 +Branch: REL_10_STABLE [a3345383d] 2021-01-20 12:07:46 -0500 +Branch: REL9_6_STABLE [cbcf7b130] 2021-01-20 12:07:52 -0500 +Branch: REL9_5_STABLE [175f716a8] 2021-01-20 12:07:57 -0500 +--> + <para> + Improve <application>configure</application>'s heuristics for + selecting <varname>PG_SYSROOT</varname> on macOS (Tom Lane) + </para> + + <para> + The new method is more likely to produce desirable results when + Xcode is newer than the underlying operating system. Choosing + a sysroot that does not match the OS version may result in + nonfunctional executables. + </para> + </listitem> + + <listitem> +<!-- +Author: Tom Lane <tgl@sss.pgh.pa.us> +Branch: master [49407dc32] 2020-11-20 00:07:09 -0500 +Branch: REL_13_STABLE [9e9a31bd0] 2020-11-20 00:58:26 -0500 +Branch: REL_12_STABLE [5b8360427] 2020-11-20 00:58:26 -0500 +Branch: REL_11_STABLE [d01e37845] 2020-11-20 00:58:26 -0500 +Branch: REL_10_STABLE [153bf8d20] 2020-11-20 00:58:26 -0500 +Branch: REL9_6_STABLE [e7abc1111] 2020-11-20 00:58:26 -0500 +Branch: REL9_5_STABLE [2bb8c0f1d] 2020-11-20 00:58:26 -0500 +--> + <para> + While building on macOS, specify <option>-isysroot</option> in + link steps as well as compile steps (James Hilliard) + </para> + + <para> + This likewise improves the results when Xcode is out of sync with + the operating system. + </para> + </listitem> + + <listitem> +<!-- +Author: Andres Freund <andres@anarazel.de> +Branch: master [9543f0861] 2020-12-07 19:34:13 -0800 +Branch: REL_13_STABLE [4f64daf73] 2020-12-07 18:32:56 -0800 +Branch: REL_12_STABLE [b07490b91] 2020-12-07 18:39:32 -0800 +Branch: REL_11_STABLE [f4f924b3e] 2020-12-07 18:40:27 -0800 +Branch: master [6c57f2ed1] 2020-11-09 20:01:33 -0800 +Branch: REL_13_STABLE [6a192c77d] 2020-12-07 18:32:32 -0800 +Branch: REL_12_STABLE [fa7a52fb9] 2020-12-07 18:39:32 -0800 +Branch: REL_11_STABLE [90eb343ef] 2020-12-07 18:40:27 -0800 +--> + <para> + Fix JIT compilation to be compatible with LLVM 11 and LLVM 12 + (Andres Freund) + </para> + </listitem> + + <listitem> +<!-- +Author: Andres Freund <andres@anarazel.de> +Branch: master [5da871bfa] 2020-12-07 19:34:13 -0800 +Branch: REL_13_STABLE [01c6370a3] 2020-12-07 18:33:03 -0800 +Branch: REL_12_STABLE [27b57f806] 2020-12-07 18:39:32 -0800 +Branch: REL_11_STABLE [1e16ad101] 2020-12-07 18:40:27 -0800 +--> + <para> + Fix potential mishandling of references to boolean variables in + JIT expression compilation (Andres Freund) + </para> + + <para> + No field reports attributable to this have been seen, but it seems + likely that it could cause problems on some architectures. + </para> + </listitem> + + <listitem> +<!-- +Author: Tom Lane <tgl@sss.pgh.pa.us> +Branch: master [ad84ecc98] 2020-11-16 15:16:39 -0500 +Branch: REL_13_STABLE [53c7b4f62] 2020-11-16 15:16:39 -0500 +Branch: REL_12_STABLE [029fa664e] 2020-11-16 15:16:39 -0500 +Branch: REL_11_STABLE [89aa30a17] 2020-11-16 15:16:39 -0500 +--> + <para> + Fix compile failure with ICU 68 and later (Tom Lane) + </para> + </listitem> + + <listitem> +<!-- +Author: Alvaro Herrera <alvherre@alvh.no-ip.org> +Branch: master [677f74e5b] 2020-12-01 11:46:56 -0300 +Branch: REL_13_STABLE [5a1d1b954] 2020-12-01 11:46:56 -0300 +Branch: REL_12_STABLE [f0ff52f25] 2020-12-01 11:46:56 -0300 +Branch: REL_11_STABLE [49aaabdf8] 2020-12-01 11:46:56 -0300 +--> + <para> + Avoid <function>memcpy()</function> with a NULL source pointer and + zero count during partitioned index creation (Álvaro Herrera) + </para> + + <para> + While such a call is not known to cause problems in itself, some + compilers assume that the arguments of <function>memcpy()</function> + are never NULL, which could result in incorrect optimization of + nearby code. + </para> + </listitem> + + <listitem> +<!-- +Author: Tom Lane <tgl@sss.pgh.pa.us> +Branch: master [c7edf4ac2] 2021-01-24 16:29:47 -0500 +Branch: REL_13_STABLE [58a545344] 2021-01-24 16:29:47 -0500 +Branch: REL_12_STABLE [5db6ba303] 2021-01-24 16:29:47 -0500 +Branch: REL_11_STABLE [c82c015b5] 2021-01-24 16:29:47 -0500 +Branch: REL_10_STABLE [728971d5f] 2021-01-24 16:29:48 -0500 +Branch: REL9_6_STABLE [7e0786751] 2021-01-24 16:29:48 -0500 +Branch: REL9_5_STABLE [c26a0865d] 2021-01-24 16:29:48 -0500 +--> + <para> + Update time zone data files to <application>tzdata</application> + release 2021a for DST law changes in Russia (Volgograd zone) and + South Sudan, plus historical corrections for Australia, Bahamas, + Belize, Bermuda, Ghana, Israel, Kenya, Nigeria, Palestine, + Seychelles, and Vanuatu. + </para> + + <para> + Notably, the Australia/Currie zone has been corrected to the point + where it is identical to Australia/Hobart. + </para> + </listitem> + + </itemizedlist> + + </sect2> + </sect1> + + <sect1 id="release-13-1"> + <title>Release 13.1</title> + + <formalpara> + <title>Release date:</title> + <para>2020-11-12</para> + </formalpara> + + <para> + This release contains a variety of fixes from 13.0. + For information about new features in major release 13, see + <xref linkend="release-13"/>. + </para> + + <sect2> + <title>Migration to Version 13.1</title> + + <para> + A dump/restore is not required for those running 13.X. + </para> + </sect2> + + <sect2> + <title>Changes</title> + + <itemizedlist> + + <listitem> +<!-- +Author: Noah Misch <noah@leadboat.com> +Branch: master [0c3185e96] 2020-11-09 07:32:09 -0800 +Branch: REL_13_STABLE [c90c84b3f] 2020-11-09 07:32:12 -0800 +Branch: REL_12_STABLE [ac8f6243c] 2020-11-09 07:32:12 -0800 +Branch: REL_11_STABLE [43ebfea5a] 2020-11-09 07:32:13 -0800 +Branch: REL_10_STABLE [f97ecea1e] 2020-11-09 07:32:13 -0800 +Branch: REL9_6_STABLE [ff3de4c21] 2020-11-09 07:32:13 -0800 +Branch: REL9_5_STABLE [aefc625de] 2020-11-09 07:32:14 -0800 +--> + <para> + Block <command>DECLARE CURSOR ... WITH HOLD</command> and firing of + deferred triggers within index expressions and materialized view + queries (Noah Misch) + </para> + + <para> + This is essentially a leak in the <quote>security restricted + operation</quote> sandbox mechanism. An attacker having permission + to create non-temporary SQL objects could parlay this leak to + execute arbitrary SQL code as a superuser. + </para> + + <para> + The <productname>PostgreSQL</productname> Project thanks + Etienne Stalmans for reporting this problem. + (CVE-2020-25695) + </para> + </listitem> + + <listitem> +<!-- +Author: Tom Lane <tgl@sss.pgh.pa.us> +Branch: master [a45bc8a4f] 2020-09-24 18:19:38 -0400 +Branch: REL_13_STABLE [cb8885ac4] 2020-09-24 18:19:38 -0400 +Branch: REL_12_STABLE [fb93f784f] 2020-09-24 18:19:38 -0400 +Branch: REL_11_STABLE [1738a61c8] 2020-09-24 18:19:39 -0400 +Branch: REL_10_STABLE [1888ff8d0] 2020-09-24 18:19:39 -0400 +Branch: REL9_6_STABLE [7c154f2fd] 2020-09-24 18:19:39 -0400 +Branch: REL9_5_STABLE [56b46d3a1] 2020-09-24 18:19:39 -0400 +Branch: master [8e5793ab6] 2020-10-19 19:03:46 -0400 +Branch: REL_13_STABLE [1814f915b] 2020-10-19 19:03:46 -0400 +Branch: REL_12_STABLE [c6d0b9b16] 2020-10-19 19:03:46 -0400 +Branch: REL_11_STABLE [5a9f99bed] 2020-10-19 19:03:47 -0400 +Branch: REL_10_STABLE [68f236993] 2020-10-19 19:03:47 -0400 +Branch: REL9_6_STABLE [5c78f7977] 2020-10-19 19:03:47 -0400 +Branch: REL9_5_STABLE [da129a04a] 2020-10-19 19:03:47 -0400 +--> + <para> + Fix usage of complex connection-string parameters + in <application>pg_dump</application>, + <application>pg_restore</application>, + <application>clusterdb</application>, + <application>reindexdb</application>, + and <application>vacuumdb</application> (Tom Lane) + </para> + + <para> + The <option>-d</option> parameter + of <application>pg_dump</application> + and <application>pg_restore</application>, or + the <option>--maintenance-db</option> parameter of the other + programs mentioned, can be a <quote>connection string</quote> + containing multiple connection parameters rather than just a + database name. In cases where these programs need to initiate + additional connections, such as parallel processing or processing of + multiple databases, the connection string was forgotten and just the + basic connection parameters (database name, host, port, and + username) were used for the additional connections. This could lead + to connection failures if the connection string included any other + essential information, such as non-default SSL or GSS parameters. + Worse, the connection might succeed but not be encrypted as + intended, or be vulnerable to man-in-the-middle attacks that the + intended connection parameters would have prevented. + (CVE-2020-25694) + </para> + </listitem> + + <listitem> +<!-- +Author: Tom Lane <tgl@sss.pgh.pa.us> +Branch: master [85c54287a] 2020-10-21 16:19:00 -0400 +Branch: REL_13_STABLE [2e4af4110] 2020-10-21 16:19:00 -0400 +Branch: REL_12_STABLE [f656517ec] 2020-10-21 16:19:01 -0400 +Branch: REL_11_STABLE [20be76d5c] 2020-10-21 16:19:01 -0400 +Branch: REL_10_STABLE [8175da6e7] 2020-10-21 16:19:02 -0400 +Branch: REL9_6_STABLE [870a23230] 2020-10-21 16:18:41 -0400 +Branch: REL9_5_STABLE [6997da09a] 2020-10-21 16:18:41 -0400 +--> + <para> + When <application>psql</application>'s <command>\connect</command> + command re-uses connection parameters, ensure that all + non-overridden parameters from a previous connection string are + re-used (Tom Lane) + </para> + + <para> + This avoids cases where reconnection might fail due to omission of + relevant parameters, such as non-default SSL or GSS options. + Worse, the reconnection might succeed but not be encrypted as + intended, or be vulnerable to man-in-the-middle attacks that the + intended connection parameters would have prevented. + This is largely the same problem as just cited + for <application>pg_dump</application> et al, + although <application>psql</application>'s behavior is more complex + since the user may intentionally override some connection + parameters. + (CVE-2020-25694) + </para> + </listitem> + + <listitem> +<!-- +Author: Noah Misch <noah@leadboat.com> +Branch: master [098fb0079] 2020-11-09 07:32:09 -0800 +Branch: REL_13_STABLE [67029845b] 2020-11-09 07:32:12 -0800 +Branch: REL_12_STABLE [3855e5b47] 2020-11-09 07:32:13 -0800 +Branch: REL_11_STABLE [7b356c78f] 2020-11-09 07:32:13 -0800 +Branch: REL_10_STABLE [a498db87b] 2020-11-09 07:32:13 -0800 +Branch: REL9_6_STABLE [12fd81cb7] 2020-11-09 07:32:14 -0800 +Branch: REL9_5_STABLE [a54dfbee1] 2020-11-09 07:32:14 -0800 +--> + <para> + Prevent <application>psql</application>'s <command>\gset</command> + command from modifying specially-treated variables (Noah Misch) + </para> + + <para> + <command>\gset</command> without a prefix would overwrite whatever + variables the server told it to. Thus, a compromised server could + set specially-treated variables such as <varname>PROMPT1</varname>, + giving the ability to execute arbitrary shell code in the user's + session. + </para> + + <para> + The <productname>PostgreSQL</productname> Project thanks + Nick Cleaton for reporting this problem. + (CVE-2020-25696) + </para> + </listitem> + + <listitem> +<!-- +Author: Alvaro Herrera <alvherre@alvh.no-ip.org> +Branch: master [4e9821b6f] 2020-10-14 20:12:26 -0300 +Branch: REL_13_STABLE [72e43fc31] 2020-10-14 20:12:26 -0300 +Author: Alvaro Herrera <alvherre@alvh.no-ip.org> +Branch: master [7f4708818] 2020-10-15 09:48:36 -0300 +Branch: REL_13_STABLE [9f783aea6] 2020-10-15 09:52:35 -0300 +--> + <para> + Fix unintended breakage of the replication protocol + (Álvaro Herrera) + </para> + + <para> + A walsender reports two command-completion events + for <literal>START_REPLICATION</literal>. This was undocumented and + apparently unintentional; so we failed to notice that a late 13.0 + change removed the duplicate event. However it turns out that + walreceivers require the extra event in some code paths. The most + practical fix is to decree that the extra event is part of the + protocol and resume generating it. + </para> + </listitem> + + <listitem> +<!-- +Author: Thomas Munro <tmunro@postgresql.org> +Branch: master [aca74843e] 2020-09-24 10:39:52 +1200 +Branch: REL_13_STABLE [052014a20] 2020-09-24 10:27:22 +1200 +Branch: REL_12_STABLE [7664cc869] 2020-09-24 10:30:47 +1200 +Branch: REL_11_STABLE [c5a5bd0bb] 2020-09-24 10:31:57 +1200 +Branch: REL_10_STABLE [dd36d6b00] 2020-09-24 10:33:00 +1200 +Branch: REL9_6_STABLE [d38e15979] 2020-09-24 10:35:10 +1200 +Branch: REL9_5_STABLE [23d8b3577] 2020-09-24 10:36:27 +1200 +--> + <para> + Ensure that SLRU directories are properly fsync'd during checkpoints + (Thomas Munro) + </para> + + <para> + This prevents possible data loss in a subsequent operating system + crash. + </para> + </listitem> + + <listitem> +<!-- +Author: Tom Lane <tgl@sss.pgh.pa.us> +Branch: master [d907bd054] 2020-11-03 15:41:32 -0500 +Branch: REL_13_STABLE [768dbef0d] 2020-11-03 15:41:32 -0500 +Branch: REL_12_STABLE [136f87ea5] 2020-11-03 15:41:32 -0500 +Branch: REL_11_STABLE [501035a0a] 2020-11-03 15:41:32 -0500 +Branch: REL_10_STABLE [df4405b78] 2020-11-03 15:41:32 -0500 +Branch: REL9_6_STABLE [04c4b495b] 2020-11-03 15:41:32 -0500 +Branch: REL9_5_STABLE [77df80cf6] 2020-11-03 15:41:32 -0500 +--> + <para> + Fix <command>ALTER ROLE</command> for users with + the <literal>BYPASSRLS</literal> attribute (Tom Lane, Stephen Frost) + </para> + + <para> + The <literal>BYPASSRLS</literal> attribute is only allowed to be + changed by superusers, but other <command>ALTER ROLE</command> + operations, such as password changes, should be allowed with only + ordinary permission checks. The previous coding erroneously + restricted all changes on such a role to superusers. + </para> + </listitem> + + <listitem> +<!-- +Author: Peter Eisentraut <peter@eisentraut.org> +Branch: master [bf797a8d9] 2020-11-03 15:28:23 +0100 +Branch: REL_13_STABLE [539775981] 2020-11-03 15:28:36 +0100 +--> + <para> + Disallow <command>ALTER TABLE ONLY ... DROP EXPRESSION</command> when + there are child tables (Peter Eisentraut) + </para> + + <para> + The current implementation cannot handle this case correctly, so just + forbid it for now. + </para> + </listitem> + + <listitem> +<!-- +Author: Alvaro Herrera <alvherre@alvh.no-ip.org> +Branch: master [bbb927b4d] 2020-10-20 19:22:09 -0300 +Branch: REL_13_STABLE [5f6463a20] 2020-10-20 19:22:09 -0300 +Branch: REL_12_STABLE [0e6b6f8c7] 2020-10-20 19:22:09 -0300 +Branch: REL_11_STABLE [a795f6782] 2020-10-20 19:22:09 -0300 +--> + <para> + Ensure that <command>ALTER TABLE ONLY ... ENABLE/DISABLE + TRIGGER</command> does not recurse to child tables + (Álvaro Herrera) + </para> + + <para> + Previously the <literal>ONLY</literal> flag was ignored. + </para> + </listitem> + + <listitem> +<!-- +Author: Tom Lane <tgl@sss.pgh.pa.us> +Branch: master [5b7bfc397] 2020-11-05 11:44:32 -0500 +Branch: REL_13_STABLE [44b973b91] 2020-11-05 11:44:32 -0500 +Branch: REL_12_STABLE [0bdf1ef3d] 2020-11-05 11:44:32 -0500 +Branch: REL_11_STABLE [7dc18c619] 2020-11-05 11:44:32 -0500 +--> + <para> + Allow <command>LOCK TABLE</command> to succeed on a self-referential + view (Tom Lane) + </para> + + <para> + It previously threw an error complaining about infinite recursion, + but there seems no need to disallow the case. + </para> + </listitem> + + <listitem> +<!-- +Author: Michael Paquier <michael@paquier.xyz> +Branch: master [b17ff07aa] 2020-11-01 21:22:07 +0900 +Branch: REL_13_STABLE [bb62df46b] 2020-11-01 21:24:10 +0900 +Branch: REL_12_STABLE [41a033b50] 2020-11-01 21:24:15 +0900 +--> + <para> + Retain statistics about an index across <command>REINDEX + CONCURRENTLY</command> (Michael Paquier, Fabrízio de Royes Mello) + </para> + + <para> + Non-concurrent reindexing has always preserved such statistics. + </para> + </listitem> + + <listitem> +<!-- +Author: Michael Paquier <michael@paquier.xyz> +Branch: master [e66bcfb4c] 2020-09-29 14:15:57 +0900 +Branch: REL_13_STABLE [1aedaba78] 2020-09-29 14:16:12 +0900 +Branch: REL_12_STABLE [8aa4496dd] 2020-09-29 14:16:18 +0900 +--> + <para> + Fix incorrect progress reporting from <command>REINDEX + CONCURRENTLY</command> (Matthias van de Meent, Michael Paquier) + </para> + </listitem> + + <listitem> +<!-- +Author: Tom Lane <tgl@sss.pgh.pa.us> +Branch: master [ad77039fa] 2020-10-28 13:47:02 -0400 +Branch: REL_13_STABLE [70492195b] 2020-10-28 13:47:02 -0400 +Branch: REL_12_STABLE [43330cdd4] 2020-10-28 13:47:02 -0400 +--> + <para> + Ensure that <literal>GENERATED</literal> columns are updated when + the column(s) they depend on are updated via a rule or an updatable + view (Tom Lane) + </para> + + <para> + This fix also takes care of possible failure to fire a + column-specific trigger in such cases. + </para> + </listitem> + + <listitem> +<!-- +Author: Tom Lane <tgl@sss.pgh.pa.us> +Branch: master [72647ac3b] 2020-09-28 14:12:38 -0400 +Branch: REL_13_STABLE [61a78c71a] 2020-09-28 14:12:38 -0400 +Branch: REL_12_STABLE [29f20db85] 2020-09-28 14:12:38 -0400 +--> + <para> + Fix failures with collation-dependent partition bound expressions + (Tom Lane) + </para> + </listitem> + + <listitem> +<!-- +Author: Peter Eisentraut <peter@eisentraut.org> +Branch: master [560564d3a] 2020-11-04 12:46:28 +0100 +Branch: REL_13_STABLE [82d4a2a7d] 2020-11-04 12:46:38 +0100 +Branch: REL_12_STABLE [ea9087938] 2020-11-04 12:46:52 +0100 +--> + <para> + Support hashing of text arrays (Peter Eisentraut) + </para> + + <para> + Array hashing failed if the array element type is collatable. + Notably, this prevented using hash partitioning with a text array + column as partition key. + </para> + </listitem> + + <listitem> +<!-- +Author: Tom Lane <tgl@sss.pgh.pa.us> +Branch: master [3db322eaa] 2020-10-07 17:10:26 -0400 +Branch: REL_13_STABLE [5ed20a689] 2020-10-07 17:10:26 -0400 +--> + <para> + Prevent internal overflows in cross-type datetime + comparisons (Nikita Glukhov, Alexander Korotkov, Tom Lane) + </para> + + <para> + Previously, comparing a date to a timestamp would fail if the date + is past the valid range for timestamps. There were also corner + cases involving overflow of close-to-the-limit timestamp values + during timezone rotation. + </para> + </listitem> + + <listitem> +<!-- +Author: Tom Lane <tgl@sss.pgh.pa.us> +Branch: master [489c9c340] 2020-09-30 15:40:23 -0400 +Branch: REL_13_STABLE [99fd38c02] 2020-09-30 15:40:23 -0400 +Branch: REL_12_STABLE [c5232dca8] 2020-09-30 15:40:23 -0400 +Branch: REL_11_STABLE [b0fe0b022] 2020-09-30 15:40:23 -0400 +Branch: REL_10_STABLE [db96be24c] 2020-09-30 15:40:23 -0400 +Branch: REL9_6_STABLE [19e798268] 2020-09-30 15:40:23 -0400 +Branch: REL9_5_STABLE [4857e6fe1] 2020-09-30 15:40:23 -0400 +--> + <para> + Fix off-by-one conversion of negative years to BC dates + in <function>to_date()</function> + and <function>to_timestamp()</function> (Dar Alathar-Yemen, Tom Lane) + </para> + + <para> + Also, arrange for the combination of a negative year and an + explicit <quote>BC</quote> marker to cancel out and produce AD. + </para> + </listitem> + + <listitem> +<!-- +Author: Alexander Korotkov <akorotkov@postgresql.org> +Branch: master [c2aa562ea] 2020-09-29 11:00:22 +0300 +Branch: REL_13_STABLE [abcc0ab16] 2020-09-29 11:55:15 +0300 +Branch: master [927d9abb6] 2020-09-29 12:00:04 +0300 +Branch: REL_13_STABLE [651bdbc81] 2020-09-29 12:00:12 +0300 +--> + <para> + Allow the <type>jsonpath</type> <function>.datetime()</function> + method to accept ISO 8601-format timestamps (Nikita Glukhov) + </para> + + <para> + This is not required by SQL, but it seems appropriate since + our <function>to_json()</function> functions generate that timestamp + format for Javascript compatibility. + </para> + </listitem> + + <listitem> +<!-- +Author: Fujii Masao <fujii@postgresql.org> +Branch: master [fd26f7823] 2020-09-29 16:21:46 +0900 +Branch: REL_13_STABLE [059caf36c] 2020-09-29 16:23:57 +0900 +Branch: REL_12_STABLE [4d342b9d4] 2020-09-29 16:24:20 +0900 +Branch: REL_11_STABLE [462ff7966] 2020-09-29 16:24:47 +0900 +Branch: REL_10_STABLE [334417538] 2020-09-29 16:25:08 +0900 +Branch: REL9_6_STABLE [7be02a3bf] 2020-09-29 16:25:20 +0900 +Branch: REL9_5_STABLE [40a8fb1e0] 2020-09-29 16:25:51 +0900 +--> + <para> + Ensure that standby servers will archive WAL timeline history files + when <varname>archive_mode</varname> is set + to <literal>always</literal> (Grigory Smolkin, Fujii Masao) + </para> + + <para> + This oversight could lead to failure of subsequent PITR recovery + attempts. + </para> + </listitem> + + <listitem> +<!-- +Author: Thomas Munro <tmunro@postgresql.org> +Branch: master [b94109ce3] 2020-10-15 11:41:58 +1300 +Branch: REL_13_STABLE [e0950135a] 2020-10-15 11:42:17 +1300 +Branch: master [70516a178] 2020-10-15 18:34:21 +1300 +Branch: REL_13_STABLE [47522ee00] 2020-10-15 18:38:03 +1300 +--> + <para> + Fix edge cases in detecting premature death of the postmaster on + platforms that use <function>kqueue()</function> (Thomas Munro) + </para> + </listitem> + + <listitem> +<!-- +Author: Tomas Vondra <tomas.vondra@postgresql.org> +Branch: master [ebb7ae839] 2020-11-03 22:31:57 +0100 +Branch: REL_13_STABLE [2d26c4ac7] 2020-11-03 22:32:34 +0100 +--> + <para> + Avoid generating an incorrect incremental-sort plan when the sort key + is a volatile expression (James Coleman) + </para> + </listitem> + + <listitem> +<!-- +Author: Tom Lane <tgl@sss.pgh.pa.us> +Branch: master [d7885b1f8] 2020-10-06 11:43:53 -0400 +Branch: REL_13_STABLE [b7f166efa] 2020-10-06 11:43:53 -0400 +Branch: REL_12_STABLE [3d69efc4f] 2020-10-06 11:43:54 -0400 +--> + <para> + Fix possible crash when considering partition-wise joins + during GEQO planning (Tom Lane) + </para> + </listitem> + + <listitem> +<!-- +Author: Tom Lane <tgl@sss.pgh.pa.us> +Branch: master [dfc797730] 2020-11-01 18:38:42 -0500 +Branch: REL_13_STABLE [2330f4d3a] 2020-11-01 18:38:42 -0500 +Branch: master [fd2997565] 2020-11-02 11:25:18 -0500 +Branch: REL_13_STABLE [7957e75c5] 2020-11-02 11:25:18 -0500 +--> + <para> + Fix possible infinite loop or corrupted output data in TOAST + decompression (Tom Lane) + </para> + </listitem> + + <listitem> +<!-- +Author: Peter Geoghegan <pg@bowt.ie> +Branch: master [48e129134] 2020-11-04 18:42:27 -0800 +Branch: REL_13_STABLE [02c9386ca] 2020-11-04 18:42:24 -0800 +--> + <para> + Fix counting of the number of entries in B-tree indexes during + cleanup-only <command>VACUUM</command>s (Peter Geoghegan) + </para> + </listitem> + + <listitem> +<!-- +Author: Tomas Vondra <tomas.vondra@postgresql.org> +Branch: master [7577dd848] 2020-11-07 00:39:19 +0100 +Branch: REL_13_STABLE [6a7b55f37] 2020-11-07 00:40:06 +0100 +Branch: REL_12_STABLE [8149e9f9a] 2020-11-07 00:40:40 +0100 +Branch: REL_11_STABLE [895d0f0e8] 2020-11-07 00:41:02 +0100 +Branch: REL_10_STABLE [0b96fc977] 2020-11-07 00:41:19 +0100 +Branch: REL9_6_STABLE [bae31e75f] 2020-11-07 00:41:36 +0100 +Branch: REL9_5_STABLE [d2d3a4bd3] 2020-11-07 00:41:52 +0100 +--> + <para> + Ensure that data is detoasted before being inserted into a BRIN + index (Tomas Vondra) + </para> + + <para> + Index entries are not supposed to contain out-of-line TOAST + pointers, but BRIN didn't get that memo. This could lead to errors + like <quote>missing chunk number 0 for toast value NNN</quote>. + (If you are faced with such an error from an existing + index, <command>REINDEX</command> should be enough to fix it.) + </para> + </listitem> + + <listitem> +<!-- +Author: Tom Lane <tgl@sss.pgh.pa.us> +Branch: master [371668a83] 2020-10-12 18:01:34 -0400 +Branch: REL_13_STABLE [962ab473e] 2020-10-12 18:01:34 -0400 +Branch: REL_12_STABLE [12945874e] 2020-10-12 18:01:34 -0400 +--> + <para> + Fix buffered GiST index builds to work when the index has included + columns (Pavel Borisov) + </para> + </listitem> + + <listitem> +<!-- +Author: Tom Lane <tgl@sss.pgh.pa.us> +Branch: master [0a4b34031] 2020-11-02 21:11:50 -0500 +Branch: REL_13_STABLE [a58a631b4] 2020-11-02 21:11:50 -0500 +Branch: REL_12_STABLE [d3befe9b9] 2020-11-02 21:11:50 -0500 +Branch: REL_11_STABLE [f28b089cb] 2020-11-02 21:11:50 -0500 +Branch: REL_10_STABLE [7827497ba] 2020-11-02 21:11:50 -0500 +--> + <para> + Fix unportable use of <function>getnameinfo()</function> + in <structname>pg_hba_file_rules</structname> view (Tom Lane) + </para> + + <para> + On FreeBSD 11, and possibly other platforms, the + view's <structfield>address</structfield> + and <structfield>netmask</structfield> columns were always null due + to this error. + </para> + </listitem> + + <listitem> +<!-- +Author: Noah Misch <noah@leadboat.com> +Branch: master [f90e80b91] 2020-10-31 08:43:28 -0700 +Branch: REL_13_STABLE [ab2e2ce46] 2020-10-31 08:43:32 -0700 +Branch: REL_12_STABLE [741b84e9f] 2020-10-31 08:44:13 -0700 +Branch: REL_11_STABLE [045466675] 2020-10-31 08:45:19 -0700 +--> + <para> + Avoid crash if <varname>debug_query_string</varname> is NULL + when starting a parallel worker (Noah Misch) + </para> + </listitem> + + <listitem> +<!-- +Author: Tom Lane <tgl@sss.pgh.pa.us> +Branch: master [ba9f18abd] 2020-10-25 13:57:46 -0400 +Branch: REL_13_STABLE [d88d8ad28] 2020-10-25 13:57:46 -0400 +Branch: REL_12_STABLE [de78c1007] 2020-10-25 13:57:46 -0400 +Branch: master [20d3fe900] 2020-10-26 11:36:53 -0400 +Branch: master [8b39345a9] 2020-11-08 13:08:36 -0500 +Branch: REL_13_STABLE [7aeb6404f] 2020-11-08 13:08:36 -0500 +Branch: REL_12_STABLE [94ec005f3] 2020-11-08 13:08:36 -0500 +--> + <para> + Avoid failures when a <literal>BEFORE ROW UPDATE</literal> trigger + returns the <quote>old</quote> row of a table having dropped + or <quote>missing</quote> columns (Amit Langote, Tom Lane) + </para> + + <para> + This method of suppressing an update could result in crashes, + unexpected <literal>CHECK</literal> constraint failures, or + incorrect <literal>RETURNING</literal> output, + because <quote>missing</quote> columns would read as NULLs for those + purposes. (A column is <quote>missing</quote> for this purpose if + it was added by <command>ALTER TABLE ADD COLUMN</command> with a + non-NULL, but constant, default value.) Dropped columns could cause + trouble as well. + </para> + </listitem> + + <listitem> +<!-- +Author: Tom Lane <tgl@sss.pgh.pa.us> +Branch: master [87a174c0e] 2020-10-23 11:32:33 -0400 +Branch: REL_13_STABLE [e4538708d] 2020-10-23 11:32:33 -0400 +--> + <para> + Fix <command>EXPLAIN</command>'s output for incremental sort plans + to have correct tag nesting in XML output mode (Daniel Gustafsson) + </para> + </listitem> + + <listitem> +<!-- +Author: Peter Eisentraut <peter@eisentraut.org> +Branch: REL_13_STABLE [1f53d0b9f] 2020-10-20 14:09:16 +0200 +Branch: REL_12_STABLE [bd0677bb8] 2020-10-20 14:31:52 +0200 +Branch: REL_11_STABLE [6e03a8a30] 2020-10-20 14:50:43 +0200 +Branch: REL_10_STABLE [f78ebbe68] 2020-10-20 15:19:47 +0200 +Branch: REL9_6_STABLE [d4e654d15] 2020-10-20 15:35:31 +0200 +Branch: REL9_5_STABLE [d27c18d26] 2020-10-20 17:22:41 +0200 +--> + <para> + Avoid unnecessary failure when transferring very large payloads + through shared memory queues (Markus Wanner) + </para> + </listitem> + + <listitem> +<!-- +Author: Tom Lane <tgl@sss.pgh.pa.us> +Branch: master [c8ab97017] 2020-10-19 14:33:09 -0400 +Branch: REL_13_STABLE [25378db74] 2020-10-19 14:33:10 -0400 +--> + <para> + Fix omission of result data type coercion in some cases in + SQL-language functions (Tom Lane) + </para> + + <para> + This could lead to wrong results or crashes, depending on the data + types involved. + </para> + </listitem> + + <listitem> +<!-- +Author: Andres Freund <andres@anarazel.de> +Branch: master [72559438f] 2020-10-15 14:29:53 -0700 +Branch: REL_13_STABLE [ae3e75aba] 2020-10-15 14:30:40 -0700 +Branch: REL_12_STABLE [c8a2bb0f1] 2020-10-15 14:31:32 -0700 +Branch: REL_11_STABLE [f3dee5b9a] 2020-10-15 15:06:16 -0700 +Branch: master [fe2a16d8b] 2020-10-15 18:17:00 -0700 +Branch: REL_13_STABLE [efc9a8e98] 2020-10-15 18:17:00 -0700 +Branch: REL_12_STABLE [c835c7ffe] 2020-10-15 18:17:01 -0700 +Branch: REL_11_STABLE [4a4f4487d] 2020-10-15 18:17:01 -0700 +--> + <para> + Fix incorrect handling of template function attributes in JIT code + generation (Andres Freund) + </para> + + <para> + This has been shown to cause crashes on <literal>s390x</literal>, + and very possibly there are other cases on other platforms. + </para> + </listitem> + + <listitem> +<!-- +Author: Noah Misch <noah@leadboat.com> +Branch: master [f5c1167b1] 2020-10-11 21:31:37 -0700 +Branch: REL_13_STABLE [d41cb63ff] 2020-10-11 21:31:40 -0700 +Branch: master [88ea7a118] 2020-10-11 21:31:37 -0700 +Branch: REL_13_STABLE [5efa788e1] 2020-10-11 21:31:40 -0700 +--> + <para> + Improve code generated for compare_exchange and fetch_add operations + on PPC (Noah Misch) + </para> + </listitem> + + <listitem> +<!-- +Author: Tom Lane <tgl@sss.pgh.pa.us> +Branch: master [e55f718fc] 2020-09-26 16:04:06 -0400 +Branch: REL_13_STABLE [f7873900f] 2020-09-26 16:04:06 -0400 +Branch: REL_12_STABLE [bda32733c] 2020-09-26 16:04:06 -0400 +Branch: REL_11_STABLE [dd89ba578] 2020-09-26 16:04:06 -0400 +Branch: REL_10_STABLE [de6725deb] 2020-09-26 16:04:06 -0400 +Branch: REL9_6_STABLE [acab757ce] 2020-09-26 16:04:06 -0400 +Branch: REL9_5_STABLE [bf34ae930] 2020-09-26 16:04:06 -0400 +--> + <para> + Fix relation cache memory leaks with RLS policies (Tom Lane) + </para> + </listitem> + + <listitem> +<!-- +Author: Alvaro Herrera <alvherre@alvh.no-ip.org> +Branch: master [623644f02] 2020-11-06 22:52:16 -0300 +Branch: REL_13_STABLE [d94d37f8c] 2020-11-06 22:52:15 -0300 +Branch: REL_12_STABLE [8ad6a0c1b] 2020-11-06 22:52:15 -0300 +--> + <para> + Fix edge-case memory leak + in <function>index_get_partition()</function> (Justin Pryzby) + </para> + </listitem> + + <listitem> +<!-- +Author: Tom Lane <tgl@sss.pgh.pa.us> +Branch: master [397ea901e] 2020-10-12 13:31:24 -0400 +Branch: REL_13_STABLE [9343bfefa] 2020-10-12 13:31:24 -0400 +Branch: REL_12_STABLE [f35c11770] 2020-10-12 13:31:24 -0400 +Branch: REL_11_STABLE [cfa4cff30] 2020-10-12 13:31:24 -0400 +Branch: REL_10_STABLE [a5c77e6b8] 2020-10-12 13:31:24 -0400 +Branch: REL9_6_STABLE [c7573ab1e] 2020-10-12 13:31:24 -0400 +Branch: REL9_5_STABLE [43ca5e07d] 2020-10-12 13:31:24 -0400 +--> + <para> + Fix small memory leak when SIGHUP processing decides that a new GUC + variable value cannot be applied without a restart (Tom Lane) + </para> + </listitem> + + <listitem> +<!-- +Author: Tom Lane <tgl@sss.pgh.pa.us> +Branch: master [a6b1f5365] 2020-09-29 11:18:30 -0400 +Branch: REL_13_STABLE [f0e4ec74e] 2020-09-29 11:18:30 -0400 +Branch: REL_12_STABLE [c1e044bb3] 2020-09-29 11:18:31 -0400 +Branch: REL_11_STABLE [13a1901ba] 2020-09-29 11:18:31 -0400 +--> + <para> + Fix memory leaks + in <application>PL/pgsql</application>'s <command>CALL</command> + processing (Pavel Stehule, Tom Lane) + </para> + </listitem> + + <listitem> +<!-- +Author: Tom Lane <tgl@sss.pgh.pa.us> +Branch: master [7d00a6b2d] 2020-10-17 16:53:48 -0400 +Branch: REL_13_STABLE [d2074daeb] 2020-10-19 11:23:51 -0400 +Branch: REL_12_STABLE [407580aab] 2020-10-19 11:23:51 -0400 +Branch: REL_11_STABLE [883226441] 2020-10-19 11:23:52 -0400 +Branch: REL_10_STABLE [6670e9107] 2020-10-19 11:23:52 -0400 +Branch: REL9_6_STABLE [cdc7ace16] 2020-10-19 11:23:52 -0400 +Branch: REL9_5_STABLE [6acc31a20] 2020-10-19 11:23:52 -0400 +--> + <para> + In <application>libpq</application> for Windows, + call <function>WSAStartup()</function> once per process + and <function>WSACleanup()</function> not at all (Tom Lane, + Alexander Lakhin) + </para> + + <para> + Previously, <application>libpq</application> + invoked <function>WSAStartup()</function> at connection start + and <function>WSACleanup()</function> at connection cleanup. + However, it appears that calling <function>WSACleanup()</function> + can interfere with other program operations; notably, we have + observed rare failures to emit expected output to stdout. There + appear to be no ill effects from omitting the call, so do that. + (This also eliminates a performance issue from repeated DLL loads and + unloads when a program performs a series of database connections.) + </para> + </listitem> + + <listitem> +<!-- +Author: Tom Lane <tgl@sss.pgh.pa.us> +Branch: master [21d36747d] 2020-10-24 13:12:08 -0400 +Branch: REL_13_STABLE [fd048e0cb] 2020-10-24 13:12:19 -0400 +Branch: REL_12_STABLE [bdc79ddd1] 2020-10-24 13:12:26 -0400 +Branch: REL_11_STABLE [12a73f29f] 2020-10-24 13:12:31 -0400 +Branch: REL_10_STABLE [f38b66ec0] 2020-10-24 13:12:41 -0400 +Branch: REL9_6_STABLE [379c43bda] 2020-10-24 13:12:47 -0400 +Branch: REL9_5_STABLE [758b45e83] 2020-10-24 13:12:53 -0400 +--> + <para> + Fix <application>ecpg</application> library's per-thread + initialization logic for Windows (Tom Lane, Alexander Lakhin) + </para> + + <para> + Multi-threaded <application>ecpg</application> applications could + suffer rare misbehavior due to incorrect locking. + </para> + </listitem> + + <listitem> +<!-- +Author: Tom Lane <tgl@sss.pgh.pa.us> +Branch: master [1e3868ab3] 2020-11-07 15:03:44 -0500 +Branch: REL_13_STABLE [1bccb159a] 2020-11-07 15:03:44 -0500 +Branch: master [eed4356fa] 2020-11-07 16:25:42 -0500 +Branch: REL_13_STABLE [3459f4169] 2020-11-07 16:25:42 -0500 +--> + <para> + Fix <application>ecpg</application>'s mis-processing + of <literal>B'...'</literal> and <literal>X'...'</literal> literals + (Shenhao Wang) + </para> + </listitem> + + <listitem> +<!-- +Author: Tom Lane <tgl@sss.pgh.pa.us> +Branch: master [66f8687a8] 2020-10-28 14:35:53 -0400 +Branch: REL_13_STABLE [ba4f5413e] 2020-10-28 14:35:53 -0400 +Branch: REL_12_STABLE [cb0982ba9] 2020-10-28 14:35:53 -0400 +Branch: REL_11_STABLE [9eb250339] 2020-10-28 14:35:53 -0400 +Branch: REL_10_STABLE [504f963f7] 2020-10-28 14:35:53 -0400 +Branch: REL9_6_STABLE [204d77969] 2020-10-28 14:35:53 -0400 +Branch: REL9_5_STABLE [aff06436c] 2020-10-28 14:35:53 -0400 +--> + <para> + On Windows, make <application>psql</application> read the output of + a backtick command in text mode, not binary mode (Tom Lane) + </para> + + <para> + This ensures proper handling of newlines. + </para> + </listitem> + + <listitem> +<!-- +Author: Andrew Dunstan <andrew@dunslane.net> +Branch: master [3eb3d3e78] 2020-09-04 13:54:54 -0400 +Branch: REL_13_STABLE Release: REL_13_0 [72857482c] 2020-09-04 13:55:11 -0400 +Branch: REL_12_STABLE [616110eac] 2020-09-04 13:55:03 -0400 +Author: Tom Lane <tgl@sss.pgh.pa.us> +Branch: master [9e5f1f21a] 2020-10-07 12:51:02 -0400 +Branch: REL_13_STABLE [2ea624b4b] 2020-10-07 12:51:03 -0400 +Branch: REL_12_STABLE [d8c2a2199] 2020-10-07 12:51:04 -0400 +Branch: REL_11_STABLE [f2c6e94f0] 2020-10-07 12:51:05 -0400 +Branch: REL_10_STABLE [0c79dcb36] 2020-10-07 12:51:05 -0400 +Branch: REL9_6_STABLE [710c0a66d] 2020-10-07 12:51:06 -0400 +Branch: REL9_5_STABLE [0bfe356c5] 2020-10-07 12:51:06 -0400 +--> + <para> + Ensure that <application>pg_dump</application> collects per-column + information about extension configuration tables (Fabrízio de + Royes Mello, Tom Lane) + </para> + + <para> + Failure to do this led to crashes when + specifying <option>--inserts</option>, or underspecified (though + usually correct) <command>COPY</command> commands when + using <command>COPY</command> to reload the tables' data. + </para> + </listitem> + + <listitem> +<!-- +Author: Bruce Momjian <bruce@momjian.us> +Branch: master [3c0471b5f] 2020-10-15 19:33:46 -0400 +Branch: REL_13_STABLE [59cfff65b] 2020-10-15 19:33:45 -0400 +Branch: REL_12_STABLE [a106236d8] 2020-10-15 19:33:43 -0400 +Branch: REL_11_STABLE [eb421c83b] 2020-10-15 19:33:42 -0400 +Branch: REL_10_STABLE [85fedf39f] 2020-10-15 19:33:36 -0400 +Branch: REL9_6_STABLE [39c23c199] 2020-10-15 19:33:36 -0400 +Branch: REL9_5_STABLE [d9ae2297b] 2020-10-15 19:33:36 -0400 +Branch: master [536de14e2] 2020-10-15 20:37:20 -0400 +Branch: REL_13_STABLE [79fe23465] 2020-10-15 20:37:20 -0400 +Branch: REL_12_STABLE [0ab7ca98a] 2020-10-15 20:37:20 -0400 +Branch: REL_11_STABLE [16be4e435] 2020-10-15 20:37:19 -0400 +Branch: REL_10_STABLE [6e34cc8ab] 2020-10-15 20:37:19 -0400 +Branch: REL9_6_STABLE [9dcffe69a] 2020-10-15 20:37:19 -0400 +Branch: REL9_5_STABLE [b05672c72] 2020-10-15 20:37:19 -0400 +--> + <para> + Make <application>pg_upgrade</application> check for pre-existence + of tablespace directories in the target cluster (Bruce Momjian) + </para> + </listitem> + + <listitem> +<!-- +Author: Michael Paquier <michael@paquier.xyz> +Branch: master [ca2a12c93] 2020-10-19 09:36:56 +0900 +Branch: REL_13_STABLE [1bd9b2b23] 2020-10-19 09:37:50 +0900 +Branch: REL_12_STABLE [57bdf29dd] 2020-10-19 09:37:55 +0900 +Branch: REL_11_STABLE [914139081] 2020-10-19 09:38:01 +0900 +Branch: REL_10_STABLE [e8d36f9ec] 2020-10-19 09:38:06 +0900 +Branch: REL9_6_STABLE [994a02f7f] 2020-10-19 09:38:13 +0900 +Branch: REL9_5_STABLE [099238322] 2020-10-19 09:38:18 +0900 +--> + <para> + Fix potential memory leak in <filename>contrib/pgcrypto</filename> + (Michael Paquier) + </para> + </listitem> + + <listitem> +<!-- +Author: Tom Lane <tgl@sss.pgh.pa.us> +Branch: master [02a75f836] 2020-10-16 11:59:13 -0400 +Branch: REL_13_STABLE [3d338a46a] 2020-10-16 11:59:25 -0400 +Branch: REL_12_STABLE [7004ce758] 2020-10-16 11:59:31 -0400 +Branch: REL_11_STABLE [1eb2d7e3e] 2020-10-16 11:59:36 -0400 +Branch: REL_10_STABLE [3e1a4c260] 2020-10-16 11:59:41 -0400 +Branch: REL9_6_STABLE [e15115b4d] 2020-10-16 11:59:47 -0400 +Branch: REL9_5_STABLE [9c3032881] 2020-10-16 11:59:52 -0400 +--> + <para> + Add check for an unlikely failure case + in <filename>contrib/pgcrypto</filename> (Daniel Gustafsson) + </para> + </listitem> + + <listitem> +<!-- +Author: Tom Lane <tgl@sss.pgh.pa.us> +Branch: master [4a071afbd] 2020-10-29 15:28:14 -0400 +Branch: REL_13_STABLE [ee03baad2] 2020-10-29 15:28:28 -0400 +Branch: REL_12_STABLE [25b587f03] 2020-10-29 15:28:35 -0400 +Branch: REL_11_STABLE [24d769b90] 2020-10-29 15:28:41 -0400 +Branch: REL_10_STABLE [c39f4e81d] 2020-10-29 15:28:47 -0400 +--> + <para> + Fix recently-added <type>timetz</type> test case so it works when + the USA is not observing daylight savings time (Tom Lane) + </para> + </listitem> + + <listitem> +<!-- +Author: Tom Lane <tgl@sss.pgh.pa.us> +Branch: master [c4a803ac7] 2020-10-16 21:53:33 -0400 +Branch: REL_13_STABLE [3f26dca76] 2020-10-16 21:53:43 -0400 +Branch: REL_12_STABLE [b39c94097] 2020-10-16 21:53:50 -0400 +Branch: REL_11_STABLE [2b9166dbc] 2020-10-16 21:53:55 -0400 +Branch: REL_10_STABLE [aae4097b0] 2020-10-16 21:54:03 -0400 +Branch: REL9_6_STABLE [13dbf4ab8] 2020-10-16 21:54:09 -0400 +Branch: REL9_5_STABLE [c8cb243cb] 2020-10-16 21:54:14 -0400 +Branch: master [7d6d6bce4] 2020-10-22 21:23:47 -0400 +Branch: REL_13_STABLE [96ed2ae93] 2020-10-22 21:24:01 -0400 +Branch: REL_12_STABLE [78ccf7f42] 2020-10-22 21:24:07 -0400 +Branch: REL_11_STABLE [02f86d523] 2020-10-22 21:24:12 -0400 +Branch: REL_10_STABLE [a357cc05d] 2020-10-22 21:24:17 -0400 +Branch: REL9_6_STABLE [05a36321a] 2020-10-22 21:24:23 -0400 +Branch: REL9_5_STABLE [0abebb58f] 2020-10-22 21:24:28 -0400 +--> + <para> + Update time zone data files to <application>tzdata</application> + release 2020d for DST law changes in Fiji, Morocco, Palestine, the + Canadian Yukon, Macquarie Island, and Casey Station (Antarctica); + plus historical corrections for France, Hungary, Monaco, and + Palestine. + </para> + </listitem> + + <listitem> +<!-- +Author: Tom Lane <tgl@sss.pgh.pa.us> +Branch: master [ce0e97f80] 2020-10-16 21:40:16 -0400 +Branch: REL_13_STABLE [e0cf5e9b2] 2020-10-16 21:40:16 -0400 +Branch: REL_12_STABLE [3d13a8307] 2020-10-16 21:40:16 -0400 +Branch: REL_11_STABLE [4a2528bfa] 2020-10-16 21:40:16 -0400 +Branch: REL_10_STABLE [41eeeb348] 2020-10-16 21:40:16 -0400 +Branch: REL9_6_STABLE [5515c73a6] 2020-10-16 21:40:16 -0400 +Branch: REL9_5_STABLE [38fac9c1f] 2020-10-16 21:40:16 -0400 +Branch: master [c5054da0d] 2020-10-22 21:15:22 -0400 +Branch: REL_13_STABLE [0e551533b] 2020-10-22 21:15:37 -0400 +Branch: REL_12_STABLE [f56c42e50] 2020-10-22 21:16:04 -0400 +Branch: REL_11_STABLE [d2ffe0a00] 2020-10-22 21:16:16 -0400 +Branch: REL_10_STABLE [34285083b] 2020-10-22 21:16:23 -0400 +Branch: REL9_6_STABLE [58f9f52a3] 2020-10-22 21:16:31 -0400 +Branch: REL9_5_STABLE [ff26f804a] 2020-10-22 21:16:38 -0400 +--> + <para> + Sync our copy of the timezone library with IANA tzcode release 2020d + (Tom Lane) + </para> + + <para> + This absorbs upstream's change of <application>zic</application>'s + default output option from <quote>fat</quote> + to <quote>slim</quote>. That's just cosmetic for our purposes, as + we continue to select the <quote>fat</quote> mode in pre-v13 + branches. This change also ensures + that <function>strftime()</function> does not + change <varname>errno</varname> unless it fails. + </para> + </listitem> + + </itemizedlist> + + </sect2> + </sect1> + + <sect1 id="release-13"> + <title>Release 13</title> + + <formalpara> + <title>Release date:</title> + <para>2020-09-24</para> + </formalpara> + + <sect2> + <title>Overview</title> + + <para> + <productname>PostgreSQL</productname> 13 contains many new features and + enhancements, including: + </para> + + <itemizedlist> + <listitem> + <para> + Space savings and performance gains from de-duplication of B-tree + index entries + </para> + </listitem> + <listitem> + <para> + Improved performance for queries that use aggregates or partitioned + tables + </para> + </listitem> + <listitem> + <para> + Better query planning when using extended statistics + </para> + </listitem> + <listitem> + <para> + Parallelized vacuuming of indexes + </para> + </listitem> + <listitem> + <para> + Incremental sorting + </para> + </listitem> + </itemizedlist> + + <para> + The above items and other new features + of <productname>PostgreSQL</productname> 13 are explained in more + detail in the sections below. + </para> + + </sect2> + + <sect2> + + <title>Migration to Version 13</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 13 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> +2019-09-07 [ca70bdaef] Fix issues around strictness of SIMILAR TO. +--> + + <para> + Change <link linkend="functions-similarto-regexp"><command>SIMILAR + TO ... ESCAPE NULL</command></link> to return <literal>NULL</literal> + (Tom Lane) + </para> + + <para> + This new behavior matches the <acronym>SQL</acronym> specification. + Previously a null <literal>ESCAPE</literal> value was taken to mean + using the default escape string (a backslash character). This also + applies to <literal>substring(<replaceable>text</replaceable> + FROM <replaceable>pattern</replaceable> + ESCAPE <replaceable>text</replaceable>)</literal>. The previous + behavior has been retained in old views by keeping the original + function unchanged. + </para> + </listitem> + + <listitem> +<!-- +Author: Tom Lane <tgl@sss.pgh.pa.us> +2020-01-31 [870ad6a59] Fix not-quite-right string comparison in parse_jsonb_ind +--> + + <para> + Make <link + linkend="textsearch-functions-table"><function>json[b]_to_tsvector()</function></link> + fully check the spelling of its <literal>string</literal> option + (Dominik Czarnota) + </para> + </listitem> + + <listitem> +<!-- +Author: Thomas Munro <tmunro@postgresql.org> +2020-03-16 [b09ff5366] Simplify the effective_io_concurrency setting. +--> + + <para> + Change the way non-default <xref + linkend="guc-effective-io-concurrency"/> values affect concurrency + (Thomas Munro) + </para> + + <para> + Previously, this value was adjusted before setting the number of + concurrent requests. The value is now used directly. Conversion of + old values to new ones can be done using: + </para> + +<programlisting> +SELECT round(sum(<replaceable>OLDVALUE</replaceable> / n::float)) AS newvalue FROM generate_series(1, <replaceable>OLDVALUE</replaceable>) s(n); +</programlisting> + </listitem> + + <listitem> +<!-- +Author: Alvaro Herrera <alvherre@alvh.no-ip.org> +2019-11-12 [5c46e7d82] pg_stat_{ssl,gssapi}: Show only processes with connectio +--> + + <para> + Prevent display of auxiliary processes in <xref + linkend="pg-stat-ssl-view"/> and <xref linkend="pg-stat-gssapi-view"/> + system views (Euler Taveira) + </para> + + <para> + Queries that join these views to <xref + linkend="pg-stat-activity-view"/> and wish to see auxiliary processes + will need to use left joins. + </para> + </listitem> + + <listitem> +<!-- +Author: Fujii Masao <fujii@postgresql.org> +2020-03-19 [1d253bae5] Rename the recovery-related wait events. +Author: Tom Lane <tgl@sss.pgh.pa.us> +2020-05-15 [36ac359d3] Rename assorted LWLock tranches. +2020-05-15 [474e7da64] Change locktype "speculative token" to "spectoken". +2020-05-15 [14a910109] Drop the redundant "Lock" suffix from LWLock wait event +2020-05-16 [3048898e7] Mop-up for wait event naming issues. +--> + + <para> + Rename various <link linkend="wait-event-table">wait + events</link> to improve consistency (Fujii Masao, Tom Lane) + </para> + </listitem> + + <listitem> +<!-- +Author: Fujii Masao <fujii@postgresql.org> +2019-11-06 [979766c0a] Correct the command tags for ALTER ... RENAME COLUMN. +--> + + <para> + Fix <link linkend="sql-alterforeigntable"><command>ALTER FOREIGN + TABLE ... RENAME COLUMN</command></link> to return a more appropriate + command tag (Fujii Masao) + </para> + + <para> + Previously it returned <command>ALTER TABLE</command>; now it returns + <command>ALTER FOREIGN TABLE</command>. + </para> + </listitem> + + <listitem> +<!-- +Author: Fujii Masao <fujii@postgresql.org> +2019-11-06 [979766c0a] Correct the command tags for ALTER ... RENAME COLUMN. +--> + + <para> + Fix <link linkend="sql-altermaterializedview"><command>ALTER + MATERIALIZED VIEW ... RENAME COLUMN</command></link> to return a more + appropriate command tag (Fujii Masao) + </para> + + <para> + Previously it returned <command>ALTER TABLE</command>; now it returns + <command>ALTER MATERIALIZED VIEW</command>. + </para> + </listitem> + + <listitem> +<!-- +Author: Fujii Masao <fujii@postgresql.org> +2020-07-20 [f5dff45962] Rename wal_keep_segments to wal_keep_size. +--> + + <para> + Rename configuration parameter <varname>wal_keep_segments</varname> + to <xref linkend="guc-wal-keep-size"/> (Fujii Masao) + </para> + + <para> + This determines how much WAL to retain for standby servers. + It is specified in megabytes, rather than number of files as with + the old parameter. If you + previously used <varname>wal_keep_segments</varname>, + the following formula will give you an approximately equivalent setting: +<programlisting> +wal_keep_size = wal_keep_segments * wal_segment_size (typically 16MB) +</programlisting> + </para> + </listitem> + + <listitem> +<!-- +Author: Tom Lane <tgl@sss.pgh.pa.us> +2020-03-05 [84eca14bc] Remove ancient hacks to ignore certain opclass names in +--> + + <para> + Remove support for defining <link linkend="sql-createopclass">operator + classes</link> using pre-<productname>PostgreSQL</productname> + 8.0 syntax (Daniel Gustafsson) + </para> + </listitem> + + <listitem> +<!-- +Author: Tom Lane <tgl@sss.pgh.pa.us> +2020-03-05 [e58a59975] Remove ancient support for upgrading pre-7.3 foreign key +--> + + <para> + Remove support for defining <link linkend="sql-altertable">foreign key + constraints</link> using pre-<productname>PostgreSQL</productname> + 7.3 syntax (Daniel Gustafsson) + </para> + </listitem> + + <listitem> +<!-- +Author: Tom Lane <tgl@sss.pgh.pa.us> +2020-03-05 [bb03010b9] Remove the "opaque" pseudo-type and associated compatibi +--> + + <para> + Remove support for "opaque" <link + linkend="sql-createtype">pseudo-types</link> used by + pre-<productname>PostgreSQL</productname> 7.3 servers (Daniel + Gustafsson) + </para> + </listitem> + + <listitem> +<!-- +Author: Tom Lane <tgl@sss.pgh.pa.us> +2020-02-19 [70a773200] Remove support for upgrading extensions from "unpackaged +--> + + <para> + Remove support for upgrading unpackaged (pre-9.1) extensions (Tom Lane) + </para> + + <para> + The <literal>FROM</literal> option + of <link linkend="sql-createextension"><command>CREATE + EXTENSION</command></link> is no longer supported. Any installations + still using unpackaged extensions should upgrade them to a packaged + version before updating to <productname>PostgreSQL</productname> 13. + </para> + </listitem> + + <listitem> +<!-- +Author: Tom Lane <tgl@sss.pgh.pa.us> +2020-06-29 [21aac2ff9] Remove support for timezone "posixrules" file. +--> + + <para> + Remove support for <filename>posixrules</filename> files in the + timezone database (Tom Lane) + </para> + + <para> + IANA's timezone group has deprecated this feature, meaning that it + will gradually disappear from systems' timezone databases over the + next few years. Rather than have a behavioral change appear + unexpectedly with a timezone data update, we have + removed <productname>PostgreSQL</productname>'s support for this + feature as of version 13. This affects only the behavior + of <link linkend="datetime-posix-timezone-specs">POSIX-style time + zone specifications</link> that lack an explicit daylight savings + transition rule; formerly the transition rule could be determined + by installing a custom <filename>posixrules</filename> file, but + now it is hard-wired. The recommended fix for any affected + installations is to start using a geographical time zone name. + </para> + </listitem> + + <listitem> +<!-- +Author: Tom Lane <tgl@sss.pgh.pa.us> +2020-03-28 [9950c8aad] Fix lquery's behavior for consecutive '*' items. +--> + + <para> + In <xref linkend="ltree"/>, when an <type>lquery</type> pattern + contains adjacent asterisks with braces, + e.g., <literal>*{2}.*{3}</literal>, properly interpret that + as <literal>*{5}</literal> (Nikita Glukhov) + </para> + </listitem> + + <listitem> +<!-- +Author: Peter Geoghegan <pg@bowt.ie> +2020-03-07 [691e8b2e1] pageinspect: Fix types used for bt_metap() columns. +--> + + <para> + Fix <xref linkend="pageinspect"/>'s <function>bt_metap()</function> + to return more appropriate data types that are less likely to overflow + (Peter Geoghegan) + </para> + </listitem> + + </itemizedlist> + + </sect2> + + <sect2> + <title>Changes</title> + + <para> + Below you will find a detailed account of the changes between + <productname>PostgreSQL</productname> 13 and the previous major + release. + </para> + + <sect3> + <title>Server</title> + + <sect4> + <title><link linkend="ddl-partitioning">Partitioning</link></title> + + <itemizedlist> + + <listitem> +<!-- +Author: Alvaro Herrera <alvherre@alvh.no-ip.org> +2019-08-07 [4e85642d9] Apply constraint exclusion more generally in partitionin +Author: Alvaro Herrera <alvherre@alvh.no-ip.org> +2019-08-13 [815ef2f56] Don't constraint-exclude partitioned tables as much +--> + + <para> + Allow <link linkend="ddl-partition-pruning">pruning</link> of + partitions to happen in more cases + (Yuzuko Hosoya, Amit Langote, Álvaro Herrera) + </para> + </listitem> + + <listitem> +<!-- +Author: Etsuro Fujita <efujita@postgresql.org> +2020-04-08 [c8434d64c] Allow partitionwise joins in more cases. +Author: Tom Lane <tgl@sss.pgh.pa.us> +2020-04-07 [981643dcd] Allow partitionwise join to handle nested FULL JOIN USIN +--> + + <para> + Allow <link linkend="guc-enable-partitionwise-join">partitionwise + joins</link> to happen in more cases (Ashutosh Bapat, Etsuro Fujita, + Amit Langote, Tom Lane) + </para> + + <para> + For example, partitionwise joins can now happen between partitioned + tables even when their partition bounds do not match exactly. + </para> + </listitem> + + <listitem> +<!-- +Author: Alvaro Herrera <alvherre@alvh.no-ip.org> +2020-03-18 [487e9861d] Enable BEFORE row-level triggers for partitioned tables +--> + + <para> + Support row-level <literal>BEFORE</literal> <link + linkend="triggers">triggers</link> on partitioned tables (Álvaro + Herrera) + </para> + + <para> + However, such a trigger is not allowed to change which partition + is the destination. + </para> + </listitem> + + <listitem> +<!-- +Author: Peter Eisentraut <peter@eisentraut.org> +2020-03-10 [17b9e7f9f] Support adding partitioned tables to publication +Author: Peter Eisentraut <peter@eisentraut.org> +2020-04-08 [83fd4532a] Allow publishing partition changes via ancestors +--> + + <para> + Allow partitioned tables to be logically replicated via <link + linkend="sql-createpublication">publications</link> (Amit Langote) + </para> + + <para> + Previously, partitions had to be replicated individually. Now a + partitioned table can be published explicitly, causing all its + partitions to be published automatically. Addition/removal of a + partition causes it to be likewise added to or removed from the + publication. + The <link linkend="sql-createpublication"><command>CREATE + PUBLICATION</command></link> option + <literal>publish_via_partition_root</literal> controls whether changes + to partitions are published as their own changes or their parent's. + </para> + </listitem> + + <listitem> +<!-- +Author: Peter Eisentraut <peter@eisentraut.org> +2020-04-06 [f1ac27bfd] Add logical replication support to replicate into partit +--> + + <para> + Allow logical replication into partitioned tables on subscribers + (Amit Langote) + </para> + + <para> + Previously, subscribers could only receive rows into non-partitioned + tables. + </para> + </listitem> + + <listitem> +<!-- +Author: Tom Lane <tgl@sss.pgh.pa.us> +2019-12-25 [bb4114a4e] Allow whole-row Vars to be used in partitioning expressi +--> + + <para> + Allow whole-row variables (that + is, <replaceable>table</replaceable><literal>.*</literal>) to be + used in partitioning expressions (Amit Langote) + </para> + </listitem> + + </itemizedlist> + + </sect4> + + <sect4> + <title>Indexes</title> + + <itemizedlist> + + <listitem> +<!-- +Author: Peter Geoghegan <pg@bowt.ie> +2020-02-26 [0d861bbb7] Add deduplication to nbtree. +--> + + <para> + More efficiently store <link + linkend="btree-deduplication">duplicates</link> in B-tree indexes + (Anastasia Lubennikova, Peter Geoghegan) + </para> + + <para> + This allows efficient B-tree indexing of low-cardinality columns + by storing duplicate keys only once. Users upgrading with <link + linkend="pgupgrade"><application>pg_upgrade</application></link> + will need to use <link + linkend="sql-reindex"><command>REINDEX</command></link> to make an + existing index use this feature. + </para> + </listitem> + + <listitem> +<!-- +Author: Alexander Korotkov <akorotkov@postgresql.org> +2019-07-14 [c085e1c1c] Add support for <-> (box, point) operator to GiST box_op +Author: Alexander Korotkov <akorotkov@postgresql.org> +2019-07-14 [075f0a880] Add support for <-> (box, point) operator to SP-GiST box +--> + + <para> + Allow <link linkend="gist">GiST</link> and <link + linkend="spgist">SP-GiST</link> indexes on <type>box</type> + columns to support <literal>ORDER BY <replaceable>box</replaceable> + <-> <replaceable>point</replaceable></literal> queries (Nikita + Glukhov) + </para> + </listitem> + + <listitem> +<!-- +Author: Alexander Korotkov <akorotkov@postgresql.org> +2020-01-18 [4b754d6c1] Avoid full scan of GIN indexes when possible +--> + + <para> + Allow <link linkend="gin"><acronym>GIN</acronym></link> indexes to + more efficiently handle <literal>!</literal> (NOT) clauses + in <type>tsquery</type> searches (Nikita + Glukhov, Alexander Korotkov, Tom Lane, Julien Rouhaud) + </para> + </listitem> + + <listitem> +<!-- +Author: Alexander Korotkov <akorotkov@postgresql.org> +2020-03-30 [911e70207] Implement operator class parameters +--> + + <para> + Allow <link linkend="sql-createindex">index operator classes</link> + to take parameters (Nikita Glukhov) + </para> + </listitem> + + <listitem> +<!-- +Author: Alexander Korotkov <akorotkov@postgresql.org> +2020-03-30 [911e70207] Implement operator class parameters +--> + + <para> + Allow <command>CREATE INDEX</command> to specify the GiST signature + length and maximum number of integer ranges (Nikita Glukhov) + </para> + + <para> + Indexes created on four and eight-byte <link linkend="intarray">integer + array</link>, <link linkend="textsearch">tsvector</link>, + <xref linkend="pgtrgm"/>, <xref linkend="ltree"/>, and <xref + linkend="hstore"/> columns can now control these GiST index parameters, + rather than using the defaults. + </para> + </listitem> + + <listitem> +<!-- +Author: Tom Lane <tgl@sss.pgh.pa.us> +2019-12-06 [fbbf68094] Disallow non-default collation in ADD PRIMARY KEY/UNIQUE +--> + + <para> + Prevent indexes that use non-default collations from being <link + linkend="sql-altertable">added</link> as a table's unique or primary + key constraint (Tom Lane) + </para> + + <para> + The index's collation must match that of the underlying column, + but <command>ALTER TABLE</command> previously failed to check + this. + </para> + </listitem> + + + </itemizedlist> + + </sect4> + + <sect4> + <title>Optimizer</title> + + <itemizedlist> + + <listitem> +<!-- +Author: Tom Lane <tgl@sss.pgh.pa.us> +2020-04-01 [a80818605] Improve selectivity estimation for assorted match-style +--> + + <para> + Improve the optimizer's <link + linkend="planner-stats-details">selectivity</link> estimation for + containment/match operators (Tom Lane) + </para> + </listitem> + + <listitem> +<!-- +Author: Tomas Vondra <tomas.vondra@postgresql.org> +2019-09-11 [d06215d03] Allow setting statistics target for extended statistics +--> + + <para> + Allow setting the <link linkend="sql-altertable">statistics target</link> + for <link linkend="sql-createstatistics">extended statistics</link> + (Tomas Vondra) + </para> + + <para> + This is controlled with the new command option <command>ALTER + STATISTICS ... SET STATISTICS</command>. Previously this was computed + based on more general statistics target settings. + </para> + </listitem> + + <listitem> +<!-- +Author: Tomas Vondra <tomas.vondra@postgresql.org> +2020-01-13 [aaa676187] Apply all available functional dependencies +Author: Tomas Vondra <tomas.vondra@postgresql.org> +2020-01-13 [eae056c19] Apply multiple multivariate MCV lists when possible +--> + + <para> + Allow use of multiple extended statistics objects in a single query + (Tomas Vondra) + </para> + </listitem> + + <listitem> +<!-- +Author: Tomas Vondra <tomas.vondra@postgresql.org> +2020-03-14 [8f321bd16] Use functional dependencies to estimate ScalarArrayOpExp +Author: Tomas Vondra <tomas.vondra@postgresql.org> +2020-03-14 [e83daa7e3] Use multi-variate MCV lists to estimate ScalarArrayOpExp +Author: Tomas Vondra <tomas.vondra@postgresql.org> +2020-03-18 [ccaa3569f] Recognize some OR clauses as compatible with functional +--> + + <para> + Allow use of extended statistics objects for OR clauses and <link + linkend="functions-subquery">IN</link>/<literal>ANY</literal> constant + lists (Pierre Ducroquet, Tomas Vondra) + </para> + </listitem> + + <listitem> +<!-- +Author: Tom Lane <tgl@sss.pgh.pa.us> +2019-08-01 [7266d0997] Allow functions-in-FROM to be pulled up if they reduce t +Author: Tom Lane <tgl@sss.pgh.pa.us> +2019-09-24 [a9ae99d01] Prevent bogus pullup of constant-valued functions return +--> + + <para> + Allow functions in <literal>FROM</literal> clauses to be pulled up + (inlined) if they evaluate to constants (Alexander Kuzmenkov, + Aleksandr Parfenov) + </para> + </listitem> + + </itemizedlist> + + </sect4> + + <sect4> + <title>General Performance</title> + + <itemizedlist> + + <listitem> +<!-- +Author: Tomas Vondra <tomas.vondra@postgresql.org> +2020-04-06 [d2d8a229b] Implement Incremental Sort +Author: Peter Eisentraut <peter@eisentraut.org> +2020-07-05 [94e454cdd] Rename enable_incrementalsort for clarity +--> + + <para> + Implement <link linkend="guc-enable-incremental-sort">incremental + sorting</link> (James Coleman, Alexander Korotkov, Tomas Vondra) + </para> + + <para> + If an intermediate query result is known to be sorted by + one or more leading keys of a required sort ordering, the + additional sorting can be done considering only the remaining + keys, if the rows are sorted in batches that have equal leading + keys. + </para> + + <para> + If necessary, this can be controlled using <xref + linkend="guc-enable-incremental-sort"/>. + </para> + </listitem> + + <listitem> +<!-- +Author: Peter Geoghegan <pg@bowt.ie> +2019-08-01 [71dcd7438] Add sort support routine for the inet data type. +--> + + <para> + Improve the performance of sorting <link + linkend="datatype-inet">inet</link> values (Brandur Leach) + </para> + </listitem> + + <listitem> +<!-- +Author: Jeff Davis <jdavis@postgresql.org> +2020-03-18 [1f39bce02] Disk-based Hash Aggregation. +Author: Jeff Davis <jdavis@postgresql.org> +2020-03-24 [dd8e19132] Consider disk-based hash aggregation to implement DISTIN +Author: Peter Geoghegan <pg@bowt.ie> +2020-07-29 [78530c8e7] Add hash_mem_multiplier GUC. +--> + + <para> + Allow <link linkend="guc-enable-hashagg">hash aggregation</link> + to use disk storage for large aggregation result sets (Jeff Davis) + </para> + + <para> + Previously, hash aggregation was avoided if it was expected to use + more than <xref linkend="guc-work-mem"/> memory. Now, a hash + aggregation plan can be chosen despite that. The hash table will + be spilled to disk if it exceeds <varname>work_mem</varname> times + <xref linkend="guc-hash-mem-multiplier"/>. + </para> + + <para> + This behavior is normally preferable to the old behavior, in which + once hash aggregation had been chosen, the hash table would be + kept in memory no matter how large it got — which could be + very large if the planner had misestimated. If necessary, + behavior similar to that can be obtained by + increasing <varname>hash_mem_multiplier</varname>. + </para> + </listitem> + + <listitem> +<!-- +Author: David Rowley <drowley@postgresql.org> +2020-03-28 [b07642dbc] Trigger autovacuum based on number of INSERTs +--> + + <para> + Allow inserts, not only updates and deletes, to trigger vacuuming + activity in <link linkend="autovacuum">autovacuum</link> + (Laurenz Albe, Darafei Praliaskouski) + </para> + + <para> + Previously, insert-only activity would trigger auto-analyze but + not auto-vacuum, on the grounds that there could not be any dead + tuples to remove. However, a vacuum scan has other useful + side-effects such as setting page-all-visible bits, which improves + the efficiency of index-only scans. Also, allowing an insert-only + table to receive periodic vacuuming helps to spread out the work + of <quote>freezing</quote> old tuples, so that there is not + suddenly a large amount of freezing work to do when the entire + table reaches the anti-wraparound threshold all at once. + </para> + + <para> + If necessary, this behavior can be adjusted with the new + parameters <xref linkend="guc-autovacuum-vacuum-insert-threshold"/> + and <xref linkend="guc-autovacuum-vacuum-insert-scale-factor"/>, or + the equivalent table storage options. + </para> + </listitem> + + <listitem> +<!-- +Author: Thomas Munro <tmunro@postgresql.org> +2020-03-16 [fc34b0d9d] Introduce a maintenance_io_concurrency setting. +--> + + <para> + Add <xref linkend="guc-maintenance-io-concurrency"/> parameter to + control I/O concurrency for maintenance operations (Thomas Munro) + </para> + </listitem> + + <listitem> +<!-- +Author: Noah Misch <noah@leadboat.com> +2020-04-04 [c6b92041d] Skip WAL for new relfilenodes, under wal_level=minimal. +--> + + <para> + Allow <acronym>WAL</acronym> writes to be skipped during a transaction + that creates or rewrites a relation, if <xref + linkend="guc-wal-level"/> is <literal>minimal</literal> (Kyotaro + Horiguchi) + </para> + + <para> + Relations larger than <xref linkend="guc-wal-skip-threshold"/> + will have their files fsync'ed rather than generating + <acronym>WAL</acronym>. Previously this was done only for + <command>COPY</command> operations, but the implementation had a bug + that could cause data loss during crash recovery. + </para> + </listitem> + + <listitem> +<!-- +Author: Fujii Masao <fujii@postgresql.org> +2019-11-21 [e6d806952] Make DROP DATABASE command generate less WAL records. +--> + + <para> + Improve performance when replaying <link + linkend="sql-dropdatabase"><command>DROP DATABASE</command></link> + commands when many tablespaces are in use (Fujii Masao) + </para> + </listitem> + + <listitem> +<!-- +Author: Fujii Masao <fujii@postgresql.org> +2019-09-24 [6d05086c0] Speedup truncations of relation forks. +--> + + <para> + Improve performance for <link linkend="sql-truncate">truncation</link> + of very large relations (Kirk Jamison) + </para> + </listitem> + + <listitem> +<!-- +Author: Tomas Vondra <tomas.vondra@postgresql.org> +2019-10-01 [11a078cf8] Optimize partial TOAST decompression +--> + + <para> + Improve retrieval of the leading bytes of <link + linkend="storage-toast"><acronym>TOAST</acronym></link>'ed values + (Binguo Bao, Andrey Borodin) + </para> + + <para> + Previously, compressed out-of-line <acronym>TOAST</acronym> values + were fully fetched even when it's known that only some leading + bytes are needed. Now, only enough data to produce the result is + fetched. + </para> + </listitem> + + <listitem> +<!-- +Author: Tom Lane <tgl@sss.pgh.pa.us> +2019-09-10 [bca6e6435] Reduce overhead of scanning the backend[] array in LISTE +Author: Tom Lane <tgl@sss.pgh.pa.us> +2019-09-22 [51004c717] Make some efficiency improvements in LISTEN/NOTIFY. +Author: Tom Lane <tgl@sss.pgh.pa.us> +2019-08-15 [bb5ae8f6c] Use a hash table to de-duplicate NOTIFY events faster. +--> + + <para> + Improve performance of <link + linkend="sql-listen"><command>LISTEN</command></link>/<command>NOTIFY</command> + (Martijn van Oosterhout, Tom Lane) + </para> + </listitem> + + <listitem> +<!-- +Author: Andrew Gierth <rhodiumtoad@postgresql.org> +2020-02-01 [1fd687a03] Optimizations for integer to decimal output. +--> + + <para> + Speed up conversions of integers to text (David Fetter) + </para> + </listitem> + + <listitem> +<!-- +Author: Tom Lane <tgl@sss.pgh.pa.us> +2019-07-10 [b5810de3f] Reduce memory consumption for multi-statement query stri +--> + + <para> + Reduce memory usage for query strings and extension scripts that + contain many <acronym>SQL</acronym> statements (Amit Langote) + </para> + </listitem> + + </itemizedlist> + + </sect4> + + <sect4> + <title>Monitoring</title> + + <itemizedlist> + + <listitem> +<!-- +Author: Amit Kapila <akapila@postgresql.org> +2020-04-05 [6b466bf5f] Allow pg_stat_statements to track WAL usage statistics. +Author: Amit Kapila <akapila@postgresql.org> +2020-04-06 [33e05f89c] Add the option to report WAL usage in EXPLAIN and auto_e +Author: Amit Kapila <akapila@postgresql.org> +2020-04-06 [b7ce6de93] Allow autovacuum to log WAL usage statistics. +--> + + <para> + Allow <link linkend="sql-explain"><command>EXPLAIN</command></link>, + <xref linkend="auto-explain"/>, <link + linkend="autovacuum">autovacuum</link>, and <xref + linkend="pgstatstatements"/> to track <acronym>WAL</acronym> usage + statistics (Kirill Bychik, Julien Rouhaud) + </para> + </listitem> + + <listitem> +<!-- +Author: Tomas Vondra <tomas.vondra@postgresql.org> +2019-11-06 [6e3e6cc0e] Allow sampling of statements depending on duration +--> + + <para> + Allow a sample of SQL statements, rather than all statements, to + be logged (Adrien Nayrat) + </para> + + <para> + A <xref linkend="guc-log-statement-sample-rate"/> fraction of + those statements taking more than + <xref linkend="guc-log-min-duration-sample"/> duration will be + logged. + </para> + </listitem> + + <listitem> +<!-- +Author: Peter Eisentraut <peter@eisentraut.org> +2020-03-15 [70a7b4776] Add backend type to csvlog and optionally log_line_prefi +--> + + <para> + Add the backend type to <link + linkend="runtime-config-logging">csvlog</link> and optionally <xref + linkend="guc-log-line-prefix"/> log output (Peter Eisentraut) + </para> + </listitem> + + <listitem> +<!-- +Author: Alvaro Herrera <alvherre@alvh.no-ip.org> +2019-12-11 [ba79cb5dc] Emit parameter values during query bind/execute errors +Author: Tom Lane <tgl@sss.pgh.pa.us> +2020-04-02 [0b34e7d30] Improve user control over truncation of logged bind-para +--> + + <para> + Improve control of prepared statement parameter logging (Alexey + Bashtanov, Álvaro Herrera) + </para> + + <para> + The <acronym>GUC</acronym> setting <xref + linkend="guc-log-parameter-max-length"/> controls the maximum length + of parameter values output during logging of non-error statements, + while <xref linkend="guc-log-parameter-max-length-on-error"/> does + the same for logging of statements with errors. Previously, + prepared statement parameters were never logged during errors. + </para> + </listitem> + + <listitem> +<!-- +Author: Alvaro Herrera <alvherre@alvh.no-ip.org> +2019-11-08 [71a8a4f6e] Add backtrace support for error reporting +Author: Peter Eisentraut <peter@eisentraut.org> +2020-07-10 [8ff4d1277] Log the location field before any backtrace +--> + + <para> + Allow function call backtraces to be logged after errors (Peter + Eisentraut, Álvaro Herrera) + </para> + + <para> + The new parameter <xref linkend="guc-backtrace-functions"/> specifies + which C functions should generate backtraces on error. + </para> + </listitem> + + <listitem> +<!-- +Author: Alvaro Herrera <alvherre@alvh.no-ip.org> +2020-02-05 [15d13e829] Make vacuum buffer counters 64 bits wide +--> + + <para> + Make <link linkend="sql-vacuum">vacuum</link> buffer counters 64-bits + wide to avoid overflow (Álvaro Herrera) + </para> + </listitem> + + </itemizedlist> + + </sect4> + + <sect4> + <title>System Views</title> + + <itemizedlist> + + <listitem> +<!-- +Author: Michael Paquier <michael@paquier.xyz> +2020-02-06 [b025f32e0] Add leader_pid to pg_stat_activity +--> + + <para> + Add <structfield>leader_pid</structfield> to <xref + linkend="pg-stat-activity-view"/> to report a parallel worker's + leader process (Julien Rouhaud) + </para> + </listitem> + + <listitem> +<!-- +Author: Fujii Masao <fujii@postgresql.org> +2020-03-03 [e65497df8] Report progress of streaming base backup. +--> + + <para> + Add system view <link + linkend="basebackup-progress-reporting"><structname>pg_stat_progress_basebackup</structname></link> + to report the progress of streaming base backups (Fujii Masao) + </para> + </listitem> + + <listitem> +<!-- +Author: Alvaro Herrera <alvherre@alvh.no-ip.org> +2020-01-15 [a166d408e] Report progress of ANALYZE commands +--> + + <para> + Add system view <link + linkend="monitoring-stats-dynamic-views-table"><structname>pg_stat_progress_analyze</structname></link> + to report <link linkend="sql-analyze">ANALYZE</link> progress + (Álvaro Herrera, Tatsuro Yamada, Vinayak Pokale) + </para> + </listitem> + + <listitem> +<!-- +Author: Robert Haas <rhaas@postgresql.org> +2020-01-09 [ed10f32e3] Add pg_shmem_allocations view. +--> + + <para> + Add system view <link + linkend="view-pg-shmem-allocations"><structname>pg_shmem_allocations</structname></link> + to display shared memory usage (Andres Freund, Robert Haas) + </para> + </listitem> + + <listitem> +<!-- +Author: Tomas Vondra <tomas.vondra@postgresql.org> +2020-04-02 [28cac71bd] Collect statistics about SLRU caches +--> + + <para> + Add system view <link + linkend="monitoring-stats-views-table"><structname>pg_stat_slru</structname></link> + to monitor internal <acronym>SLRU</acronym> caches + (Tomas Vondra) + </para> + </listitem> + + <listitem> +<!-- +Author: Robert Haas <rhaas@postgresql.org> +2020-01-07 [814727858] Increase the maximum value of track_activity_query_size. +--> + + <para> + Allow <xref linkend="guc-track-activity-query-size"/> to be set as + high as 1MB (Vyacheslav Makarov) + </para> + + <para> + The previous maximum was 100kB. + </para> + </listitem> + + </itemizedlist> + + </sect4> + + <sect4> + <title><link linkend="wait-event-table">Wait Events</link></title> + + <itemizedlist> + + <listitem> +<!-- +Author: Thomas Munro <tmunro@postgresql.org> +2020-01-31 [ef02fb15a] Report time spent in posix_fallocate() as a wait event. +--> + + <para> + Report a wait event while creating a DSM segment + with <function>posix_fallocate()</function> (Thomas Munro) + </para> + </listitem> + + <listitem> +<!-- +Author: Andres Freund <andres@anarazel.de> +2020-03-23 [cedffbdb8] Report wait event for cost-based vacuum delay. +--> + + <para> + Add wait event VacuumDelay to report on cost-based vacuum delay + (Justin Pryzby) + </para> + </listitem> + + <listitem> +<!-- +Author: Fujii Masao <fujii@postgresql.org> +2020-03-24 [b8e20d6da] Add wait events for WAL archive and recovery pause. +--> + + <para> + Add wait events for <acronym>WAL</acronym> archive and recovery pause + (Fujii Masao) + </para> + + <para> + The new events are BackupWaitWalArchive and RecoveryPause. + </para> + </listitem> + + <listitem> +<!-- +Author: Fujii Masao <fujii@postgresql.org> +2020-04-03 [18808f8c8] Add wait events for recovery conflicts. +--> + + <para> + Add wait events RecoveryConflictSnapshot and + RecoveryConflictTablespace to monitor recovery conflicts (Masahiko + Sawada) + </para> + </listitem> + + <listitem> +<!-- +Author: Thomas Munro <tmunro@postgresql.org> +2020-02-05 [815c2f097] Add kqueue(2) support to the WaitEventSet API. +--> + + <para> + Improve performance of wait events on <acronym>BSD</acronym>-based + systems (Thomas Munro) + </para> + </listitem> + + </itemizedlist> + + </sect4> + + <sect4> + <title><acronym>Authentication</acronym></title> + + <itemizedlist> + + <listitem> +<!-- +Author: Fujii Masao <fujii@postgresql.org> +2020-03-09 [d9249441e] Mark ssl_passphrase_command as GUC_SUPERUSER_ONLY. +--> + + <para> + Allow only superusers to view the <xref + linkend="guc-ssl-passphrase-command"/> setting (Insung Moon) + </para> + + <para> + This was changed as a security precaution. + </para> + </listitem> + + <listitem> +<!-- +Author: Peter Eisentraut <peter@eisentraut.org> +2019-12-04 [b1abfec82] Update minimum SSL version +--> + + <para> + Change the server's default minimum <acronym>TLS</acronym> version + for encrypted connections from 1.0 to 1.2 (Peter Eisentraut) + </para> + + <para> + This choice can be controlled by + <xref linkend="guc-ssl-min-protocol-version"/>. + </para> + </listitem> + + </itemizedlist> + + </sect4> + + <sect4> + <title>Server Configuration</title> + + <itemizedlist> + + <listitem> +<!-- +Author: Robert Haas <rhaas@postgresql.org> +2020-01-16 [2eb34ac36] Fix problems with "read only query" checks, and refactor +--> + + <para> + Tighten rules on which utility commands are allowed in + read-only transaction mode (Robert Haas) + </para> + + <para> + This change also increases the number of utility commands that can + run in parallel queries. + </para> + </listitem> + + <listitem> +<!-- +Author: Peter Eisentraut <peter@eisentraut.org> +2019-11-29 [c4a7a392e] Make allow_system_table_mods settable at run time +--> + + <para> + Allow <xref linkend="guc-allow-system-table-mods"/> to be changed + after server start (Peter Eisentraut) + </para> + </listitem> + + <listitem> +<!-- +Author: Peter Eisentraut <peter@eisentraut.org> +2019-11-29 [508bf95b7] Remove any-user DML capability from allow_system_table_m +--> + + <para> + Disallow non-superusers from modifying system tables when <xref + linkend="guc-allow-system-table-mods"/> is set (Peter Eisentraut) + </para> + + <para> + Previously, if <xref linkend="guc-allow-system-table-mods"/> + was set at server start, non-superusers could issue + <command>INSERT</command>/<command>UPDATE</command>/<command>DELETE</command> + commands on system tables. + </para> + </listitem> + + <listitem> +<!-- +Author: Peter Eisentraut <peter@eisentraut.org> +2020-03-28 [8f3ec75de] Enable Unix-domain sockets support on Windows +--> + + <para> + Enable support + for <link linkend="runtime-config-connection-settings">Unix-domain + sockets</link> on Windows (Peter Eisentraut) + </para> + </listitem> + + </itemizedlist> + + </sect4> + + </sect3> + + <sect3> + <title>Streaming Replication and Recovery</title> + + <itemizedlist> + + <listitem> +<!-- +Author: Alvaro Herrera <alvherre@alvh.no-ip.org> +2020-03-27 [1e6148032] Allow walreceiver configuration to change on reload +--> + + <para> + Allow streaming replication configuration settings to be changed by + reload (Sergei Kornilov) + </para> + + <para> + Previously, a server restart was required to change + <xref linkend="guc-primary-conninfo"/> and <xref + linkend="guc-primary-slot-name"/>. + </para> + </listitem> + + <listitem> +<!-- +Author: Peter Eisentraut <peter@eisentraut.org> +2020-01-14 [329730827] walreceiver uses a temporary replication slot by default +Author: Alvaro Herrera <alvherre@alvh.no-ip.org> +2020-03-27 [092c6936d] Set wal_receiver_create_temp_slot PGC_POSTMASTER +--> + + <para> + Allow <acronym>WAL</acronym> receivers to use a temporary + replication slot when a permanent one is not specified (Peter + Eisentraut, Sergei Kornilov) + </para> + + <para> + This behavior can be enabled using <xref + linkend="guc-wal-receiver-create-temp-slot"/>. + </para> + </listitem> + + <listitem> +<!-- +Author: Alvaro Herrera <alvherre@alvh.no-ip.org> +2020-04-07 [c65507763] Allow users to limit storage reserved by replication slo +--> + + <para> + Allow WAL storage for replication slots to be limited by + <xref linkend="guc-max-slot-wal-keep-size"/> (Kyotaro Horiguchi) + </para> + + <para> + Replication slots that would require exceeding this value are + marked invalid. + </para> + </listitem> + + <listitem> +<!-- +Author: Fujii Masao <fujii@postgresql.org> +2020-03-24 [496ee647e] Prefer standby promotion over recovery pause. +--> + + <para> + Allow <link linkend="guc-promote-trigger-file">standby promotion</link> + to cancel any requested pause (Fujii Masao) + </para> + + <para> + Previously, promotion could not happen while the standby was in + paused state. + </para> + </listitem> + + <listitem> +<!-- +Author: Peter Eisentraut <peter@eisentraut.org> +2020-01-29 [dc788668b] Fail if recovery target is not reached +--> + + <para> + Generate an error if recovery does not reach the specified <link + linkend="runtime-config-wal-recovery-target">recovery target</link> + (Leif Gunnar Erlandsen, Peter Eisentraut) + </para> + + <para> + Previously, a standby would promote itself upon reaching the end + of <acronym>WAL</acronym>, even if the target was not reached. + </para> + </listitem> + + <listitem> +<!-- +Author: Amit Kapila <akapila@postgresql.org> +2019-11-19 [cec2edfa7] Add logical_decoding_work_mem to limit ReorderBuffer mem +--> + + <para> + Allow control over how much memory is used by logical decoding before + it is spilled to disk (Tomas Vondra, Dilip Kumar, Amit Kapila) + </para> + + <para> + This is controlled by <xref linkend="guc-logical-decoding-work-mem"/>. + </para> + </listitem> + + <listitem> +<!-- +Author: Fujii Masao <fujii@postgresql.org> +2020-01-22 [41c184bc6] Add GUC ignore_invalid_pages. +--> + + <para> + Allow recovery to continue even if invalid + pages are referenced by <acronym>WAL</acronym> (Fujii Masao) + </para> + + <para> + This is enabled using <xref linkend="guc-ignore-invalid-pages"/>. + </para> + </listitem> + + </itemizedlist> + + </sect3> + + <sect3> + <title>Utility Commands</title> + + <itemizedlist> + + <listitem> +<!-- +Author: Amit Kapila <akapila@postgresql.org> +2020-01-20 [40d964ec9] Allow vacuum command to process indexes in parallel. +--> + + <para> + Allow <link linkend="sql-vacuum"><command>VACUUM</command></link> + to process a table's indexes in parallel (Masahiko Sawada, Amit Kapila) + </para> + + <para> + The new <literal>PARALLEL</literal> option controls this. + </para> + </listitem> + + <listitem> +<!-- +Author: Alvaro Herrera <alvherre@alvh.no-ip.org> +2020-04-07 [357889eb1] Support FETCH FIRST WITH TIES +--> + + <para> + Allow <link linkend="sql-limit"><command>FETCH FIRST</command></link> + to use <literal>WITH TIES</literal> to return any additional rows + that match the last result row (Surafel Temesgen) + </para> + </listitem> + + <listitem> +<!-- +Author: Fujii Masao <fujii@postgresql.org> +2020-04-04 [ce77abe63] Include information on buffer usage during planning phas +--> + + <para> + Report planning-time buffer usage in <link + linkend="sql-explain"><command>EXPLAIN</command></link>'s + <literal>BUFFER</literal> output (Julien Rouhaud) + </para> + </listitem> + + <listitem> +<!-- +Author: Tom Lane <tgl@sss.pgh.pa.us> +2020-03-10 [cacef1722] Ensure that CREATE TABLE LIKE copies any NO INHERIT cons +--> + + <para> + Make <link linkend="sql-createtable"><command>CREATE TABLE + LIKE</command></link> propagate a <literal>CHECK</literal> + constraint's <literal>NO INHERIT</literal> property to the created + table (Ildar Musin, Chris Travers) + </para> + </listitem> + + <listitem> +<!-- +Author: Fujii Masao <fujii@postgresql.org> +2020-02-18 [b7e51b350] Make inherited LOCK TABLE perform access permission chec +--> + + <para> + When using <link linkend="sql-lock"><command>LOCK + TABLE</command></link> on a partitioned table, do not check permissions + on the child tables (Amit Langote) + </para> + </listitem> + + <listitem> +<!-- +Author: Peter Eisentraut <peter@eisentraut.org> +2020-03-31 [de3bbfcc9] Fix INSERT OVERRIDING USER VALUE behavior +--> + + <para> + Allow <link linkend="sql-insert"><literal>OVERRIDING USER + VALUE</literal></link> on inserts into identity columns (Dean Rasheed) + </para> + </listitem> + + <listitem> +<!-- +Author: Peter Eisentraut <peter@eisentraut.org> +2020-01-14 [f595117e2] ALTER TABLE ... ALTER COLUMN ... DROP EXPRESSION +--> + + <para> + Add <link linkend="sql-altertable"><command>ALTER + TABLE ... DROP EXPRESSION</command></link> + to allow removing the <literal>GENERATED</literal> + property from a column (Peter Eisentraut) + </para> + </listitem> + + <listitem> +<!-- +Author: Tom Lane <tgl@sss.pgh.pa.us> +2020-01-15 [1281a5c90] Restructure ALTER TABLE execution to fix assorted bugs. +--> + + <para> + Fix bugs in multi-step <command>ALTER TABLE</command> commands (Tom + Lane) + </para> + + <para> + <literal>IF NOT EXISTS</literal> clauses now work as expected, in + that derived actions (such as index creation) do not execute if the + column already exists. Also, certain cases of combining related + actions into one <command>ALTER TABLE</command> now work when they + did not before. + </para> + </listitem> + + <listitem> +<!-- +Author: Fujii Masao <fujii@postgresql.org> +2019-11-21 [30840c92a] Allow ALTER VIEW command to rename the column in the vie +--> + + <para> + Add <link linkend="sql-alterview"><command>ALTER VIEW</command></link> + syntax to rename view columns (Fujii Masao) + </para> + + <para> + Renaming view columns was already possible, but one had to + write <command>ALTER TABLE RENAME COLUMN</command>, which is + confusing. + </para> + </listitem> + + <listitem> +<!-- +Author: Tom Lane <tgl@sss.pgh.pa.us> +2020-03-06 [fe30e7ebf] Allow ALTER TYPE to change some properties of a base typ +--> + + <para> + Add <link linkend="sql-altertype"><command>ALTER TYPE</command></link> + options to modify a base type's <acronym>TOAST</acronym> properties + and support functions (Tomas Vondra, Tom Lane) + </para> + </listitem> + + <listitem> +<!-- +Author: Peter Eisentraut <peter@eisentraut.org> +2019-07-23 [06140c201] Add CREATE DATABASE LOCALE option +--> + + <para> + Add <link linkend="sql-createdatabase"><command>CREATE + DATABASE</command></link> <literal>LOCALE</literal> option (Peter + Eisentraut) + </para> + + <para> + This combines the existing options <literal>LC_COLLATE</literal> and + <literal>LC_CTYPE</literal> into a single option. + </para> + </listitem> + + <listitem> +<!-- +Author: Amit Kapila <akapila@postgresql.org> +2019-11-13 [1379fd537] Introduce the 'force' option for the Drop Database comma +--> + + <para> + Allow <link linkend="sql-dropdatabase"><command>DROP + DATABASE</command></link> to disconnect sessions using the target + database, allowing the drop to succeed (Pavel Stehule, Amit Kapila) + </para> + + <para> + This is enabled by the <literal>FORCE</literal> option. + </para> + </listitem> + + <listitem> +<!-- +Author: Peter Eisentraut <peter@eisentraut.org> +2020-03-09 [71d60e2aa] Add tg_updatedcols to TriggerData +--> + + <para> + Add structure member <link + linkend="trigger-interface"><structfield>tg_updatedcols</structfield></link> + to allow C-language update triggers to know which column(s) were updated + (Peter Eisentraut) + </para> + </listitem> + + </itemizedlist> + + </sect3> + + <sect3> + <title>Data Types</title> + + <itemizedlist> + + <listitem> +<!-- +Tom Lane <tgl@sss.pgh.pa.us> +2020-03-19 [24e2885ee] Introduce "anycompatible" family of polymorphic types. +--> + + <para> + Add polymorphic data types for use by functions requiring compatible + arguments (Pavel Stehule) + </para> + + <para> + The new data types are <link + linkend="datatype-pseudotypes-table"><type>anycompatible</type></link>, + <type>anycompatiblearray</type>, <type>anycompatiblenonarray</type>, + and <type>anycompatiblerange</type>. + </para> + </listitem> + + <listitem> +<!-- +Author: Thomas Munro <tmunro@postgresql.org> +2020-04-07 [aeec457de] Add SQL type xid8 to expose FullTransactionId to users. +--> + + <para> + Add <acronym>SQL</acronym> data type <link + linkend="datatype-oid"><type>xid8</type></link> to expose + FullTransactionId (Thomas Munro) + </para> + + <para> + The existing <type>xid</type> data type is only four bytes so it + does not provide the transaction epoch. + </para> + </listitem> + + <listitem> +<!-- +Author: Peter Eisentraut <peter@eisentraut.org> +2020-03-18 [a2b1faa0f] Implement type regcollation +--> + + <para> + Add data + type <link linkend="datatype-oid"><type>regcollation</type></link> + and associated functions, to represent OIDs of collation objects + (Julien Rouhaud) + </para> + </listitem> + + <listitem> +<!-- +Author: Thomas Munro <tmunro@postgresql.org> +2019-10-16 [d5ac14f9c] Use libc version as a collation version on glibc systems +--> + + <para> + Use the glibc version in some cases as a <link + linkend="collation">collation</link> version identifier (Thomas Munro) + </para> + + <para> + If the glibc version changes, a warning will be issued about + possible corruption of collation-dependent indexes. + </para> + </listitem> + + <listitem> +<!-- +Author: Thomas Munro <tmunro@postgresql.org> +2020-03-25 [352f6f2df] Add collation versions for Windows. +--> + + <para> + Add support for collation versions on Windows (Thomas Munro) + </para> + </listitem> + + <listitem> +<!-- +Author: Tom Lane <tgl@sss.pgh.pa.us> +2019-10-28 [8b7a0f1d1] Allow extracting fields from a ROW() expression in more +--> + + <para> + Allow <link linkend="sql-syntax-row-constructors"><literal>ROW</literal> + expressions</link> to have their members extracted with suffix + notation (Tom Lane) + </para> + + <para> + For example, <literal>(ROW(4, 5.0)).f1</literal> now returns 4. + </para> + </listitem> + + </itemizedlist> + + </sect3> + + <sect3> + <title>Functions</title> + + <itemizedlist> + + <listitem> +<!-- +Author: Andrew Dunstan <andrew@dunslane.net> +2020-01-17 [a83586b55] Add a non-strict version of jsonb_set +--> + + <para> + Add alternate version of <link + linkend="functions-json-processing-table"><function>jsonb_set()</function></link> + with improved <literal>NULL</literal> handling (Andrew Dunstan) + </para> + + <para> + The new function, <function>jsonb_set_lax()</function>, handles a + <literal>NULL</literal> new value by either setting the specified + key to a <acronym>JSON</acronym> null, deleting the key, raising an + exception, or returning the <type>jsonb</type> value unmodified, as + requested. + </para> + </listitem> + + <listitem> +<!-- +Author: Alexander Korotkov <akorotkov@postgresql.org> +2019-09-25 [bffe1bd68] Implement jsonpath .datetime() method +--> + + <para> + Add jsonpath <link + linkend="functions-sqljson-path-operators">.<function>datetime()</function></link> + method (Nikita Glukhov, Teodor Sigaev, Oleg Bartunov, Alexander + Korotkov) + </para> + + <para> + This function allows <acronym>JSON</acronym> values to be converted + to timestamps, which can then be processed in <type>jsonpath</type> + expressions. This change also adds <type>jsonpath</type> functions + that support time-zone-aware output. + </para> + </listitem> + + <listitem> +<!-- +Author: Peter Eisentraut <peter@eisentraut.org> +2020-04-02 [2991ac5fc] Add SQL functions for Unicode normalization +--> + + <para> + Add <acronym>SQL</acronym> functions <link + linkend="functions-string-sql"><literal>NORMALIZE</literal>()</link> + to normalize Unicode strings, and <link + linkend="collation-nondeterministic"><literal>IS + NORMALIZED</literal></link> to check for normalization (Peter + Eisentraut) + </para> + </listitem> + + <listitem> +<!-- +Author: Michael Paquier <michael@paquier.xyz> +2019-07-05 [313f87a17] Add min() and max() aggregates for pg_lsn +--> + + <para> + Add <function>min()</function> and + <function>max()</function> aggregates for <link + linkend="datatype-pg-lsn"><type>pg_lsn</type></link> (Fabrízio + de Royes Mello) + </para> + + <para> + These are particularly useful in monitoring queries. + </para> + </listitem> + + <listitem> +<!-- +Author: Tom Lane <tgl@sss.pgh.pa.us> +2020-03-06 [a6525588b] Allow Unicode escapes in any server encoding, not only U +--> + + <para> + Allow <link linkend="sql-syntax-strings-uescape">Unicode + escapes</link>, + e.g., <literal>E'\u<replaceable>nnnn</replaceable>'</literal> + or <literal>U&'\<replaceable>nnnn</replaceable>'</literal>, to + specify any character available in the database encoding, even when + the database encoding is not <acronym>UTF</acronym>-8 (Tom Lane) + </para> + </listitem> + + <listitem> +<!-- +Author: Tom Lane <tgl@sss.pgh.pa.us> +2020-03-03 [d67755049] Allow to_date/to_timestamp to recognize non-English mont +--> + + <para> + Allow <link + linkend="functions-formatting"><function>to_date()</function></link> + and <function>to_timestamp()</function> to recognize non-English + month/day names (Juan José Santamaría Flecha, Tom Lane) + </para> + + <para> + The names recognized are the same as those output by <link + linkend="functions-formatting"><function>to_char()</function></link> + with the same format patterns. + </para> + </listitem> + + <listitem> +<!-- +Author: Alexander Korotkov <akorotkov@postgresql.org> +2019-09-16 [d589f9446] Support for FF1-FF6 datetime format patterns +--> + + <para> + Add datetime format patterns <literal>FF1</literal> + – <literal>FF6</literal> to specify input or output of + 1 to 6 fractional-second digits (Alexander + Korotkov, Nikita Glukhov, Teodor Sigaev, Oleg Bartunov) + </para> + + <para> + These patterns can be used by <function>to_char()</function>, + <function>to_timestamp()</function>, and jsonpath's + .<function>datetime()</function>. + </para> + </listitem> + + <listitem> +<!-- +Author: Alexander Korotkov <akorotkov@postgresql.org> +2019-09-16 [b64b857f5] Support for SSSSS datetime format pattern +--> + + <para> + Add <literal>SSSSS</literal> datetime format pattern as an + <acronym>SQL</acronym>-standard alias for <literal>SSSS</literal> + (Nikita Glukhov, Alexander Korotkov) + </para> + </listitem> + + <listitem> +<!-- +Author: Peter Eisentraut <peter@eisentraut.org> +2019-07-14 [5925e5549] Add gen_random_uuid function +--> + + <para> + Add function <link + linkend="functions-uuid"><function>gen_random_uuid()</function></link> + to generate version-4 UUIDs (Peter Eisentraut) + </para> + + <para> + Previously <acronym>UUID</acronym> generation functions were only + available in the external modules <xref linkend="uuid-ossp"/> and <xref + linkend="pgcrypto"/>. + </para> + </listitem> + + <listitem> +<!-- +Author: Dean Rasheed <dean.a.rasheed@gmail.com> +2020-01-25 [13661ddd7] Add functions gcd() and lcm() for integer and numeric ty +--> + + <para> + Add greatest-common-denominator + (<link linkend="functions-math-func-table"><function>gcd</function></link>) + and least-common-multiple (<function>lcm</function>) functions (Vik + Fearing) + </para> + </listitem> + + <listitem> +<!-- +Author: Dean Rasheed <dean.a.rasheed@gmail.com> +2020-03-01 [43a899f41] Fix corner-case loss of precision in numeric ln(). +Author: Dean Rasheed <dean.a.rasheed@gmail.com> +2020-03-28 [4083f445c] Improve the performance and accuracy of numeric sqrt() a +--> + + <para> + Improve the performance and accuracy of the <type>numeric</type> + type's <link linkend="functions-math-func-table">square root</link> + (<function>sqrt</function>) and natural log + (<function>ln</function>) functions (Dean Rasheed) + </para> + </listitem> + + <listitem> +<!-- +Author: Tom Lane <tgl@sss.pgh.pa.us> +2020-01-06 [20d6225d1] Add functions min_scale(numeric) and trim_scale(numeric) +--> + + <para> + Add function <link + linkend="functions-math-func-table"><function>min_scale()</function></link> + that returns the number of digits to the right of the decimal point + that are required to represent a <type>numeric</type> value with + full accuracy (Pavel Stehule) + </para> + </listitem> + + <listitem> +<!-- +Author: Tom Lane <tgl@sss.pgh.pa.us> +2020-01-06 [20d6225d1] Add functions min_scale(numeric) and trim_scale(numeric) +--> + + <para> + Add function <link + linkend="functions-math-func-table"><function>trim_scale()</function></link> + to reduce the scale of a <type>numeric</type> value by removing + trailing zeros (Pavel Stehule) + </para> + </listitem> + + <listitem> +<!-- +Author: Alexander Korotkov <akorotkov@postgresql.org> +2019-07-14 [6254c55f8] Add missing commutators for distance operators +--> + + <para> + Add commutators of <link linkend="functions-geometry-op-table">distance + operators</link> (Nikita Glukhov) + </para> + + <para> + For example, previously only <type>point</type> + <literal><-></literal> <type>line</type> was supported, + now <type>line</type> <literal><-></literal> <type>point</type> + works too. + </para> + </listitem> + + <listitem> +<!-- +Author: Thomas Munro <tmunro@postgresql.org> +2020-04-07 [4c04be9b0] Introduce xid8-based functions to replace txid_XXX. +--> + + <para> + Create <type>xid8</type> versions of all <link + linkend="functions-pg-snapshot">transaction ID functions</link> + (Thomas Munro) + </para> + + <para> + The old <type>xid</type>-based functions still exist, for backward + compatibility. + </para> + </listitem> + + <listitem> +<!-- +Author: Tom Lane <tgl@sss.pgh.pa.us> +2020-04-07 [26a944cf2] Adjust bytea get_bit/set_bit to use int8 not int4 for bi +--> + + <para> + Allow <link + linkend="functions-binarystring-other"><function>get_bit()</function></link> + and <function>set_bit()</function> to set bits beyond the first + 256MB of a <type>bytea</type> value (Movead Li) + </para> + </listitem> + + <listitem> +<!-- +Author: Tom Lane <tgl@sss.pgh.pa.us> +2019-08-01 [4886da832] Mark advisory-lock functions as parallel restricted, not +--> + + <para> + Allow <link linkend="functions-advisory-locks">advisory-lock + functions</link> to be used in some parallel operations (Tom Lane) + </para> + </listitem> + + <listitem> +<!-- +Author: Alvaro Herrera <alvherre@alvh.no-ip.org> +2020-04-20 [5fc703946] Add ALTER .. NO DEPENDS ON +--> + + <para> + Add the ability to remove an object's dependency on an extension + (Álvaro Herrera) + </para> + + <para> + The object can be a function, materialized view, index, or trigger. + The syntax is <command>ALTER .. NO DEPENDS ON</command>. + </para> + </listitem> + + </itemizedlist> + + </sect3> + + <sect3> + <title><link linkend="plpgsql">PL/pgSQL</link></title> + + <itemizedlist> + + <listitem> +<!-- +Author: Tom Lane <tgl@sss.pgh.pa.us> +2020-03-26 [8f59f6b9c] Improve performance of "simple expressions" in PL/pgSQL. +--> + + <para> + Improve performance of simple PL/pgSQL expressions (Tom Lane, + Amit Langote) + </para> + </listitem> + + <listitem> +<!-- +Author: Tom Lane <tgl@sss.pgh.pa.us> +2019-11-22 [73b06cf89] Avoid taking a new snapshot for an immutable simple expr +--> + + <para> + Improve performance of PL/pgSQL functions that use immutable + expressions (Konstantin Knizhnik) + </para> + </listitem> + + </itemizedlist> + + </sect3> + + <sect3> + <title>Client Interfaces</title> + + <itemizedlist> + + <listitem> +<!-- +Author: Jeff Davis <jdavis@postgresql.org> +2019-09-23 [d6e612f83] Add libpq parameter 'channel_binding'. +--> + + <para> + Allow libpq clients to require channel binding for encrypted + connections (Jeff Davis) + </para> + + <para> + Using the libpq connection parameter <link + linkend="libpq-connect-channel-binding"><literal>channel_binding</literal></link> + forces the other end of the <acronym>TLS</acronym> connection to prove + it knows the user's password. This prevents man-in-the-middle attacks. + </para> + </listitem> + + <listitem> +<!-- +Author: Michael Paquier <michael@paquier.xyz> +2020-01-28 [ff8ca5fad] Add connection parameters to control SSL protocol min/ma +Author: Michael Paquier <michael@paquier.xyz> +2020-04-30 [401aad670] Rename connection parameters to control min/max SSL prot +Author: Tom Lane <tgl@sss.pgh.pa.us> +2020-06-27 [16412c784] Change libpq's default ssl_min_protocol_version to TLSv1 +--> + + <para> + Add libpq connection parameters to control the minimum and maximum + <acronym>TLS</acronym> version allowed for an encrypted connection + (Daniel Gustafsson) + </para> + + <para> + The settings are <xref + linkend="libpq-connect-ssl-min-protocol-version"/> and <xref + linkend="libpq-connect-ssl-max-protocol-version"/>. + By default, the minimum <acronym>TLS</acronym> version is 1.2 + (this represents a behavioral change from previous releases). + </para> + </listitem> + + <listitem> +<!-- +Author: Andrew Dunstan <andrew@dunslane.net> +2019-11-30 [4dc635521] libq support for sslpassword connection param, DER form +--> + + <para> + Allow use of passwords to unlock client certificates (Craig + Ringer, Andrew Dunstan) + </para> + + <para> + This is enabled by libpq's <xref linkend="libpq-connect-sslpassword"/> + connection parameter. + </para> + </listitem> + + <listitem> +<!-- +Author: Andrew Dunstan <andrew@dunslane.net> +2019-11-30 [4dc635521] libq support for sslpassword connection param, DER form +--> + + <para> + Allow libpq to use <acronym>DER</acronym>-encoded client + certificates (Craig Ringer, Andrew Dunstan) + </para> + </listitem> + + <listitem> +<!-- +Author: Tom Lane <tgl@sss.pgh.pa.us> +2020-08-03 [44cd434ec] Fix behavior of ecpg's "EXEC SQL elif name". +--> + + <para> + Fix <application>ecpg</application>'s <literal>EXEC SQL + elif</literal> directive to work correctly (Tom Lane) + </para> + + <para> + Previously it behaved the same as <literal>endif</literal> followed + by <literal>ifdef</literal>, so that a successful previous branch + of the same <literal>if</literal> construct did not prevent + expansion of the <literal>elif</literal> branch or following + branches. + </para> + </listitem> + + </itemizedlist> + + </sect3> + + <sect3> + <title>Client Applications</title> + + <sect4> + <title><xref linkend="app-psql"/></title> + + <itemizedlist> + + <listitem> +<!-- +Author: Michael Paquier <michael@paquier.xyz> +2020-02-12 [dcdbb5a5d] Add %x to default PROMPT1 and PROMPT2 in psql +--> + + <para> + Add transaction status (<literal>%x</literal>) + to <application>psql</application>'s default + <link linkend="app-psql-prompting">prompts</link> (Vik Fearing) + </para> + </listitem> + + <listitem> +<!-- +Author: Thomas Munro <tmunro@postgresql.org> +2019-11-19 [7f338369c] Allow invisible PROMPT2 in psql. +--> + + <para> + Allow the secondary <application>psql</application> prompt to be + blank but the same width as the primary prompt (Thomas Munro) + </para> + + <para> + This is accomplished by setting <literal>PROMPT2</literal> + to <literal>%w</literal>. + </para> + </listitem> + + <listitem> +<!-- +Author: Tom Lane <tgl@sss.pgh.pa.us> +2020-04-07 [b63c293bc] Allow psql's \g and \gx commands to transiently change \ +--> + + <para> + Allow <application>psql</application>'s + <link linkend="app-psql-meta-commands"><literal>\g</literal></link> + and <literal>\gx</literal> commands to + change <link linkend="app-psql-meta-commands">\pset</link> output + options for the duration of that single command (Tom Lane) + </para> + + <para> + This feature allows syntax like <literal>\g (expand=on)</literal>, + which is equivalent to <literal>\gx</literal>. + </para> + </listitem> + + <listitem> +<!-- +Author: Alexander Korotkov <akorotkov@postgresql.org> +2020-03-08 [b0b5e20cd] Show opclass and opfamily related information in psql +--> + + <para> + Add <application>psql</application> commands to display operator + classes and operator families (Sergey Cherkashin, Nikita Glukhov, + Alexander Korotkov) + </para> + + <para> + The new commands are <link + linkend="app-psql-meta-commands"><literal>\dAc</literal></link>, + <literal>\dAf</literal>, <literal>\dAo</literal>, + and <literal>\dAp</literal>. + </para> + </listitem> + + <listitem> +<!-- +Author: Tom Lane <tgl@sss.pgh.pa.us> +2019-07-03 [9a2ea6183] Show table persistence in psql's \dt+ and related comman +--> + + <para> + Show table persistence in <application>psql</application>'s <link + linkend="app-psql-meta-commands"><literal>\dt+</literal></link> + and related commands (David Fetter) + </para> + + <para> + In verbose mode, the table/index/view shows if the object is permanent, + temporary, or unlogged. + </para> + </listitem> + + <listitem> +<!-- +Author: Tom Lane <tgl@sss.pgh.pa.us> +2019-07-23 [eb5472da9] Improve psql's \d output for TOAST tables. +--> + + <para> + Improve output of <application>psql</application>'s <link + linkend="app-psql-meta-commands"><literal>\d</literal></link> + for <acronym>TOAST</acronym> tables (Justin Pryzby) + </para> + </listitem> + + <listitem> +<!-- +Author: Tom Lane <tgl@sss.pgh.pa.us> +2019-11-22 [d1c866e57] Make psql redisplay the query buffer after \e. +--> + + <para> + Fix redisplay after <application>psql</application>'s <link + linkend="app-psql-meta-commands"><literal>\e</literal></link> + command (Tom Lane) + </para> + + <para> + When exiting the editor, if the query doesn't end with a semicolon + or <literal>\g</literal>, the query buffer contents will now be + displayed. + </para> + </listitem> + + <listitem> +<!-- +Author: Tom Lane <tgl@sss.pgh.pa.us> +2019-07-05 [02e95a504] Add \warn command to psql. +--> + + <para> + Add <link + linkend="app-psql-meta-commands"><literal>\warn</literal></link> + command to <application>psql</application> (David Fetter) + </para> + + <para> + This is like <literal>\echo</literal> except that the text is sent + to stderr instead of stdout. + </para> + </listitem> + + <listitem> +<!-- +Author: Peter Eisentraut <peter@eisentraut.org> +2020-02-28 [1933ae629] Add PostgreSQL home page to - -help output +--> + + <para> + Add the <productname>PostgreSQL</productname> home page to command-line + <option>--help</option> output (Peter Eisentraut) + </para> + </listitem> + + </itemizedlist> + + </sect4> + + <sect4> + <title><link linkend="pgbench"><application>pgbench</application></link></title> + + <itemizedlist> + + <listitem> +<!-- +Author: Amit Kapila <akapila@postgresql.org> +2019-10-03 [b1c1aa531] pgbench: add - -partitions and - -partition-method options +--> + + <para> + Allow pgbench to partition its <quote>accounts</quote> table + (Fabien Coelho) + </para> + + <para> + This allows performance testing of partitioning. + </para> + </listitem> + + <listitem> +<!-- +Author: Michael Paquier <michael@paquier.xyz> +2020-04-03 [9d8ef9880] Add support for \aset in pgbench +--> + + <para> + Add pgbench command <literal>\aset</literal>, which behaves + like <literal>\gset</literal>, but for multiple queries (Fabien + Coelho) + </para> + </listitem> + + <listitem> +<!-- +Author: Fujii Masao <fujii@postgresql.org> +2019-11-06 [a386942bd] Add "G" (server-side data generation) as an initializati +--> + + <para> + Allow pgbench to generate its initial data server-side, rather + than client-side (Fabien Coelho) + </para> + </listitem> + + <listitem> +<!-- +Author: Thomas Munro <tmunro@postgresql.org> +2019-07-16 [5823677ac] Provide pgbench - -show-script to dump built-in scripts. +--> + + <para> + Allow pgbench to show script contents using option + <option>--show-script</option> (Fabien Coelho) + </para> + </listitem> + + </itemizedlist> + + </sect4> + + </sect3> + + <sect3> + <title>Server Applications</title> + + <itemizedlist> + + <listitem> +<!-- +Author: Robert Haas <rhaas@postgresql.org> +2020-04-03 [0d8c9c121] Generate backup manifests for base backups, and validate +Author: Robert Haas <rhaas@postgresql.org> +2020-04-12 [dbc60c559] Rename pg_validatebackup to pg_verifybackup. +--> + + <para> + Generate backup manifests for base backups, and verify them (Robert + Haas) + </para> + + <para> + A new tool <link + linkend="app-pgverifybackup"><application>pg_verifybackup</application></link> + can verify backups. + </para> + </listitem> + + <listitem> +<!-- +Author: Author: Fujii Masao <fujii@postgresql.org> +2020-03-19 [fab13dc50] Make pg_basebackup ask the server to estimate the total +--> + + <para> + Have <link + linkend="app-pgbasebackup"><application>pg_basebackup</application></link> + estimate the total backup size by default (Fujii Masao) + </para> + + <para> + This computation allows <link + linkend="monitoring-stats-dynamic-views-table"><structname>pg_stat_progress_basebackup</structname></link> + to show progress. If that is not needed, it can be disabled by + using the <option>--no-estimate-size</option> option. Previously, + this computation happened only if the <option>--progress</option> + option was used. + </para> + </listitem> + + <listitem> +<!-- +Author: Alvaro Herrera <alvherre@alvh.no-ip.org> +2019-09-30 [927474ce1] pg_rewind: Allow writing recovery configuration +--> + + <para> + Add an option to <link + linkend="app-pgrewind"><application>pg_rewind</application></link> + to configure standbys (Paul Guo, Jimmy Yih, Ashwin Agrawal) + </para> + + <para> + This matches <link + linkend="app-pgbasebackup"><application>pg_basebackup</application></link>'s + <option>--write-recovery-conf</option> option. + </para> + </listitem> + + <listitem> +<!-- +Author: Michael Paquier <michael@paquier.xyz> +2020-04-01 [a7e8ece41] Add -c/- -restore-target-wal to pg_rewind +--> + + <para> + Allow <application>pg_rewind</application> to use the target + cluster's <xref linkend="guc-restore-command"/> to retrieve needed + <acronym>WAL</acronym> (Alexey Kondratov) + </para> + + <para> + This is enabled using the + <option>-c</option>/<option>--restore-target-wal</option> option. + </para> + </listitem> + + <listitem> +<!-- +Author: Alvaro Herrera <alvherre@alvh.no-ip.org> +2019-09-27 [5adafaf17] Have pg_rewind run crash recovery before rewinding +--> + + <para> + Have <application>pg_rewind</application> automatically run crash + recovery before rewinding (Paul Guo, Jimmy Yih, Ashwin Agrawal) + </para> + + <para> + This can be disabled by using <option>--no-ensure-shutdown</option>. + </para> + </listitem> + + <listitem> +<!-- +Author: Fujii Masao <fujii@postgresql.org> +2019-11-13 [7b8a899bd] Make pg_waldump report more detail information about PRE +--> + + <para> + Increase the <link linkend="sql-prepare-transaction"><command>PREPARE + TRANSACTION</command></link>-related information reported by + <application>pg_waldump</application> (Fujii Masao) + </para> + </listitem> + + <listitem> +<!-- +Author: Robert Haas <rhaas@postgresql.org> +2020-04-02 [ac44367ef] pg_waldump: Add a - -quiet option. +--> + + <para> + Add <link + linkend="pgwaldump"><application>pg_waldump</application></link> + option <option>--quiet</option> to suppress non-error output (Andres + Freund, Robert Haas) + </para> + </listitem> + + <listitem> +<!-- +Author: Alvaro Herrera <alvherre@alvh.no-ip.org> +2020-03-25 [2f9eb3132] pg_dump: Allow dumping data of specific foreign servers +--> + + <para> + Add <link + linkend="app-pgdump"><application>pg_dump</application></link> + option <option>--include-foreign-data</option> to dump data from + foreign servers (Luis Carril) + </para> + </listitem> + + <listitem> +<!-- +Author: Amit Kapila <akapila@postgresql.org> +2020-01-29 [47bc9ced0] Add - -parallel option to vacuumdb command. +--> + + <para> + Allow vacuum commands run by <link + linkend="app-vacuumdb">vacuumdb</link> to operate in parallel mode + (Masahiko Sawada) + </para> + + <para> + This is enabled with the new <option>--parallel</option> option. + </para> + </listitem> + + <listitem> +<!-- +Author: Michael Paquier <michael@paquier.xyz> +2019-07-27 [5ab892c39] Add support for - -jobs in reindexdb +--> + + <para> + Allow <link linkend="app-reindexdb">reindexdb</link> to operate in + parallel (Julien Rouhaud) + </para> + + <para> + Parallel mode is enabled with the new <option>--jobs</option> option. + </para> + </listitem> + + <listitem> +<!-- +Author: Amit Kapila <akapila@postgresql.org> +2019-11-20 [80e05a088] Add the support for '-f' option in dropdb utility. +--> + + <para> + Allow <link linkend="app-dropdb">dropdb</link> to disconnect + sessions using the target database, allowing the drop to succeed + (Pavel Stehule) + </para> + + <para> + This is enabled with the <option>-f</option> option. + </para> + </listitem> + + <listitem> +<!-- +Author: Author: Michael Paquier <michael@paquier.xyz> +2019-10-23 [4fa5edcd1] Remove last traces of - -adduser/- -no-adduser in createus +--> + + <para> + Remove <option>--adduser</option> and <option>--no-adduser</option> + from <link linkend="app-createuser">createuser</link> (Alexander + Lakhin) + </para> + + <para> + The long-supported preferred options for this are called + <option>--superuser</option> and <option>--no-superuser</option>. + </para> + </listitem> + + <listitem> +<!-- +Author: Peter Eisentraut <peter@eisentraut.org> +2019-07-27 [959f6d6a1] pg_upgrade: Default new bindir to pg_upgrade location +--> + + <para> + Use the directory of the <link + linkend="pgupgrade"><application>pg_upgrade</application></link> + program as the default <option>--new-bindir</option> setting when + running <application>pg_upgrade</application> (Daniel Gustafsson) + </para> + </listitem> + + </itemizedlist> + + </sect3> + + <sect3> + <title>Documentation</title> + + <itemizedlist> + + <listitem> +<!-- +Author: Alvaro Herrera <alvherre@alvh.no-ip.org> +2020-04-03 [347d2b07f] Add a glossary to the documentation +--> + + <para> + Add a <link linkend="glossary">glossary</link> to the documentation + (Corey Huinker, Jürgen Purtz, Roger Harkavy, Álvaro + Herrera) + </para> + </listitem> + + <listitem> +<!-- +Author: Tom Lane <tgl@sss.pgh.pa.us> +2020-04-12 [e894c6183] Doc: introduce new layout for tables of functions and op +--> + + <para> + Reformat tables containing <link linkend="functions">function + and operator information</link> for better clarity (Tom Lane) + </para> + </listitem> + + <listitem> +<!-- +Author: Peter Eisentraut <peter@eisentraut.org> +2019-08-13 [416c75cf3] Update to DocBook 4.5 +--> + + <para> + Upgrade to use <link linkend="docguide-docbook">DocBook 4.5</link> + (Peter Eisentraut) + </para> + </listitem> + + </itemizedlist> + + </sect3> + + <sect3> + <title>Source Code</title> + + <itemizedlist> + + <listitem> +<!-- +Author: Michael Paquier <michael@paquier.xyz> +2019-07-02 [2b1394fc2] Add support for Visual Studio 2019 in build scripts +--> + + <para> + Add support for building on Visual Studio 2019 (Haribabu Kommi) + </para> + </listitem> + + <listitem> +<!-- +Author: Peter Eisentraut <peter@eisentraut.org> +2019-12-19 [e975c1a60] Add support for MSYS2 +--> + + <para> + Add build support for MSYS2 (Peter Eisentraut) + </para> + </listitem> + + <listitem> +<!-- +Author: Noah Misch <noah@leadboat.com> +2019-10-18 [30ee5d17c] For all ppc compilers, implement compare_exchange and fe +--> + + <para> + Add compare_exchange and fetch_add assembly language code for Power + PC compilers (Noah Misch) + </para> + </listitem> + + <listitem> +<!-- +Author: Peter Eisentraut <peter@eisentraut.org> +2019-07-04 [7b925e127] Sync our Snowball stemmer dictionaries with current upst +--> + + <para> + Update <link linkend="textsearch-snowball-dictionary">Snowball + stemmer</link> dictionaries used by full text search (Panagiotis + Mavrogiorgos) + </para> + + <para> + This adds Greek stemming and improves Danish and French stemming. + </para> + </listitem> + + <listitem> +<!-- +Author: Michael Paquier <michael@paquier.xyz> +2020-02-19 [e2e02191e] Clean up some code, comments and docs referring to Windo +--> + + <para> + Remove support for Windows 2000 (Michael Paquier) + </para> + </listitem> + + <listitem> +<!-- +Author: Peter Eisentraut <peter@eisentraut.org> +2019-07-01 [c72f9b950] Remove support for non-ELF BSD systems +--> + + <para> + Remove support for non-<acronym>ELF</acronym> <acronym>BSD</acronym> + systems (Peter Eisentraut) + </para> + </listitem> + + <listitem> +<!-- +Author: Peter Eisentraut <peter@eisentraut.org> +2020-01-08 [37f21ed13] Remove support for Python older than 2.6 +--> + + <para> + Remove <link linkend="plpython">support</link> for Python versions + 2.5.X and earlier (Peter Eisentraut) + </para> + </listitem> + + <listitem> +<!-- +Author: Michael Paquier <michael@paquier.xyz> +2020-01-06 [7b283d0e1] Remove support for OpenSSL 0.9.8 and 1.0.0 +--> + + <para> + Remove <link linkend="install-short">support</link> for OpenSSL 0.9.8 + and 1.0.0 (Michael Paquier) + </para> + </listitem> + + <listitem> +<!-- +Author: Peter Eisentraut <peter@eisentraut.org> +2019-11-27 [4513d8b07] Move configure - -disable-float8-byval to pg_config_manua +Author: Peter Eisentraut <peter@eisentraut.org> +2019-11-21 [2e4db241b] Remove configure - -disable-float4-byval +--> + + <para> + Remove <link linkend="install-short">configure</link> options + <option>--disable-float8-byval</option> + and <option>--disable-float4-byval</option> (Peter Eisentraut) + </para> + + <para> + These were needed for compatibility with some version-zero C + functions, but those are no longer supported. + </para> + </listitem> + + <listitem> +<!-- +Author: Fujii Masao <fujii@postgresql.org> +2020-03-30 [6aba63ef3] Allow the planner-related functions and hook to accept t +--> + + <para> + Pass the query string to planner hook functions (Pascal Legrand, + Julien Rouhaud) + </para> + </listitem> + + <listitem> +<!-- +Author: Joe Conway <mail@joeconway.com> +2019-11-23 [f7a2002e8] Add object TRUNCATE hook +--> + + <para> + Add <link linkend="sql-truncate"><command>TRUNCATE</command></link> + command hook (Yuli Khodorkovskiy) + </para> + </listitem> + + <listitem> +<!-- +Author: Andrew Dunstan <andrew@dunslane.net> +2020-03-25 [896fcdb23] Provide a TLS init hook +--> + + <para> + Add <acronym>TLS</acronym> init hook (Andrew Dunstan) + </para> + </listitem> + + <listitem> +<!-- +Author: Peter Eisentraut <peter@eisentraut.org> +2020-01-31 [a9cff89f7] Allow building without default socket directory +--> + + <para> + Allow building with no predefined Unix-domain socket directory + (Peter Eisentraut) + </para> + </listitem> + + <listitem> +<!-- +Author: Tom Lane <tgl@sss.pgh.pa.us> +2019-09-05 [7de19fbc0] Use data directory inode number, not port, to select Sys +--> + + <para> + Reduce the probability of SysV resource key collision on Unix platforms + (Tom Lane) + </para> + </listitem> + + <listitem> +<!-- +Author: Peter Eisentraut <peter@eisentraut.org> +2019-09-05 [74a308cf5] Use explicit_bzero +--> + + <para> + Use operating system functions to reliably erase memory that contains + sensitive information (Peter Eisentraut) + </para> + + <para> + For example, this is used for clearing passwords stored in memory. + </para> + </listitem> + + <listitem> +<!-- +Author: Author: Tom Lane <tgl@sss.pgh.pa.us> +2019-08-19 [55ea10918] Add "headerscheck" script to test header-file compilabil +--> + + <para> + Add <filename>headerscheck</filename> script to test C header-file + compatibility (Tom Lane) + </para> + </listitem> + + <listitem> +<!-- +Author: Tom Lane <tgl@sss.pgh.pa.us> +2019-07-15 [1cff1b95a] Represent Lists as expansible arrays, not chains of cons +--> + + <para> + Implement internal lists as arrays, rather than a chain of cells + (Tom Lane) + </para> + + <para> + This improves performance for queries that access many objects. + </para> + </listitem> + + <listitem> +<!-- +Author: Tom Lane <tgl@sss.pgh.pa.us> +2020-07-24 [92fe6895d] Fix assorted bugs by changing TS_execute's callback API +2020-07-24 [70eca6a9a] Replace TS_execute's TS_EXEC_CALC_NOT flag with TS_EXEC_ +--> + + <para> + Change the API for <function>TS_execute()</function> (Tom Lane, + Pavel Borisov) + </para> + + <para> + <function>TS_execute</function> callbacks must now provide ternary + (yes/no/maybe) logic. Calculating NOT queries accurately is now + the default. + </para> + </listitem> + + </itemizedlist> + + </sect3> + + <sect3> + <title>Additional Modules</title> + + <itemizedlist> + + <listitem> +<!-- +Author: Tom Lane <tgl@sss.pgh.pa.us> +2020-01-29 [50fc694e4] Invent "trusted" extensions, and remove the pg_pltemplat +--> + + <para> + Allow <link linkend="sql-createextension">extensions</link> to be + specified as trusted (Tom Lane) + </para> + + <para> + Such extensions can be installed in a database by users with + database-level <literal>CREATE</literal> privileges, even if they + are not superusers. This change also removes + the <structname>pg_pltemplate</structname> system catalog. + </para> + </listitem> + + <listitem> +<!-- +Author: Andrew Dunstan <andrew@dunslane.net> +2019-12-20 [6136e94dc] Superuser can permit passwordless connections on postgre +--> + + <para> + Allow non-superusers to connect to <xref linkend="postgres-fdw"/> + foreign servers without using a password (Craig Ringer) + </para> + + <para> + Specifically, allow a superuser to set + <literal>password_required</literal> to false for + a <link linkend="sql-alterusermapping">user mapping</link>. Care + must still be taken to prevent non-superusers from using superuser + credentials to connect to the foreign server. + </para> + </listitem> + + <listitem> +<!-- +Author: Andrew Dunstan <andrew@dunslane.net> +2020-01-09 [f5fd995a1] Allow 'sslkey' and 'sslcert' in postgres_fdw user mappin +--> + + <para> + Allow <application>postgres_fdw</application> to use certificate + authentication (Craig Ringer) + </para> + + <para> + Different users can use different certificates. + </para> + </listitem> + + <listitem> +<!-- +Author: Joe Conway <mail@joeconway.com> +2019-11-23 [4f66c93f6] Update sepgsql to add mandatory access control for TRUNC +--> + + <para> + Allow <xref linkend="sepgsql"/> to control access to the + <command>TRUNCATE</command> command (Yuli Khodorkovskiy) + </para> + </listitem> + + <listitem> +<!-- +Author: Tom Lane <tgl@sss.pgh.pa.us> +2020-03-06 [36058a3c5] Create contrib/bool_plperl to provide a bool transform f +--> + + <para> + Add extension <link + linkend="plperl"><application>bool_plperl</application></link> + which transforms <acronym>SQL</acronym> booleans to/from PL/Perl + booleans (Ivan Panchenko) + </para> + </listitem> + + <listitem> +<!-- +Author: Andrew Gierth <rhodiumtoad@postgresql.org> +2019-07-14 [6e74c64bc] Teach pg_stat_statements not to ignore FOR UPDATE clause +--> + + <para> + Have <xref linkend="pgstatstatements"/> treat <command>SELECT + ... FOR UPDATE</command> commands as distinct from those + without <command>FOR UPDATE</command> (Andrew Gierth, Vik Fearing) + </para> + </listitem> + + <listitem> +<!-- +Author: Fujii Masao <fujii@postgresql.org> +2020-04-02 [17e032822] Allow pg_stat_statements to track planning statistics. +2020-07-03 [8d459762b] Change default of pg_stat_statements.track_planning to o +--> + + <para> + Allow <application>pg_stat_statements</application> to optionally + track the planning time of statements (Julien Rouhaud, Pascal Legrand, + Thomas Munro, Fujii Masao) + </para> + + <para> + Previously only execution time was tracked. + </para> + </listitem> + + <listitem> +<!-- +Author: Tom Lane <tgl@sss.pgh.pa.us> +2020-03-31 [70dc4c509] Fix lquery's NOT handling, and add ability to quantify n +Author: Tom Lane <tgl@sss.pgh.pa.us> +2020-04-01 [17ca06799] Clean up parsing of ltree and lquery some more. +--> + + <para> + Overhaul <xref linkend="ltree"/>'s lquery syntax to treat + <literal>NOT</literal> (!) more logically (Filip Rembialkowski, + Tom Lane, Nikita Glukhov) + </para> + + <para> + Also allow non-* queries to use a numeric range ({}) of matches. + </para> + </listitem> + + <listitem> +<!-- +Author: Tom Lane <tgl@sss.pgh.pa.us> +2020-04-01 [949a9f043] Add support for binary I/O of ltree, lquery, and ltxtque +--> + + <para> + Add support for binary I/O of <xref linkend="ltree"/>, lquery, and + ltxtquery types (Nino Floris) + </para> + </listitem> + + <listitem> +<!-- +Author: Tom Lane <tgl@sss.pgh.pa.us> +2020-03-08 [806eb92c0] Add an "absval" parameter to allow contrib/dict_int to i +--> + + <para> + Add an option to <xref linkend="dict-int"/> to ignore the sign + of integers (Jeff Janes) + </para> + </listitem> + + <listitem> +<!-- +Author: Fujii Masao <fujii@postgresql.org> +2020-01-24 [d694e0bb7] Add pg_file_sync() to adminpack extension. +--> + + <para> + Add <xref linkend="adminpack"/> function + <function>pg_file_sync()</function> to allow fsync'ing a file + (Fujii Masao) + </para> + </listitem> + + <listitem> +<!-- +Author: Michael Paquier <michael@paquier.xyz> +2019-09-12 [ddbd5d873] Add to pageinspect function to make t_infomask/t_infomas +Author: Author: Michael Paquier <michael@paquier.xyz> +2019-09-19 [58b4cb30a] Redesign pageinspect function printing infomask bits +--> + + <para> + Add <xref linkend="pageinspect"/> functions to output + <structfield>t_infomask</structfield>/<structfield>t_infomask2</structfield> + values in human-readable format (Craig Ringer, Sawada Masahiko, + Michael Paquier) + </para> + </listitem> + + <listitem> +<!-- +Author: Peter Geoghegan <pg@bowt.ie> +2020-02-29 [93ee38ead] Teach pageinspect about nbtree deduplication. +--> + + <para> + Add B-tree index de-duplication processing columns to pageinspect output + (Peter Geoghegan) + </para> + </listitem> + + </itemizedlist> + + </sect3> + + </sect2> + + <sect2 id="release-13-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>Adam Lee</member> + <member>Adam Scott</member> + <member>Adé Heyward</member> + <member>Adrien Nayrat</member> + <member>Ahsan Hadi</member> + <member>Alastair McKinley</member> + <member>Aleksandr Parfenov</member> + <member>Alex Aktsipetrov</member> + <member>Alex Macy</member> + <member>Alex Shulgin</member> + <member>Alexander Korotkov</member> + <member>Alexander Kukushkin</member> + <member>Alexander Kuzmenkov</member> + <member>Alexander Lakhin</member> + <member>Alexey Bashtanov</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 Joseph Krogh</member> + <member>Andreas Karlsson</member> + <member>Andreas Kunert</member> + <member>Andreas Seltenreich</member> + <member>Andrei Zubkov</member> + <member>Andres Freund</member> + <member>Andrew Bille</member> + <member>Andrew Dunstan</member> + <member>Andrew Gierth</member> + <member>Andrey Borodin</member> + <member>Andrey Klychkov</member> + <member>Andrey Lepikhov</member> + <member>Anna Akenteva</member> + <member>Anna Endo</member> + <member>Anthony Nowocien</member> + <member>Anton Vlasov</member> + <member>Antonin Houska</member> + <member>Ants Aasma</member> + <member>Arne Roland</member> + <member>Arnold Müller</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>Augustinas Jokubauskas</member> + <member>Austin Drenski</member> + <member>Basil Bourque</member> + <member>Beena Emerson</member> + <member>Ben Cornett</member> + <member>Benjie Gillam</member> + <member>Benoît Lobréau</member> + <member>Bernd Helmle</member> + <member>Bharath Rupireddy</member> + <member>Bhargav Kamineni</member> + <member>Binguo Bao</member> + <member>Brad DeJong</member> + <member>Brandur Leach</member> + <member>Brent Bates</member> + <member>Brian Williams</member> + <member>Bruce Momjian</member> + <member>Cameron Ezell</member> + <member>Cary Huang</member> + <member>Chapman Flack</member> + <member>Charles Offenbacher</member> + <member>Chen Huajun</member> + <member>Chenyang Lu</member> + <member>Chris Bandy</member> + <member>Chris Travers</member> + <member>Christoph Berg</member> + <member>Christophe Courtois</member> + <member>Corey Huinker</member> + <member>Craig Ringer</member> + <member>Cuiping Lin</member> + <member>Dagfinn Ilmari Mannsåker</member> + <member>Daniel Fiori</member> + <member>Daniel Gustafsson</member> + <member>Daniel Vérité</member> + <member>Daniel Westermann</member> + <member>Darafei Praliaskouski</member> + <member>Daryl Waycott</member> + <member>Dave Cramer</member> + <member>David Christensen</member> + <member>David Fetter</member> + <member>David G. Johnston</member> + <member>David Gilman</member> + <member>David Harper</member> + <member>David Rowley</member> + <member>David Steele</member> + <member>David Zhang</member> + <member>Davinder Singh</member> + <member>Dean Rasheed</member> + <member>Denis Stuchalin</member> + <member>Dent John</member> + <member>Didier Gautheron</member> + <member>Dilip Kumar</member> + <member>Dmitry Belyavsky</member> + <member>Dmitry Dolgov</member> + <member>Dmitry Ivanov</member> + <member>Dmitry Telpt</member> + <member>Dmitry Uspenskiy</member> + <member>Dominik Czarnota</member> + <member>Dongming Liu</member> + <member>Ed Morley</member> + <member>Edmund Horner</member> + <member>Emre Hasegeli</member> + <member>Eric Gillum</member> + <member>Erik Rijkers</member> + <member>Erwin Brandstetter</member> + <member>Ethan Waldo</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>Felix Lechner</member> + <member>Filip Janus</member> + <member>Filip Rembialkowski</member> + <member>Frank Gagnepain</member> + <member>Georgios Kokolatos</member> + <member>Gilles Darold</member> + <member>Greg Nancarrow</member> + <member>Grigory Smolkin</member> + <member>Guancheng Luo</member> + <member>Guillaume Lelarge</member> + <member>Hadi Moshayedi</member> + <member>Haiying Tang</member> + <member>Hamid Akhtar</member> + <member>Hans Buschmann</member> + <member>Hao Wu</member> + <member>Haribabu Kommi</member> + <member>Haruka Takatsuka</member> + <member>Heath Lord</member> + <member>Heikki Linnakangas</member> + <member>Himanshu Upadhyaya</member> + <member>Hironobu Suzuki</member> + <member>Hugh McMaster</member> + <member>Hugh Ranalli</member> + <member>Hugh Wang</member> + <member>Ian Barwick</member> + <member>Ibrar Ahmed</member> + <member>Ildar Musin</member> + <member>Insung Moon</member> + <member>Ireneusz Pluta</member> + <member>Isaac Morland</member> + <member>Ivan Kartyshov</member> + <member>Ivan Panchenko</member> + <member>Ivan Sergio Borgonovo</member> + <member>Jaime Casanova</member> + <member>James Coleman</member> + <member>James Gray</member> + <member>James Hunter</member> + <member>James Inform</member> + <member>James Lucas</member> + <member>Jan Mussler</member> + <member>Jaroslav Sivy</member> + <member>Jeevan Chalke</member> + <member>Jeevan Ladhe</member> + <member>Jeff Davis</member> + <member>Jeff Janes</member> + <member>Jehan-Guillaume de Rorthais</member> + <member>Jeremy Evans</member> + <member>Jeremy Schneider</member> + <member>Jeremy Smith</member> + <member>Jerry Sievers</member> + <member>Jesper Pedersen</member> + <member>Jesse Kinkead</member> + <member>Jesse Zhang</member> + <member>Jian Zhang</member> + <member>Jie Zhang</member> + <member>Jim Nasby</member> + <member>Jimmy Yih</member> + <member>Jobin Augustine</member> + <member>Joe Conway</member> + <member>John Hsu</member> + <member>John Naylor</member> + <member>Jon Jensen</member> + <member>Jonathan Katz</member> + <member>Jorge Gustavo Rocha</member> + <member>Josef Šimánek</member> + <member>Joseph Nahmias</member> + <member>Juan José Santamaría Flecha</member> + <member>Julian Backes</member> + <member>Julien Rouhaud</member> + <member>Jürgen Purtz</member> + <member>Justin King</member> + <member>Justin Pryzby</member> + <member>Karl O. Pinc</member> + <member>Keisuke Kuroda</member> + <member>Keith Fiske</member> + <member>Kelly Min</member> + <member>Ken Tanzer</member> + <member>Kirill Bychik</member> + <member>Kirk Jamison</member> + <member>Konstantin Knizhnik</member> + <member>Kuntal Ghosh</member> + <member>Kyle Kingsbury</member> + <member>Kyotaro Horiguchi</member> + <member>Lars Kanis</member> + <member>Laurenz Albe</member> + <member>Leif Gunnar Erlandsen</member> + <member>Li Japin</member> + <member>Liudmila Mantrova</member> + <member>Lucas Viecelli</member> + <member>Luis M. Carril</member> + <member>Lukáš Sobotka</member> + <member>Maciek Sakrejda</member> + <member>Magnus Hagander</member> + <member>Mahadevan Ramachandran</member> + <member>Mahendra Singh Thalor</member> + <member>Manuel Rigger</member> + <member>Marc Munro</member> + <member>Marcos David</member> + <member>Marina Polyakova</member> + <member>Mark Dilger</member> + <member>Mark Wong</member> + <member>Marko Tiikkaja</member> + <member>Markus Winand</member> + <member>Marti Raudsepp</member> + <member>Martijn van Oosterhout</member> + <member>Masahiko Sawada</member> + <member>Masahiro Ikeda</member> + <member>Masao Fujii</member> + <member>Mateusz Guzik</member> + <member>Matt Jibson</member> + <member>Matteo Beccati</member> + <member>Maxence Ahlouche</member> + <member>Melanie Plageman</member> + <member>Michael Banck</member> + <member>Michael Luo</member> + <member>Michael Meskes</member> + <member>Michael Paquier</member> + <member>Michail Nikolaev</member> + <member>Mike Palmiotto</member> + <member>Mithun Cy</member> + <member>Movead Li</member> + <member>Nathan Bossart</member> + <member>Nazli Ugur Koyluoglu</member> + <member>Neha Sharma</member> + <member>Nicola Contu</member> + <member>Nicolás Alvarez</member> + <member>Nikhil Sontakke</member> + <member>Nikita Glukhov</member> + <member>Nikolay Shaplov</member> + <member>Nino Floris</member> + <member>Noah Misch</member> + <member>Noriyoshi Shinoda</member> + <member>Oleg Bartunov</member> + <member>Oleg Samoilov</member> + <member>Oleksii Kliukin</member> + <member>Ondrej Jirman</member> + <member>Panagiotis Mavrogiorgos</member> + <member>Pascal Legrand</member> + <member>Patrick McHardy</member> + <member>Paul Guo</member> + <member>Paul Jungwirth</member> + <member>Paul Ramsey</member> + <member>Paul Sivash</member> + <member>Paul Spencer</member> + <member>Pavan Deolasee</member> + <member>Pavel Borisov</member> + <member>Pavel Luzanov</member> + <member>Pavel Stehule</member> + <member>Pavel Suderevsky</member> + <member>Peifeng Qiu</member> + <member>Pengzhou Tang</member> + <member>Peter Billen</member> + <member>Peter Eisentraut</member> + <member>Peter Geoghegan</member> + <member>Peter Smith</member> + <member>Petr Fedorov</member> + <member>Petr Jelínek</member> + <member>Phil Bayer</member> + <member>Philip Semanchuk</member> + <member>Philippe Beaudoin</member> + <member>Pierre Ducroquet</member> + <member>Pierre Giraud</member> + <member>Piotr Gabriel Kosinski</member> + <member>Piotr Wlodarczyk</member> + <member>Prabhat Sahu</member> + <member>Quan Zongliang</member> + <member>Quentin Rameau</member> + <member>Rafael Castro</member> + <member>Rafia Sabih</member> + <member>Raj Mohite</member> + <member>Rajkumar Raghuwanshi</member> + <member>Ramanarayana M</member> + <member>Ranier Vilela</member> + <member>Rares Salcudean</member> + <member>Raúl Marín Rodríguez</member> + <member>Raymond Martin</member> + <member>Reijo Suhonen</member> + <member>Richard Guo</member> + <member>Robert Ford</member> + <member>Robert Haas</member> + <member>Robert Kahlert</member> + <member>Robert Treat</member> + <member>Robin Abbi</member> + <member>Robins Tharakan</member> + <member>Roger Harkavy</member> + <member>Roman Peshkurov</member> + <member>Rui DeSousa</member> + <member>Rui Hai Jiang</member> + <member>Rushabh Lathia</member> + <member>Ryan Lambert</member> + <member>Ryohei Takahashi</member> + <member>Scott Ribe</member> + <member>Sean Farrell</member> + <member>Sehrope Sarkuni</member> + <member>Sergei Agalakov</member> + <member>Sergei Kornilov</member> + <member>Sergey Cherkashin</member> + <member>Shawn Debnath</member> + <member>Shawn Wang</member> + <member>Shay Rojansky</member> + <member>Shenhao Wang</member> + <member>Simon Riggs</member> + <member>Slawomir Chodnicki</member> + <member>Soumyadeep Chakraborty</member> + <member>Stéphane Lorek</member> + <member>Stephen Frost</member> + <member>Steve Rogerson</member> + <member>Steven Winfield</member> + <member>Surafel Temesgen</member> + <member>Suraj Kharage</member> + <member>Takanori Asaba</member> + <member>Takao Fujii</member> + <member>Takayuki Tsunakawa</member> + <member>Takuma Hoshiai</member> + <member>Tatsuhito Kasahara</member> + <member>Tatsuo Ishii</member> + <member>Tatsuro Yamada</member> + <member>Taylor Vesely</member> + <member>Teodor Sigaev</member> + <member>Tham Nguyen</member> + <member>Thibaut Madelaine</member> + <member>Thom Brown</member> + <member>Thomas Kellerer</member> + <member>Thomas Munro</member> + <member>Tiago Anastacio</member> + <member>Tim Clarke</member> + <member>Tim Möhlmann</member> + <member>Tom Ellis</member> + <member>Tom Gottfried</member> + <member>Tom Lane</member> + <member>Tomas Vondra</member> + <member>Tuomas Leikola</member> + <member>Tushar Ahuja</member> + <member>Victor Wagner</member> + <member>Victor Yegorov</member> + <member>Vignesh C</member> + <member>Vik Fearing</member> + <member>Vinay Banakar</member> + <member>Vladimir Leskov</member> + <member>Vladimir Sitnikov</member> + <member>Vyacheslav Makarov</member> + <member>Vyacheslav Shablistyy</member> + <member>Will Leinweber</member> + <member>William Crowell</member> + <member>Wyatt Alt</member> + <member>Yang Xiao</member> + <member>Yaroslav Schekin</member> + <member>Yi Huang</member> + <member>Yigong Hu</member> + <member>Yoann La Cancellera</member> + <member>Yoshikazu Imai</member> + <member>Yu Kimura</member> + <member>Yugo Nagata</member> + <member>Yuli Khodorkovskiy</member> + <member>Yusuke Egashira</member> + <member>Yuya Watari</member> + <member>Yuzuko Hosoya</member> + <member>ZhenHua Cai</member> + </simplelist> + </sect2> + + </sect1> |