diff options
Diffstat (limited to 'doc/src/sgml/release-16.sgml')
-rw-r--r-- | doc/src/sgml/release-16.sgml | 1319 |
1 files changed, 1305 insertions, 14 deletions
diff --git a/doc/src/sgml/release-16.sgml b/doc/src/sgml/release-16.sgml index fa6dae7..54860aa 100644 --- a/doc/src/sgml/release-16.sgml +++ b/doc/src/sgml/release-16.sgml @@ -1,6 +1,1292 @@ <!-- doc/src/sgml/release-16.sgml --> <!-- See header comment in release.sgml about typical markup --> + <sect1 id="release-16-3"> + <title>Release 16.3</title> + + <formalpara> + <title>Release date:</title> + <para>2024-05-09</para> + </formalpara> + + <para> + This release contains a variety of fixes from 16.2. + For information about new features in major release 16, see + <xref linkend="release-16"/>. + </para> + + <sect2 id="release-16-3-migration"> + <title>Migration to Version 16.3</title> + + <para> + A dump/restore is not required for those running 16.X. + </para> + + <para> + However, a security vulnerability was found in the system + views <structname>pg_stats_ext</structname> + and <structname>pg_stats_ext_exprs</structname>, potentially allowing + authenticated database users to see data they shouldn't. If this is + of concern in your installation, follow the steps in the first + changelog entry below to rectify it. + </para> + + <para> + Also, if you are upgrading from a version earlier than 16.2, + see <xref linkend="release-16-2"/>. + </para> + </sect2> + + <sect2 id="release-16-3-changes"> + <title>Changes</title> + + <itemizedlist> + + <listitem> +<!-- +Author: Nathan Bossart <nathan@postgresql.org> +Branch: master [521a7156a] 2024-05-06 09:00:00 -0500 +Branch: REL_16_STABLE [2485a85e9] 2024-05-06 09:00:07 -0500 +Branch: REL_15_STABLE [9cc2b6289] 2024-05-06 09:00:13 -0500 +Branch: REL_14_STABLE [c3425383b] 2024-05-06 09:00:19 -0500 +--> + <para> + Restrict visibility of <structname>pg_stats_ext</structname> and + <structname>pg_stats_ext_exprs</structname> entries to the table + owner (Nathan Bossart) + </para> + + <para> + These views failed to hide statistics for expressions that involve + columns the accessing user does not have permission to read. View + columns such as <structfield>most_common_vals</structfield> might + expose security-relevant data. The potential interactions here are + not fully clear, so in the interest of erring on the side of safety, + make rows in these views visible only to the owner of the associated + table. + </para> + + <para> + The <productname>PostgreSQL</productname> Project thanks + Lukas Fittl for reporting this problem. + (CVE-2024-4317) + </para> + + <para> + By itself, this fix will only fix the behavior in newly initdb'd + database clusters. If you wish to apply this change in an existing + cluster, you will need to do the following: + </para> + + <procedure> + <step> + <para> + Find the SQL script <filename>fix-CVE-2024-4317.sql</filename> in + the <replaceable>share</replaceable> directory of + the <productname>PostgreSQL</productname> installation (typically + located someplace like <filename>/usr/share/postgresql/</filename>). + Be sure to use the script appropriate to + your <productname>PostgreSQL</productname> major version. + If you do not see this file, either your version is not vulnerable + (only v14–v16 are affected) or your minor version is too + old to have the fix. + </para> + </step> + + <step> + <para> + In <emphasis>each</emphasis> database of the cluster, run + the <filename>fix-CVE-2024-4317.sql</filename> script as superuser. + In <application>psql</application> this would look like +<programlisting> +\i /usr/share/postgresql/fix-CVE-2024-4317.sql +</programlisting> + (adjust the file path as appropriate). Any error probably indicates + that you've used the wrong script version. It will not hurt to run + the script more than once. + </para> + </step> + + <step> + <para> + Do not forget to include the <literal>template0</literal> + and <literal>template1</literal> databases, or the vulnerability + will still exist in databases you create later. To + fix <literal>template0</literal>, you'll need to temporarily make + it accept connections. Do that with +<programlisting> +ALTER DATABASE template0 WITH ALLOW_CONNECTIONS true; +</programlisting> + and then after fixing <literal>template0</literal>, undo it with +<programlisting> +ALTER DATABASE template0 WITH ALLOW_CONNECTIONS false; +</programlisting> + </para> + </step> + </procedure> + </listitem> + + <listitem> +<!-- +Author: Tom Lane <tgl@sss.pgh.pa.us> +Branch: master [b4a71cf65] 2024-03-14 14:57:16 -0400 +Branch: REL_16_STABLE [52898c63e] 2024-03-14 14:57:16 -0400 +Branch: REL_15_STABLE [7c61d2342] 2024-03-14 14:57:16 -0400 +Branch: REL_14_STABLE [3621ffd9f] 2024-03-14 14:57:16 -0400 +Branch: REL_13_STABLE [0200398dd] 2024-03-14 14:57:16 -0400 +Branch: REL_12_STABLE [82c87af7a] 2024-03-14 14:57:16 -0400 +--> + <para> + Fix <command>INSERT</command> from + multiple <command>VALUES</command> rows into a target column that is + a domain over an array or composite type (Tom Lane) + </para> + + <para> + Such cases would either fail with surprising complaints about + mismatched datatypes, or insert unexpected coercions that could lead + to odd results. + </para> + </listitem> + + <listitem> +<!-- +Author: Alvaro Herrera <alvherre@alvh.no-ip.org> +Branch: master [4989ce726] 2024-02-21 17:18:52 +0100 +Branch: REL_16_STABLE [a3f5d2056] 2024-02-21 17:18:52 +0100 +Branch: REL_15_STABLE [90ad85db6] 2024-02-21 17:18:52 +0100 +--> + <para> + Require <literal>SELECT</literal> privilege on the target table + for <command>MERGE</command> with a <literal>DO NOTHING</literal> + clause (Álvaro Herrera) + </para> + + <para> + <literal>SELECT</literal> privilege would be required in all + practical cases anyway, but require it even if the query reads no + columns of the target table. This avoids an edge case in + which <command>MERGE</command> would require no privileges whatever, + which seems undesirable even when it's a do-nothing command. + </para> + </listitem> + + <listitem> +<!-- +Author: Dean Rasheed <dean.a.rasheed@gmail.com> +Branch: master [29ef1dd19] 2024-03-07 09:57:02 +0000 +Branch: REL_16_STABLE [dd73d10ad] 2024-03-07 09:55:39 +0000 +Branch: REL_15_STABLE [b5c645d2a] 2024-03-07 09:53:31 +0000 +--> + <para> + Fix handling of self-modified tuples in <command>MERGE</command> + (Dean Rasheed) + </para> + + <para> + Throw an error if a target row joins to more than one source row, as + required by the SQL standard. (The previous coding could silently + ignore this condition if a concurrent update was involved.) Also, + throw a non-misleading error if a target row is already updated by a + later command in the current transaction, thanks to + a <literal>BEFORE</literal> trigger or a volatile function used in + the query. + </para> + </listitem> + + <listitem> +<!-- +Author: David Rowley <drowley@postgresql.org> +Branch: master [4c2369ac5] 2024-02-20 12:49:37 +1300 +Branch: REL_16_STABLE [fb95cc72b] 2024-02-20 12:50:09 +1300 +Branch: REL_15_STABLE [1b3495e29] 2024-02-20 12:50:34 +1300 +Branch: REL_14_STABLE [f9c8f7ccd] 2024-02-20 12:50:57 +1300 +Branch: REL_13_STABLE [3850fcca6] 2024-02-20 12:51:17 +1300 +Branch: REL_12_STABLE [3ffcd24c2] 2024-02-20 12:51:38 +1300 +--> + <para> + Fix incorrect pruning of NULL partition when a table is partitioned + on a boolean column and the query has a boolean <literal>IS + NOT</literal> clause (David Rowley) + </para> + + <para> + A NULL value satisfies a clause such + as <literal><replaceable>boolcol</replaceable> IS NOT + FALSE</literal>, so pruning away a partition containing NULLs + yielded incorrect answers. + </para> + </listitem> + + <listitem> +<!-- +Author: Tom Lane <tgl@sss.pgh.pa.us> +Branch: master [fad3b5b5a] 2024-03-26 15:28:31 -0400 +Branch: REL_16_STABLE [7445f0928] 2024-03-26 15:28:16 -0400 +Branch: REL_15_STABLE [b48eda4e5] 2024-03-26 15:28:16 -0400 +Branch: REL_14_STABLE [66bbad581] 2024-03-26 15:28:16 -0400 +Branch: REL_13_STABLE [97de2a159] 2024-03-26 15:28:16 -0400 +Branch: REL_12_STABLE [a8b740868] 2024-03-26 15:28:16 -0400 +--> + <para> + Make <command>ALTER FOREIGN TABLE SET SCHEMA</command> move any + owned sequences into the new schema (Tom Lane) + </para> + + <para> + Moving a regular table to a new schema causes any sequences owned by + the table to be moved to that schema too (along with indexes and + constraints). This was overlooked for foreign tables, however. + </para> + </listitem> + + <listitem> +<!-- +Author: Peter Eisentraut <peter@eisentraut.org> +Branch: master [6743c5ae6] 2024-02-09 08:09:22 +0100 +Branch: REL_16_STABLE [86d2b434c] 2024-02-09 08:09:59 +0100 +Branch: REL_15_STABLE [d17a3a4c6] 2024-02-09 08:15:27 +0100 +--> + <para> + Make <command>ALTER TABLE ... ADD COLUMN</command> create + identity/serial sequences with the same persistence as their owning + tables (Peter Eisentraut) + </para> + + <para> + <command>CREATE UNLOGGED TABLE</command> will make any owned + sequences be unlogged too. <command>ALTER TABLE</command> missed + that consideration, so that an added identity column would have a + logged sequence, which seems pointless. + </para> + </listitem> + + <listitem> +<!-- +Author: Tom Lane <tgl@sss.pgh.pa.us> +Branch: master [91e7115b1] 2024-05-02 17:36:31 -0400 +Branch: REL_16_STABLE [11d40a44b] 2024-05-02 17:36:31 -0400 +Branch: REL_15_STABLE [5f4a1a0a7] 2024-05-02 17:36:31 -0400 +Branch: master [42b041243] 2024-04-28 14:34:21 -0400 +Branch: REL_16_STABLE [b19255ca6] 2024-04-28 14:34:21 -0400 +Branch: REL_15_STABLE [9b41d1d63] 2024-04-28 14:34:21 -0400 +Branch: REL_14_STABLE [617a23927] 2024-04-28 14:34:21 -0400 +--> + <para> + Improve <command>ALTER TABLE ... ALTER COLUMN TYPE</command>'s error + message when there is a dependent function or publication (Tom Lane) + </para> + </listitem> + + <listitem> +<!-- +Author: Tomas Vondra <tomas.vondra@postgresql.org> +Branch: master [8c239ee15] 2024-04-21 21:21:26 +0200 +Branch: REL_16_STABLE [9e6faeb32] 2024-04-21 21:21:55 +0200 +Branch: REL_15_STABLE [276b7888f] 2024-04-21 21:22:11 +0200 +--> + <para> + In <command>CREATE DATABASE</command>, recognize strategy keywords + case-insensitively for consistency with other options (Tomas Vondra) + </para> + </listitem> + + <listitem> +<!-- +Author: Heikki Linnakangas <heikki.linnakangas@iki.fi> +Branch: master [0960ae196] 2024-03-18 14:03:58 +0200 +Branch: REL_16_STABLE [1f4eb7342] 2024-03-18 14:04:13 +0200 +Branch: REL_15_STABLE [d3d95f583] 2024-03-18 14:04:17 +0200 +Branch: REL_14_STABLE [262757b73] 2024-03-18 14:04:19 +0200 +Branch: REL_13_STABLE [992189a3e] 2024-03-18 14:04:24 +0200 +Branch: REL_12_STABLE [f3e4581ac] 2024-03-18 14:04:28 +0200 +--> + <para> + Fix <command>EXPLAIN</command>'s counting of heap pages accessed by + a bitmap heap scan (Melanie Plageman) + </para> + + <para> + Previously, heap pages that contain no visible tuples were not + counted; but it seems more consistent to count all pages returned by + the bitmap index scan. + </para> + </listitem> + + <listitem> +<!-- +Author: Dean Rasheed <dean.a.rasheed@gmail.com> +Branch: master [33e729c51] 2024-03-17 10:17:11 +0000 +Branch: REL_16_STABLE [34c854b93] 2024-03-17 10:19:31 +0000 +Branch: REL_15_STABLE [89ee14a2f] 2024-03-17 10:20:20 +0000 +--> + <para> + Fix <command>EXPLAIN</command>'s output for subplans + in <command>MERGE</command> (Dean Rasheed) + </para> + + <para> + <command>EXPLAIN</command> would sometimes fail to properly display + subplan Params referencing variables in other parts of the plan tree. + </para> + </listitem> + + <listitem> +<!-- +Author: Tom Lane <tgl@sss.pgh.pa.us> +Branch: master [6faca9ae2] 2024-04-02 14:59:32 -0400 +Branch: REL_16_STABLE [cbfbb14bd] 2024-04-02 14:59:04 -0400 +Branch: REL_15_STABLE [4fb56a734] 2024-04-02 14:59:04 -0400 +Branch: REL_14_STABLE [ca392df8d] 2024-04-02 14:59:04 -0400 +Branch: REL_13_STABLE [4afc2c219] 2024-04-02 14:59:04 -0400 +Branch: REL_12_STABLE [f5d9212e5] 2024-04-02 14:59:04 -0400 +--> + <para> + Avoid deadlock during removal of orphaned temporary tables + (Mikhail Zhilin) + </para> + + <para> + If the session that creates a temporary table crashes without + removing the table, autovacuum will eventually try to remove the + orphaned table. However, an incoming session that's been assigned + the same temporary namespace will do that too. If a temporary table + has a dependency (such as an owned sequence) then a deadlock could + result between these two cleanup attempts. + </para> + </listitem> + + <listitem> +<!-- +Author: Heikki Linnakangas <heikki.linnakangas@iki.fi> +Branch: master [674e49c73] 2024-03-11 09:28:09 +0200 +Branch: REL_16_STABLE [407cb6c65] 2024-03-11 09:28:21 +0200 +--> + <para> + Fix updating of visibility map state in <command>VACUUM</command> + with the <literal>DISABLE_PAGE_SKIPPING</literal> option (Heikki + Linnakangas) + </para> + + <para> + Due to an oversight, this mode caused all heap pages to be dirtied, + resulting in excess I/O. Also, visibility map bits that were + incorrectly set would not get cleared. + </para> + </listitem> + + <listitem> +<!-- +Author: Noah Misch <noah@leadboat.com> +Branch: master [f65ab862e] 2024-04-29 10:24:56 -0700 +Branch: REL_16_STABLE [92685c389] 2024-04-29 10:24:59 -0700 +Branch: REL_15_STABLE [7c5915c4b] 2024-04-29 10:24:59 -0700 +Branch: REL_14_STABLE [2ca19aa81] 2024-04-29 10:25:00 -0700 +Branch: REL_13_STABLE [70cadfba0] 2024-04-29 10:25:00 -0700 +Branch: REL_12_STABLE [f222349c4] 2024-04-29 10:25:00 -0700 +--> + <para> + Avoid race condition while examining per-relation frozen-XID values + (Noah Misch) + </para> + + <para> + <command>VACUUM</command>'s computation of per-database frozen-XID + values from per-relation values could get confused by a concurrent + update of those values by another <command>VACUUM</command>. + </para> + </listitem> + + <listitem> +<!-- +Author: Masahiko Sawada <msawada@postgresql.org> +Branch: master [5cd72cc0c] 2024-05-01 12:34:06 +0900 +Branch: REL_16_STABLE [f199436c1] 2024-05-01 12:34:04 +0900 +Branch: REL_15_STABLE [faba2f8f3] 2024-05-01 12:34:01 +0900 +--> + <para> + Fix buffer usage reporting for parallel vacuuming (Anthonin Bonnefoy) + </para> + + <para> + Buffer accesses performed by parallel workers were not getting + counted in the statistics reported in <literal>VERBOSE</literal> + mode. + </para> + </listitem> + + <listitem> +<!-- +Author: Tom Lane <tgl@sss.pgh.pa.us> +Branch: master [03107b4ed] 2024-04-16 11:22:51 -0400 +Branch: REL_16_STABLE [91800af13] 2024-04-16 11:03:43 -0400 +Branch: REL_15_STABLE [5aacfa64e] 2024-04-16 11:22:39 -0400 +Branch: REL_14_STABLE [ab2402268] 2024-04-16 11:22:39 -0400 +Branch: REL_13_STABLE [d9e4ee74f] 2024-04-16 11:22:39 -0400 +Branch: REL_12_STABLE [f502849d4] 2024-04-16 11:22:39 -0400 +--> + <para> + Ensure that join conditions generated from equivalence classes are + applied at the correct plan level (Tom Lane) + </para> + + <para> + In versions before <productname>PostgreSQL</productname> 16, it was + possible for generated conditions to be evaluated below outer joins + when they should be evaluated above (after) the outer join, leading + to incorrect query results. All versions have a similar hazard when + considering joins to <command>UNION ALL</command> trees that have + constant outputs for the join column in + some <command>SELECT </command> arms. + </para> + </listitem> + + <listitem> +<!-- +Author: David Rowley <drowley@postgresql.org> +Branch: master [4169850f0] 2024-03-15 11:54:36 +1300 +Branch: REL_16_STABLE [4e1ff2aad] 2024-03-15 11:55:50 +1300 +--> + <para> + Fix <quote>could not find pathkey item to sort</quote> errors + occurring while planning aggregate functions with <literal>ORDER + BY</literal> or <literal>DISTINCT</literal> options (David Rowley) + </para> + + <para> + This is similar to a fix applied in 16.1, but it solves the problem + for parallel plans. + </para> + </listitem> + + <listitem> +<!-- +Author: David Rowley <drowley@postgresql.org> +Branch: REL_16_STABLE [9d36b883b] 2024-05-01 16:35:05 +1200 +Branch: REL_15_STABLE [7e5d20bbd] 2024-05-01 16:35:37 +1200 +--> + <para> + Prevent potentially-incorrect optimization of some window functions + (David Rowley) + </para> + + <para> + Disable <quote>run condition</quote> optimization + of <function>ntile()</function> and <function>count()</function> + with non-constant arguments. This avoids possible misbehavior with + sub-selects, typically leading to errors like <quote>WindowFunc not + found in subplan target lists</quote>. + </para> + </listitem> + + <listitem> +<!-- +Author: Tom Lane <tgl@sss.pgh.pa.us> +Branch: master [a767cdc84] 2024-03-27 13:39:03 -0400 +Branch: REL_16_STABLE [a94f51a7b] 2024-03-27 13:39:03 -0400 +Branch: REL_15_STABLE [03561a6c7] 2024-03-27 13:39:03 -0400 +Branch: REL_14_STABLE [0d30e48c2] 2024-03-27 13:39:03 -0400 +Branch: REL_13_STABLE [de3c5b187] 2024-03-27 13:39:03 -0400 +Branch: REL_12_STABLE [25675c474] 2024-03-27 13:39:03 -0400 +--> + <para> + Avoid unnecessary use of moving-aggregate mode with a non-moving + window frame (Vallimaharajan G) + </para> + + <para> + When a plain aggregate is used as a window function, and the window + frame start is specified as <literal>UNBOUNDED PRECEDING</literal>, + the frame's head cannot move so we do not need to use the special + (and more expensive) moving-aggregate mode. This optimization was + intended all along, but due to a coding error it never triggered. + </para> + </listitem> + + <listitem> +<!-- +Author: Tom Lane <tgl@sss.pgh.pa.us> +Branch: master [a6b2a51e1] 2024-02-23 15:21:53 -0500 +Branch: REL_16_STABLE [ef0333e67] 2024-02-23 15:21:53 -0500 +Branch: REL_15_STABLE [37bbe3d3a] 2024-02-23 15:21:53 -0500 +Branch: REL_14_STABLE [cbeb45527] 2024-02-23 15:21:53 -0500 +Branch: REL_13_STABLE [9061fd23c] 2024-02-23 15:21:53 -0500 +Branch: REL_12_STABLE [cf807eba5] 2024-02-23 15:21:53 -0500 +--> + <para> + Avoid use of already-freed data while planning partition-wise joins + under GEQO (Tom Lane) + </para> + + <para> + This would typically end in a crash or unexpected error message. + </para> + </listitem> + + <listitem> +<!-- +Author: David Rowley <drowley@postgresql.org> +Branch: master [e62984647] 2024-03-11 18:19:56 +1300 +Branch: REL_16_STABLE [348233cb1] 2024-03-11 18:20:39 +1300 +Branch: REL_15_STABLE [74530804f] 2024-03-11 18:21:23 +1300 +Branch: REL_14_STABLE [72b8507db] 2024-03-11 18:21:48 +1300 +--> + <para> + Avoid freeing still-in-use data in Memoize (Tender Wang, Andrei + Lepikhov) + </para> + + <para> + In production builds this error frequently didn't cause any + problems, as the freed data would most likely not get overwritten + before it was used. + </para> + </listitem> + + <listitem> +<!-- +Author: David Rowley <drowley@postgresql.org> +Branch: master [a37a3e2b3] 2024-03-05 16:17:02 +1300 +Branch: REL_16_STABLE [ac7e6a01c] 2024-03-05 16:17:53 +1300 +Branch: REL_15_STABLE [164fe7a6e] 2024-03-05 16:18:19 +1300 +Branch: REL_14_STABLE [0c2dda109] 2024-03-05 16:18:42 +1300 +Branch: REL_13_STABLE [421dfb41a] 2024-03-05 16:19:05 +1300 +Branch: REL_12_STABLE [94246405d] 2024-03-05 16:19:26 +1300 +--> + <para> + Fix incorrectly-reported statistics kind codes in <quote>requested + statistics kind <replaceable>X</replaceable> is not yet + built</quote> error messages (David Rowley) + </para> + </listitem> + + <listitem> +<!-- +Author: Tom Lane <tgl@sss.pgh.pa.us> +Branch: master [473182c95] 2024-03-22 17:13:53 -0400 +Branch: REL_16_STABLE [14e991db8] 2024-03-22 17:13:53 -0400 +--> + <para> + Use a hash table instead of linear search for <quote>catcache + list</quote> objects (Tom Lane) + </para> + + <para> + This change solves performance problems that were reported for + certain operations in installations with many thousands of roles. + </para> + </listitem> + + <listitem> +<!-- +Author: Tom Lane <tgl@sss.pgh.pa.us> +Branch: master [e0df80828] 2024-04-15 12:56:56 -0400 +Branch: REL_16_STABLE [cc1eb6a3c] 2024-04-15 12:56:56 -0400 +Branch: REL_15_STABLE [09989ba84] 2024-04-15 12:56:56 -0400 +Branch: REL_14_STABLE [78e81e14d] 2024-04-15 12:56:56 -0400 +Branch: REL_13_STABLE [b6e21cef7] 2024-04-15 12:56:56 -0400 +Branch: REL_12_STABLE [e0970862e] 2024-04-15 12:56:56 -0400 +Branch: master [2ed8f9a01] 2024-03-06 14:41:13 -0500 +Branch: REL_16_STABLE [1b3029be5] 2024-03-06 14:41:13 -0500 +Branch: REL_15_STABLE [3b671dcf5] 2024-03-06 14:41:13 -0500 +Branch: REL_14_STABLE [a595c3075] 2024-03-06 14:41:13 -0500 +Branch: REL_13_STABLE [d769f9d97] 2024-03-06 14:41:13 -0500 +Branch: REL_12_STABLE [466376c9f] 2024-03-06 14:41:13 -0500 +--> + <para> + Be more careful with <type>RECORD</type>-returning functions + in <literal>FROM</literal> (Tom Lane) + </para> + + <para> + The output columns of such a function call must be defined by + an <literal>AS</literal> clause that specifies the column names and + data types. If the actual function output value doesn't match that, + an error is supposed to be thrown at runtime. However, some code + paths would examine the actual value prematurely, and potentially + issue strange errors or suffer assertion failures if it doesn't + match expectations. + </para> + </listitem> + + <listitem> +<!-- +Author: Tom Lane <tgl@sss.pgh.pa.us> +Branch: master [6ee3261e9] 2024-03-12 18:16:25 -0400 +Branch: REL_16_STABLE [40d1bdeb7] 2024-03-12 18:16:10 -0400 +Branch: REL_15_STABLE [6f66fadad] 2024-03-12 18:16:10 -0400 +Branch: REL_14_STABLE [649bbba11] 2024-03-12 18:16:10 -0400 +Branch: REL_13_STABLE [28184f039] 2024-03-12 18:16:10 -0400 +Branch: REL_12_STABLE [dc1503d5b] 2024-03-12 18:16:10 -0400 +--> + <para> + Fix confusion about the return rowtype of SQL-language procedures + (Tom Lane) + </para> + + <para> + A procedure implemented in SQL language that returns a single + composite-type column would cause an assertion failure or core dump. + </para> + </listitem> + + <listitem> +<!-- +Author: Alexander Korotkov <akorotkov@postgresql.org> +Branch: master [d57b7cc33] 2024-02-16 16:02:00 +0200 +Branch: master [75bcba6cb] 2024-02-21 02:51:41 +0200 +Branch: REL_16_STABLE [760767182] 2024-03-11 03:06:55 +0200 +Branch: REL_15_STABLE [84788ee5b] 2024-03-11 03:06:45 +0200 +Branch: REL_14_STABLE [84cc1a552] 2024-03-11 03:06:15 +0200 +Branch: REL_13_STABLE [445c7e38f] 2024-03-11 03:06:10 +0200 +Branch: REL_12_STABLE [98bfb7558] 2024-03-11 02:53:07 +0200 +--> + <para> + Add protective stack depth checks to some recursive functions + (Egor Chindyaskin) + </para> + </listitem> + + <listitem> +<!-- +Author: Tom Lane <tgl@sss.pgh.pa.us> +Branch: master [d163fdbfe] 2024-02-28 14:00:30 -0500 +Branch: REL_16_STABLE [17db5436e] 2024-02-28 14:00:30 -0500 +Branch: REL_15_STABLE [db8855b66] 2024-02-28 14:00:30 -0500 +Branch: REL_14_STABLE [fe3b1b575] 2024-02-28 14:00:30 -0500 +--> + <para> + Fix mis-rounding and overflow hazards + in <function>date_bin()</function> (Moaaz Assali) + </para> + + <para> + In the case where the source timestamp is before the origin + timestamp and their difference is already an exact multiple of the + stride, the code incorrectly subtracted the stride anyway. Also, + detect some integer-overflow cases that would have produced + incorrect results. + </para> + </listitem> + + <listitem> +<!-- +Author: Tom Lane <tgl@sss.pgh.pa.us> +Branch: master [4019285c0] 2024-04-28 13:42:13 -0400 +Branch: REL_16_STABLE [3752e3d21] 2024-04-28 13:42:13 -0400 +Branch: REL_15_STABLE [e6e3ee5b7] 2024-04-28 13:42:13 -0400 +Branch: REL_14_STABLE [1748379b6] 2024-04-28 13:42:13 -0400 +Branch: REL_13_STABLE [440b6251b] 2024-04-28 13:42:13 -0400 +Branch: REL_12_STABLE [cb0ccefa0] 2024-04-28 13:42:13 -0400 +--> + <para> + Detect integer overflow when adding or subtracting + an <type>interval</type> to/from a <type>timestamp</type> + (Joseph Koshakow) + </para> + + <para> + Some cases that should cause an out-of-range error produced an + incorrect result instead. + </para> + </listitem> + + <listitem> +<!-- +Author: Tom Lane <tgl@sss.pgh.pa.us> +Branch: master [ce571434a] 2024-02-09 12:29:41 -0500 +Branch: REL_16_STABLE [4eb261165] 2024-02-09 12:29:41 -0500 +Branch: REL_15_STABLE [26c89d105] 2024-02-09 12:29:41 -0500 +Branch: REL_14_STABLE [d21690edb] 2024-02-09 12:29:41 -0500 +Branch: REL_13_STABLE [ceb224b62] 2024-02-09 12:29:41 -0500 +Branch: REL_12_STABLE [f38903d1e] 2024-02-09 12:29:41 -0500 +--> + <para> + Avoid race condition in <function>pg_get_expr()</function> + (Tom Lane) + </para> + + <para> + If the relation referenced by the argument is dropped concurrently, + the function's intention is to return NULL, but sometimes it failed + instead. + </para> + </listitem> + + <listitem> +<!-- +Author: Alexander Korotkov <akorotkov@postgresql.org> +Branch: master [165d921c9] 2024-02-08 12:45:26 +0200 +Branch: REL_16_STABLE [e3e05adde] 2024-02-09 12:37:21 +0200 +Branch: REL_15_STABLE [503299b7f] 2024-02-09 12:38:32 +0200 +Branch: REL_14_STABLE [18388291a] 2024-02-09 12:39:42 +0200 +Branch: REL_13_STABLE [4efaf4b09] 2024-02-09 12:39:54 +0200 +Branch: REL_12_STABLE [d44060cfc] 2024-02-09 12:55:43 +0200 +--> + <para> + Fix detection of old transaction IDs in XID status functions + (Karina Litskevich) + </para> + + <para> + Transaction IDs more than 2<superscript>31</superscript> + transactions in the past could be misidentified as recent, + leading to misbehavior of <function>pg_xact_status()</function> + or <function>txid_status()</function>. + </para> + </listitem> + + <listitem> +<!-- +Author: Noah Misch <noah@leadboat.com> +Branch: master [935829743] 2024-04-13 08:34:20 -0700 +Branch: REL_16_STABLE [4e62ba21a] 2024-04-13 08:35:06 -0700 +Branch: REL_15_STABLE [7c490a18b] 2024-04-13 08:35:20 -0700 +Branch: REL_14_STABLE [08059fc04] 2024-04-13 08:35:32 -0700 +--> + <para> + Ensure that a table's freespace map won't return a page that's past + the end of the table (Ronan Dunklau) + </para> + + <para> + Because the freespace map isn't WAL-logged, this was possible in + edge cases involving an OS crash, a replica promote, or a PITR + restore. The result would be a <quote>could not read block</quote> + error. + </para> + </listitem> + + <listitem> +<!-- +Author: Etsuro Fujita <efujita@postgresql.org> +Branch: REL_16_STABLE [e79ceafe9] 2024-04-11 19:05:00 +0900 +Branch: REL_15_STABLE [b82dca2a5] 2024-04-11 19:05:02 +0900 +Branch: REL_14_STABLE [b714bc40c] 2024-04-11 19:05:04 +0900 +Branch: REL_13_STABLE [01b01a77f] 2024-04-11 19:05:05 +0900 +Branch: REL_12_STABLE [0341d4b10] 2024-04-11 19:05:07 +0900 +--> + <para> + Fix file descriptor leakage when an error is thrown while waiting + in <function>WaitEventSetWait</function> (Etsuro Fujita) + </para> + </listitem> + + <listitem> +<!-- +Author: Etsuro Fujita <efujita@postgresql.org> +Branch: REL_16_STABLE [f6f61a4bd] 2024-04-04 17:25:00 +0900 +Branch: REL_15_STABLE [3f96d113f] 2024-04-04 17:25:02 +0900 +Branch: REL_14_STABLE [e10ca95ff] 2024-04-04 17:25:04 +0900 +--> + <para> + Avoid corrupting exception stack if an FDW implements async append + but doesn't configure any wait conditions for the Append plan node + to wait for (Alexander Pyhalov) + </para> + </listitem> + + <listitem> +<!-- +Author: Tom Lane <tgl@sss.pgh.pa.us> +Branch: master [f5a465f1a] 2024-02-25 16:15:07 -0500 +Branch: REL_16_STABLE [8c785d354] 2024-02-25 16:15:07 -0500 +Branch: REL_15_STABLE [940489b46] 2024-02-25 16:15:07 -0500 +Branch: REL_14_STABLE [09f09884c] 2024-02-25 16:15:07 -0500 +Branch: REL_13_STABLE [43cca9de9] 2024-02-25 16:15:07 -0500 +Branch: REL_12_STABLE [c0b4dad38] 2024-02-25 16:15:07 -0500 +--> + <para> + Throw an error if an index is accessed while it is being reindexed + (Tom Lane) + </para> + + <para> + Previously this was just an assertion check, but promote it into a + regular runtime error. This will provide a more on-point error + message when reindexing a user-defined index expression that + attempts to access its own table. + </para> + </listitem> + + <listitem> +<!-- +Author: David Rowley <drowley@postgresql.org> +Branch: master [a63224be4] 2024-05-01 13:21:21 +1200 +Branch: REL_16_STABLE [68d358545] 2024-05-01 13:21:50 +1200 +Branch: REL_15_STABLE [52f21f928] 2024-05-01 13:22:16 +1200 +Branch: REL_14_STABLE [e6b0efc65] 2024-05-01 13:22:41 +1200 +Branch: REL_13_STABLE [0a34bcd0c] 2024-05-01 13:23:05 +1200 +Branch: REL_12_STABLE [e3f9dcabd] 2024-05-01 13:23:25 +1200 +--> + <para> + Ensure that index-only scans on <type>name</type> columns return a + fully-padded value (David Rowley) + </para> + + <para> + The value physically stored in the index is truncated, and + previously a pointer to that value was returned to callers. This + provoked complaints when testing under valgrind. In theory it could + result in crashes, though none have been reported. + </para> + </listitem> + + <listitem> +<!-- +Author: Michael Paquier <michael@paquier.xyz> +Branch: master [818fefd8f] 2024-02-20 13:43:51 +0900 +Branch: REL_16_STABLE [59cea09f0] 2024-02-20 13:43:56 +0900 +--> + <para> + Fix race condition that could lead to reporting an incorrect + conflict cause when invalidating a replication slot (Bertrand + Drouvot) + </para> + </listitem> + + <listitem> +<!-- +Author: Amit Kapila <akapila@postgresql.org> +Branch: master [aa79bde72] 2024-04-25 10:40:52 +0530 +Branch: REL_16_STABLE [a9155efc7] 2024-04-25 10:52:34 +0530 +Branch: REL_15_STABLE [28a8cc457] 2024-04-25 10:33:04 +0530 +--> + <para> + Fix race condition in deciding whether a table sync operation is + needed in logical replication (Vignesh C) + </para> + + <para> + An invalidation event arriving while a subscriber identifies which + tables need to be synced would be forgotten about, so that any + tables newly in need of syncing might not get processed in a timely + fashion. + </para> + </listitem> + + <listitem> +<!-- +Author: Heikki Linnakangas <heikki.linnakangas@iki.fi> +Branch: master [fbf9a7ac4] 2024-02-13 21:23:41 +0200 +Branch: REL_16_STABLE [f2f09b825] 2024-02-13 21:24:45 +0200 +Branch: REL_15_STABLE [d46c26961] 2024-02-13 21:25:27 +0200 +Branch: REL_14_STABLE [9b8550fbd] 2024-02-13 21:25:39 +0200 +Branch: REL_13_STABLE [e92375692] 2024-02-13 21:25:48 +0200 +Branch: REL_12_STABLE [95cc48ca0] 2024-02-13 21:25:59 +0200 +--> + <para> + Fix crash with DSM allocations larger than 4GB (Heikki Linnakangas) + </para> + </listitem> + + <listitem> +<!-- +Author: Heikki Linnakangas <heikki.linnakangas@iki.fi> +Branch: master [f8c5317d0] 2024-03-12 10:18:32 +0200 +Branch: REL_16_STABLE [539e328b1] 2024-03-12 10:18:44 +0200 +Branch: REL_15_STABLE [4fce5f970] 2024-03-12 10:18:50 +0200 +Branch: REL_14_STABLE [bf1f593e8] 2024-03-12 10:18:51 +0200 +Branch: REL_13_STABLE [ad5cd55e6] 2024-03-12 10:18:53 +0200 +Branch: REL_12_STABLE [df27d76d3] 2024-03-12 10:18:54 +0200 +--> + <para> + Disconnect if a new server session's client socket cannot be put + into non-blocking mode (Heikki Linnakangas) + </para> + + <para> + It was once theoretically possible for us to operate with a socket + that's in blocking mode; but that hasn't worked fully in a long + time, so fail at connection start rather than misbehave later. + </para> + </listitem> + + <listitem> +<!-- +Author: Tom Lane <tgl@sss.pgh.pa.us> +Branch: master [453c46873] 2024-03-07 19:38:17 -0500 +Branch: REL_16_STABLE [6a2c80e95] 2024-03-07 19:37:51 -0500 +Branch: REL_15_STABLE [0fe82e45c] 2024-03-07 19:37:51 -0500 +Branch: REL_14_STABLE [473babd42] 2024-03-07 19:37:51 -0500 +Branch: REL_13_STABLE [9fbe07275] 2024-03-07 19:37:51 -0500 +Branch: REL_12_STABLE [c42e5fdcf] 2024-03-07 19:37:51 -0500 +--> + <para> + Fix inadequate error reporting + with <application>OpenSSL</application> 3.0.0 and later (Heikki + Linnakangas, Tom Lane) + </para> + + <para> + System-reported errors passed through by OpenSSL were reported with + a numeric error code rather than anything readable. + </para> + </listitem> + + <listitem> +<!-- +Author: Thomas Munro <tmunro@postgresql.org> +Branch: master [65f438471] 2024-02-12 11:14:21 +1300 +Branch: REL_16_STABLE [0460e4ecc] 2024-02-12 11:14:42 +1300 +--> + <para> + Fix thread-safety of error reporting + for <function>getaddrinfo()</function> on Windows (Thomas Munro) + </para> + + <para> + A multi-threaded <application>libpq</application> client program + could get an incorrect or corrupted error message after a network + lookup failure. + </para> + </listitem> + + <listitem> +<!-- +Author: Tom Lane <tgl@sss.pgh.pa.us> +Branch: master [a584d03ce] 2024-02-09 11:21:08 -0500 +Branch: REL_16_STABLE [52afe5632] 2024-02-09 11:21:08 -0500 +Branch: REL_15_STABLE [806f98951] 2024-02-09 11:21:08 -0500 +Branch: REL_14_STABLE [8ead39e38] 2024-02-09 11:21:08 -0500 +Branch: REL_13_STABLE [8c5da20db] 2024-02-09 11:21:08 -0500 +Branch: REL_12_STABLE [9fb1396a9] 2024-02-09 11:21:08 -0500 +Branch: master [0028b55bc] 2024-02-09 11:11:39 -0500 +Branch: REL_16_STABLE [9440d23a0] 2024-02-09 11:11:39 -0500 +Branch: REL_15_STABLE [9f041b041] 2024-02-09 11:11:39 -0500 +Branch: REL_14_STABLE [7d7cc7fd6] 2024-02-09 11:11:39 -0500 +Branch: REL_13_STABLE [67f8cf0f0] 2024-02-09 11:11:39 -0500 +Branch: REL_12_STABLE [95e960e81] 2024-02-09 11:11:39 -0500 +--> + <para> + Avoid concurrent calls to <function>bindtextdomain()</function> + in <application>libpq</application> + and <application>ecpglib</application> (Tom Lane) + </para> + + <para> + Although GNU <application>gettext</application>'s implementation + seems to be fine with concurrent calls, the version available on + Windows is not. + </para> + </listitem> + + <listitem> +<!-- +Author: Tom Lane <tgl@sss.pgh.pa.us> +Branch: master [6f0cef935] 2024-04-16 12:31:42 -0400 +Branch: REL_16_STABLE [392e6e9e6] 2024-04-16 12:31:32 -0400 +Branch: REL_15_STABLE [25f937217] 2024-04-16 12:31:32 -0400 +Branch: REL_14_STABLE [463164639] 2024-04-16 12:31:32 -0400 +Branch: REL_13_STABLE [02531e8ca] 2024-04-16 12:31:32 -0400 +Branch: REL_12_STABLE [2b6a74afe] 2024-04-16 12:31:32 -0400 +Branch: REL_16_STABLE [0018f0af5] 2024-04-18 20:47:37 -0400 +Branch: REL_15_STABLE [1e7b1b026] 2024-04-18 20:47:37 -0400 +Branch: REL_14_STABLE [df66319f7] 2024-04-18 20:47:37 -0400 +Branch: REL_13_STABLE [481597fc6] 2024-04-18 20:47:37 -0400 +Branch: REL_12_STABLE [61dd815e0] 2024-04-18 20:47:37 -0400 +Branch: REL_16_STABLE [dd3fddc85] 2024-04-19 01:07:16 -0400 +Branch: REL_15_STABLE [f7e891748] 2024-04-19 01:07:32 -0400 +Branch: REL_14_STABLE [de84608e2] 2024-04-19 01:07:41 -0400 +Branch: REL_13_STABLE [c6bfeab42] 2024-04-19 01:07:47 -0400 +Branch: REL_12_STABLE [cd26f08e4] 2024-04-19 01:07:52 -0400 +--> + <para> + Fix crash in <application>ecpg</application>'s preprocessor if + the program tries to redefine a macro that was defined on the + preprocessor command line (Tom Lane) + </para> + </listitem> + + <listitem> +<!-- +Author: Tom Lane <tgl@sss.pgh.pa.us> +Branch: master [096a761d6] 2024-04-04 15:31:53 -0400 +Branch: REL_16_STABLE [118558e6d] 2024-04-04 15:31:53 -0400 +Branch: REL_15_STABLE [f159f1814] 2024-04-04 15:31:53 -0400 +Branch: REL_14_STABLE [d3167ed3f] 2024-04-04 15:31:53 -0400 +Branch: REL_13_STABLE [5ba29e945] 2024-04-04 15:31:53 -0400 +Branch: REL_12_STABLE [360d007e3] 2024-04-04 15:31:53 -0400 +--> + <para> + In <application>ecpg</application>, avoid issuing + false <quote>unsupported feature will be passed to server</quote> + warnings (Tom Lane) + </para> + </listitem> + + <listitem> +<!-- +Author: Michael Paquier <michael@paquier.xyz> +Branch: master [e77a1c58e] 2024-02-19 11:38:18 +0900 +Branch: REL_16_STABLE [88e03d055] 2024-02-19 11:38:44 +0900 +Branch: REL_15_STABLE [b5cb6022b] 2024-02-19 11:38:47 +0900 +Branch: REL_14_STABLE [a05bb9add] 2024-02-19 11:38:49 +0900 +Branch: REL_13_STABLE [c031ce97b] 2024-02-19 11:38:52 +0900 +Branch: REL_12_STABLE [771240f97] 2024-02-19 11:38:54 +0900 +--> + <para> + Ensure that the string result + of <application>ecpg</application>'s <function>intoasc()</function> + function is correctly zero-terminated (Oleg Tselebrovskiy) + </para> + </listitem> + + <listitem> +<!-- +Author: Tom Lane <tgl@sss.pgh.pa.us> +Branch: master [fce2ce797] 2024-03-04 12:00:48 -0500 +Branch: REL_16_STABLE [b78f4d22b] 2024-03-04 12:00:39 -0500 +--> + <para> + In <application>initdb</application>'s <option>-c</option> option, + match parameter names case-insensitively (Tom Lane) + </para> + + <para> + The server treats parameter names case-insensitively, so this code + should too. This avoids putting redundant entries into the + generated <filename>postgresql.conf</filename> file. + </para> + </listitem> + + <listitem> +<!-- +Author: Tom Lane <tgl@sss.pgh.pa.us> +Branch: master [f463de59d] 2024-04-08 17:00:07 -0400 +Branch: REL_16_STABLE [a85e3ba1c] 2024-04-08 17:00:07 -0400 +Branch: REL_15_STABLE [4f1d33d70] 2024-04-08 17:00:07 -0400 +--> + <para> + In <application>psql</application>, avoid leaking a query result + after the query is cancelled (Tom Lane) + </para> + + <para> + This happened only when cancelling a non-last query in a query + string made with <literal>\;</literal> separators. + </para> + </listitem> + + <listitem> +<!-- +Author: Daniel Gustafsson <dgustafsson@postgresql.org> +Branch: master [7e65ad197] 2024-03-21 23:31:57 +0100 +Branch: REL_16_STABLE [5863bacb8] 2024-03-21 23:31:57 +0100 +Branch: REL_15_STABLE [12128be62] 2024-03-21 23:31:57 +0100 +Branch: REL_14_STABLE [be01c8c34] 2024-03-21 23:31:57 +0100 +Branch: REL_13_STABLE [affc46b76] 2024-03-21 23:31:57 +0100 +Branch: REL_12_STABLE [d82cb467b] 2024-03-21 23:31:57 +0100 +Branch: REL_14_STABLE [6ebd43725] 2024-03-22 01:01:30 +0100 +Branch: REL_13_STABLE [d5c6affb8] 2024-03-22 01:01:30 +0100 +Branch: REL_12_STABLE [82c2192d9] 2024-03-22 01:01:30 +0100 +--> + <para> + Fix <application>pg_dumpall</application> so that role comments, if + present, will be dumped regardless of the setting + of <option>--no-role-passwords</option> (Daniel Gustafsson, + Álvaro Herrera) + </para> + </listitem> + + <listitem> +<!-- +Author: Daniel Gustafsson <dgustafsson@postgresql.org> +Branch: master [c1fc502f5] 2024-02-13 13:47:12 +0100 +Branch: REL_16_STABLE [103235888] 2024-02-13 13:47:12 +0100 +Branch: REL_15_STABLE [29f005238] 2024-02-13 13:47:12 +0100 +--> + <para> + Skip files named <filename>.DS_Store</filename> + in <application>pg_basebackup</application>, + <application>pg_checksums</application>, + and <application>pg_rewind</application> (Daniel Gustafsson) + </para> + + <para> + This avoids problems on macOS, where the Finder may create such + files. + </para> + </listitem> + + <listitem> +<!-- +Author: Tom Lane <tgl@sss.pgh.pa.us> +Branch: master [5392dd3d2] 2024-04-10 15:45:58 -0400 +Branch: REL_16_STABLE [48f216dc6] 2024-04-10 15:45:58 -0400 +Branch: REL_15_STABLE [d85db0a8e] 2024-04-10 15:45:59 -0400 +Branch: REL_14_STABLE [dc5824a06] 2024-04-10 15:45:59 -0400 +Branch: REL_13_STABLE [f5cee411a] 2024-04-10 15:45:59 -0400 +Branch: REL_12_STABLE [5e9d8bed0] 2024-04-10 15:45:59 -0400 +--> + <para> + Fix <application>PL/pgSQL</application>'s parsing of single-line + comments (<literal>--</literal>-style comments) following + expressions (Erik Wienhold, Tom Lane) + </para> + + <para> + This mistake caused parse errors if such a comment followed + a <literal>WHEN</literal> expression in + a <application>PL/pgSQL</application> <command>CASE</command> + statement. + </para> + </listitem> + + <listitem> +<!-- +Author: Alexander Korotkov <akorotkov@postgresql.org> +Branch: master [b1fe8efdf] 2024-03-24 00:09:24 +0200 +Branch: REL_16_STABLE [3676b846b] 2024-03-23 23:02:30 +0200 +Branch: REL_15_STABLE [0d466bce9] 2024-03-23 23:02:43 +0200 +Branch: REL_14_STABLE [4e8529da4] 2024-03-23 23:03:10 +0200 +Branch: REL_13_STABLE [5cc1f2626] 2024-03-23 23:03:12 +0200 +Branch: REL_12_STABLE [d603e6744] 2024-03-24 00:08:13 +0200 +Branch: master [ab65dfb0f] 2024-03-24 00:09:24 +0200 +Branch: REL_16_STABLE [a6ddb8ad0] 2024-03-23 23:02:30 +0200 +Branch: REL_15_STABLE [54e6184db] 2024-03-23 23:02:43 +0200 +Branch: REL_14_STABLE [5df5d9cd7] 2024-03-23 23:03:10 +0200 +Branch: REL_13_STABLE [e2c241416] 2024-03-23 23:03:12 +0200 +Branch: REL_12_STABLE [50f8611d0] 2024-03-23 23:03:14 +0200 +--> + <para> + In <filename>contrib/amcheck</filename>, don't report false match + failures due to short- versus long-header values (Andrey Borodin, + Michael Zhilin) + </para> + + <para> + A variable-length datum in a heap tuple or index tuple could have + either a short or a long header, depending on compression parameters + that applied when it was made. Treat these cases as equivalent + rather than complaining if there's a difference. + </para> + </listitem> + + <listitem> +<!-- +Author: Tomas Vondra <tomas.vondra@postgresql.org> +Branch: master [bb616ed3e] 2024-04-14 18:19:58 +0200 +Branch: REL_16_STABLE [8cea358b1] 2024-04-14 18:24:38 +0200 +Branch: master [2f20ced1e] 2024-04-14 18:07:15 +0200 +Branch: REL_16_STABLE [ccd8f0fa1] 2024-04-14 18:17:09 +0200 +Branch: REL_15_STABLE [3cd413511] 2024-04-14 18:17:29 +0200 +Branch: REL_14_STABLE [ad23af83d] 2024-04-14 18:18:07 +0200 +--> + <para> + Fix bugs in BRIN output functions (Tomas Vondra) + </para> + + <para> + These output functions are only used for displaying index entries + in <filename>contrib/pageinspect</filename>, so the errors are of + limited practical concern. + </para> + </listitem> + + <listitem> +<!-- +Author: David Rowley <drowley@postgresql.org> +Branch: master [c399248b3] 2024-03-11 12:27:11 +1300 +Branch: REL_16_STABLE [6a9e2cb2b] 2024-03-11 12:27:46 +1300 +Branch: REL_15_STABLE [ab64b275a] 2024-03-11 12:28:11 +1300 +Branch: REL_14_STABLE [628c3f2e1] 2024-03-11 12:28:40 +1300 +Branch: REL_13_STABLE [20b85b3da] 2024-03-11 12:29:03 +1300 +Branch: REL_12_STABLE [9301e0f41] 2024-03-11 12:29:24 +1300 +--> + <para> + In <filename>contrib/postgres_fdw</filename>, avoid emitting + requests to sort by a constant (David Rowley) + </para> + + <para> + This could occur in cases involving <literal>UNION ALL</literal> + with constant-emitting subqueries. Sorting by a constant is useless + of course, but it also risks being misinterpreted by the remote + server, leading to <quote>ORDER BY + position <replaceable>N</replaceable> is not in select list</quote> + errors. + </para> + </listitem> + + <listitem> +<!-- +Author: Tom Lane <tgl@sss.pgh.pa.us> +Branch: master [a3021aafc] 2024-04-21 13:46:20 -0400 +Branch: REL_16_STABLE [75929b6cf] 2024-04-21 13:46:20 -0400 +Branch: REL_15_STABLE [6c85e3359] 2024-04-21 13:46:20 -0400 +Branch: REL_14_STABLE [3ed6e1698] 2024-04-21 13:46:20 -0400 +Branch: REL_13_STABLE [0e56b2b94] 2024-04-21 13:46:20 -0400 +Branch: REL_12_STABLE [ce1c30ece] 2024-04-21 13:46:20 -0400 +--> + <para> + Make <filename>contrib/postgres_fdw</filename> set the remote + session's time zone to <literal>GMT</literal> + not <literal>UTC</literal> (Tom Lane) + </para> + + <para> + This should have the same results for practical purposes. + However, <literal>GMT</literal> is recognized by hard-wired code in + the server, while <literal>UTC</literal> is looked up in the + timezone database. So the old code could fail in the unlikely event + that the remote server's timezone database is missing entries. + </para> + </listitem> + + <listitem> +<!-- +Author: Michael Paquier <michael@paquier.xyz> +Branch: REL_16_STABLE [7c93f31de] 2024-04-16 12:25:48 +0900 +Branch: REL_15_STABLE [689ba4f1c] 2024-04-16 12:26:10 +0900 +Branch: REL_14_STABLE [6fa5e67e8] 2024-04-16 12:26:15 +0900 +Branch: REL_13_STABLE [bb418aeee] 2024-04-16 12:26:17 +0900 +Branch: REL_12_STABLE [4b0e5d601] 2024-04-16 12:26:21 +0900 +--> + <para> + In <filename>contrib/xml2</filename>, avoid use of library functions + that have been deprecated in recent versions + of <application>libxml2</application> (Dmitry Koval) + </para> + </listitem> + + <listitem> +<!-- +Author: Thomas Munro <tmunro@postgresql.org> +Branch: master [53c8d6c9f] 2024-04-10 12:13:46 +1200 +Branch: REL_16_STABLE [bf1cfe77e] 2024-04-10 10:46:15 +1200 +Branch: REL_15_STABLE [74992929a] 2024-04-10 12:14:04 +1200 +Branch: REL_14_STABLE [7fe32eaa4] 2024-04-10 12:15:07 +1200 +Branch: REL_13_STABLE [4f90750b5] 2024-04-10 12:15:41 +1200 +Branch: REL_12_STABLE [01b55203a] 2024-04-10 12:15:59 +1200 +--> + <para> + Fix incompatibility with LLVM 18 (Thomas Munro, Dmitry Dolgov) + </para> + </listitem> + + <listitem> +<!-- +Author: Tom Lane <tgl@sss.pgh.pa.us> +Branch: master [8a92b70c1] 2024-03-26 11:44:49 -0400 +Branch: REL_16_STABLE [7651fd387] 2024-03-26 11:44:49 -0400 +Branch: REL_15_STABLE [3c3f4fd74] 2024-03-26 11:44:49 -0400 +Branch: REL_14_STABLE [d82605bcd] 2024-03-26 11:44:49 -0400 +Branch: REL_13_STABLE [243e99532] 2024-03-26 11:44:49 -0400 +Branch: REL_12_STABLE [7124e7d52] 2024-03-26 11:44:49 -0400 +--> + <para> + Allow <literal>make check</literal> to work with + the <application>musl</application> C library (Thomas Munro, Bruce + Momjian, Tom Lane) + </para> + </listitem> + + </itemizedlist> + + </sect2> + </sect1> + <sect1 id="release-16-2"> <title>Release 16.2</title> @@ -350,6 +1636,25 @@ Branch: REL_12_STABLE [b8a606e21] 2023-11-28 11:59:53 +0200 <listitem> <!-- Author: Michael Paquier <michael@paquier.xyz> +Branch: master [1b2c6b756] 2023-11-08 14:06:26 +0900 +Branch: REL_16_STABLE [4dccf9575] 2023-11-08 14:06:36 +0900 +Branch: REL_15_STABLE [7e18c0bd6] 2023-11-08 14:06:39 +0900 +Branch: REL_14_STABLE [59fc39c0d] 2023-11-08 14:06:42 +0900 +--> + <para> + Fix overly tight assertion + about <varname>false_positive_rate</varname> parameter of + BRIN bloom operator classes (Alexander Lakhin) + </para> + + <para> + This error had no impact in non-assert builds, either. + </para> + </listitem> + + <listitem> +<!-- +Author: Michael Paquier <michael@paquier.xyz> Branch: master [bb812ab09] 2024-01-24 14:20:01 +0900 Branch: REL_16_STABLE [51193e7a7] 2024-01-24 14:20:08 +0900 Branch: REL_15_STABLE [ad6fbbeeb] 2024-01-24 14:20:10 +0900 @@ -1292,20 +2597,6 @@ Branch: REL_14_STABLE [85ecff891] 2024-01-22 17:48:30 +0100 <listitem> <!-- -Author: Michael Paquier <michael@paquier.xyz> -Branch: master [1b2c6b756] 2023-11-08 14:06:26 +0900 -Branch: REL_16_STABLE [4dccf9575] 2023-11-08 14:06:36 +0900 -Branch: REL_15_STABLE [7e18c0bd6] 2023-11-08 14:06:39 +0900 -Branch: REL_14_STABLE [59fc39c0d] 2023-11-08 14:06:42 +0900 ---> - <para> - In <filename>contrib/bloom</filename>, fix overly tight assertion - about <varname>false_positive_rate</varname> (Alexander Lakhin) - </para> - </listitem> - - <listitem> -<!-- Author: Tom Lane <tgl@sss.pgh.pa.us> Branch: master [9034a2d51] 2024-01-07 15:19:50 -0500 Branch: REL_16_STABLE [cf6f802bf] 2024-01-07 15:19:50 -0500 |