| <!-- doc/src/sgml/release-16.sgml --> |
| <!-- See header comment in release.sgml about typical markup --> |
| |
| <sect1 id="release-16-9"> |
| <title>Release 16.9</title> |
| |
| <formalpara> |
| <title>Release date:</title> |
| <para>2025-05-08</para> |
| </formalpara> |
| |
| <para> |
| This release contains a variety of fixes from 16.8. |
| For information about new features in major release 16, see |
| <xref linkend="release-16"/>. |
| </para> |
| |
| <sect2 id="release-16-9-migration"> |
| <title>Migration to Version 16.9</title> |
| |
| <para> |
| A dump/restore is not required for those running 16.X. |
| </para> |
| |
| <para> |
| However, if you have any self-referential foreign key constraints on |
| partitioned tables, it may be necessary to recreate those constraints |
| to ensure that they are being enforced correctly. See the second |
| changelog entry below. |
| </para> |
| |
| <para> |
| Also, if you have any BRIN bloom indexes, it may be advisable to |
| reindex them after updating. See the third changelog entry below. |
| </para> |
| |
| <para> |
| Also, if you are upgrading from a version earlier than 16.5, |
| see <xref linkend="release-16-5"/>. |
| </para> |
| </sect2> |
| |
| <sect2 id="release-16-9-changes"> |
| <title>Changes</title> |
| |
| <itemizedlist> |
| |
| <listitem> |
| <!-- |
| Author: Noah Misch <noah@leadboat.com> |
| Branch: master [627acc3ca] 2025-05-05 04:52:04 -0700 |
| Branch: REL_17_STABLE [ec5f89e8a] 2025-05-05 04:52:07 -0700 |
| Branch: REL_16_STABLE [d1264948f] 2025-05-05 04:52:07 -0700 |
| Branch: REL_15_STABLE [44ba3f55f] 2025-05-05 04:52:08 -0700 |
| Branch: REL_14_STABLE [3f2ab7393] 2025-05-05 04:52:08 -0700 |
| Branch: REL_13_STABLE [cbadeaca9] 2025-05-05 04:52:08 -0700 |
| Branch: master [5be213caa] 2025-05-05 04:52:04 -0700 |
| Branch: REL_17_STABLE [617d34908] 2025-05-05 04:52:07 -0700 |
| Branch: REL_16_STABLE [f3bb0b2c4] 2025-05-05 04:52:07 -0700 |
| Branch: REL_15_STABLE [45fe7e08f] 2025-05-05 04:52:08 -0700 |
| Branch: REL_14_STABLE [258cde839] 2025-05-05 04:52:08 -0700 |
| Branch: REL_13_STABLE [7279e5820] 2025-05-05 04:52:08 -0700 |
| --> |
| <para> |
| Avoid one-byte buffer overread when examining invalidly-encoded |
| strings that are claimed to be in GB18030 encoding |
| (Noah Misch, Andres Freund) |
| <ulink url="&commit_baseurl;d1264948f">§</ulink> |
| <ulink url="&commit_baseurl;f3bb0b2c4">§</ulink> |
| </para> |
| |
| <para> |
| While unlikely, a SIGSEGV crash could occur if an incomplete |
| multibyte character appeared at the end of memory. This was |
| possible both in the server and |
| in <application>libpq</application>-using applications. |
| (CVE-2025-4207) |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Álvaro Herrera <alvherre@kurilemu.de> |
| Branch: master [c83a38758] 2025-05-02 21:25:50 +0200 |
| Branch: REL_17_STABLE [f51ae3187] 2025-05-02 21:25:50 +0200 |
| Branch: REL_16_STABLE [1817d62ec] 2025-05-02 21:25:50 +0200 |
| Branch: REL_15_STABLE [6ba979cf5] 2025-05-02 21:25:50 +0200 |
| Branch: REL_14_STABLE [1649d153a] 2025-05-02 21:25:50 +0200 |
| Branch: REL_13_STABLE [b3a9c536d] 2025-05-02 21:25:50 +0200 |
| --> |
| <para> |
| Handle self-referential foreign keys on partitioned tables correctly |
| (Álvaro Herrera) |
| <ulink url="&commit_baseurl;1817d62ec">§</ulink> |
| </para> |
| |
| <para> |
| Creating or attaching partitions failed to make the required catalog |
| entries for a foreign-key constraint, if the table referenced by the |
| constraint was the same partitioned table. This resulted in failure |
| to enforce the constraint fully. |
| </para> |
| |
| <para> |
| To fix this, you should drop and recreate any self-referential |
| foreign keys on partitioned tables, if partitions have been created |
| or attached since the constraint was created. Bear in mind that |
| violating rows might already be present, in which case recreating |
| the constraint will fail, and you'll need to fix up those rows |
| before trying again. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Tomas Vondra <tomas.vondra@postgresql.org> |
| Branch: master [818245506] 2025-03-26 17:01:41 +0100 |
| Branch: REL_17_STABLE [cb0ad70b8] 2025-03-26 17:02:17 +0100 |
| Branch: REL_16_STABLE [ebcc799a7] 2025-03-26 17:02:50 +0100 |
| Branch: REL_15_STABLE [e064b770c] 2025-03-26 17:03:02 +0100 |
| Branch: REL_14_STABLE [6be02bbc8] 2025-03-26 17:03:06 +0100 |
| --> |
| <para> |
| Avoid data loss when merging compressed BRIN summaries |
| in <function>brin_bloom_union()</function> (Tomas Vondra) |
| <ulink url="&commit_baseurl;ebcc799a7">§</ulink> |
| </para> |
| |
| <para> |
| The code failed to account for decompression results not being |
| identical to the input objects, which would result in failure to add |
| some of the data to the merged summary, leading to missed rows in |
| index searches. |
| </para> |
| |
| <para> |
| This mistake was present back to v14 where BRIN bloom indexes were |
| introduced, but this code path was only rarely reached then. It's |
| substantially more likely to be hit in v17 because parallel index |
| builds now use the code. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Tom Lane <tgl@sss.pgh.pa.us> |
| Branch: master [f4e7756ef] 2025-03-12 11:47:38 -0400 |
| Branch: REL_17_STABLE [ca0830e5a] 2025-03-12 11:47:19 -0400 |
| Branch: REL_16_STABLE [fec43428c] 2025-03-12 11:47:19 -0400 |
| Branch: REL_15_STABLE [ae0be2f0b] 2025-03-12 11:47:19 -0400 |
| Branch: REL_14_STABLE [d3a29ae6a] 2025-03-12 11:47:19 -0400 |
| Branch: REL_13_STABLE [39af32f78] 2025-03-12 11:47:19 -0400 |
| Branch: REL_15_STABLE [317aba70e] 2025-03-12 11:27:59 -0400 |
| Branch: REL_14_STABLE [584f17a90] 2025-03-12 11:28:04 -0400 |
| Branch: REL_13_STABLE [28a7e31d0] 2025-03-12 11:28:11 -0400 |
| Branch: REL_15_STABLE [7713f4592] 2025-03-13 12:13:07 -0400 |
| Branch: REL_14_STABLE [1a20bc946] 2025-03-13 12:13:07 -0400 |
| Branch: REL_13_STABLE [b200180de] 2025-03-13 12:13:07 -0400 |
| --> |
| <para> |
| Fix unexpected <quote>attribute has wrong type</quote> errors |
| in <command>UPDATE</command>, <command>DELETE</command>, |
| and <command>MERGE</command> queries that use whole-row table |
| references to views or functions in <literal>FROM</literal> |
| (Tom Lane) |
| <ulink url="&commit_baseurl;fec43428c">§</ulink> |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Dean Rasheed <dean.a.rasheed@gmail.com> |
| Branch: master [8b6a0e239] 2025-03-29 09:58:40 +0000 |
| Branch: REL_17_STABLE [25303678a] 2025-03-29 09:50:14 +0000 |
| Branch: REL_16_STABLE [8d4cd3b4a] 2025-03-29 09:51:23 +0000 |
| Branch: REL_15_STABLE [14a33d3f0] 2025-03-29 09:52:18 +0000 |
| --> |
| <para> |
| Fix <command>MERGE</command> into a partitioned table |
| with <literal>DO NOTHING</literal> actions (Tender Wang) |
| <ulink url="&commit_baseurl;8d4cd3b4a">§</ulink> |
| </para> |
| |
| <para> |
| Some cases failed with <quote>unknown action in MERGE WHEN |
| clause</quote> errors. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Tom Lane <tgl@sss.pgh.pa.us> |
| Branch: master [7c8728494] 2025-04-15 12:08:34 -0400 |
| Branch: REL_17_STABLE [3c39c000c] 2025-04-15 12:08:34 -0400 |
| Branch: REL_16_STABLE [f04e0faa3] 2025-04-15 12:08:34 -0400 |
| Branch: REL_15_STABLE [97d671672] 2025-04-15 12:08:34 -0400 |
| Branch: REL_14_STABLE [4604928ed] 2025-04-15 12:08:34 -0400 |
| --> |
| <para> |
| Prevent failure in <command>INSERT</command> commands when the table |
| has a <literal>GENERATED</literal> column of a domain data type and |
| the domain's constraints disallow null values (Jian He) |
| <ulink url="&commit_baseurl;f04e0faa3">§</ulink> |
| </para> |
| |
| <para> |
| Constraint failure was reported even if the generation expression |
| produced a perfectly okay result. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Tom Lane <tgl@sss.pgh.pa.us> |
| Branch: master [691836405] 2025-04-05 15:01:48 -0400 |
| Branch: REL_17_STABLE [5e7be43f4] 2025-04-05 15:01:33 -0400 |
| Branch: REL_16_STABLE [1980ec2bc] 2025-04-05 15:01:33 -0400 |
| Branch: REL_15_STABLE [ede29a1e4] 2025-04-05 15:01:33 -0400 |
| Branch: REL_14_STABLE [754a3d82d] 2025-04-05 15:01:33 -0400 |
| Branch: REL_13_STABLE [e276b5829] 2025-04-05 15:01:33 -0400 |
| --> |
| <para> |
| Correctly process references to outer CTE names that appear within |
| a <literal>WITH</literal> clause attached to |
| an <command>INSERT</command>/<command>UPDATE</command>/<command>DELETE</command>/<command>MERGE</command> |
| command that's inside <literal>WITH</literal> (Tom Lane) |
| <ulink url="&commit_baseurl;1980ec2bc">§</ulink> |
| </para> |
| |
| <para> |
| The parser failed to detect disallowed recursion cases, nor did it |
| account for such references when sorting CTEs into a usable order. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Tom Lane <tgl@sss.pgh.pa.us> |
| Branch: master [fedfcf665] 2025-03-09 13:11:20 -0400 |
| Branch: REL_17_STABLE [43847dd5e] 2025-03-09 13:11:20 -0400 |
| Branch: REL_16_STABLE [a7aa9f21f] 2025-03-09 13:11:20 -0400 |
| --> |
| <para> |
| Don't try to parallelize <function>array_agg()</function> when the |
| argument is of an anonymous record type (Richard Guo, Tom Lane) |
| <ulink url="&commit_baseurl;a7aa9f21f">§</ulink> |
| </para> |
| |
| <para> |
| The protocol for communicating with parallel workers doesn't support |
| identifying the concrete record type that a worker is returning. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Tom Lane <tgl@sss.pgh.pa.us> |
| Branch: master [4618045be] 2025-03-13 16:07:55 -0400 |
| Branch: REL_17_STABLE [c826cd1b1] 2025-03-13 16:07:55 -0400 |
| Branch: REL_16_STABLE [0405982c7] 2025-03-13 16:07:55 -0400 |
| Branch: REL_15_STABLE [13dd6f772] 2025-03-13 16:07:55 -0400 |
| Branch: REL_14_STABLE [f7ae51312] 2025-03-13 16:07:55 -0400 |
| Branch: REL_13_STABLE [474aee3df] 2025-03-13 16:07:55 -0400 |
| --> |
| <para> |
| Fix <literal>ARRAY(<replaceable>subquery</replaceable>)</literal> |
| and <literal>ARRAY[<replaceable>expression, ...</replaceable>]</literal> |
| constructs to produce sane results when the input is of |
| type <type>int2vector</type> or <type>oidvector</type> (Tom Lane) |
| <ulink url="&commit_baseurl;0405982c7">§</ulink> |
| </para> |
| |
| <para> |
| This patch restores the behavior that existed |
| before <productname>PostgreSQL</productname> 9.5: the result is of |
| type <type>int2vector[]</type> or <type>oidvector[]</type>. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Tom Lane <tgl@sss.pgh.pa.us> |
| Branch: master [7fb880102] 2025-03-08 11:24:25 -0500 |
| Branch: REL_17_STABLE [99c01aadf] 2025-03-08 11:24:42 -0500 |
| Branch: REL_16_STABLE [61513da08] 2025-03-08 11:24:47 -0500 |
| Branch: REL_15_STABLE [e2921c0e9] 2025-03-08 11:24:52 -0500 |
| Branch: REL_14_STABLE [da85544ae] 2025-03-08 11:24:57 -0500 |
| Branch: REL_13_STABLE [f1c1bafcd] 2025-03-08 11:25:01 -0500 |
| --> |
| <para> |
| Fix possible erroneous reports of invalid affixes while parsing |
| <application>Ispell</application> dictionaries (Jacob Brazeal) |
| <ulink url="&commit_baseurl;61513da08">§</ulink> |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Tom Lane <tgl@sss.pgh.pa.us> |
| Branch: master [95f650674] 2025-03-03 12:43:44 -0500 |
| Branch: REL_17_STABLE [d6dd2a02b] 2025-03-03 12:43:29 -0500 |
| Branch: REL_16_STABLE [edc3bccd0] 2025-03-03 12:43:29 -0500 |
| Branch: REL_15_STABLE [1d180931c] 2025-03-03 12:43:29 -0500 |
| Branch: REL_14_STABLE [c75c830e2] 2025-03-03 12:43:29 -0500 |
| Branch: REL_13_STABLE [aac07b562] 2025-03-03 12:43:29 -0500 |
| Branch: master [bd178960c] 2025-04-02 11:13:01 -0400 |
| Branch: REL_17_STABLE [0941aadcd] 2025-04-02 11:13:01 -0400 |
| Branch: REL_16_STABLE [053222a97] 2025-04-02 11:13:01 -0400 |
| Branch: REL_15_STABLE [2d6cfb0cd] 2025-04-02 11:13:01 -0400 |
| Branch: REL_14_STABLE [d31d39cfe] 2025-04-02 11:13:01 -0400 |
| Branch: REL_13_STABLE [dd34cbfce] 2025-04-02 11:13:01 -0400 |
| --> |
| <para> |
| Fix <literal>ALTER TABLE ADD COLUMN</literal> to correctly handle |
| the case of a domain type that has a default |
| (Jian He, Tom Lane, Tender Wang) |
| <ulink url="&commit_baseurl;edc3bccd0">§</ulink> |
| <ulink url="&commit_baseurl;053222a97">§</ulink> |
| </para> |
| |
| <para> |
| If a domain type has a default, adding a column of that type (without |
| any explicit <literal>DEFAULT</literal> |
| clause) failed to install the domain's default |
| value in existing rows, instead leaving the new column null. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Tom Lane <tgl@sss.pgh.pa.us> |
| Branch: master [43b8e6c4a] 2025-04-04 20:11:48 -0400 |
| Branch: REL_17_STABLE [5e6e97fbf] 2025-04-04 20:11:48 -0400 |
| Branch: REL_16_STABLE [fb3a77fd9] 2025-04-04 20:11:48 -0400 |
| Branch: REL_15_STABLE [f5069f026] 2025-04-04 20:11:48 -0400 |
| --> |
| <para> |
| Repair misbehavior when there are duplicate column names in a |
| foreign key constraint's <literal>ON DELETE SET DEFAULT</literal> |
| or <literal>SET NULL</literal> action (Tom Lane) |
| <ulink url="&commit_baseurl;fb3a77fd9">§</ulink> |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Álvaro Herrera <alvherre@alvh.no-ip.org> |
| Branch: master [7bbc46213] 2025-03-04 20:07:30 +0100 |
| Branch: REL_17_STABLE [4e026be5f] 2025-03-04 20:07:30 +0100 |
| Branch: REL_16_STABLE [9ea5fe5b6] 2025-03-04 20:07:30 +0100 |
| Branch: REL_15_STABLE [bf1e2d2db] 2025-03-04 20:07:30 +0100 |
| Branch: REL_14_STABLE [931a1c023] 2025-03-04 20:07:30 +0100 |
| Branch: REL_13_STABLE [0f354e080] 2025-03-04 20:07:30 +0100 |
| --> |
| <para> |
| Improve the error message for disallowed attempts to alter the |
| properties of a foreign key constraint (Álvaro Herrera) |
| <ulink url="&commit_baseurl;9ea5fe5b6">§</ulink> |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Noah Misch <noah@leadboat.com> |
| Branch: master [2d5350cfb] 2025-04-20 08:28:48 -0700 |
| Branch: REL_17_STABLE [d0a049987] 2025-04-20 08:28:52 -0700 |
| Branch: REL_16_STABLE [5905e9935] 2025-04-20 08:28:52 -0700 |
| Branch: REL_15_STABLE [e0f53e669] 2025-04-20 08:28:52 -0700 |
| Branch: REL_14_STABLE [a61b67cd0] 2025-04-20 08:28:53 -0700 |
| Branch: REL_13_STABLE [d34b671a6] 2025-04-20 08:28:53 -0700 |
| --> |
| <para> |
| Avoid error when resetting |
| the <structfield>relhassubclass</structfield> flag of a temporary |
| table that's marked <literal>ON COMMIT DELETE ROWS</literal> |
| (Noah Misch) |
| <ulink url="&commit_baseurl;5905e9935">§</ulink> |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Michael Paquier <michael@paquier.xyz> |
| Branch: master [984410b92] 2025-02-21 17:30:56 +0900 |
| Branch: REL_17_STABLE [2e0f93d7c] 2025-02-21 17:31:01 +0900 |
| Branch: REL_16_STABLE [0af3ae468] 2025-02-21 17:31:02 +0900 |
| Branch: master [665cafe8a] 2025-02-21 20:37:31 +0900 |
| Branch: REL_17_STABLE [310907aaf] 2025-02-21 20:37:36 +0900 |
| Branch: REL_16_STABLE [514d47dfb] 2025-02-21 20:37:38 +0900 |
| --> |
| <para> |
| Add missing deparsing of the <literal>INDENT</literal> option |
| of <function>XMLSERIALIZE()</function> (Jim Jones) |
| <ulink url="&commit_baseurl;0af3ae468">§</ulink> |
| <ulink url="&commit_baseurl;514d47dfb">§</ulink> |
| </para> |
| |
| <para> |
| Previously, views or rules |
| using <literal>XMLSERIALIZE(... INDENT)</literal> were dumped |
| without the <literal>INDENT</literal> clause, causing incorrect |
| results after restore. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: David Rowley <drowley@postgresql.org> |
| Branch: master [d47f92224] 2025-04-20 22:12:07 +1200 |
| Branch: REL_17_STABLE [065ce49a1] 2025-04-20 22:12:37 +1200 |
| Branch: REL_16_STABLE [887a23237] 2025-04-20 22:12:59 +1200 |
| --> |
| <para> |
| Avoid premature evaluation of the arguments of an aggregate function |
| that has both <literal>FILTER</literal> and <literal>ORDER |
| BY</literal> (or <literal>DISTINCT</literal>) options (David Rowley) |
| <ulink url="&commit_baseurl;887a23237">§</ulink> |
| </para> |
| |
| <para> |
| If there is <literal>ORDER BY</literal> |
| or <literal>DISTINCT</literal>, we consider pre-sorting the |
| aggregate input values rather than doing the sort within the Agg |
| plan node. But this is problematic if the aggregate inputs include |
| expressions that could fail (for example, a division where some of |
| the input divisors could be zero) and there is |
| a <literal>FILTER</literal> clause that's meant to prevent such |
| failures. Pre-sorting would push the expression evaluations to |
| before the <literal>FILTER</literal> test, allowing the failures to |
| happen anyway. Avoid this by not pre-sorting if there's |
| a <literal>FILTER</literal> and the input expressions are anything |
| more complex than a simple Var or Const. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: David Rowley <drowley@postgresql.org> |
| Branch: master [b136db07c] 2025-04-02 11:56:29 +1300 |
| Branch: REL_17_STABLE [5672a8399] 2025-04-02 11:57:27 +1300 |
| Branch: REL_16_STABLE [5a0840b76] 2025-04-02 11:57:54 +1300 |
| Branch: REL_15_STABLE [a7f213b11] 2025-04-02 11:58:16 +1300 |
| Branch: REL_14_STABLE [b68f664bb] 2025-04-02 11:58:37 +1300 |
| --> |
| <para> |
| Fix planner's failure to identify more than one hashable |
| ScalarArrayOpExpr subexpression within a top-level expression |
| (David Geier) |
| <ulink url="&commit_baseurl;5a0840b76">§</ulink> |
| </para> |
| |
| <para> |
| This resulted in unnecessarily-inefficient execution of any |
| additional subexpressions that could have been processed with a hash |
| table (that is, <literal>IN</literal>, <literal>NOT IN</literal>, |
| or <literal>= ANY</literal> clauses with all-constant right-hand |
| sides). |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Andres Freund <andres@anarazel.de> |
| Branch: master [459e7bf8e] 2025-04-02 14:54:20 -0400 |
| Branch: REL_17_STABLE [78cb2466f] 2025-04-02 14:42:03 -0400 |
| Branch: REL_16_STABLE [980727b84] 2025-04-02 14:46:31 -0400 |
| Branch: REL_15_STABLE [77d90d6d6] 2025-04-02 14:50:03 -0400 |
| Branch: REL_14_STABLE [4934d3875] 2025-04-02 14:50:44 -0400 |
| Branch: REL_13_STABLE [b9ec8125d] 2025-04-02 14:50:49 -0400 |
| --> |
| <para> |
| Disable <quote>skip fetch</quote> optimization in bitmap heap scan |
| (Matthias van de Meent) |
| <ulink url="&commit_baseurl;980727b84">§</ulink> |
| </para> |
| |
| <para> |
| It turns out that this optimization can result in returning dead |
| tuples when a concurrent vacuum marks a page all-visible. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Tom Lane <tgl@sss.pgh.pa.us> |
| Branch: master [0f21db36d] 2025-03-06 11:54:31 -0500 |
| Branch: REL_17_STABLE [9094eb25b] 2025-03-06 11:54:27 -0500 |
| Branch: REL_16_STABLE [d52221cf0] 2025-03-06 11:54:27 -0500 |
| Branch: REL_15_STABLE [2d313375c] 2025-03-06 11:54:27 -0500 |
| Branch: REL_14_STABLE [e2a6934a8] 2025-03-06 11:54:27 -0500 |
| Branch: REL_13_STABLE [308d0d443] 2025-03-06 11:54:27 -0500 |
| Branch: master [e708ffe79] 2025-04-12 12:28:02 -0400 |
| Branch: REL_17_STABLE [8c153fcfa] 2025-04-12 12:27:46 -0400 |
| Branch: REL_16_STABLE [4b65b085a] 2025-04-12 12:27:46 -0400 |
| Branch: REL_15_STABLE [9a8c16aec] 2025-04-12 12:27:46 -0400 |
| Branch: REL_14_STABLE [1b47a112a] 2025-04-12 12:27:46 -0400 |
| Branch: REL_13_STABLE [c7597a1d3] 2025-04-12 12:27:46 -0400 |
| --> |
| <para> |
| Fix performance issues in GIN index search startup when there are |
| many search keys (Tom Lane, Vinod Sridharan) |
| <ulink url="&commit_baseurl;d52221cf0">§</ulink> |
| <ulink url="&commit_baseurl;4b65b085a">§</ulink> |
| </para> |
| |
| <para> |
| An indexable clause with many keys (for example, <literal>jsonbcol |
| ?| array[...]</literal> with tens of thousands of array elements) |
| took O(N<superscript>2</superscript>) time to start up, and was |
| uncancelable for that interval too. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Álvaro Herrera <alvherre@alvh.no-ip.org> |
| Branch: master [17ce344f8] 2025-03-11 12:50:35 +0100 |
| Branch: REL_17_STABLE [ade976f8b] 2025-03-11 12:50:35 +0100 |
| Branch: REL_16_STABLE [e0d8f49a3] 2025-03-11 12:50:35 +0100 |
| Branch: REL_15_STABLE [5d8c58800] 2025-03-11 12:50:35 +0100 |
| Branch: REL_14_STABLE [5144e1f8f] 2025-03-11 12:50:35 +0100 |
| Branch: REL_13_STABLE [f5b4a0b49] 2025-03-11 12:50:35 +0100 |
| --> |
| <para> |
| Detect missing support procedures in a BRIN index operator class, |
| and report an error instead of crashing (Álvaro Herrera) |
| <ulink url="&commit_baseurl;e0d8f49a3">§</ulink> |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Heikki Linnakangas <heikki.linnakangas@iki.fi> |
| Branch: master [af717317a] 2025-03-12 20:53:09 +0200 |
| Branch: REL_17_STABLE [e731e9d5e] 2025-03-12 20:53:16 +0200 |
| Branch: REL_16_STABLE [004dbbd72] 2025-03-12 20:53:19 +0200 |
| Branch: REL_15_STABLE [d4d34c08c] 2025-03-12 20:53:23 +0200 |
| Branch: REL_14_STABLE [d2fb076be] 2025-03-12 20:53:25 +0200 |
| --> |
| <para> |
| Respond to interrupts (such as query cancel) while waiting for |
| asynchronous subplans of an Append plan node (Heikki Linnakangas) |
| <ulink url="&commit_baseurl;004dbbd72">§</ulink> |
| </para> |
| |
| <para> |
| Previously, nothing would happen until one of the subplans becomes |
| ready. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Michael Paquier <michael@paquier.xyz> |
| Branch: master [039549d70] 2025-04-08 07:57:19 +0900 |
| Branch: REL_17_STABLE [5cbbe70a9] 2025-04-08 07:58:47 +0900 |
| Branch: REL_16_STABLE [e2a82cd23] 2025-04-08 07:58:50 +0900 |
| --> |
| <para> |
| Report the I/O statistics of active WAL senders more frequently |
| (Bertrand Drouvot) |
| <ulink url="&commit_baseurl;e2a82cd23">§</ulink> |
| </para> |
| |
| <para> |
| Previously, the <structname>pg_stat_io</structname> view failed to |
| accumulate I/O performed by a WAL sender until that process exited. |
| Now such I/O will be reported after at most one second's delay. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Michael Paquier <michael@paquier.xyz> |
| Branch: master [2e5779083] 2025-04-11 10:00:21 +0900 |
| Branch: REL_17_STABLE [3339847cc] 2025-04-11 10:02:15 +0900 |
| Branch: REL_16_STABLE [c922ae2c4] 2025-04-11 10:02:17 +0900 |
| Branch: REL_15_STABLE [ec59500a1] 2025-04-11 10:02:18 +0900 |
| Branch: REL_14_STABLE [873aff945] 2025-04-11 10:02:20 +0900 |
| Branch: REL_13_STABLE [e2f42f812] 2025-04-11 10:02:21 +0900 |
| --> |
| <para> |
| Fix race condition in handling |
| of <varname>synchronous_standby_names</varname> immediately after |
| startup (Melnikov Maksim, Michael Paquier) |
| <ulink url="&commit_baseurl;c922ae2c4">§</ulink> |
| </para> |
| |
| <para> |
| For a short period after system startup, backends might fail to wait |
| for synchronous commit even |
| though <varname>synchronous_standby_names</varname> is enabled. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Richard Guo <rguo@postgresql.org> |
| Branch: master [7c82b4f71] 2025-03-26 17:46:51 +0900 |
| Branch: REL_17_STABLE [34fbfe1f5] 2025-03-26 17:49:57 +0900 |
| Branch: REL_16_STABLE [de1484736] 2025-03-26 17:51:44 +0900 |
| --> |
| <para> |
| Avoid infinite loop if <varname>scram_iterations</varname> is set to |
| <systemitem>INT_MAX</systemitem> (Kevin K Biju) |
| <ulink url="&commit_baseurl;de1484736">§</ulink> |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Tom Lane <tgl@sss.pgh.pa.us> |
| Branch: master [e33f2335a] 2025-04-05 12:13:35 -0400 |
| Branch: REL_17_STABLE [717e8a1e5] 2025-04-05 12:13:35 -0400 |
| Branch: REL_16_STABLE [ca54f9b70] 2025-04-05 12:13:35 -0400 |
| --> |
| <para> |
| Avoid possible crashes due to double transformation |
| of <function>json_array()</function>'s subquery (Tom Lane) |
| <ulink url="&commit_baseurl;ca54f9b70">§</ulink> |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Tom Lane <tgl@sss.pgh.pa.us> |
| Branch: master [00d61a08c] 2025-03-01 14:22:56 -0500 |
| Branch: REL_17_STABLE [d69c78108] 2025-03-01 14:22:56 -0500 |
| Branch: REL_16_STABLE [5c64ece8a] 2025-03-01 14:22:56 -0500 |
| Branch: REL_15_STABLE [c7303f01c] 2025-03-01 14:22:56 -0500 |
| Branch: REL_14_STABLE [76fbb38ef] 2025-03-01 14:22:56 -0500 |
| Branch: REL_13_STABLE [ebe919e95] 2025-03-01 14:22:56 -0500 |
| --> |
| <para> |
| Fix <function>pg_strtof()</function> to not crash with null endptr |
| (Alexander Lakhin, Tom Lane) |
| <ulink url="&commit_baseurl;5c64ece8a">§</ulink> |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Daniel Gustafsson <dgustafsson@postgresql.org> |
| Branch: master [058b5152f] 2025-03-27 22:57:34 +0100 |
| Branch: REL_17_STABLE [8afec4ef6] 2025-03-27 22:57:34 +0100 |
| Branch: REL_16_STABLE [8d48e84c5] 2025-03-27 22:57:34 +0100 |
| --> |
| <para> |
| Fix crash after out-of-memory in certain GUC assignments (Daniel |
| Gustafsson) |
| <ulink url="&commit_baseurl;8d48e84c5">§</ulink> |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Tom Lane <tgl@sss.pgh.pa.us> |
| Branch: master [b464e51ab] 2025-02-18 21:13:54 -0500 |
| Branch: REL_17_STABLE [7edd2cbc5] 2025-02-18 21:23:59 -0500 |
| Branch: REL_16_STABLE [c0c364fa1] 2025-02-18 21:23:59 -0500 |
| Branch: REL_15_STABLE [9c46d902b] 2025-02-18 21:23:59 -0500 |
| Branch: REL_14_STABLE [8388cae55] 2025-02-18 21:24:12 -0500 |
| Branch: REL_13_STABLE [197427fb3] 2025-02-18 21:24:12 -0500 |
| --> |
| <para> |
| Avoid crash when a Snowball stemmer encounters an out-of-memory |
| condition (Maksim Korotkov) |
| <ulink url="&commit_baseurl;c0c364fa1">§</ulink> |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Masahiko Sawada <msawada@postgresql.org> |
| Branch: master [fd09c1316] 2025-04-03 10:30:00 -0700 |
| Branch: REL_17_STABLE [a4309e85f] 2025-04-03 10:30:02 -0700 |
| Branch: REL_16_STABLE [87e8599e0] 2025-04-03 10:30:05 -0700 |
| --> |
| <para> |
| Disallow copying of invalidated replication slots (Shlok Kyal) |
| <ulink url="&commit_baseurl;87e8599e0">§</ulink> |
| </para> |
| |
| <para> |
| This prevents trouble when the invalid slot points to WAL that's |
| already been removed. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Masahiko Sawada <msawada@postgresql.org> |
| Branch: master [48796a98d] 2025-02-24 14:03:04 -0800 |
| Branch: REL_17_STABLE [174952ece] 2025-02-24 14:03:07 -0800 |
| Branch: REL_16_STABLE [cc628f661] 2025-02-24 14:03:10 -0800 |
| --> |
| <para> |
| Disallow restoring logical replication slots on standby servers that |
| are not in hot-standby mode (Masahiko Sawada) |
| <ulink url="&commit_baseurl;cc628f661">§</ulink> |
| </para> |
| |
| <para> |
| This prevents a scenario where the slot could remain valid after |
| promotion even if <varname>wal_level</varname> is too low. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Amit Kapila <akapila@postgresql.org> |
| Branch: master [aaf9e95e8] 2025-04-28 11:35:54 +0530 |
| Branch: REL_17_STABLE [36148b22e] 2025-04-28 11:22:07 +0530 |
| Branch: REL_16_STABLE [21a7caeeb] 2025-04-28 11:09:27 +0530 |
| Branch: REL_15_STABLE [f6429bd7d] 2025-04-28 10:56:24 +0530 |
| Branch: REL_14_STABLE [1f63b3626] 2025-04-28 10:34:45 +0530 |
| Branch: REL_13_STABLE [d65485b02] 2025-04-28 11:55:00 +0530 |
| --> |
| <para> |
| Prevent over-advancement of catalog xmin in <quote>fast |
| forward</quote> mode of logical decoding (Zhijie Hou) |
| <ulink url="&commit_baseurl;21a7caeeb">§</ulink> |
| </para> |
| |
| <para> |
| This mistake could allow deleted catalog entries to be vacuumed away |
| even though they were still potentially needed by the WAL-reading |
| process. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Amit Kapila <akapila@postgresql.org> |
| Branch: master [4909b38af] 2025-04-10 13:14:40 +0530 |
| Branch: REL_17_STABLE [cadaf0ac4] 2025-04-10 12:57:10 +0530 |
| Branch: REL_16_STABLE [9a2f8b4f0] 2025-04-10 12:44:11 +0530 |
| Branch: REL_15_STABLE [9f21be08e] 2025-04-10 12:31:14 +0530 |
| Branch: REL_14_STABLE [0434033e8] 2025-04-10 12:22:30 +0530 |
| Branch: REL_13_STABLE [247ee9415] 2025-04-24 10:31:40 +0530 |
| Branch: master [50b8ad30f] 2025-04-25 12:46:02 +0530 |
| Branch: REL_17_STABLE [d96206f25] 2025-04-25 12:32:00 +0530 |
| Branch: REL_16_STABLE [9987c9466] 2025-04-25 12:17:40 +0530 |
| Branch: REL_15_STABLE [90bc4523f] 2025-04-25 12:05:52 +0530 |
| Branch: REL_14_STABLE [bb1bc9fa9] 2025-04-25 11:53:27 +0530 |
| Branch: REL_13_STABLE [4164d6976] 2025-04-25 11:45:40 +0530 |
| --> |
| <para> |
| Avoid data loss when DDL operations that don't take a strong lock |
| affect tables that are being logically replicated (Shlok Kyal, |
| Hayato Kuroda) |
| <ulink url="&commit_baseurl;9a2f8b4f0">§</ulink> |
| <ulink url="&commit_baseurl;9987c9466">§</ulink> |
| </para> |
| |
| <para> |
| The catalog changes caused by the DDL command were not reflected |
| into WAL-decoding processes, allowing them to decode subsequent |
| changes using stale catalog data, probably resulting in data |
| corruption. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Amit Kapila <akapila@postgresql.org> |
| Branch: master [0e091ce40] 2025-04-23 11:08:24 +0530 |
| Branch: REL_17_STABLE [05676d87e] 2025-04-23 10:52:36 +0530 |
| Branch: REL_16_STABLE [0de091a4b] 2025-04-23 10:35:54 +0530 |
| --> |
| <para> |
| Prevent incorrect reset of replication origin when an apply worker |
| encounters an error but the error is caught and does not result in |
| worker exit (Hayato Kuroda) |
| <ulink url="&commit_baseurl;0de091a4b">§</ulink> |
| </para> |
| |
| <para> |
| This mistake could allow duplicate data to be applied. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Heikki Linnakangas <heikki.linnakangas@iki.fi> |
| Branch: master [236750317] 2025-03-10 17:07:38 +0200 |
| Branch: REL_17_STABLE [c1dd3a944] 2025-03-10 17:07:59 +0200 |
| Branch: REL_16_STABLE [8171d2dae] 2025-03-10 17:08:02 +0200 |
| Branch: REL_15_STABLE [50c589992] 2025-03-10 17:08:05 +0200 |
| Branch: REL_14_STABLE [2ef048855] 2025-03-10 17:08:07 +0200 |
| Branch: REL_13_STABLE [9b3914f18] 2025-03-10 17:08:10 +0200 |
| Branch: master [f7c566a1a] 2025-03-10 18:58:10 +0200 |
| Branch: REL_17_STABLE [f1ef111a0] 2025-03-10 19:00:08 +0200 |
| Branch: REL_16_STABLE [324e0b656] 2025-03-10 19:01:51 +0200 |
| Branch: REL_15_STABLE [d765226cb] 2025-03-10 19:01:58 +0200 |
| Branch: REL_14_STABLE [136e68b46] 2025-03-10 19:02:02 +0200 |
| Branch: REL_13_STABLE [6c1e79589] 2025-03-10 19:02:08 +0200 |
| --> |
| <para> |
| Avoid duplicate snapshot creation in logical replication index |
| lookups (Heikki Linnakangas) |
| <ulink url="&commit_baseurl;8171d2dae">§</ulink> |
| <ulink url="&commit_baseurl;324e0b656">§</ulink> |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Amit Kapila <akapila@postgresql.org> |
| Branch: master [b4e0d0c53] 2025-02-21 14:34:40 +0530 |
| Branch: REL_17_STABLE [0ae1245e0] 2025-02-21 14:21:29 +0530 |
| Branch: REL_16_STABLE [1c2a2354c] 2025-02-21 14:08:27 +0530 |
| --> |
| <para> |
| Improve detection of mixed-origin subscriptions |
| (Hou Zhijie, Shlok Kyal) |
| <ulink url="&commit_baseurl;1c2a2354c">§</ulink> |
| </para> |
| |
| <para> |
| Subscription creation gives a warning if a subscribed-to table is |
| also being followed through other publications, since that could |
| cause duplicate data to be received. This change improves that |
| logic to also detect cases where a partition parent or child table |
| is the one being followed through another publication. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Michael Paquier <michael@paquier.xyz> |
| Branch: master [71f17823b] 2025-02-20 10:42:20 +0900 |
| Branch: REL_17_STABLE [29cce279b] 2025-02-20 10:43:35 +0900 |
| Branch: REL_16_STABLE [b4969a296] 2025-02-20 10:43:38 +0900 |
| Branch: REL_15_STABLE [62bed7bb0] 2025-02-20 10:43:40 +0900 |
| --> |
| <para> |
| Fix wrong checkpoint details in error message about incorrect |
| recovery timeline choice (David Steele) |
| <ulink url="&commit_baseurl;b4969a296">§</ulink> |
| </para> |
| |
| <para> |
| If the requested recovery timeline is not reachable, the reported |
| checkpoint and timeline should be the values read from the |
| backup_label, if there is one. This message previously reported |
| values from the control file, which is correct when recovering from |
| the control file without a backup_label, but not when there is a |
| backup_label. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Michael Paquier <michael@paquier.xyz> |
| Branch: master [1f7878c33] 2025-04-23 13:53:29 +0900 |
| Branch: REL_17_STABLE [4b6331e0f] 2025-04-23 13:54:53 +0900 |
| Branch: REL_16_STABLE [e9ab8677b] 2025-04-23 13:54:56 +0900 |
| Branch: REL_15_STABLE [c1201ffcf] 2025-04-23 13:54:57 +0900 |
| --> |
| <para> |
| Remove incorrect assertion |
| in <function>pgstat_report_stat()</function> (Michael Paquier) |
| <ulink url="&commit_baseurl;e9ab8677b">§</ulink> |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Heikki Linnakangas <heikki.linnakangas@iki.fi> |
| Branch: master [7afca7ede] 2025-04-04 13:49:00 +0300 |
| Branch: REL_17_STABLE [6526d0794] 2025-04-04 13:49:21 +0300 |
| Branch: REL_16_STABLE [419321398] 2025-04-04 13:49:51 +0300 |
| Branch: REL_15_STABLE [3c0fe75c4] 2025-04-04 13:50:00 +0300 |
| Branch: REL_14_STABLE [a749c6f18] 2025-04-04 13:50:12 +0300 |
| Branch: REL_13_STABLE [b92482dc3] 2025-04-04 13:50:52 +0300 |
| --> |
| <para> |
| Fix overly-strict assertion |
| in <function>gistFindCorrectParent()</function> (Heikki Linnakangas) |
| <ulink url="&commit_baseurl;419321398">§</ulink> |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Heikki Linnakangas <heikki.linnakangas@iki.fi> |
| Branch: master [2817525f0] 2025-03-23 20:41:16 +0200 |
| Branch: REL_17_STABLE [302ce5bd9] 2025-03-23 20:41:52 +0200 |
| Branch: REL_16_STABLE [2f33de3cd] 2025-03-23 20:41:54 +0200 |
| Branch: REL_15_STABLE [b30c77a0e] 2025-03-23 20:41:57 +0200 |
| Branch: REL_14_STABLE [66235baab] 2025-03-23 20:41:59 +0200 |
| --> |
| <para> |
| Fix rare assertion failure in standby servers when the primary is |
| restarted (Heikki Linnakangas) |
| <ulink url="&commit_baseurl;2f33de3cd">§</ulink> |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Tom Lane <tgl@sss.pgh.pa.us> |
| Branch: master [7fe312f60] 2025-03-21 11:30:42 -0400 |
| Branch: REL_17_STABLE [1353b1161] 2025-03-21 11:30:42 -0400 |
| Branch: REL_16_STABLE [a28c1fb61] 2025-03-21 11:30:42 -0400 |
| Branch: REL_15_STABLE [5e56efa7c] 2025-03-21 11:30:42 -0400 |
| Branch: REL_14_STABLE [c196c610b] 2025-03-21 11:30:42 -0400 |
| Branch: REL_13_STABLE [0f60e1fba] 2025-03-21 11:30:42 -0400 |
| --> |
| <para> |
| In PL/pgSQL, avoid <quote>unexpected plan node type</quote> error |
| when a scrollable cursor is defined on a |
| simple <literal>SELECT <replaceable>expression</replaceable></literal> |
| query (Andrei Lepikhov) |
| <ulink url="&commit_baseurl;a28c1fb61">§</ulink> |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Tom Lane <tgl@sss.pgh.pa.us> |
| Branch: master [1fc340362] 2025-04-16 13:31:59 -0400 |
| Branch: REL_17_STABLE [3424c1075] 2025-04-16 13:31:44 -0400 |
| Branch: REL_16_STABLE [a25f21d99] 2025-04-16 13:31:44 -0400 |
| Branch: REL_15_STABLE [7144cd538] 2025-04-16 13:31:44 -0400 |
| Branch: REL_14_STABLE [148cc0105] 2025-04-16 13:31:44 -0400 |
| Branch: REL_13_STABLE [6a3e57865] 2025-04-16 13:31:44 -0400 |
| --> |
| <para> |
| Don't try to drop individual index partitions |
| in <application>pg_dump</application>'s <option>--clean</option> |
| mode (Jian He) |
| <ulink url="&commit_baseurl;a25f21d99">§</ulink> |
| </para> |
| |
| <para> |
| The server rejects such <command>DROP</command> commands. That has |
| no real consequences, since the partitions will go away anyway in |
| the subsequent <command>DROP</command>s of either their parent |
| tables or their partitioned index. However, the error reported for |
| the attempted drop causes problems when restoring |
| in <option>--single-transaction</option> mode. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Tom Lane <tgl@sss.pgh.pa.us> |
| Branch: master [29d75b25b] 2025-02-21 13:37:15 -0500 |
| Branch: REL_17_STABLE [16eff4261] 2025-02-21 13:37:15 -0500 |
| Branch: REL_16_STABLE [d850a6600] 2025-02-21 13:37:16 -0500 |
| Branch: REL_15_STABLE [6df3be415] 2025-02-21 13:37:16 -0500 |
| Branch: REL_14_STABLE [ce1475acd] 2025-02-21 13:37:16 -0500 |
| Branch: REL_13_STABLE [5302ff95c] 2025-02-21 13:37:12 -0500 |
| --> |
| <para> |
| In <application>pg_dumpall</application>, avoid emitting invalid |
| role <command>GRANT</command> commands |
| if <structname>pg_auth_members</structname> contains invalid role |
| OIDs (Tom Lane) |
| <ulink url="&commit_baseurl;d850a6600">§</ulink> |
| </para> |
| |
| <para> |
| Instead, print a warning and skip the entry. This copes better with |
| catalog corruption that has been seen to occur in back branches as a |
| result of race conditions between <command>GRANT</command> |
| and <command>DROP ROLE</command>. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Michael Paquier <michael@paquier.xyz> |
| Branch: master [2a083ab80] 2025-02-28 10:15:29 +0900 |
| Branch: REL_17_STABLE [ee78823ff] 2025-02-28 10:15:32 +0900 |
| Branch: REL_16_STABLE [9ca2145b0] 2025-02-28 10:15:34 +0900 |
| Author: Jeff Davis <jdavis@postgresql.org> |
| Branch: master [945126234] 2025-04-03 11:04:37 -0700 |
| Branch: REL_17_STABLE [0851b6573] 2025-04-06 09:13:43 -0700 |
| Branch: REL_16_STABLE [57467ec7b] 2025-04-06 09:14:42 -0700 |
| Author: Michael Paquier <michael@paquier.xyz> |
| Branch: master [48e4ae9a0] 2025-02-27 14:05:51 +0900 |
| Branch: REL_17_STABLE [f903d4da9] 2025-02-27 14:05:55 +0900 |
| Branch: REL_16_STABLE [816149dc6] 2025-02-27 14:05:57 +0900 |
| Branch: REL_15_STABLE [ec741d480] 2025-02-27 14:05:58 +0900 |
| Branch: REL_14_STABLE [35a591a04] 2025-02-27 14:06:00 +0900 |
| --> |
| <para> |
| In <application>pg_amcheck</application> |
| and <application>pg_upgrade</application>, use the correct function |
| to free allocations made by <application>libpq</application> |
| (Michael Paquier, Ranier Vilela) |
| <ulink url="&commit_baseurl;9ca2145b0">§</ulink> |
| <ulink url="&commit_baseurl;57467ec7b">§</ulink> |
| <ulink url="&commit_baseurl;816149dc6">§</ulink> |
| </para> |
| |
| <para> |
| These oversights could result in crashes in certain Windows build |
| configurations, such as a debug build |
| of <application>libpq</application> used by a non-debug build of the |
| calling application. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Noah Misch <noah@leadboat.com> |
| Branch: REL_16_STABLE [82a8f0f46] 2025-04-03 09:33:58 -0700 |
| Branch: REL_15_STABLE [63f6ecb6b] 2025-04-03 09:34:01 -0700 |
| Branch: REL_14_STABLE [a8a918937] 2025-04-03 09:34:01 -0700 |
| Branch: REL_13_STABLE [186c586c3] 2025-04-03 09:34:02 -0700 |
| Author: Andres Freund <andres@anarazel.de> |
| Branch: REL_15_STABLE [9e129a224] 2025-04-03 09:34:01 -0700 |
| Branch: REL_14_STABLE [aa435d7c4] 2025-04-03 09:34:01 -0700 |
| Branch: REL_13_STABLE [5a3d5c083] 2025-04-03 09:34:02 -0700 |
| --> |
| <para> |
| Allow <filename>contrib/dblink</filename> queries to be interrupted |
| by query cancel (Noah Misch) |
| <ulink url="&commit_baseurl;82a8f0f46">§</ulink> |
| </para> |
| |
| <para> |
| This change back-patches a v17-era fix. It prevents possible hangs |
| in <command>CREATE DATABASE</command> and <command>DROP |
| DATABASE</command> due to failure to detect deadlocks. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Tom Lane <tgl@sss.pgh.pa.us> |
| Branch: master [d05996340] 2025-04-19 16:37:42 -0400 |
| Branch: REL_17_STABLE [ecb8e5641] 2025-04-19 16:37:42 -0400 |
| Branch: REL_16_STABLE [2d33cf7b8] 2025-04-19 16:37:42 -0400 |
| Branch: REL_15_STABLE [90a3fd811] 2025-04-19 16:37:42 -0400 |
| Branch: REL_14_STABLE [3c2ea65bd] 2025-04-19 16:37:43 -0400 |
| Branch: REL_13_STABLE [3f9132ed2] 2025-04-19 16:37:43 -0400 |
| --> |
| <para> |
| Avoid crashing with corrupt input data |
| in <filename>contrib/pageinspect</filename>'s |
| <function>heap_page_items()</function> (Dmitry Kovalenko) |
| <ulink url="&commit_baseurl;2d33cf7b8">§</ulink> |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Tom Lane <tgl@sss.pgh.pa.us> |
| Branch: master [4623d7144] 2025-03-27 13:20:23 -0400 |
| Branch: REL_17_STABLE [51d038da8] 2025-03-27 13:20:23 -0400 |
| Branch: REL_16_STABLE [41ed749e4] 2025-03-27 13:20:23 -0400 |
| Branch: REL_15_STABLE [0e86bad38] 2025-03-27 13:20:23 -0400 |
| Branch: REL_14_STABLE [5ff827389] 2025-03-27 13:20:23 -0400 |
| Branch: REL_13_STABLE [db8238da4] 2025-03-27 13:20:23 -0400 |
| --> |
| <para> |
| Prevent assertion failure |
| in <filename>contrib/pg_freespacemap</filename>'s |
| <function>pg_freespacemap()</function> (Tender Wang) |
| <ulink url="&commit_baseurl;41ed749e4">§</ulink> |
| </para> |
| |
| <para> |
| Applying <function>pg_freespacemap()</function> to a relation |
| lacking storage (such as a view) caused an assertion failure, |
| although there was no ill effect in non-assert builds. |
| Add an error check to reject that case. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Tom Lane <tgl@sss.pgh.pa.us> |
| Branch: master [6da2ba1d8] 2025-04-01 16:50:09 -0400 |
| Branch: REL_17_STABLE [915e88968] 2025-04-01 16:49:51 -0400 |
| Branch: REL_16_STABLE [a39eb9c77] 2025-04-01 16:49:51 -0400 |
| Branch: REL_15_STABLE [0de9560ba] 2025-04-01 16:49:51 -0400 |
| Branch: REL_14_STABLE [71790aef1] 2025-04-01 16:49:51 -0400 |
| Branch: REL_13_STABLE [e4440a73c] 2025-04-01 16:49:51 -0400 |
| --> |
| <para> |
| Fix build failure on macOS 15.4 (Tom Lane, Peter Eisentraut) |
| <ulink url="&commit_baseurl;a39eb9c77">§</ulink> |
| </para> |
| |
| <para> |
| This macOS update broke our configuration probe |
| for <function>strchrnul()</function>. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Tom Lane <tgl@sss.pgh.pa.us> |
| Branch: master [368c3fbf9] 2025-04-30 11:13:49 -0400 |
| Branch: REL_17_STABLE [5d5970b9f] 2025-04-30 11:14:01 -0400 |
| Branch: REL_16_STABLE [e076120d9] 2025-04-30 11:14:06 -0400 |
| Branch: REL_15_STABLE [a144cf145] 2025-04-30 11:14:10 -0400 |
| Branch: REL_14_STABLE [fa4244a43] 2025-04-30 11:14:15 -0400 |
| Branch: REL_13_STABLE [9da548df3] 2025-04-30 11:14:19 -0400 |
| --> |
| <para> |
| Update time zone data files to <application>tzdata</application> |
| release 2025b for DST law changes in Chile, plus historical |
| corrections for Iran (Tom Lane) |
| <ulink url="&commit_baseurl;e076120d9">§</ulink> |
| </para> |
| |
| <para> |
| There is a new time zone America/Coyhaique for Chile's Aysén Region, |
| to account for it changing to UTC-03 year-round and thus diverging |
| from America/Santiago. |
| </para> |
| </listitem> |
| |
| </itemizedlist> |
| |
| </sect2> |
| </sect1> |
| |
| <sect1 id="release-16-8"> |
| <title>Release 16.8</title> |
| |
| <formalpara> |
| <title>Release date:</title> |
| <para>2025-02-20</para> |
| </formalpara> |
| |
| <para> |
| This release contains a few fixes from 16.7. |
| For information about new features in major release 16, see |
| <xref linkend="release-16"/>. |
| </para> |
| |
| <sect2 id="release-16-8-migration"> |
| <title>Migration to Version 16.8</title> |
| |
| <para> |
| A dump/restore is not required for those running 16.X. |
| </para> |
| |
| <para> |
| However, if you are upgrading from a version earlier than 16.5, |
| see <xref linkend="release-16-5"/>. |
| </para> |
| </sect2> |
| |
| <sect2 id="release-16-8-changes"> |
| <title>Changes</title> |
| |
| <itemizedlist> |
| |
| <listitem> |
| <!-- |
| Author: Andres Freund <andres@anarazel.de> |
| Branch: master [efdadeb22] 2025-02-14 18:09:19 -0500 |
| Branch: REL_17_STABLE [a92db3d02] 2025-02-14 18:09:21 -0500 |
| Branch: REL_16_STABLE [111f4dd27] 2025-02-14 18:09:23 -0500 |
| Branch: REL_15_STABLE [22ffbbf24] 2025-02-14 18:09:24 -0500 |
| Branch: REL_14_STABLE [985908df1] 2025-02-14 18:09:25 -0500 |
| Branch: REL_13_STABLE [1f7a05324] 2025-02-14 18:09:27 -0500 |
| Author: Tom Lane <tgl@sss.pgh.pa.us> |
| Branch: master [9f45e6a91] 2025-02-15 16:20:21 -0500 |
| Branch: REL_17_STABLE [3abe6e04c] 2025-02-15 16:20:21 -0500 |
| Branch: REL_16_STABLE [991a60a9f] 2025-02-15 16:20:21 -0500 |
| Branch: REL_15_STABLE [e782a63cc] 2025-02-15 16:20:21 -0500 |
| Branch: REL_14_STABLE [c08309584] 2025-02-15 16:20:21 -0500 |
| Branch: REL_13_STABLE [d6d29b213] 2025-02-15 16:20:21 -0500 |
| Author: Tom Lane <tgl@sss.pgh.pa.us> |
| Branch: master [a7f95859e] 2025-02-16 12:46:35 -0500 |
| Branch: REL_17_STABLE [3977bd298] 2025-02-16 12:46:35 -0500 |
| Branch: REL_16_STABLE [644b7d686] 2025-02-16 12:46:35 -0500 |
| Branch: REL_15_STABLE [2226a2e26] 2025-02-16 12:46:35 -0500 |
| Branch: REL_14_STABLE [f864a4cdf] 2025-02-16 12:46:35 -0500 |
| Branch: REL_13_STABLE [9f052613e] 2025-02-16 12:46:35 -0500 |
| --> |
| <para> |
| Improve behavior of <application>libpq</application>'s quoting |
| functions (Andres Freund, Tom Lane) |
| <ulink url="&commit_baseurl;111f4dd27">§</ulink> |
| <ulink url="&commit_baseurl;991a60a9f">§</ulink> |
| <ulink url="&commit_baseurl;644b7d686">§</ulink> |
| </para> |
| |
| <para> |
| The changes made for CVE-2025-1094 had one serious oversight: |
| <function>PQescapeLiteral()</function> |
| and <function>PQescapeIdentifier()</function> failed to honor their |
| string length parameter, instead always reading to the input |
| string's trailing null. This resulted in including unwanted text in |
| the output, if the caller intended to truncate the string via the |
| length parameter. With very bad luck it could cause a crash due to |
| reading off the end of memory. |
| </para> |
| |
| <para> |
| In addition, modify all these quoting functions so that when invalid |
| encoding is detected, an invalid sequence is substituted for just |
| the first byte of the presumed character, not all of it. This |
| reduces the risk of problems if a calling application performs |
| additional processing on the quoted string. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Andres Freund <andres@anarazel.de> |
| Branch: master [b64d83115] 2025-02-12 08:15:53 -0500 |
| Branch: REL_17_STABLE [c9a1d2135] 2025-02-12 08:15:53 -0500 |
| Branch: REL_16_STABLE [01cdb98e4] 2025-02-12 08:15:54 -0500 |
| --> |
| <para> |
| Fix meson build system to correctly detect availability of |
| the <filename>bsd_auth.h</filename> system header |
| (Nazir Bilal Yavuz) |
| <ulink url="&commit_baseurl;01cdb98e4">§</ulink> |
| </para> |
| </listitem> |
| |
| </itemizedlist> |
| |
| </sect2> |
| </sect1> |
| |
| <sect1 id="release-16-7"> |
| <title>Release 16.7</title> |
| |
| <formalpara> |
| <title>Release date:</title> |
| <para>2025-02-13</para> |
| </formalpara> |
| |
| <para> |
| This release contains a variety of fixes from 16.6. |
| For information about new features in major release 16, see |
| <xref linkend="release-16"/>. |
| </para> |
| |
| <sect2 id="release-16-7-migration"> |
| <title>Migration to Version 16.7</title> |
| |
| <para> |
| A dump/restore is not required for those running 16.X. |
| </para> |
| |
| <para> |
| However, if you are upgrading from a version earlier than 16.5, |
| see <xref linkend="release-16-5"/>. |
| </para> |
| </sect2> |
| |
| <sect2 id="release-16-7-changes"> |
| <title>Changes</title> |
| |
| <itemizedlist> |
| |
| <listitem> |
| <!-- |
| Author: Andres Freund <andres@anarazel.de> |
| Branch: master [5dc1e42b4] 2025-02-10 10:03:37 -0500 |
| Branch: REL_17_STABLE [43a77239d] 2025-02-10 10:03:38 -0500 |
| Branch: REL_16_STABLE [92e4170f4] 2025-02-10 10:03:39 -0500 |
| Branch: REL_15_STABLE [370c94d4c] 2025-02-10 10:03:39 -0500 |
| Branch: REL_14_STABLE [e0ef3d776] 2025-02-10 10:03:40 -0500 |
| Branch: REL_13_STABLE [c906bfe1b] 2025-02-10 10:03:40 -0500 |
| Branch: master [4dc289635] 2025-02-10 10:03:37 -0500 |
| Branch: REL_17_STABLE [7d43ca6fe] 2025-02-10 10:03:38 -0500 |
| Branch: REL_16_STABLE [6e05b195d] 2025-02-10 10:03:39 -0500 |
| Branch: REL_15_STABLE [703b3fd5d] 2025-02-10 10:03:39 -0500 |
| Branch: REL_14_STABLE [5bc33cbea] 2025-02-10 10:03:40 -0500 |
| Branch: REL_13_STABLE [db3eb0e82] 2025-02-10 10:03:40 -0500 |
| Branch: master [3e98c8ce5] 2025-02-10 10:03:37 -0500 |
| Branch: REL_17_STABLE [61ad93cdd] 2025-02-10 10:03:38 -0500 |
| Branch: REL_16_STABLE [56aa2dcdd] 2025-02-10 10:03:39 -0500 |
| Branch: REL_15_STABLE [b1756da75] 2025-02-10 10:03:39 -0500 |
| Branch: REL_14_STABLE [2ae54ae17] 2025-02-10 10:03:40 -0500 |
| Branch: REL_13_STABLE [5df4e1632] 2025-02-10 10:03:40 -0500 |
| Branch: master [ac00ff1c9] 2025-02-10 10:03:37 -0500 |
| Branch: REL_17_STABLE [02d4d87ac] 2025-02-10 10:03:38 -0500 |
| Branch: REL_16_STABLE [01784793f] 2025-02-10 10:03:39 -0500 |
| Branch: REL_15_STABLE [de4b92f33] 2025-02-10 10:03:39 -0500 |
| Branch: REL_14_STABLE [46ddf98df] 2025-02-10 10:03:40 -0500 |
| Branch: REL_13_STABLE [4ea3f5ef3] 2025-02-10 10:03:40 -0500 |
| Branch: master [979205e47] 2025-02-10 12:12:14 -0500 |
| Branch: REL_17_STABLE [05abb0f83] 2025-02-10 12:12:53 -0500 |
| Branch: REL_16_STABLE [41343f840] 2025-02-10 12:12:56 -0500 |
| Branch: REL_15_STABLE [a085fa731] 2025-02-10 12:12:58 -0500 |
| Branch: REL_14_STABLE [4a6825c76] 2025-02-10 12:12:59 -0500 |
| Branch: REL_13_STABLE [7beb2af5e] 2025-02-10 12:13:02 -0500 |
| Branch: REL_13_STABLE [00f1a1f66] 2025-02-10 10:03:40 -0500 |
| Author: Tom Lane <tgl@sss.pgh.pa.us> |
| Branch: master [5bf12323b] 2025-02-10 16:30:03 -0500 |
| Branch: REL_17_STABLE [85c1fcc65] 2025-02-10 16:30:31 -0500 |
| Branch: REL_16_STABLE [0075a5c6c] 2025-02-10 16:30:37 -0500 |
| Branch: REL_15_STABLE [9862de917] 2025-02-10 16:30:54 -0500 |
| Branch: REL_14_STABLE [e1f1b030d] 2025-02-10 16:31:01 -0500 |
| Branch: REL_13_STABLE [f9fceef6e] 2025-02-10 16:31:09 -0500 |
| --> |
| <para> |
| Harden <function>PQescapeString</function> and allied functions |
| against invalidly-encoded input strings (Andres Freund, Noah Misch) |
| <ulink url="&commit_baseurl;92e4170f4">§</ulink> |
| <ulink url="&commit_baseurl;6e05b195d">§</ulink> |
| <ulink url="&commit_baseurl;56aa2dcdd">§</ulink> |
| <ulink url="&commit_baseurl;01784793f">§</ulink> |
| <ulink url="&commit_baseurl;41343f840">§</ulink> |
| <ulink url="&commit_baseurl;0075a5c6c">§</ulink> |
| </para> |
| |
| <para> |
| Data-quoting functions supplied by <application>libpq</application> |
| now fully check the encoding validity of their input. If invalid |
| characters are detected, they report an error if possible. For the |
| ones that lack an error return convention, the output string is |
| adjusted to ensure that the server will report invalid encoding and |
| no intervening processing will be fooled by bytes that might happen |
| to match single quote, backslash, etc. |
| </para> |
| |
| <para> |
| The purpose of this change is to guard against SQL-injection attacks |
| that are possible if one of these functions is used to quote crafted |
| input. There is no hazard when the resulting string is sent |
| directly to a <productname>PostgreSQL</productname> server (which |
| would check its encoding anyway), but there is a risk when it is |
| passed through <application>psql</application> or other client-side |
| code. Historically such code has not carefully vetted encoding, and |
| in many cases it's not clear what it should do if it did detect such |
| a problem. |
| </para> |
| |
| <para> |
| This fix is effective only if the data-quoting function, the server, |
| and any intermediate processing agree on the character encoding |
| that's being used. Applications that insert untrusted input into |
| SQL commands should take special care to ensure that that's true. |
| </para> |
| |
| <para> |
| Applications and drivers that quote untrusted input without using |
| these <application>libpq</application> functions may be at risk of |
| similar problems. They should first confirm the data is valid in |
| the encoding expected by the server. |
| </para> |
| |
| <para> |
| The <productname>PostgreSQL</productname> Project thanks |
| Stephen Fewer for reporting this problem. |
| (CVE-2025-1094) |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Tom Lane <tgl@sss.pgh.pa.us> |
| Branch: master [34486b609] 2024-12-28 16:08:50 -0500 |
| Branch: REL_17_STABLE [15b4c46c3] 2024-12-28 16:08:50 -0500 |
| Branch: REL_16_STABLE [41a252c2c] 2024-12-28 16:08:50 -0500 |
| Branch: REL_15_STABLE [3d1ecc92a] 2024-12-28 16:08:50 -0500 |
| Branch: REL_14_STABLE [c58b0c43d] 2024-12-28 16:08:50 -0500 |
| Branch: REL_13_STABLE [70d067cec] 2024-12-28 16:08:50 -0500 |
| --> |
| <para> |
| Exclude parallel workers from connection privilege checks and limits |
| (Tom Lane) |
| <ulink url="&commit_baseurl;41a252c2c">§</ulink> |
| </para> |
| |
| <para> |
| Do not |
| check <literal>datallowconn</literal>, <literal>rolcanlogin</literal>, |
| and <literal>ACL_CONNECT</literal> privileges when starting a |
| parallel worker, instead assuming that it's enough for the leader |
| process to have passed similar checks originally. This avoids, for |
| example, unexpected failures of parallelized queries when the leader |
| is running as a role that lacks login privilege. In the same vein, |
| enforce <literal>ReservedConnections</literal>, |
| <literal>datconnlimit</literal>, and <literal>rolconnlimit</literal> |
| limits only against regular backends, and count only regular |
| backends while checking if the limits were already reached. Those |
| limits are meant to prevent excessive consumption of process slots |
| for regular backends --- but parallel workers and other special |
| processes have their own pools of process slots with their own limit |
| checks. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: David Rowley <drowley@postgresql.org> |
| Branch: master [1fe5a347e] 2024-12-09 14:23:21 +1300 |
| Branch: REL_17_STABLE [9d5ce4f1a] 2024-12-09 14:24:07 +1300 |
| Branch: REL_16_STABLE [c1d6506ac] 2024-12-09 14:24:34 +1300 |
| Branch: REL_15_STABLE [d54378e98] 2024-12-09 14:24:54 +1300 |
| --> |
| <para> |
| Fix possible re-use of stale results in window aggregates (David |
| Rowley) |
| <ulink url="&commit_baseurl;c1d6506ac">§</ulink> |
| </para> |
| |
| <para> |
| A window aggregate with a <quote>run condition</quote> optimization |
| and a pass-by-reference result type might incorrectly return the |
| result from the previous partition instead of performing a fresh |
| calculation. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Heikki Linnakangas <heikki.linnakangas@iki.fi> |
| Branch: master [578a7fe7b] 2024-12-21 23:42:39 +0200 |
| Branch: REL_17_STABLE [7cfdb4d1e] 2024-12-21 23:42:52 +0200 |
| Branch: REL_16_STABLE [9d8ab2c46] 2024-12-21 23:42:55 +0200 |
| Branch: REL_15_STABLE [acd5c28db] 2024-12-21 23:42:57 +0200 |
| Branch: REL_14_STABLE [41eafbb49] 2024-12-21 23:42:59 +0200 |
| Branch: REL_13_STABLE [9c1afd344] 2024-12-21 23:45:56 +0200 |
| --> |
| <para> |
| Keep <varname>TransactionXmin</varname> in sync |
| with <varname>MyProc->xmin</varname> (Heikki Linnakangas) |
| <ulink url="&commit_baseurl;9d8ab2c46">§</ulink> |
| </para> |
| |
| <para> |
| This oversight could permit a process to try to access data that had |
| already been vacuumed away. One known consequence is |
| transient <quote>could not access status of transaction</quote> |
| errors. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Heikki Linnakangas <heikki.linnakangas@iki.fi> |
| Branch: master [af8cd1639] 2025-01-14 14:28:49 +0200 |
| Branch: REL_17_STABLE [96e61b279] 2025-01-14 14:35:11 +0200 |
| Branch: REL_16_STABLE [91fc447c2] 2025-01-14 14:41:01 +0200 |
| Branch: REL_15_STABLE [ce7c406f0] 2025-01-14 14:29:11 +0200 |
| Branch: REL_14_STABLE [fce17c3a5] 2025-01-14 14:29:13 +0200 |
| Branch: REL_13_STABLE [f217c4105] 2025-01-14 18:54:56 +0200 |
| --> |
| <para> |
| Fix race condition that could cause failure to add a newly-inserted |
| catalog entry to a catalog cache list (Heikki Linnakangas) |
| <ulink url="&commit_baseurl;91fc447c2">§</ulink> |
| </para> |
| |
| <para> |
| This could result, for example, in failure to use a newly-created |
| function within an existing session. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Noah Misch <noah@leadboat.com> |
| Branch: master [81772a495] 2025-01-25 11:28:14 -0800 |
| Branch: REL_17_STABLE [1587f7b9f] 2025-01-25 11:28:18 -0800 |
| Branch: master [d28cd3e7b] 2025-01-25 11:28:14 -0800 |
| Branch: REL_17_STABLE [f4af4515b] 2025-01-25 11:28:18 -0800 |
| Branch: REL_16_STABLE [9311fcb86] 2025-01-25 11:28:18 -0800 |
| Branch: REL_15_STABLE [dc02b98bd] 2025-01-25 11:28:19 -0800 |
| Branch: REL_14_STABLE [25e99483c] 2025-01-25 11:28:19 -0800 |
| Branch: REL_13_STABLE [8bfd2ceba] 2025-01-25 11:28:19 -0800 |
| --> |
| <para> |
| Prevent possible catalog corruption when a system catalog is |
| vacuumed concurrently with an update (Noah Misch) |
| <ulink url="&commit_baseurl;9311fcb86">§</ulink> |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Thomas Munro <tmunro@postgresql.org> |
| Branch: master [38c579b08] 2024-12-20 23:57:02 +1300 |
| Branch: REL_17_STABLE [0350b876b] 2024-12-20 23:57:18 +1300 |
| Branch: REL_16_STABLE [ba02d24ba] 2024-12-20 23:57:26 +1300 |
| Branch: REL_15_STABLE [fb540b6aa] 2024-12-20 23:57:34 +1300 |
| Branch: REL_14_STABLE [23c743b64] 2024-12-20 23:57:53 +1300 |
| Branch: REL_13_STABLE [228091216] 2024-12-20 23:58:08 +1300 |
| Branch: REL_17_STABLE [66aaabe7a] 2025-01-08 10:43:40 +1300 |
| Branch: REL_16_STABLE [c957d7444] 2025-01-08 10:46:45 +1300 |
| Branch: REL_15_STABLE [3181befdc] 2025-01-08 10:47:43 +1300 |
| Branch: REL_14_STABLE [f154f028d] 2025-01-08 10:48:01 +1300 |
| Branch: REL_13_STABLE [a1d17a894] 2025-01-08 10:48:57 +1300 |
| Branch: REL_17_STABLE [45aef9f6b] 2025-01-08 17:02:30 +1300 |
| Branch: REL_16_STABLE [9defaaa1d] 2025-01-08 17:03:25 +1300 |
| Branch: REL_15_STABLE [190054e61] 2025-01-08 17:03:45 +1300 |
| Branch: REL_14_STABLE [049c8cb9a] 2025-01-08 17:04:26 +1300 |
| Branch: REL_13_STABLE [417d41c65] 2025-01-08 17:14:15 +1300 |
| --> |
| <para> |
| Fix data corruption when relation truncation fails (Thomas Munro) |
| <ulink url="&commit_baseurl;ba02d24ba">§</ulink> |
| <ulink url="&commit_baseurl;c957d7444">§</ulink> |
| <ulink url="&commit_baseurl;9defaaa1d">§</ulink> |
| </para> |
| |
| <para> |
| The filesystem calls needed to perform relation truncation could |
| fail, leaving inconsistent state on disk (for example, effectively |
| reviving deleted data). We can't really prevent that, but we can |
| recover by dint of making such failures into PANICs, so that |
| consistency is restored by replaying from WAL up to just before the |
| attempted truncation. This isn't a hugely desirable behavior, but |
| such failures are rare enough that it seems an acceptable solution. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Thomas Munro <tmunro@postgresql.org> |
| Branch: master [75818b3af] 2024-12-03 10:12:05 +1300 |
| Branch: REL_17_STABLE [d4ffbf47b] 2024-12-03 10:19:47 +1300 |
| Branch: REL_16_STABLE [ad5aa7bfd] 2024-12-03 10:20:10 +1300 |
| Branch: REL_15_STABLE [a501fe5a9] 2024-12-03 10:20:22 +1300 |
| Branch: REL_14_STABLE [7d0b91a28] 2024-12-03 10:12:56 +1300 |
| Branch: REL_13_STABLE [1168acbca] 2024-12-03 10:13:49 +1300 |
| --> |
| <para> |
| Prevent checkpoints from starting during relation truncation |
| (Robert Haas) |
| <ulink url="&commit_baseurl;ad5aa7bfd">§</ulink> |
| </para> |
| |
| <para> |
| This avoids a race condition wherein the modified file might not get |
| fsync'd before completing the checkpoint, creating a risk of data |
| corruption if the operating system crashes soon after. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Noah Misch <noah@leadboat.com> |
| Branch: master [ff90ee614] 2024-12-28 07:16:22 -0800 |
| Branch: REL_17_STABLE [fa6131377] 2024-12-28 07:16:26 -0800 |
| Branch: REL_16_STABLE [5d94aa4dc] 2024-12-28 07:16:26 -0800 |
| Branch: REL_15_STABLE [83bb52375] 2024-12-28 07:16:26 -0800 |
| Branch: REL_14_STABLE [536acda0b] 2024-12-28 07:16:27 -0800 |
| Branch: REL_13_STABLE [102546322] 2024-12-28 07:16:27 -0800 |
| --> |
| <para> |
| Avoid possibly losing an update of |
| <structname>pg_database</structname>.<structfield>datfrozenxid</structfield> |
| when <command>VACUUM</command> runs concurrently with |
| a <command>REASSIGN OWNED</command> that changes that database's |
| owner (Kirill Reshke) |
| <ulink url="&commit_baseurl;5d94aa4dc">§</ulink> |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Tom Lane <tgl@sss.pgh.pa.us> |
| Branch: master [ea68ea632] 2025-01-22 11:58:20 -0500 |
| Branch: REL_17_STABLE [2b72fed2d] 2025-01-22 11:58:20 -0500 |
| Branch: REL_16_STABLE [8c57f5485] 2025-01-22 11:58:20 -0500 |
| Branch: REL_15_STABLE [cdeed4de7] 2025-01-22 11:58:20 -0500 |
| Branch: REL_14_STABLE [308599305] 2025-01-22 11:58:20 -0500 |
| Branch: REL_13_STABLE [001c09d8b] 2025-01-22 11:58:20 -0500 |
| --> |
| <para> |
| Fix incorrect <structfield>tg_updatedcols</structfield> values |
| passed to <literal>AFTER UPDATE</literal> triggers (Tom Lane) |
| <ulink url="&commit_baseurl;8c57f5485">§</ulink> |
| </para> |
| |
| <para> |
| In some cases the <structfield>tg_updatedcols</structfield> bitmap |
| could describe the set of columns updated by an earlier command in |
| the same transaction, fooling the trigger into doing the wrong |
| thing. |
| </para> |
| |
| <para> |
| Also, prevent memory bloat caused by making too many copies of |
| the <structfield>tg_updatedcols</structfield> bitmap. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Álvaro Herrera <alvherre@alvh.no-ip.org> |
| Branch: master [9b21f203d] 2025-01-21 14:53:46 +0100 |
| Branch: REL_17_STABLE [2f30847d1] 2025-01-21 14:53:46 +0100 |
| Branch: REL_16_STABLE [ddab512eb] 2025-01-21 14:53:46 +0100 |
| Branch: REL_15_STABLE [1bc092519] 2025-01-21 14:53:46 +0100 |
| --> |
| <para> |
| Fix detach of a partition that has its own foreign-key constraint |
| referencing a partitioned table (Amul Sul) |
| <ulink url="&commit_baseurl;ddab512eb">§</ulink> |
| </para> |
| |
| <para> |
| In common cases, foreign keys are defined on a partitioned table's |
| top level; but if instead one is defined on a partition and |
| references a partitioned table, and the referencing partition is |
| detached, the relevant <structname>pg_constraint</structname> |
| entries were updated incorrectly. This led to errors |
| like <quote>could not find ON INSERT check triggers of foreign key |
| constraint</quote>. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Tom Lane <tgl@sss.pgh.pa.us> |
| Branch: master [3220ceaf7] 2024-12-07 13:12:32 -0500 |
| Branch: REL_17_STABLE [765f76d8c] 2024-12-07 13:12:32 -0500 |
| Branch: REL_16_STABLE [26c233b8b] 2024-12-07 13:12:32 -0500 |
| Branch: REL_15_STABLE [d2f59497a] 2024-12-07 13:12:32 -0500 |
| Branch: REL_14_STABLE [5882a4ba0] 2024-12-07 13:12:32 -0500 |
| Branch: REL_13_STABLE [f2eba400b] 2024-12-07 13:12:32 -0500 |
| --> |
| <para> |
| Fix mis-processing of <function>to_timestamp</function>'s |
| <literal>FF<replaceable>n</replaceable></literal> format codes |
| (Tom Lane) |
| <ulink url="&commit_baseurl;26c233b8b">§</ulink> |
| </para> |
| |
| <para> |
| An integer format code immediately |
| preceding <literal>FF<replaceable>n</replaceable></literal> would |
| consume all available digits, leaving none |
| for <literal>FF<replaceable>n</replaceable></literal>. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Dean Rasheed <dean.a.rasheed@gmail.com> |
| Branch: master [d673eefd4] 2025-01-12 12:54:32 +0000 |
| Branch: REL_17_STABLE [61b12135f] 2025-01-12 12:56:52 +0000 |
| Branch: REL_16_STABLE [77763f3be] 2025-01-12 12:58:14 +0000 |
| Branch: REL_15_STABLE [7c0379516] 2025-01-12 12:59:40 +0000 |
| Branch: REL_14_STABLE [dc8cd9cd0] 2025-01-12 13:01:22 +0000 |
| Branch: REL_13_STABLE [8f137f038] 2025-01-12 13:02:56 +0000 |
| --> |
| <para> |
| When deparsing an <literal>XMLTABLE()</literal> expression, ensure |
| that XML namespace names are double-quoted when necessary (Dean |
| Rasheed) |
| <ulink url="&commit_baseurl;77763f3be">§</ulink> |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Daniel Gustafsson <dgustafsson@postgresql.org> |
| Branch: master [27a1f8d10] 2025-01-10 22:02:58 +0100 |
| Branch: REL_17_STABLE [8ed9bf0a3] 2025-01-10 22:02:58 +0100 |
| Branch: REL_16_STABLE [c35bbdfbc] 2025-01-10 22:02:58 +0100 |
| Branch: REL_15_STABLE [830215a4c] 2025-01-10 22:02:58 +0100 |
| Branch: REL_14_STABLE [83ffb9f20] 2025-01-10 22:02:58 +0100 |
| Branch: REL_13_STABLE [84b8f6d9f] 2025-01-10 22:02:58 +0100 |
| Branch: master [97698cc51] 2025-01-12 23:44:39 +0100 |
| Branch: REL_17_STABLE [dc24c9ad5] 2025-01-12 23:44:39 +0100 |
| Branch: REL_16_STABLE [116036d81] 2025-01-12 23:44:39 +0100 |
| Branch: REL_15_STABLE [9ad7a32b2] 2025-01-12 23:44:39 +0100 |
| Branch: REL_14_STABLE [9e596a099] 2025-01-12 23:44:39 +0100 |
| Branch: REL_13_STABLE [7b1f50d8c] 2025-01-12 23:44:39 +0100 |
| --> |
| <para> |
| Include the <literal>ldapscheme</literal> option |
| in <function>pg_hba_file_rules()</function> output (Laurenz Albe) |
| <ulink url="&commit_baseurl;c35bbdfbc">§</ulink> |
| <ulink url="&commit_baseurl;116036d81">§</ulink> |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Tom Lane <tgl@sss.pgh.pa.us> |
| Branch: master [a43d7a8c7] 2024-11-19 18:26:19 -0500 |
| Branch: REL_17_STABLE [c1ebef3c1] 2024-11-19 18:26:19 -0500 |
| Branch: REL_16_STABLE [f286f64bc] 2024-11-19 18:26:19 -0500 |
| Branch: REL_15_STABLE [fd3383ff1] 2024-11-19 18:26:19 -0500 |
| Branch: REL_14_STABLE [44a4a521d] 2024-11-19 18:26:19 -0500 |
| Branch: REL_13_STABLE [6b66dba3f] 2024-11-19 18:26:19 -0500 |
| --> |
| <para> |
| Don't merge <literal>UNION</literal> operations if their column |
| collations aren't consistent (Tom Lane) |
| <ulink url="&commit_baseurl;f286f64bc">§</ulink> |
| </para> |
| |
| <para> |
| Previously we ignored collations when deciding if it's safe to |
| merge <literal>UNION</literal> steps into a single |
| N-way <literal>UNION</literal> operation. This was arguably valid |
| before the introduction of nondeterministic collations, but it's not |
| anymore, since the collation in use can affect the definition of |
| uniqueness. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Tom Lane <tgl@sss.pgh.pa.us> |
| Branch: master [5c9d8636d] 2024-11-28 17:33:16 -0500 |
| Branch: REL_17_STABLE [72822a99d] 2024-11-28 17:33:16 -0500 |
| Branch: REL_16_STABLE [85990e2fd] 2024-11-28 17:33:16 -0500 |
| Branch: master [e032e4c7d] 2024-11-30 12:42:19 -0500 |
| Branch: REL_17_STABLE [78883cd90] 2024-11-30 12:42:20 -0500 |
| Branch: REL_16_STABLE [7b456f040] 2024-11-30 12:42:20 -0500 |
| --> |
| <para> |
| Prevent <quote>wrong varnullingrels</quote> planner errors after |
| pulling up a subquery that's underneath an outer join (Tom Lane) |
| <ulink url="&commit_baseurl;85990e2fd">§</ulink> |
| <ulink url="&commit_baseurl;7b456f040">§</ulink> |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Richard Guo <rguo@postgresql.org> |
| Branch: master [e28033fe1] 2025-01-02 18:06:00 +0900 |
| Branch: REL_17_STABLE [297b280ab] 2025-01-02 17:59:32 +0900 |
| Branch: REL_16_STABLE [a1a9120c7] 2025-01-02 18:02:02 +0900 |
| --> |
| <para> |
| Ignore nulling-relation marker bits when looking up statistics |
| (Richard Guo) |
| <ulink url="&commit_baseurl;a1a9120c7">§</ulink> |
| </para> |
| |
| <para> |
| This oversight could lead to failure to use relevant statistics |
| about expressions, or to <quote>corrupt MVNDistinct |
| entry</quote> errors. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Tom Lane <tgl@sss.pgh.pa.us> |
| Branch: master [bf826ea06] 2025-01-16 20:40:07 -0500 |
| Branch: REL_17_STABLE [0671a71e0] 2025-01-16 20:40:07 -0500 |
| Branch: REL_16_STABLE [94c02bd33] 2025-01-16 20:40:07 -0500 |
| Branch: REL_15_STABLE [724ebebb1] 2025-01-16 20:40:07 -0500 |
| Branch: REL_14_STABLE [5f725648f] 2025-01-16 20:40:07 -0500 |
| Branch: REL_13_STABLE [45004f527] 2025-01-16 20:40:07 -0500 |
| --> |
| <para> |
| Fix missed expression processing for partition pruning steps |
| (Tom Lane) |
| <ulink url="&commit_baseurl;94c02bd33">§</ulink> |
| </para> |
| |
| <para> |
| This oversight could lead to <quote>unrecognized node type</quote> |
| errors, and perhaps other problems, in queries accessing partitioned |
| tables. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Nathan Bossart <nathan@postgresql.org> |
| Branch: master [84f1b0b03] 2024-12-17 15:24:45 -0600 |
| Branch: REL_17_STABLE [18452b70a] 2024-12-17 15:24:45 -0600 |
| Branch: REL_16_STABLE [2a7402322] 2024-12-17 15:24:45 -0600 |
| Branch: REL_15_STABLE [9f7b7d516] 2024-12-17 15:24:45 -0600 |
| Branch: REL_14_STABLE [84dc1303c] 2024-12-17 15:24:45 -0600 |
| Branch: REL_13_STABLE [853cef097] 2024-12-17 15:24:45 -0600 |
| --> |
| <para> |
| Allow dshash tables to grow past 1GB (Matthias van de Meent) |
| <ulink url="&commit_baseurl;2a7402322">§</ulink> |
| </para> |
| |
| <para> |
| This avoids errors like <quote>invalid DSA memory alloc request |
| size</quote>. The case can occur for example in transactions that |
| process several million tables. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Michael Paquier <michael@paquier.xyz> |
| Branch: master [720e52984] 2025-01-14 15:12:56 +0900 |
| Branch: REL_17_STABLE [e027ee990] 2025-01-14 15:13:14 +0900 |
| Branch: REL_16_STABLE [bfda7d8dd] 2025-01-14 15:13:15 +0900 |
| Branch: REL_15_STABLE [9e9f30139] 2025-01-14 15:13:17 +0900 |
| Branch: REL_14_STABLE [e35ff6520] 2025-01-14 15:13:19 +0900 |
| Branch: REL_13_STABLE [332023e2d] 2025-01-14 15:13:20 +0900 |
| --> |
| <para> |
| Avoid possible integer overflow |
| in <function>bringetbitmap()</function> (James Hunter, Evgeniy |
| Gorbanyov) |
| <ulink url="&commit_baseurl;bfda7d8dd">§</ulink> |
| </para> |
| |
| <para> |
| Since the result is only used for statistical purposes, the effects |
| of this error were mostly cosmetic. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Thomas Munro <tmunro@postgresql.org> |
| Branch: master [73f6b9a3b] 2025-01-20 16:43:29 +1300 |
| Branch: REL_17_STABLE [44f400fbc] 2025-01-20 16:43:39 +1300 |
| Branch: REL_16_STABLE [b4b52c911] 2025-01-20 16:55:11 +1300 |
| --> |
| <para> |
| Ensure that an already-set process latch doesn't prevent the |
| postmaster from noticing socket events (Thomas Munro) |
| <ulink url="&commit_baseurl;b4b52c911">§</ulink> |
| </para> |
| |
| <para> |
| An extremely heavy workload of backends launching workers and |
| workers exiting could prevent the postmaster from responding to |
| incoming client connections in a timely fashion. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Michael Paquier <michael@paquier.xyz> |
| Branch: master [6cf1647d8] 2025-01-20 09:29:42 +0900 |
| Branch: REL_17_STABLE [e6767c0ed] 2025-01-20 09:30:33 +0900 |
| Branch: REL_16_STABLE [2c2e1d4f4] 2025-01-20 09:30:36 +0900 |
| Branch: REL_15_STABLE [26554facc] 2025-01-20 09:30:37 +0900 |
| Branch: REL_14_STABLE [a2d4f806c] 2025-01-20 09:30:39 +0900 |
| Branch: REL_13_STABLE [0f0431e91] 2025-01-20 09:30:40 +0900 |
| --> |
| <para> |
| Prevent streaming standby servers from looping infinitely when |
| reading a WAL record that crosses pages (Kyotaro Horiguchi, |
| Alexander Kukushkin) |
| <ulink url="&commit_baseurl;2c2e1d4f4">§</ulink> |
| </para> |
| |
| <para> |
| This would happen when the record's continuation is on a page that |
| needs to be read from a different WAL source. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Noah Misch <noah@leadboat.com> |
| Branch: master [8b9cbf492] 2024-12-10 13:51:59 -0800 |
| Branch: REL_17_STABLE [4bd9de3f4] 2024-12-10 13:52:02 -0800 |
| Branch: REL_16_STABLE [ac4a2b403] 2024-12-10 13:52:02 -0800 |
| Branch: REL_15_STABLE [839da50bd] 2024-12-10 13:52:02 -0800 |
| Branch: REL_14_STABLE [315264d70] 2024-12-10 13:52:02 -0800 |
| Branch: REL_13_STABLE [6151769f6] 2024-12-10 13:52:02 -0800 |
| --> |
| <para> |
| Fix unintended promotion of FATAL errors to PANIC during early |
| process startup (Noah Misch) |
| <ulink url="&commit_baseurl;ac4a2b403">§</ulink> |
| </para> |
| |
| <para> |
| This fixes some unlikely cases that would result in <quote>PANIC: |
| proc_exit() called in child process</quote>. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Tom Lane <tgl@sss.pgh.pa.us> |
| Branch: master [3f9b96217] 2024-12-07 15:56:28 -0500 |
| Branch: REL_17_STABLE [ec7b89cc5] 2024-12-07 15:56:28 -0500 |
| Branch: REL_16_STABLE [be5db08ed] 2024-12-07 15:56:28 -0500 |
| Branch: REL_15_STABLE [0e4fa06ba] 2024-12-07 15:56:28 -0500 |
| Branch: REL_14_STABLE [1a34cf0f4] 2024-12-07 15:56:28 -0500 |
| Branch: REL_13_STABLE [725d98102] 2024-12-07 15:56:28 -0500 |
| Branch: master [c82003760] 2024-12-07 14:28:16 -0500 |
| Branch: REL_17_STABLE [5b44a317a] 2024-12-07 14:28:16 -0500 |
| Branch: REL_16_STABLE [faad01835] 2024-12-07 14:28:16 -0500 |
| Branch: REL_15_STABLE [d40191467] 2024-12-07 14:28:16 -0500 |
| Branch: REL_14_STABLE [d9d5e1b48] 2024-12-07 14:28:16 -0500 |
| Branch: REL_13_STABLE [531cbd8b7] 2024-12-07 14:28:16 -0500 |
| --> |
| <para> |
| Fix cases where an operator family member operator or support |
| procedure could become a dangling reference (Tom Lane) |
| <ulink url="&commit_baseurl;be5db08ed">§</ulink> |
| <ulink url="&commit_baseurl;faad01835">§</ulink> |
| </para> |
| |
| <para> |
| In some cases a data type could be dropped while references to its |
| OID still remain in <structname>pg_amop</structname> |
| or <structname>pg_amproc</structname>. While that caused no |
| immediate issues, an attempt to drop the owning operator family |
| would fail, and <application>pg_dump</application> would produce |
| bogus output when dumping the operator family. This fix causes |
| creation and modification of operator families/classes to add |
| needed dependency entries so that dropping a data type will also |
| drop any dependent operator family elements. That does not help |
| vulnerable pre-existing operator families, though, so a band-aid has |
| also been added to <command>DROP OPERATOR FAMILY</command> to |
| prevent failure when dropping a family that has dangling members. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Michael Paquier <michael@paquier.xyz> |
| Branch: master [c9b3d4909] 2024-12-30 13:33:09 +0900 |
| Branch: REL_17_STABLE [836435424] 2024-12-30 13:33:58 +0900 |
| Branch: REL_16_STABLE [e3a27fd06] 2024-12-30 13:33:59 +0900 |
| Branch: REL_15_STABLE [da8bd5d42] 2024-12-30 13:34:01 +0900 |
| Branch: REL_14_STABLE [c53d90bb4] 2025-01-08 08:47:19 +0900 |
| Branch: REL_13_STABLE [a786cf04d] 2025-01-08 08:47:24 +0900 |
| Author: Michael Paquier <michael@paquier.xyz> |
| Branch: REL_17_STABLE [bbe68c13a] 2024-12-23 12:48:06 +0900 |
| Branch: REL_16_STABLE [4d45e7490] 2024-12-23 12:48:08 +0900 |
| Branch: REL_15_STABLE [6c9b39754] 2024-12-23 12:48:09 +0900 |
| Branch: REL_14_STABLE [cfd6cbcf9] 2024-12-23 12:48:10 +0900 |
| Branch: REL_13_STABLE [ba230ce40] 2024-12-23 12:48:12 +0900 |
| Author: Michael Paquier <michael@paquier.xyz> |
| Branch: master [ea792bfd9] 2024-11-21 15:14:02 +0900 |
| Branch: REL_17_STABLE [afe9b0d9f] 2024-11-21 15:14:11 +0900 |
| Branch: REL_16_STABLE [e749eaf46] 2024-11-21 15:14:13 +0900 |
| Branch: REL_15_STABLE [6fc30c24c] 2024-11-21 15:14:15 +0900 |
| --> |
| <para> |
| Fix multiple memory leaks in logical decoding output (Vignesh C, |
| Masahiko Sawada, Boyu Yang) |
| <ulink url="&commit_baseurl;e3a27fd06">§</ulink> |
| <ulink url="&commit_baseurl;4d45e7490">§</ulink> |
| <ulink url="&commit_baseurl;e749eaf46">§</ulink> |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Daniel Gustafsson <dgustafsson@postgresql.org> |
| Branch: master [73a392d23] 2024-12-09 20:58:23 +0100 |
| Branch: REL_17_STABLE [9add1bbfa] 2024-12-09 20:58:23 +0100 |
| Branch: REL_16_STABLE [be9dac9af] 2024-12-09 20:58:23 +0100 |
| --> |
| <para> |
| Fix small memory leak when |
| updating the <varname>application_name</varname> |
| or <varname>cluster_name</varname> settings (Tofig Aliev) |
| <ulink url="&commit_baseurl;be9dac9af">§</ulink> |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Tom Lane <tgl@sss.pgh.pa.us> |
| Branch: master [b9aa4166f] 2025-01-30 15:36:44 -0500 |
| Branch: REL_17_STABLE [1e25cdb21] 2025-01-30 15:36:07 -0500 |
| Branch: REL_16_STABLE [f7a08b6e9] 2025-01-30 15:36:07 -0500 |
| Branch: REL_15_STABLE [b296e55b4] 2025-01-30 15:36:07 -0500 |
| Branch: REL_14_STABLE [6a33bb35c] 2025-01-30 15:36:07 -0500 |
| Branch: REL_13_STABLE [49a38238e] 2025-01-30 15:36:07 -0500 |
| --> |
| <para> |
| Avoid integer overflow while |
| testing <varname>wal_skip_threshold</varname> condition (Tom Lane) |
| <ulink url="&commit_baseurl;f7a08b6e9">§</ulink> |
| </para> |
| |
| <para> |
| A transaction that created a very large relation could mistakenly |
| decide to ensure durability by copying the relation into WAL instead |
| of fsync'ing it, thereby negating the point |
| of <varname>wal_skip_threshold</varname>. (This only matters |
| when <varname>wal_level</varname> is set |
| to <literal>minimal</literal>, else a WAL copy is required anyway.) |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Noah Misch <noah@leadboat.com> |
| Branch: master [4ba84de45] 2024-11-25 14:42:35 -0800 |
| Branch: REL_17_STABLE [718af10da] 2024-11-25 14:42:38 -0800 |
| Branch: REL_16_STABLE [c1285bbeb] 2024-11-25 14:42:39 -0800 |
| Branch: REL_15_STABLE [941e0c0df] 2024-11-25 14:42:39 -0800 |
| Branch: REL_14_STABLE [2690a4f5d] 2024-11-25 14:42:40 -0800 |
| Branch: REL_13_STABLE [01745fb04] 2024-11-25 14:42:40 -0800 |
| --> |
| <para> |
| Fix unsafe order of operations during cache lookups (Noah Misch) |
| <ulink url="&commit_baseurl;c1285bbeb">§</ulink> |
| </para> |
| |
| <para> |
| The only known consequence was a usually-harmless <quote>you don't |
| own a lock of type ExclusiveLock</quote> warning |
| during <command>GRANT TABLESPACE</command>. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Thomas Munro <tmunro@postgresql.org> |
| Branch: master [78c09bd9f] 2024-11-22 15:29:47 +1300 |
| Branch: REL_17_STABLE [8a9a51518] 2024-11-22 15:29:28 +1300 |
| Branch: REL_16_STABLE [6de14dbb3] 2024-11-22 15:29:18 +1300 |
| Branch: REL_15_STABLE [15ab513fe] 2024-11-22 15:29:00 +1300 |
| Branch: REL_14_STABLE [7ca388fd0] 2024-11-22 15:30:37 +1300 |
| Branch: REL_13_STABLE [8aefd8b6f] 2024-11-22 15:32:02 +1300 |
| --> |
| <para> |
| Fix possible <quote>failed to resolve name</quote> failures when |
| using JIT on older ARM platforms (Thomas Munro) |
| <ulink url="&commit_baseurl;6de14dbb3">§</ulink> |
| </para> |
| |
| <para> |
| This could occur as a consequence of inconsistency about the default |
| setting of <option>-moutline-atomics</option> between gcc and clang. |
| At least Debian and Ubuntu are known to ship gcc and clang compilers |
| that target armv8-a but differ on the use of outline atomics by |
| default. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: David Rowley <drowley@postgresql.org> |
| Branch: master [8f4ee9626] 2024-12-19 13:11:39 +1300 |
| Branch: REL_17_STABLE [7b8d45d27] 2024-12-19 13:12:18 +1300 |
| Branch: REL_16_STABLE [093fc156b] 2024-12-19 13:12:41 +1300 |
| Branch: REL_15_STABLE [ef178d38b] 2024-12-19 13:13:01 +1300 |
| Branch: REL_14_STABLE [bdb07d241] 2024-12-19 13:13:31 +1300 |
| Branch: REL_13_STABLE [2c7887c9d] 2024-12-19 13:13:51 +1300 |
| --> |
| <para> |
| Fix assertion failure in <literal>WITH RECURSIVE ... UNION</literal> |
| queries (David Rowley) |
| <ulink url="&commit_baseurl;093fc156b">§</ulink> |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Tom Lane <tgl@sss.pgh.pa.us> |
| Branch: master [94131cd53] 2024-11-20 12:03:47 -0500 |
| Branch: REL_17_STABLE [fea81aee8] 2024-11-20 12:03:47 -0500 |
| Branch: REL_16_STABLE [fe084039e] 2024-11-20 12:03:47 -0500 |
| Branch: REL_15_STABLE [9b9689e26] 2024-11-20 12:03:47 -0500 |
| Branch: REL_14_STABLE [3eb26524c] 2024-11-20 12:03:47 -0500 |
| Branch: REL_13_STABLE [630520c22] 2024-11-20 12:03:47 -0500 |
| --> |
| <para> |
| Avoid assertion failure in rule deparsing if a set operation leaf |
| query contains set operations (Man Zeng, Tom Lane) |
| <ulink url="&commit_baseurl;fe084039e">§</ulink> |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Tom Lane <tgl@sss.pgh.pa.us> |
| Branch: master [3eea7a0c9] 2024-12-09 14:38:19 -0500 |
| Branch: REL_17_STABLE [556f7b7bc] 2024-12-09 14:38:19 -0500 |
| Branch: REL_16_STABLE [bb649b553] 2024-12-09 14:38:19 -0500 |
| Branch: REL_15_STABLE [4089b9bd6] 2024-12-09 14:38:19 -0500 |
| Branch: REL_14_STABLE [8a95ad3b2] 2024-12-09 14:38:19 -0500 |
| Branch: REL_13_STABLE [4d20bad5e] 2024-12-09 14:38:19 -0500 |
| --> |
| <para> |
| Avoid edge-case assertion failure in parallel query startup (Tom Lane) |
| <ulink url="&commit_baseurl;bb649b553">§</ulink> |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Michael Paquier <michael@paquier.xyz> |
| Branch: master [da99fedf8] 2024-12-09 10:45:28 +0900 |
| Branch: REL_17_STABLE [dc5f90541] 2024-12-09 10:46:03 +0900 |
| Branch: REL_16_STABLE [ae77bcc3a] 2024-12-09 10:46:09 +0900 |
| Branch: REL_15_STABLE [1df1e1e78] 2024-12-09 10:46:10 +0900 |
| --> |
| <para> |
| Fix assertion failure at shutdown when writing out the statistics |
| file (Michael Paquier) |
| <ulink url="&commit_baseurl;ae77bcc3a">§</ulink> |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Tom Lane <tgl@sss.pgh.pa.us> |
| Branch: master [5b8728cd7] 2024-11-25 18:09:09 -0500 |
| Branch: REL_17_STABLE [97be02ad0] 2024-11-25 18:09:10 -0500 |
| Branch: REL_16_STABLE [4aba56adc] 2024-11-25 18:09:10 -0500 |
| Branch: REL_15_STABLE [80cd33bad] 2024-11-25 18:09:10 -0500 |
| Branch: REL_14_STABLE [a1168855e] 2024-11-25 18:09:10 -0500 |
| Branch: REL_13_STABLE [48a6cd1ae] 2024-11-25 18:09:11 -0500 |
| --> |
| <para> |
| In <function>NULLIF()</function>, avoid passing a read-write |
| expanded object pointer to the data type's equality function |
| (Tom Lane) |
| <ulink url="&commit_baseurl;4aba56adc">§</ulink> |
| </para> |
| |
| <para> |
| The equality function could modify or delete the object if it's |
| given a read-write pointer, which would be bad if we decide to |
| return it as the <function>NULLIF()</function> result. There is |
| probably no problem with any built-in equality function, but it's |
| easy to demonstrate a failure with one coded in PL/pgSQL. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Tom Lane <tgl@sss.pgh.pa.us> |
| Branch: master [0da39aa76] 2025-01-29 15:31:55 -0500 |
| Branch: REL_17_STABLE [6e41e9e5e] 2025-01-29 15:31:55 -0500 |
| Branch: REL_16_STABLE [6655d931c] 2025-01-29 15:31:55 -0500 |
| Branch: REL_15_STABLE [bb85d0935] 2025-01-29 15:31:55 -0500 |
| Branch: REL_14_STABLE [c05268e6e] 2025-01-29 15:31:55 -0500 |
| --> |
| <para> |
| Ensure that expression preprocessing is applied to a default null |
| value in <command>INSERT</command> (Tom Lane) |
| <ulink url="&commit_baseurl;6655d931c">§</ulink> |
| </para> |
| |
| <para> |
| If the target column is of a domain type, the planner must insert a |
| coerce-to-domain step not just a null constant, and this expression |
| missed going through some required processing steps. There is no |
| known consequence with domains based on core data types, but in |
| theory an error could occur with domains based on extension types. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Tom Lane <tgl@sss.pgh.pa.us> |
| Branch: master [29dfffae0] 2025-01-11 11:45:56 -0500 |
| Branch: REL_17_STABLE [e98df02df] 2025-01-11 11:45:56 -0500 |
| Branch: REL_16_STABLE [33a4e656d] 2025-01-11 11:45:56 -0500 |
| Branch: REL_15_STABLE [71bb9c4b2] 2025-01-11 11:45:56 -0500 |
| Branch: REL_14_STABLE [bcb4db0d3] 2025-01-11 11:45:56 -0500 |
| Branch: REL_13_STABLE [02a38bc84] 2025-01-11 11:45:56 -0500 |
| --> |
| <para> |
| Repair memory leaks in PL/Python (Mat Arye, Tom Lane) |
| <ulink url="&commit_baseurl;33a4e656d">§</ulink> |
| </para> |
| |
| <para> |
| Repeated use of <function>PLyPlan.execute</function> |
| or <function>plpy.cursor</function> resulted in memory leakage for |
| the duration of the calling PL/Python function. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Peter Eisentraut <peter@eisentraut.org> |
| Branch: master [32a2aa77e] 2024-11-25 11:44:29 +0100 |
| Branch: REL_17_STABLE [f979197eb] 2024-11-25 12:27:10 +0100 |
| Branch: REL_16_STABLE [07c77803c] 2024-11-25 12:27:19 +0100 |
| Branch: REL_15_STABLE [a5f9cbde9] 2024-11-25 12:27:26 +0100 |
| Branch: REL_14_STABLE [17d081a6f] 2024-11-25 13:11:18 +0100 |
| Branch: REL_13_STABLE [f230e27a2] 2024-11-25 13:11:49 +0100 |
| --> |
| <para> |
| Fix PL/Tcl to compile with Tcl 9 (Peter Eisentraut) |
| <ulink url="&commit_baseurl;07c77803c">§</ulink> |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Tom Lane <tgl@sss.pgh.pa.us> |
| Branch: master [2f696453d] 2024-12-01 14:15:37 -0500 |
| Branch: REL_17_STABLE [a963abd54] 2024-12-01 14:15:37 -0500 |
| Branch: REL_16_STABLE [cca34f68c] 2024-12-01 14:15:37 -0500 |
| Branch: REL_15_STABLE [60b47525c] 2024-12-01 14:15:37 -0500 |
| Branch: REL_14_STABLE [52c7a44e9] 2024-12-01 14:15:37 -0500 |
| Branch: REL_13_STABLE [e359cbb84] 2024-12-01 14:15:37 -0500 |
| --> |
| <para> |
| In the <application>ecpg</application> preprocessor, fix possible |
| misprocessing of cursors that reference out-of-scope variables |
| (Tom Lane) |
| <ulink url="&commit_baseurl;cca34f68c">§</ulink> |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Fujii Masao <fujii@postgresql.org> |
| Branch: master [94b914f60] 2025-01-15 01:23:02 +0900 |
| Branch: REL_17_STABLE [ba2dbedd5] 2025-01-15 01:24:24 +0900 |
| Branch: REL_16_STABLE [5c7c34db2] 2025-01-15 01:25:05 +0900 |
| Branch: REL_15_STABLE [71ef47cf0] 2025-01-15 01:25:19 +0900 |
| Branch: REL_14_STABLE [d06ab3c0c] 2025-01-15 01:25:31 +0900 |
| Branch: REL_13_STABLE [226c9048d] 2025-01-15 01:25:52 +0900 |
| --> |
| <para> |
| In <application>ecpg</application>, fix compile-time warnings about |
| unsupported use of <literal>COPY ... FROM STDIN</literal> (Ryo |
| Kanbayashi) |
| <ulink url="&commit_baseurl;5c7c34db2">§</ulink> |
| </para> |
| |
| <para> |
| Previously, the intended warning was not issued due to a typo. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Tom Lane <tgl@sss.pgh.pa.us> |
| Branch: master [6cddecdfb] 2025-01-29 14:24:36 -0500 |
| Branch: REL_17_STABLE [0b713b94b] 2025-01-29 14:24:36 -0500 |
| Branch: REL_16_STABLE [998c4fc7c] 2025-01-29 14:24:36 -0500 |
| Branch: REL_15_STABLE [b17e3970c] 2025-01-29 14:24:36 -0500 |
| Branch: REL_14_STABLE [54f9afea7] 2025-01-29 14:24:36 -0500 |
| Branch: REL_13_STABLE [98df8bace] 2025-01-29 14:24:36 -0500 |
| --> |
| <para> |
| Fix <application>psql</application> to safely handle file path names |
| that are encoded in SJIS (Tom Lane) |
| <ulink url="&commit_baseurl;998c4fc7c">§</ulink> |
| </para> |
| |
| <para> |
| Some two-byte characters in SJIS have a second byte that is equal to |
| ASCII backslash (<literal>\</literal>). These characters were |
| corrupted by path name normalization, preventing access to files |
| whose names include such characters. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Tom Lane <tgl@sss.pgh.pa.us> |
| Branch: master [9a45a89c3] 2025-01-14 18:50:24 -0500 |
| Branch: REL_17_STABLE [a0dfeae0d] 2025-01-14 18:50:24 -0500 |
| Branch: REL_16_STABLE [b935691b8] 2025-01-14 18:50:24 -0500 |
| Branch: REL_15_STABLE [a3b709cf7] 2025-01-14 18:50:24 -0500 |
| Branch: REL_14_STABLE [02e69313a] 2025-01-14 18:50:24 -0500 |
| Branch: REL_13_STABLE [cfd7aadeb] 2025-01-14 18:50:24 -0500 |
| --> |
| <para> |
| Fix use of wrong version of <function>pqsignal()</function> |
| in <application>pgbench</application> |
| and <application>psql</application> (Fujii Masao, Tom Lane) |
| <ulink url="&commit_baseurl;b935691b8">§</ulink> |
| </para> |
| |
| <para> |
| This error could lead to misbehavior when using |
| the <option>-T</option> option in <application>pgbench</application> |
| or the <command>\watch</command> command |
| in <application>psql</application>, due to interrupted system calls |
| not being resumed as expected. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Tom Lane <tgl@sss.pgh.pa.us> |
| Branch: master [530f89e64] 2024-12-15 14:14:14 -0500 |
| Branch: REL_17_STABLE [ff9dc96f3] 2024-12-15 14:14:15 -0500 |
| Branch: REL_16_STABLE [076b09123] 2024-12-15 14:14:15 -0500 |
| Branch: REL_15_STABLE [ff88db910] 2024-12-15 14:14:15 -0500 |
| Branch: REL_14_STABLE [2a23dbcf3] 2024-12-15 14:14:15 -0500 |
| Branch: REL_13_STABLE [ec0dc2c59] 2024-12-15 14:14:15 -0500 |
| --> |
| <para> |
| Fix misexecution of some nested <command>\if</command> constructs |
| in <application>pgbench</application> (Michail Nikolaev) |
| <ulink url="&commit_baseurl;076b09123">§</ulink> |
| </para> |
| |
| <para> |
| An <command>\if</command> command appearing within a false |
| (not-being-executed) <command>\if</command> branch was incorrectly |
| treated the same as <command>\elif</command>. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Fujii Masao <fujii@postgresql.org> |
| Branch: master [af35fe501] 2024-11-27 23:01:53 +0900 |
| Branch: REL_17_STABLE [adb103fca] 2024-11-27 23:03:04 +0900 |
| Branch: REL_16_STABLE [1cf646957] 2024-11-27 23:03:44 +0900 |
| Branch: REL_15_STABLE [1e46f7351] 2024-11-27 23:04:29 +0900 |
| Branch: REL_14_STABLE [0f13e1a78] 2024-11-27 23:04:55 +0900 |
| Branch: REL_13_STABLE [f1cb5e51f] 2024-11-27 23:05:24 +0900 |
| Author: Tom Lane <tgl@sss.pgh.pa.us> |
| Branch: master [fb056564e] 2025-02-07 13:41:42 -0500 |
| Branch: REL_17_STABLE [e35d396ec] 2025-02-07 13:41:42 -0500 |
| Branch: REL_16_STABLE [21b815f92] 2025-02-07 13:41:42 -0500 |
| Branch: REL_15_STABLE [499d1cf55] 2025-02-07 13:41:43 -0500 |
| Branch: REL_14_STABLE [5addea71c] 2025-02-07 13:41:43 -0500 |
| Branch: REL_13_STABLE [b6decfc1d] 2025-02-07 13:41:43 -0500 |
| --> |
| <para> |
| In <application>pgbench</application>, fix possible misdisplay of |
| progress messages during table initialization (Yushi Ogiwara, Tatsuo |
| Ishii, Fujii Masao) |
| <ulink url="&commit_baseurl;1cf646957">§</ulink> |
| <ulink url="&commit_baseurl;21b815f92">§</ulink> |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Alexander Korotkov <akorotkov@postgresql.org> |
| Branch: master [ff1975ddd] 2025-02-05 00:45:49 +0200 |
| Branch: REL_17_STABLE [1b8a9533f] 2025-02-05 00:45:43 +0200 |
| Branch: REL_16_STABLE [d54d5668b] 2025-02-05 00:45:37 +0200 |
| Branch: REL_15_STABLE [f1e0b078b] 2025-02-05 00:45:29 +0200 |
| Branch: REL_14_STABLE [f2205448b] 2025-02-05 00:45:16 +0200 |
| Branch: REL_13_STABLE [c24311c1f] 2025-02-05 00:46:06 +0200 |
| --> |
| <para> |
| Make <application>pg_controldata</application> more robust against |
| corrupted <filename>pg_control</filename> files (Ilyasov Ian, Anton |
| Voloshin) |
| <ulink url="&commit_baseurl;d54d5668b">§</ulink> |
| </para> |
| |
| <para> |
| Since <application>pg_controldata</application> will attempt to |
| print the contents of <filename>pg_control</filename> even if the |
| CRC check fails, it must take care not to misbehave for invalid |
| field values. This patch fixes some issues triggered by invalid |
| timestamps and apparently-negative WAL segment sizes. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Tom Lane <tgl@sss.pgh.pa.us> |
| Branch: master [7b8cb9cd6] 2024-12-13 14:21:36 -0500 |
| Branch: REL_17_STABLE [ad950ea98] 2024-12-13 14:21:36 -0500 |
| Branch: REL_16_STABLE [782cc1aa3] 2024-12-13 14:21:36 -0500 |
| Branch: REL_15_STABLE [6978129b4] 2024-12-13 14:21:36 -0500 |
| Branch: REL_14_STABLE [c7f3c414f] 2024-12-13 14:21:36 -0500 |
| Branch: REL_13_STABLE [b6df2d6e5] 2024-12-13 14:21:36 -0500 |
| --> |
| <para> |
| Fix possible crash in <application>pg_dump</application> with |
| identity sequences attached to tables that are extension members |
| (Tom Lane) |
| <ulink url="&commit_baseurl;782cc1aa3">§</ulink> |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Tom Lane <tgl@sss.pgh.pa.us> |
| Branch: master [3f0632470] 2024-12-17 22:31:26 -0500 |
| Branch: REL_17_STABLE [04b860198] 2024-12-17 22:31:26 -0500 |
| Branch: REL_16_STABLE [8cfff087b] 2024-12-17 22:31:26 -0500 |
| --> |
| <para> |
| Fix memory leak in <application>pg_restore</application> |
| with zstd-compressed data (Tom Lane) |
| <ulink url="&commit_baseurl;8cfff087b">§</ulink> |
| </para> |
| |
| <para> |
| The leak was per-decompression-operation, so would be most |
| noticeable with a dump containing many tables or large objects. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Thomas Munro <tmunro@postgresql.org> |
| Branch: master [970b97eeb] 2025-01-09 16:04:23 +1300 |
| Branch: REL_17_STABLE [faee3185a] 2025-01-09 16:05:01 +1300 |
| Branch: REL_16_STABLE [be7489662] 2025-01-09 16:05:08 +1300 |
| Branch: REL_15_STABLE [6b6901a26] 2025-01-09 16:05:16 +1300 |
| Branch: REL_14_STABLE [8f40d4612] 2025-01-09 16:05:25 +1300 |
| Branch: REL_13_STABLE [bd0564f61] 2025-01-09 16:05:36 +1300 |
| Branch: master [026762dae] 2025-01-09 15:00:58 +1300 |
| Branch: REL_17_STABLE [af109e339] 2025-01-09 15:00:23 +1300 |
| Branch: REL_16_STABLE [0bff6f1da] 2025-01-09 14:59:47 +1300 |
| Branch: REL_15_STABLE [70a7a3761] 2025-01-09 14:58:18 +1300 |
| Branch: REL_14_STABLE [1636c5e56] 2025-01-09 14:57:52 +1300 |
| Branch: REL_13_STABLE [d02486cc8] 2025-01-09 14:57:02 +1300 |
| --> |
| <para> |
| Fix <application>pg_basebackup</application> to correctly |
| handle <filename>pg_wal.tar</filename> files exceeding 2GB on |
| Windows (Davinder Singh, Thomas Munro) |
| <ulink url="&commit_baseurl;be7489662">§</ulink> |
| <ulink url="&commit_baseurl;0bff6f1da">§</ulink> |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Tom Lane <tgl@sss.pgh.pa.us> |
| Branch: master [969bbd0fa] 2024-12-14 16:07:18 -0500 |
| Branch: REL_17_STABLE [3652de36e] 2024-12-14 16:07:18 -0500 |
| Branch: REL_16_STABLE [31daa10fa] 2024-12-14 16:07:18 -0500 |
| --> |
| <para> |
| Use SQL-standard function bodies in the declarations |
| of <filename>contrib/earthdistance</filename>'s SQL-language |
| functions (Tom Lane, Ronan Dunklau) |
| <ulink url="&commit_baseurl;31daa10fa">§</ulink> |
| </para> |
| |
| <para> |
| This change allows their references |
| to <filename>contrib/cube</filename> to be resolved during extension |
| creation, reducing the risk of search-path-based failures and |
| possible attacks. |
| </para> |
| |
| <para> |
| In particular, this restores their usability in contexts like |
| generated columns, for which <productname>PostgreSQL</productname> |
| v17 restricts the search path on security grounds. We have received |
| reports of databases failing to be upgraded to v17 because of that. |
| This patch has been included in v16 to provide a workaround: |
| updating the <filename>earthdistance</filename> extension to this |
| version beforehand should allow an upgrade to succeed. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Tom Lane <tgl@sss.pgh.pa.us> |
| Branch: master [5980f1884] 2024-11-25 12:50:17 -0500 |
| Branch: REL_17_STABLE [e266a0ed6] 2024-11-25 12:50:17 -0500 |
| Branch: REL_16_STABLE [1f4aadec4] 2024-11-25 12:50:17 -0500 |
| Branch: REL_15_STABLE [851c6ff18] 2024-11-25 12:50:17 -0500 |
| Branch: REL_14_STABLE [2fc0199a5] 2024-11-25 12:50:17 -0500 |
| Branch: REL_13_STABLE [32057a0f7] 2024-11-25 12:50:17 -0500 |
| --> |
| <para> |
| Update configuration probes that determine the compiler switches |
| needed to access ARM CRC instructions (Tom Lane) |
| <ulink url="&commit_baseurl;1f4aadec4">§</ulink> |
| </para> |
| |
| <para> |
| On ARM platforms where the baseline CPU target lacks CRC |
| instructions, we need to supply a <option>-march</option> switch to |
| persuade the compiler to compile such instructions. Recent versions |
| of gcc reject the value we were trying, leading to silently falling |
| back to software CRC. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Daniel Gustafsson <dgustafsson@postgresql.org> |
| Branch: REL_17_STABLE [0951d4ee4] 2025-02-07 15:09:13 +0100 |
| Branch: REL_16_STABLE [60516fc8b] 2025-02-07 15:09:13 +0100 |
| --> |
| <para> |
| Fix meson build system to support old OpenSSL libraries on Windows |
| (Darek Slusarczyk) |
| <ulink url="&commit_baseurl;60516fc8b">§</ulink> |
| </para> |
| |
| <para> |
| Add support for the legacy library |
| names <filename>ssleay32</filename> |
| and <filename>libeay32</filename>. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Heikki Linnakangas <heikki.linnakangas@iki.fi> |
| Branch: master [2571c1d5c] 2024-12-25 18:14:18 +0200 |
| Branch: REL_17_STABLE [c80acbc6f] 2024-12-25 18:14:26 +0200 |
| Branch: REL_16_STABLE [4e0d71ff2] 2024-12-25 18:14:30 +0200 |
| Branch: master [07f902bd7] 2024-12-25 19:22:25 +0200 |
| Branch: REL_17_STABLE [d8b0c6411] 2024-12-25 19:22:33 +0200 |
| Branch: REL_16_STABLE [643efb18b] 2024-12-25 19:22:41 +0200 |
| --> |
| <para> |
| In Windows builds using meson, ensure all libcommon and libpgport |
| functions are exported (Vladlen Popolitov, Heikki Linnakangas) |
| <ulink url="&commit_baseurl;4e0d71ff2">§</ulink> |
| <ulink url="&commit_baseurl;643efb18b">§</ulink> |
| </para> |
| |
| <para> |
| This fixes <quote>unresolved external symbol</quote> build errors |
| for extensions. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Andrew Dunstan <andrew@dunslane.net> |
| Branch: master Release: REL_17_BR [7c655a04a] 2024-05-26 17:34:45 -0400 |
| Branch: REL_16_STABLE [1250adfdf] 2024-11-26 15:41:58 -0500 |
| --> |
| <para> |
| Fix meson configuration process to correctly detect |
| OSSP's <filename>uuid.h</filename> header file under MSVC |
| (Andrew Dunstan) |
| <ulink url="&commit_baseurl;1250adfdf">§</ulink> |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Peter Eisentraut <peter@eisentraut.org> |
| Branch: master [4ee130c6e] 2024-11-26 18:09:05 +0100 |
| Branch: REL_17_STABLE [e00c1e249] 2024-11-26 18:09:14 +0100 |
| Branch: REL_16_STABLE [766b0b40a] 2024-11-26 18:09:23 +0100 |
| --> |
| <para> |
| When building with meson, install <filename>pgevent</filename> |
| in <replaceable>pkglibdir</replaceable> |
| not <replaceable>bindir</replaceable> (Peter Eisentraut) |
| <ulink url="&commit_baseurl;766b0b40a">§</ulink> |
| </para> |
| |
| <para> |
| This matches the behavior of the make-based build system and the old |
| MSVC build system. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Peter Eisentraut <peter@eisentraut.org> |
| Branch: master [02ed3c2bd] 2025-01-24 10:26:12 +0100 |
| Branch: REL_17_STABLE [24c5b73eb] 2025-01-24 10:26:59 +0100 |
| Branch: REL_16_STABLE [155d6162e] 2025-01-24 10:55:24 +0100 |
| --> |
| <para> |
| When building with meson, install <filename>sepgsql.sql</filename> |
| under <filename>share/contrib/</filename> |
| not <filename>share/extension/</filename> (Peter Eisentraut) |
| <ulink url="&commit_baseurl;155d6162e">§</ulink> |
| </para> |
| |
| <para> |
| This matches what the make-based build system does. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Tom Lane <tgl@sss.pgh.pa.us> |
| Branch: master [60c513f8f] 2025-01-20 16:49:15 -0500 |
| Branch: REL_17_STABLE [e292ba333] 2025-01-20 16:49:15 -0500 |
| Branch: REL_16_STABLE [d62403c51] 2025-01-20 16:49:15 -0500 |
| Branch: REL_15_STABLE [48bc95d0d] 2025-01-20 16:49:15 -0500 |
| Branch: REL_14_STABLE [20b4819d0] 2025-01-20 16:49:15 -0500 |
| Branch: REL_13_STABLE [6397819c8] 2025-01-20 16:49:15 -0500 |
| --> |
| <para> |
| Update time zone data files to <application>tzdata</application> |
| release 2025a for DST law changes in Paraguay, plus historical |
| corrections for the Philippines (Tom Lane) |
| <ulink url="&commit_baseurl;d62403c51">§</ulink> |
| </para> |
| </listitem> |
| |
| </itemizedlist> |
| |
| </sect2> |
| </sect1> |
| |
| <sect1 id="release-16-6"> |
| <title>Release 16.6</title> |
| |
| <formalpara> |
| <title>Release date:</title> |
| <para>2024-11-21</para> |
| </formalpara> |
| |
| <para> |
| This release contains a few fixes from 16.5. |
| For information about new features in major release 16, see |
| <xref linkend="release-16"/>. |
| </para> |
| |
| <sect2 id="release-16-6-migration"> |
| <title>Migration to Version 16.6</title> |
| |
| <para> |
| A dump/restore is not required for those running 16.X. |
| </para> |
| |
| <para> |
| However, if you are upgrading from a version earlier than 16.5, |
| see <xref linkend="release-16-5"/>. |
| </para> |
| </sect2> |
| |
| <sect2 id="release-16-6-changes"> |
| <title>Changes</title> |
| |
| <itemizedlist> |
| |
| <listitem> |
| <!-- |
| Author: Tom Lane <tgl@sss.pgh.pa.us> |
| Branch: REL_17_STABLE [6bfacd368] 2024-11-16 12:58:26 -0500 |
| Branch: REL_16_STABLE [ee33d5847] 2024-11-16 12:58:26 -0500 |
| Branch: REL_15_STABLE [17db248f3] 2024-11-16 12:58:26 -0500 |
| Branch: REL_14_STABLE [099e711b7] 2024-11-16 12:58:26 -0500 |
| --> |
| <para> |
| Repair ABI break for extensions that work with |
| struct <structname>ResultRelInfo</structname> (Tom Lane) |
| <ulink url="&commit_baseurl;ee33d5847">§</ulink> |
| </para> |
| |
| <para> |
| Last week's minor releases unintentionally broke binary |
| compatibility with <application>timescaledb</application> and |
| several other extensions. Restore the affected structure to its |
| previous size, so that such extensions need not be rebuilt. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Noah Misch <noah@leadboat.com> |
| Branch: master [7b88529f4] 2024-11-15 20:39:56 -0800 |
| Branch: REL_17_STABLE [1c05004a8] 2024-11-15 20:39:59 -0800 |
| Branch: REL_16_STABLE [b0918c128] 2024-11-15 20:39:59 -0800 |
| Branch: REL_15_STABLE [edf80895f] 2024-11-15 20:39:59 -0800 |
| Branch: REL_14_STABLE [be062bfa5] 2024-11-15 20:40:00 -0800 |
| Branch: REL_13_STABLE [07c6e0f61] 2024-11-15 20:40:00 -0800 |
| Branch: REL_12_STABLE [c46333865] 2024-11-15 20:40:00 -0800 |
| --> |
| <para> |
| Restore functionality of <command>ALTER {ROLE|DATABASE} SET |
| role</command> (Tom Lane, Noah Misch) |
| <ulink url="&commit_baseurl;b0918c128">§</ulink> |
| </para> |
| |
| <para> |
| The fix for CVE-2024-10978 accidentally caused settings |
| for <varname>role</varname> to not be applied if they come from |
| non-interactive sources, including previous <command>ALTER |
| {ROLE|DATABASE}</command> commands and |
| the <varname>PGOPTIONS</varname> environment variable. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Masahiko Sawada <msawada@postgresql.org> |
| Branch: master [e5ed873b1] 2024-11-15 17:06:11 -0800 |
| Branch: REL_17_STABLE [568e78a65] 2024-11-15 17:06:08 -0800 |
| Branch: REL_16_STABLE [f35391133] 2024-11-15 17:06:05 -0800 |
| Branch: REL_15_STABLE [91771b3fb] 2024-11-15 17:06:02 -0800 |
| Branch: REL_14_STABLE [26c4e8968] 2024-11-15 17:06:00 -0800 |
| Branch: REL_13_STABLE [15dc1abb1] 2024-11-15 17:05:57 -0800 |
| --> |
| <para> |
| Fix cases where a logical replication |
| slot's <structfield>restart_lsn</structfield> could go backwards |
| (Masahiko Sawada) |
| <ulink url="&commit_baseurl;f35391133">§</ulink> |
| </para> |
| |
| <para> |
| Previously, restarting logical replication could sometimes cause the |
| slot's restart point to be recomputed as an older value than had |
| previously been advertised |
| in <structname>pg_replication_slots</structname>. This is bad, |
| since for example WAL files might have been removed on the basis of |
| the later <structfield>restart_lsn</structfield> value, in which |
| case replication would fail to restart. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Álvaro Herrera <alvherre@alvh.no-ip.org> |
| Branch: master [90bcc7c2d] 2024-11-15 12:53:12 +0100 |
| Branch: REL_17_STABLE [cb844d66b] 2024-11-15 12:53:12 +0100 |
| Branch: REL_16_STABLE [ea1649c35] 2024-11-15 12:53:12 +0100 |
| Branch: REL_15_STABLE [e28cf2fbc] 2024-11-15 12:53:12 +0100 |
| Branch: REL_14_STABLE [ba2535841] 2024-11-15 12:53:12 +0100 |
| --> |
| <para> |
| Avoid deleting still-needed WAL files |
| during <application>pg_rewind</application> |
| (Polina Bungina, Alexander Kukushkin) |
| <ulink url="&commit_baseurl;ea1649c35">§</ulink> |
| </para> |
| |
| <para> |
| Previously, in unlucky cases, it was possible |
| for <application>pg_rewind</application> to remove important WAL |
| files from the rewound demoted primary. In particular this happens |
| if those files have been marked for archival (i.e., |
| their <filename>.ready</filename> files were created) but not yet |
| archived. Then the newly promoted node no longer has such files |
| because of them having been recycled, but likely they are needed |
| for recovery in the demoted node. |
| If <application>pg_rewind</application> removes them, recovery is |
| not possible anymore. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Michael Paquier <michael@paquier.xyz> |
| Branch: master [818119afc] 2024-11-15 11:31:58 +0900 |
| Branch: REL_17_STABLE [1d6a03ea4] 2024-11-15 11:32:13 +0900 |
| Branch: REL_16_STABLE [afa20845d] 2024-11-15 11:32:16 +0900 |
| Branch: REL_15_STABLE [154c5b42a] 2024-11-15 11:32:18 +0900 |
| --> |
| <para> |
| Fix race conditions associated with dropping shared statistics |
| entries (Kyotaro Horiguchi, Michael Paquier) |
| <ulink url="&commit_baseurl;afa20845d">§</ulink> |
| </para> |
| |
| <para> |
| These bugs could lead to loss of statistics data, assertion |
| failures, or <quote>can only drop stats once</quote> errors. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Peter Geoghegan <pg@bowt.ie> |
| Branch: master [93063e2e4] 2024-11-12 20:57:45 -0500 |
| Branch: REL_17_STABLE [7af6d1306] 2024-11-12 20:57:43 -0500 |
| Branch: REL_16_STABLE [05aac2e83] 2024-11-12 20:57:41 -0500 |
| Branch: REL_15_STABLE [16a2bb079] 2024-11-12 20:57:39 -0500 |
| Branch: REL_14_STABLE [2a30b6836] 2024-11-12 20:57:37 -0500 |
| Branch: REL_13_STABLE [e493ea866] 2024-11-12 20:57:35 -0500 |
| --> |
| <para> |
| Count index scans in <filename>contrib/bloom</filename> indexes in |
| the statistics views, such as the |
| <structname>pg_stat_user_indexes</structname>.<structfield>idx_scan</structfield> |
| counter (Masahiro Ikeda) |
| <ulink url="&commit_baseurl;05aac2e83">§</ulink> |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Alexander Korotkov <akorotkov@postgresql.org> |
| Branch: master [db22b9002] 2024-11-12 01:44:20 +0200 |
| Branch: REL_17_STABLE [a6fa869cf] 2024-11-12 01:51:20 +0200 |
| Branch: REL_16_STABLE [b242aba02] 2024-11-12 01:53:40 +0200 |
| Branch: REL_15_STABLE [713b8546a] 2024-11-12 01:54:30 +0200 |
| Branch: REL_14_STABLE [247e7647f] 2024-11-12 01:54:35 +0200 |
| Branch: REL_13_STABLE [5411e8213] 2024-11-12 01:54:38 +0200 |
| --> |
| <para> |
| Fix crash when checking to see if an index's opclass options have |
| changed (Alexander Korotkov) |
| <ulink url="&commit_baseurl;b242aba02">§</ulink> |
| </para> |
| |
| <para> |
| Some forms of <command>ALTER TABLE</command> would fail if the |
| table has an index with non-default operator class options. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Tom Lane <tgl@sss.pgh.pa.us> |
| Branch: master [b69bdcee9] 2024-11-15 18:23:38 -0500 |
| Branch: REL_17_STABLE [5f28e6ba7] 2024-11-15 18:23:38 -0500 |
| Branch: REL_16_STABLE [b6312becc] 2024-11-15 18:23:38 -0500 |
| Branch: REL_15_STABLE [2496c3f6f] 2024-11-15 18:23:38 -0500 |
| Branch: REL_14_STABLE [2bdd3b248] 2024-11-15 18:23:38 -0500 |
| --> |
| <para> |
| Avoid assertion failure caused by disconnected NFA sub-graphs in |
| regular expression parsing (Tom Lane) |
| <ulink url="&commit_baseurl;b6312becc">§</ulink> |
| </para> |
| |
| <para> |
| This bug does not appear to have any visible consequences in |
| non-assert builds. |
| </para> |
| </listitem> |
| |
| </itemizedlist> |
| |
| </sect2> |
| </sect1> |
| |
| <sect1 id="release-16-5"> |
| <title>Release 16.5</title> |
| |
| <formalpara> |
| <title>Release date:</title> |
| <para>2024-11-14</para> |
| </formalpara> |
| |
| <para> |
| This release contains a variety of fixes from 16.4. |
| For information about new features in major release 16, see |
| <xref linkend="release-16"/>. |
| </para> |
| |
| <sect2 id="release-16-5-migration"> |
| <title>Migration to Version 16.5</title> |
| |
| <para> |
| A dump/restore is not required for those running 16.X. |
| </para> |
| |
| <para> |
| However, if you have ever detached a partition from a partitioned |
| table that has a foreign-key reference to another partitioned table, |
| and not dropped the former partition, then you may have catalog and/or |
| data corruption to repair, as detailed in the fifth changelog entry |
| below. |
| </para> |
| |
| <para> |
| Also, if you are upgrading from a version earlier than 16.3, |
| see <xref linkend="release-16-3"/>. |
| </para> |
| </sect2> |
| |
| <sect2 id="release-16-5-changes"> |
| <title>Changes</title> |
| |
| <itemizedlist> |
| |
| <listitem> |
| <!-- |
| Author: Nathan Bossart <nathan@postgresql.org> |
| Branch: master [cd7ab5753] 2024-11-11 09:00:00 -0600 |
| Branch: REL_17_STABLE [edcda9bb4] 2024-11-11 09:00:00 -0600 |
| Branch: REL_16_STABLE [562289460] 2024-11-11 09:00:00 -0600 |
| Branch: REL_15_STABLE [6db5ea8de] 2024-11-11 09:00:00 -0600 |
| Branch: REL_14_STABLE [4e51030af] 2024-11-11 09:00:00 -0600 |
| Branch: REL_13_STABLE [952ff31e2] 2024-11-11 09:00:00 -0600 |
| Branch: REL_12_STABLE [448525e8a] 2024-11-11 09:00:00 -0600 |
| --> |
| <para> |
| Ensure cached plans are marked as dependent on the calling role when |
| RLS applies to a non-top-level table reference (Nathan Bossart) |
| <ulink url="&commit_baseurl;562289460">§</ulink> |
| </para> |
| |
| <para> |
| If a CTE, subquery, sublink, security invoker view, or coercion |
| projection in a query references a table with row-level security |
| policies, we neglected to mark the resulting plan as potentially |
| dependent on which role is executing it. This could lead to later |
| query executions in the same session using the wrong plan, and then |
| returning or hiding rows that should have been hidden or returned |
| instead. |
| </para> |
| |
| <para> |
| The <productname>PostgreSQL</productname> Project thanks |
| Wolfgang Walther for reporting this problem. |
| (CVE-2024-10976) |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Michael Paquier <michael@paquier.xyz> |
| Branch: master [bf8835ea9] 2024-11-11 10:19:52 +0900 |
| Branch: REL_17_STABLE [a5cc4c667] 2024-11-11 10:19:56 +0900 |
| Branch: REL_16_STABLE [67d28bd02] 2024-11-11 10:19:58 +0900 |
| Branch: REL_15_STABLE [d2c3e31c1] 2024-11-11 10:19:59 +0900 |
| Branch: REL_14_STABLE [e6c945476] 2024-11-11 10:20:01 +0900 |
| Branch: REL_13_STABLE [7b49707b7] 2024-11-11 10:20:02 +0900 |
| Branch: REL_12_STABLE [2a951ef0a] 2024-11-11 10:20:03 +0900 |
| --> |
| <para> |
| Make <application>libpq</application> discard error messages |
| received during SSL or GSS protocol negotiation (Jacob Champion) |
| <ulink url="&commit_baseurl;67d28bd02">§</ulink> |
| </para> |
| |
| <para> |
| An error message received before encryption negotiation is completed |
| might have been injected by a man-in-the-middle, rather than being |
| real server output. Reporting it opens the door to various security |
| hazards; for example, the message might spoof a query result that a |
| careless user could mistake for correct output. The best answer |
| seems to be to discard such data and rely only |
| on <application>libpq</application>'s own report of the connection |
| failure. |
| </para> |
| |
| <para> |
| The <productname>PostgreSQL</productname> Project thanks |
| Jacob Champion for reporting this problem. |
| (CVE-2024-10977) |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Tom Lane <tgl@sss.pgh.pa.us> |
| Branch: master [5a2fed911] 2024-11-11 10:29:54 -0500 |
| Branch: REL_17_STABLE [cd82afdda] 2024-11-11 10:29:54 -0500 |
| Branch: REL_16_STABLE [ae340d031] 2024-11-11 10:29:54 -0500 |
| Branch: REL_15_STABLE [a5d2e6205] 2024-11-11 10:29:54 -0500 |
| Branch: REL_14_STABLE [2a68808e2] 2024-11-11 10:29:54 -0500 |
| Branch: REL_13_STABLE [76123ded6] 2024-11-11 10:29:54 -0500 |
| Branch: REL_12_STABLE [4c9d96f74] 2024-11-11 10:29:54 -0500 |
| Branch: master [73c9f91a1] 2024-11-11 17:05:53 -0500 |
| Branch: REL_17_STABLE [f4f5d27d8] 2024-11-11 17:05:53 -0500 |
| Branch: REL_16_STABLE [95f5a5237] 2024-11-11 17:05:53 -0500 |
| Branch: REL_15_STABLE [109a32380] 2024-11-11 17:05:53 -0500 |
| Branch: REL_14_STABLE [00b94e8e2] 2024-11-11 17:05:53 -0500 |
| Branch: REL_13_STABLE [dc7378793] 2024-11-11 17:05:53 -0500 |
| Branch: REL_12_STABLE [0edad8654] 2024-11-11 17:05:53 -0500 |
| --> |
| <para> |
| Fix unintended interactions between <command>SET SESSION |
| AUTHORIZATION</command> and <command>SET ROLE</command> (Tom Lane) |
| <ulink url="&commit_baseurl;ae340d031">§</ulink> |
| <ulink url="&commit_baseurl;95f5a5237">§</ulink> |
| </para> |
| |
| <para> |
| The SQL standard mandates that <command>SET SESSION |
| AUTHORIZATION</command> have a side-effect of doing <command>SET |
| ROLE NONE</command>. Our implementation of that was flawed, |
| creating more interaction between the two settings than intended. |
| Notably, rolling back a transaction that had done <command>SET |
| SESSION AUTHORIZATION</command> would revert <literal>ROLE</literal> |
| to <literal>NONE</literal> even if that had not been the previous |
| state, so that the effective user ID might now be different from |
| what it had been before the transaction. Transiently |
| setting <varname>session_authorization</varname> in a |
| function <literal>SET</literal> clause had a similar effect. |
| A related bug was that if a parallel worker |
| inspected <literal>current_setting('role')</literal>, it |
| saw <literal>none</literal> even when it should see something else. |
| </para> |
| |
| <para> |
| The <productname>PostgreSQL</productname> Project thanks |
| Tom Lane for reporting this problem. |
| (CVE-2024-10978) |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Noah Misch <noah@leadboat.com> |
| Branch: master [b7e3a52a8] 2024-11-11 06:23:43 -0800 |
| Branch: REL_17_STABLE [3ebcfa54d] 2024-11-11 06:23:46 -0800 |
| Branch: REL_16_STABLE [8fe3e697a] 2024-11-11 06:23:47 -0800 |
| Branch: REL_15_STABLE [e530835c6] 2024-11-11 06:23:47 -0800 |
| Branch: REL_14_STABLE [d15ec27c9] 2024-11-11 06:23:47 -0800 |
| Branch: REL_13_STABLE [e428cd058] 2024-11-11 06:23:48 -0800 |
| Branch: REL_12_STABLE [2ab12d860] 2024-11-11 06:23:48 -0800 |
| Author: Tom Lane <tgl@sss.pgh.pa.us> |
| Branch: REL_14_STABLE [f89bd92c9] 2024-11-11 10:42:32 -0500 |
| Branch: REL_13_STABLE [6bccd7b03] 2024-11-11 10:42:32 -0500 |
| Branch: REL_12_STABLE [b1e58defb] 2024-11-11 10:42:32 -0500 |
| Branch: master [a34c33fd2] 2024-11-11 12:20:08 -0500 |
| Branch: REL_17_STABLE [4cd4f3b97] 2024-11-11 12:20:08 -0500 |
| Branch: REL_16_STABLE [88269df4d] 2024-11-11 12:20:08 -0500 |
| Branch: REL_16_STABLE [168579e23] 2024-11-11 12:27:06 -0500 |
| Author: Noah Misch <noah@leadboat.com> |
| Branch: REL_16_STABLE [c335264c9] 2024-11-11 10:55:18 -0800 |
| Branch: REL_15_STABLE [16ed4f4d0] 2024-11-11 10:56:05 -0800 |
| Branch: REL_14_STABLE [c1fff7b1b] 2024-11-11 10:56:09 -0800 |
| Branch: REL_13_STABLE [9f97c31c2] 2024-11-11 10:56:12 -0800 |
| Branch: REL_12_STABLE [1e457468f] 2024-11-11 10:56:14 -0800 |
| Author: Tom Lane <tgl@sss.pgh.pa.us> |
| Branch: master [c4252c9ef] 2024-11-11 13:57:21 -0500 |
| Branch: REL_17_STABLE [8d19f3fea] 2024-11-11 13:57:21 -0500 |
| Branch: REL_16_STABLE [64df88700] 2024-11-11 13:57:40 -0500 |
| Branch: REL_15_STABLE [c834b375a] 2024-11-11 13:57:41 -0500 |
| Branch: REL_14_STABLE [256e34653] 2024-11-11 13:57:41 -0500 |
| Branch: REL_13_STABLE [0bd9560d9] 2024-11-11 13:57:41 -0500 |
| Branch: REL_12_STABLE [9fc1c3a02] 2024-11-11 13:57:41 -0500 |
| --> |
| <para> |
| Prevent trusted PL/Perl code from changing environment variables |
| (Andrew Dunstan, Noah Misch) |
| <ulink url="&commit_baseurl;8fe3e697a">§</ulink> |
| <ulink url="&commit_baseurl;88269df4d">§</ulink> |
| <ulink url="&commit_baseurl;168579e23">§</ulink> |
| <ulink url="&commit_baseurl;c335264c9">§</ulink> |
| <ulink url="&commit_baseurl;64df88700">§</ulink> |
| </para> |
| |
| <para> |
| The ability to manipulate process environment variables such |
| as <literal>PATH</literal> gives an attacker opportunities to |
| execute arbitrary code. Therefore, <quote>trusted</quote> PLs must |
| not offer the ability to do that. To fix <literal>plperl</literal>, |
| replace <varname>%ENV</varname> with a tied hash that rejects any |
| modification attempt with a warning. |
| Untrusted <literal>plperlu</literal> retains the ability to change |
| the environment. |
| </para> |
| |
| <para> |
| The <productname>PostgreSQL</productname> Project thanks |
| Coby Abrams for reporting this problem. |
| (CVE-2024-10979) |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Álvaro Herrera <alvherre@alvh.no-ip.org> |
| Branch: master [53af9491a] 2024-10-22 16:01:18 +0200 |
| Branch: REL_17_STABLE [5914a22f6] 2024-10-22 16:01:18 +0200 |
| Branch: REL_16_STABLE [2aaf2a28b] 2024-10-22 16:01:18 +0200 |
| Branch: REL_15_STABLE [5d83bad6b] 2024-10-22 16:01:18 +0200 |
| Branch: REL_14_STABLE [46a8c27a7] 2024-10-22 16:01:18 +0200 |
| Branch: REL_13_STABLE [d20194cea] 2024-10-22 16:01:18 +0200 |
| Branch: master [2d5fe5140] 2024-10-30 10:54:03 +0100 |
| Branch: REL_17_STABLE [936ab6de9] 2024-10-30 10:54:03 +0100 |
| Branch: REL_16_STABLE [f7d510a38] 2024-10-30 10:54:03 +0100 |
| Branch: REL_15_STABLE [1b216fcef] 2024-10-30 10:54:03 +0100 |
| --> |
| <para> |
| Fix updates of catalog state for foreign-key constraints when |
| attaching or detaching table partitions (Jehan-Guillaume de |
| Rorthais, Tender Wang, Álvaro Herrera) |
| <ulink url="&commit_baseurl;2aaf2a28b">§</ulink> |
| <ulink url="&commit_baseurl;f7d510a38">§</ulink> |
| </para> |
| |
| <para> |
| If the referenced table is partitioned, then different catalog |
| entries are needed for a referencing table that is stand-alone |
| versus one that is a partition. <literal>ATTACH/DETACH |
| PARTITION</literal> commands failed to perform this conversion |
| correctly. In particular, after <literal>DETACH</literal> the now |
| stand-alone table would be missing foreign-key enforcement triggers, |
| which could result in the table later containing rows that fail the |
| foreign-key constraint. A subsequent re-<literal>ATTACH</literal> |
| could fail with surprising errors, too. |
| </para> |
| |
| <para> |
| The way to fix this is to do <command>ALTER TABLE DROP |
| CONSTRAINT</command> on the now stand-alone table for each faulty |
| constraint, and then re-add the constraint. If re-adding the |
| constraint fails, then some erroneous data has crept in. You will |
| need to manually re-establish consistency between the referencing |
| and referenced tables, then re-add the constraint. |
| </para> |
| |
| <para> |
| This query can be used to identify broken constraints and construct |
| the commands needed to recreate them: |
| <programlisting> |
| SELECT conrelid::pg_catalog.regclass AS "constrained table", |
| conname AS constraint, |
| confrelid::pg_catalog.regclass AS "references", |
| pg_catalog.format('ALTER TABLE %s DROP CONSTRAINT %I;', |
| conrelid::pg_catalog.regclass, conname) AS "drop", |
| pg_catalog.format('ALTER TABLE %s ADD CONSTRAINT %I %s;', |
| conrelid::pg_catalog.regclass, conname, |
| pg_catalog.pg_get_constraintdef(oid)) AS "add" |
| FROM pg_catalog.pg_constraint c |
| WHERE contype = 'f' AND conparentid = 0 AND |
| (SELECT count(*) FROM pg_catalog.pg_constraint c2 |
| WHERE c2.conparentid = c.oid) <> |
| (SELECT count(*) FROM pg_catalog.pg_inherits i |
| WHERE (i.inhparent = c.conrelid OR i.inhparent = c.confrelid) AND |
| EXISTS (SELECT 1 FROM pg_catalog.pg_partitioned_table |
| WHERE partrelid = i.inhparent)); |
| </programlisting> |
| Since it is possible that one or more of the <literal>ADD |
| CONSTRAINT</literal> steps will fail, you should save the query's |
| output in a file and then attempt to perform each step. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Álvaro Herrera <alvherre@alvh.no-ip.org> |
| Branch: master [52f3de874] 2024-08-19 16:09:10 -0400 |
| Branch: REL_17_STABLE Release: REL_17_0 [11f1218ce] 2024-08-19 16:09:10 -0400 |
| Branch: REL_16_STABLE [a6ff329e7] 2024-08-19 16:09:10 -0400 |
| Branch: REL_15_STABLE [be73e7008] 2024-08-19 16:09:10 -0400 |
| Branch: REL_14_STABLE [3ad4c8615] 2024-08-19 16:09:10 -0400 |
| Branch: master [c899c6839] 2024-08-12 18:17:56 -0400 |
| Branch: REL_17_STABLE Release: REL_17_0 [0820f8062] 2024-08-12 18:17:56 -0400 |
| Branch: REL_16_STABLE [1b9dd6b05] 2024-08-12 18:17:56 -0400 |
| Branch: REL_15_STABLE [305db9543] 2024-08-12 18:17:56 -0400 |
| Branch: REL_14_STABLE [1b4bdf915] 2024-08-12 18:17:56 -0400 |
| --> |
| <para> |
| Avoid possible crashes and <quote>could not open relation</quote> |
| errors in queries on a partitioned table occurring concurrently with |
| a <command>DETACH CONCURRENTLY</command> and immediate drop of a |
| partition (Álvaro Herrera, Kuntal Gosh) |
| <ulink url="&commit_baseurl;a6ff329e7">§</ulink> |
| <ulink url="&commit_baseurl;1b9dd6b05">§</ulink> |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Álvaro Herrera <alvherre@alvh.no-ip.org> |
| Branch: master [a90bdd7a4] 2024-08-08 19:35:13 -0400 |
| Branch: REL_17_STABLE Release: REL_17_0 [344f9f5e2] 2024-08-08 19:35:13 -0400 |
| Branch: REL_16_STABLE [ada34d714] 2024-08-08 19:35:13 -0400 |
| Branch: REL_15_STABLE [8c0944ac8] 2024-08-08 19:35:13 -0400 |
| Branch: REL_14_STABLE [e97121d90] 2024-08-08 19:35:13 -0400 |
| Branch: REL_13_STABLE [2ee02c98d] 2024-08-08 19:35:13 -0400 |
| Branch: REL_12_STABLE [17ed92e1f] 2024-08-08 19:35:13 -0400 |
| Author: Peter Eisentraut <peter@eisentraut.org> |
| Branch: REL_16_STABLE [57c8b8726] 2024-11-08 07:17:55 +0100 |
| Branch: REL_15_STABLE [38f506470] 2024-11-08 07:31:48 +0100 |
| Branch: REL_14_STABLE [a54a5c426] 2024-11-08 07:32:07 +0100 |
| Branch: REL_13_STABLE [ebbfa2ae3] 2024-11-08 07:32:14 +0100 |
| Branch: REL_12_STABLE [cae459d11] 2024-11-08 07:32:21 +0100 |
| --> |
| <para> |
| Disallow <command>ALTER TABLE ATTACH PARTITION</command> if the |
| table to be attached has a foreign key referencing the partitioned |
| table (Álvaro Herrera) |
| <ulink url="&commit_baseurl;ada34d714">§</ulink> |
| <ulink url="&commit_baseurl;57c8b8726">§</ulink> |
| </para> |
| |
| <para> |
| This arrangement is not supported, and other ways of creating it |
| already fail. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Amit Langote <amitlan@postgresql.org> |
| Branch: master [075acdd93] 2024-11-08 17:25:24 +0900 |
| Branch: REL_17_STABLE [a0cdfc889] 2024-11-08 17:19:35 +0900 |
| Branch: REL_16_STABLE [f734b6b4d] 2024-11-08 17:19:13 +0900 |
| Branch: REL_15_STABLE [33040b171] 2024-11-08 17:18:55 +0900 |
| Branch: REL_14_STABLE [62df5484f] 2024-11-08 17:18:38 +0900 |
| Branch: REL_13_STABLE [054701a2b] 2024-11-08 17:18:21 +0900 |
| Branch: REL_12_STABLE [9c4757491] 2024-11-08 17:18:04 +0900 |
| Branch: master [90fe6251c] 2024-11-08 16:07:22 +0900 |
| Branch: REL_17_STABLE [b6484ca95] 2024-11-08 16:07:13 +0900 |
| Branch: REL_16_STABLE [dd2f8ebee] 2024-11-08 16:07:05 +0900 |
| Branch: REL_15_STABLE [0a620659c] 2024-11-08 16:06:58 +0900 |
| Branch: REL_14_STABLE [96f9b29a3] 2024-11-08 16:06:46 +0900 |
| Branch: REL_13_STABLE [ff65f695c] 2024-11-08 16:06:12 +0900 |
| Branch: REL_12_STABLE [46d9be5ef] 2024-11-08 16:05:33 +0900 |
| --> |
| <para> |
| Don't use partitionwise joins or grouping if the query's collation |
| for the key column doesn't match the partition key's collation (Jian |
| He, Webbo Han) |
| <ulink url="&commit_baseurl;f734b6b4d">§</ulink> |
| <ulink url="&commit_baseurl;dd2f8ebee">§</ulink> |
| </para> |
| |
| <para> |
| Such plans could produce incorrect results. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Tom Lane <tgl@sss.pgh.pa.us> |
| Branch: master [9f954177b] 2024-10-12 14:56:08 -0400 |
| Branch: REL_17_STABLE [54889ea64] 2024-10-12 14:56:08 -0400 |
| Branch: REL_16_STABLE [64635c8af] 2024-10-12 14:56:08 -0400 |
| Branch: REL_15_STABLE [4f3bccbaa] 2024-10-12 14:56:08 -0400 |
| Branch: REL_14_STABLE [4ca708eb3] 2024-10-12 14:56:08 -0400 |
| Branch: REL_13_STABLE [76de4b182] 2024-10-12 14:56:08 -0400 |
| --> |
| <para> |
| Fix possible <quote>could not find pathkey item to sort</quote> |
| error when the output of a <literal>UNION ALL</literal> member query |
| needs to be sorted, and the sort column is an expression (Andrei |
| Lepikhov, Tom Lane) |
| <ulink url="&commit_baseurl;64635c8af">§</ulink> |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Tom Lane <tgl@sss.pgh.pa.us> |
| Branch: master [cb8e50a4a] 2024-08-30 12:42:12 -0400 |
| Branch: REL_17_STABLE Release: REL_17_0 [b43110869] 2024-08-30 12:42:13 -0400 |
| Branch: REL_16_STABLE [80d9c07a4] 2024-08-30 12:42:13 -0400 |
| --> |
| <para> |
| Fix performance regressions involving flattening of subqueries |
| underneath outer joins that are later reduced to plain joins |
| (Tom Lane) |
| <ulink url="&commit_baseurl;80d9c07a4">§</ulink> |
| </para> |
| |
| <para> |
| v16 failed to optimize some queries as well as prior versions had, |
| because of overoptimistic simplification of query-pullup logic. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Tom Lane <tgl@sss.pgh.pa.us> |
| Branch: master [fae55f0bb] 2024-09-13 16:17:04 -0400 |
| Branch: REL_17_STABLE Release: REL_17_0 [418c6a2c7] 2024-09-13 16:17:04 -0400 |
| Branch: REL_16_STABLE [d23109f4b] 2024-09-13 16:16:47 -0400 |
| Branch: REL_15_STABLE [e0857898b] 2024-09-13 16:16:47 -0400 |
| Branch: REL_14_STABLE [b49013f2e] 2024-09-13 16:16:47 -0400 |
| Branch: REL_13_STABLE [b27215dbb] 2024-09-13 16:16:47 -0400 |
| Branch: REL_12_STABLE [813ade548] 2024-09-13 16:16:47 -0400 |
| --> |
| <para> |
| Allow cancellation of the second stage of index build for large hash |
| indexes (Pavel Borisov) |
| <ulink url="&commit_baseurl;d23109f4b">§</ulink> |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Tom Lane <tgl@sss.pgh.pa.us> |
| Branch: master [68ad9816c] 2024-10-21 15:08:22 -0400 |
| Branch: REL_17_STABLE [3685ad618] 2024-10-21 15:08:22 -0400 |
| Branch: REL_16_STABLE [6c3b2d204] 2024-10-21 15:08:22 -0400 |
| Branch: REL_15_STABLE [c80a1e048] 2024-10-21 15:08:22 -0400 |
| Branch: REL_14_STABLE [5e94f616c] 2024-10-21 15:08:22 -0400 |
| Branch: REL_13_STABLE [beab395a4] 2024-10-21 15:08:22 -0400 |
| Branch: REL_12_STABLE [6a57a457c] 2024-10-21 15:08:22 -0400 |
| --> |
| <para> |
| Fix assertion failure or confusing error message for <literal>COPY |
| (<replaceable>query</replaceable>) TO ...</literal>, when |
| the <replaceable>query</replaceable> is rewritten by a <literal>DO |
| INSTEAD NOTIFY</literal> rule (Tender Wang, Tom Lane) |
| <ulink url="&commit_baseurl;6c3b2d204">§</ulink> |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Amit Langote <amitlan@postgresql.org> |
| Branch: master [11c87216d] 2024-10-20 12:20:55 +0900 |
| Branch: REL_17_STABLE [7148cb3e3] 2024-10-20 12:21:12 +0900 |
| Branch: REL_16_STABLE [fa4f11854] 2024-10-20 12:21:03 +0900 |
| --> |
| <para> |
| Fix server crash when a <function>json_objectagg()</function> call |
| contains a volatile function (Amit Langote) |
| <ulink url="&commit_baseurl;fa4f11854">§</ulink> |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Tomas Vondra <tomas.vondra@postgresql.org> |
| Branch: master [842265631] 2024-09-11 13:21:10 +0200 |
| Branch: REL_17_STABLE Release: REL_17_0 [78bc5f711] 2024-09-11 13:21:30 +0200 |
| Branch: REL_16_STABLE [8e65d9ff9] 2024-09-11 13:22:30 +0200 |
| --> |
| <para> |
| Fix checking of key uniqueness in JSON object constructors |
| (Junwang Zhao, Tomas Vondra) |
| <ulink url="&commit_baseurl;8e65d9ff9">§</ulink> |
| </para> |
| |
| <para> |
| When building an object larger than a kilobyte, it was possible to |
| accept invalid input that includes duplicate object keys, or to |
| falsely report that duplicate keys are present. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Thomas Munro <tmunro@postgresql.org> |
| Branch: master [98c7c7152] 2024-10-17 22:11:59 +1300 |
| Branch: REL_17_STABLE [4ac5d33a8] 2024-10-17 22:10:29 +1300 |
| Branch: REL_16_STABLE [53edc9485] 2024-10-17 22:08:13 +1300 |
| Branch: REL_15_STABLE [1831545ca] 2024-10-17 22:04:05 +1300 |
| Branch: REL_14_STABLE [20d948994] 2024-10-17 22:01:54 +1300 |
| Branch: REL_13_STABLE [45329466f] 2024-10-17 22:00:38 +1300 |
| Branch: REL_12_STABLE [4fa80a6d7] 2024-10-17 22:00:16 +1300 |
| --> |
| <para> |
| Fix detection of skewed data during parallel hash join (Thomas |
| Munro) |
| <ulink url="&commit_baseurl;53edc9485">§</ulink> |
| </para> |
| |
| <para> |
| After repartitioning the inner side of a hash join because one |
| partition has accumulated too many tuples, we check to see if all |
| the partition's tuples went into the same child partition, which |
| suggests that they all have the same hash value and further |
| repartitioning cannot improve matters. This check malfunctioned in |
| some cases, allowing repeated futile repartitioning which would |
| eventually end in a resource-exhaustion error. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Thomas Munro <tmunro@postgresql.org> |
| Branch: master [adbb27ac8] 2024-10-05 13:50:02 +1300 |
| Branch: REL_17_STABLE [9c7acc333] 2024-10-05 13:54:35 +1300 |
| Branch: REL_16_STABLE [ce17de580] 2024-10-05 14:01:24 +1300 |
| --> |
| <para> |
| Disallow locale names containing non-ASCII characters (Thomas Munro) |
| <ulink url="&commit_baseurl;ce17de580">§</ulink> |
| </para> |
| |
| <para> |
| This is only an issue on Windows, as such locale names are not used |
| elsewhere. They are problematic because it's quite unclear what |
| encoding such names are represented in (since the locale itself |
| defines the encoding to use). In |
| recent <productname>PostgreSQL</productname> releases, an abort in |
| the Windows runtime library could occur because of confusion about |
| that. |
| </para> |
| |
| <para> |
| Anyone who encounters the new error message should either create a |
| new duplicated locale with an ASCII-only name using Windows Locale |
| Builder, or consider using BCP 47-compliant locale names |
| like <literal>tr-TR</literal>. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Heikki Linnakangas <heikki.linnakangas@iki.fi> |
| Branch: master [1a43de5e0] 2024-10-21 09:49:21 +0300 |
| Branch: REL_17_STABLE [234f6d09e] 2024-10-21 09:49:29 +0300 |
| Branch: REL_16_STABLE [22665f210] 2024-10-21 09:49:32 +0300 |
| Branch: REL_15_STABLE [d97419b85] 2024-10-21 09:49:35 +0300 |
| Branch: REL_14_STABLE [520ec2474] 2024-10-21 09:49:38 +0300 |
| Branch: REL_13_STABLE [8e607a5a4] 2024-10-21 09:49:41 +0300 |
| Branch: REL_12_STABLE [e2ec3afeb] 2024-10-21 09:49:50 +0300 |
| --> |
| <para> |
| Fix race condition in committing a serializable transaction (Heikki |
| Linnakangas) |
| <ulink url="&commit_baseurl;22665f210">§</ulink> |
| </para> |
| |
| <para> |
| Mis-processing of a recently committed transaction could lead to an |
| assertion failure or a <quote>could not access status of |
| transaction</quote> error. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Michael Paquier <michael@paquier.xyz> |
| Branch: master [cf4401fe6] 2024-10-01 15:44:03 +0900 |
| Branch: REL_17_STABLE [f250cb29d] 2024-10-01 15:44:07 +0900 |
| Branch: REL_16_STABLE [7de9b64a5] 2024-10-01 15:44:09 +0900 |
| Branch: REL_15_STABLE [41ab45680] 2024-10-01 15:44:11 +0900 |
| Branch: REL_14_STABLE [5f1510787] 2024-10-01 15:44:12 +0900 |
| Branch: REL_13_STABLE [7bfaa4671] 2024-10-01 15:44:14 +0900 |
| Branch: REL_12_STABLE [34d751ba7] 2024-10-01 15:44:15 +0900 |
| --> |
| <para> |
| Fix race condition in <command>COMMIT PREPARED</command> |
| that resulted in orphaned 2PC files (wuchengwen) |
| <ulink url="&commit_baseurl;7de9b64a5">§</ulink> |
| </para> |
| |
| <para> |
| A concurrent <command>PREPARE TRANSACTION</command> could |
| cause <command>COMMIT PREPARED</command> to not remove the on-disk |
| two-phase state file for the completed transaction. There was no |
| immediate ill effect, but a subsequent crash-and-recovery could fail |
| with <quote>could not access status of transaction</quote>, |
| requiring manual removal of the orphaned file to restore service. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Michael Paquier <michael@paquier.xyz> |
| Branch: master [09620ea09] 2024-09-27 09:40:09 +0900 |
| Branch: REL_17_STABLE [1532599a8] 2024-09-27 09:40:14 +0900 |
| Branch: REL_16_STABLE [afbd3dc7d] 2024-09-27 09:40:16 +0900 |
| Branch: REL_15_STABLE [a613edc5c] 2024-09-27 09:40:18 +0900 |
| Branch: REL_14_STABLE [6530b869c] 2024-09-27 09:40:19 +0900 |
| Branch: REL_13_STABLE [911eda9f3] 2024-09-27 09:40:21 +0900 |
| Branch: REL_12_STABLE [2f33e68a5] 2024-09-27 09:40:22 +0900 |
| --> |
| <para> |
| Avoid invalid memory accesses after skipping an invalid toast index |
| during <command>VACUUM FULL</command> (Tender Wang) |
| <ulink url="&commit_baseurl;afbd3dc7d">§</ulink> |
| </para> |
| |
| <para> |
| A list tracking yet-to-be-rebuilt indexes was not properly updated |
| in this code path, risking assertion failures or crashes later on. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Noah Misch <noah@leadboat.com> |
| Branch: master [a07e03fd8] 2024-09-24 15:25:18 -0700 |
| Branch: REL_17_STABLE [fd27b878c] 2024-09-24 15:25:21 -0700 |
| Branch: REL_16_STABLE [63f019805] 2024-09-24 15:25:22 -0700 |
| Branch: REL_15_STABLE [8590c942c] 2024-09-24 15:25:23 -0700 |
| Branch: REL_14_STABLE [82c2d9e02] 2024-09-24 15:25:23 -0700 |
| Branch: REL_13_STABLE [a8ad1929d] 2024-09-24 15:25:24 -0700 |
| Branch: REL_12_STABLE [7354b680a] 2024-09-24 15:25:25 -0700 |
| Branch: master [aac2c9b4f] 2024-09-24 15:25:18 -0700 |
| Branch: REL_17_STABLE [3b7a689e1] 2024-09-24 15:25:22 -0700 |
| Branch: REL_16_STABLE [51ff46de2] 2024-09-24 15:25:22 -0700 |
| Branch: REL_15_STABLE [5c837f8fa] 2024-09-24 15:25:23 -0700 |
| Branch: REL_14_STABLE [f51b34b3e] 2024-09-24 15:25:23 -0700 |
| Branch: REL_13_STABLE [14c57cb63] 2024-09-24 15:25:24 -0700 |
| Branch: REL_12_STABLE [cafcc3ad0] 2024-09-24 15:25:25 -0700 |
| Branch: master [0d5a3d757] 2024-09-29 15:54:25 -0700 |
| Branch: REL_17_STABLE [da99df15c] 2024-09-29 15:54:28 -0700 |
| Branch: REL_16_STABLE [4c922821e] 2024-09-29 15:54:28 -0700 |
| Branch: REL_15_STABLE [159bf0f31] 2024-09-29 15:54:29 -0700 |
| Branch: REL_14_STABLE [b9ee1339b] 2024-09-29 15:54:29 -0700 |
| Branch: REL_13_STABLE [db1992455] 2024-09-29 15:54:29 -0700 |
| Branch: REL_12_STABLE [5a33a39a8] 2024-09-29 15:54:30 -0700 |
| Branch: master [e947224cb] 2024-10-24 09:16:14 -0700 |
| Branch: REL_17_STABLE [e11907682] 2024-10-24 09:16:17 -0700 |
| Branch: REL_16_STABLE [2d63c964f] 2024-10-24 09:16:18 -0700 |
| Branch: REL_15_STABLE [d34ffbaa1] 2024-10-24 09:16:18 -0700 |
| Branch: REL_14_STABLE [ad24b7565] 2024-10-24 09:16:19 -0700 |
| Branch: REL_13_STABLE [3e5ea478d] 2024-10-24 09:16:19 -0700 |
| Branch: REL_12_STABLE [a0c0078b1] 2024-10-24 09:16:20 -0700 |
| Branch: master [30d47ec8c] 2024-10-29 09:39:55 -0700 |
| Branch: REL_17_STABLE [9aef6f19a] 2024-10-29 09:39:58 -0700 |
| Branch: REL_16_STABLE [370bc7740] 2024-10-29 09:39:58 -0700 |
| Branch: REL_15_STABLE [0fe002d0c] 2024-10-29 09:39:59 -0700 |
| Branch: REL_14_STABLE [11e3f288f] 2024-10-29 09:39:59 -0700 |
| Branch: REL_13_STABLE [2a912bc1a] 2024-10-29 09:40:00 -0700 |
| Branch: REL_12_STABLE [c2139db11] 2024-10-29 09:40:00 -0700 |
| Branch: master [b412f402d] 2024-11-02 09:04:55 -0700 |
| Branch: REL_17_STABLE [0bcb9d079] 2024-11-02 09:05:00 -0700 |
| Branch: REL_16_STABLE [6c837c237] 2024-11-02 09:05:02 -0700 |
| Branch: REL_15_STABLE [6d5b4031b] 2024-11-02 09:05:04 -0700 |
| Branch: REL_14_STABLE [bb3054297] 2024-11-02 09:05:05 -0700 |
| Branch: REL_13_STABLE [6b01cac0b] 2024-11-02 09:05:07 -0700 |
| Branch: REL_12_STABLE [d729f1ea5] 2024-11-02 09:05:08 -0700 |
| Branch: master [825c72c07] 2024-11-02 19:42:52 -0700 |
| Branch: REL_17_STABLE [54bc22fbf] 2024-11-02 19:42:55 -0700 |
| Branch: REL_16_STABLE [f8f9110b4] 2024-11-02 19:42:56 -0700 |
| Branch: REL_15_STABLE [d14e94ac4] 2024-11-02 19:42:56 -0700 |
| Branch: REL_14_STABLE [803655e66] 2024-11-02 19:42:57 -0700 |
| Branch: REL_13_STABLE [4dc0c933f] 2024-11-02 19:42:57 -0700 |
| Branch: REL_12_STABLE [766809db3] 2024-11-02 19:42:58 -0700 |
| --> |
| <para> |
| Fix ways in which an <quote>in place</quote> catalog update could be |
| lost (Noah Misch) |
| <ulink url="&commit_baseurl;63f019805">§</ulink> |
| <ulink url="&commit_baseurl;51ff46de2">§</ulink> |
| <ulink url="&commit_baseurl;4c922821e">§</ulink> |
| <ulink url="&commit_baseurl;2d63c964f">§</ulink> |
| <ulink url="&commit_baseurl;370bc7740">§</ulink> |
| <ulink url="&commit_baseurl;6c837c237">§</ulink> |
| <ulink url="&commit_baseurl;f8f9110b4">§</ulink> |
| </para> |
| |
| <para> |
| Normal row updates write a new version of the row to preserve |
| rollback-ability of the transaction. However, certain system |
| catalog updates are intentionally non-transactional and are done |
| with an in-place update of the row. These patches fix race |
| conditions that could cause the effects of an in-place update to be |
| lost. As an example, it was possible to forget having set |
| <structname>pg_class</structname>.<structfield>relhasindex</structfield> |
| to true, preventing updates of the new index and thus causing index |
| corruption. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Noah Misch <noah@leadboat.com> |
| Branch: REL_17_STABLE [a4668c99f] 2024-10-25 06:51:06 -0700 |
| Branch: REL_16_STABLE [d36b4d8ec] 2024-10-25 06:51:06 -0700 |
| Branch: REL_15_STABLE [3baf804b7] 2024-10-25 06:51:07 -0700 |
| Branch: REL_14_STABLE [dca68242a] 2024-10-25 06:51:07 -0700 |
| Branch: REL_13_STABLE [67f30c79a] 2024-10-25 06:51:08 -0700 |
| Branch: REL_12_STABLE [da9950456] 2024-10-25 06:51:08 -0700 |
| --> |
| <para> |
| Reset catalog caches at end of recovery (Noah Misch) |
| <ulink url="&commit_baseurl;d36b4d8ec">§</ulink> |
| </para> |
| |
| <para> |
| This prevents scenarios wherein an in-place catalog update could be |
| lost due to using stale data from a catalog cache. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Noah Misch <noah@leadboat.com> |
| Branch: master [ac04aa84a] 2024-09-17 19:53:11 -0700 |
| Branch: REL_17_STABLE Release: REL_17_0 [2370582ab] 2024-09-17 19:54:25 -0700 |
| Branch: REL_16_STABLE [6f6521de9] 2024-09-17 19:54:25 -0700 |
| Branch: REL_15_STABLE [884860bfc] 2024-09-17 19:54:26 -0700 |
| Branch: REL_14_STABLE [5c698e898] 2024-09-17 19:54:26 -0700 |
| Branch: REL_13_STABLE [916b8ae47] 2024-09-17 19:54:26 -0700 |
| Branch: REL_12_STABLE [507b72bd9] 2024-09-17 19:54:26 -0700 |
| Author: Tom Lane <tgl@sss.pgh.pa.us> |
| Branch: master [b8df69049] 2024-11-08 13:42:10 -0500 |
| Branch: REL_17_STABLE [943b65358] 2024-11-08 13:42:01 -0500 |
| Branch: REL_16_STABLE [06424e9a2] 2024-11-08 13:42:01 -0500 |
| Branch: REL_15_STABLE [bcbdb176e] 2024-11-08 13:42:01 -0500 |
| Branch: REL_14_STABLE [989ccd26c] 2024-11-08 13:42:01 -0500 |
| Branch: REL_13_STABLE [62685876f] 2024-11-08 13:42:01 -0500 |
| Branch: REL_12_STABLE [6e39ca6e7] 2024-11-08 13:42:01 -0500 |
| --> |
| <para> |
| Avoid using parallel query while holding off interrupts |
| (Francesco Degrassi, Noah Misch, Tom Lane) |
| <ulink url="&commit_baseurl;6f6521de9">§</ulink> |
| <ulink url="&commit_baseurl;06424e9a2">§</ulink> |
| </para> |
| |
| <para> |
| This situation cannot arise normally, but it can be reached with |
| test scenarios such as using a SQL-language function as B-tree |
| support (which would be far too slow for production usage). If it |
| did occur it would result in an indefinite wait. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Michael Paquier <michael@paquier.xyz> |
| Branch: master [933848d16] 2024-09-18 09:59:09 +0900 |
| Branch: REL_17_STABLE Release: REL_17_0 [7db9bfc1f] 2024-09-18 09:59:14 +0900 |
| Branch: REL_16_STABLE [21aad4bea] 2024-09-18 09:59:19 +0900 |
| Branch: REL_15_STABLE [cbcd4bb41] 2024-09-18 09:59:23 +0900 |
| Branch: REL_14_STABLE [b36ee879c] 2024-09-18 09:59:26 +0900 |
| --> |
| <para> |
| Report the active query ID for statistics purposes at the start of |
| processing of Bind and Execute protocol messages (Sami Imseih) |
| <ulink url="&commit_baseurl;21aad4bea">§</ulink> |
| </para> |
| |
| <para> |
| This allows more of the work done in extended query protocol to be |
| attributed to the correct query. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Tom Lane <tgl@sss.pgh.pa.us> |
| Branch: master [d5622acb3] 2024-09-15 13:33:09 -0400 |
| Branch: REL_17_STABLE Release: REL_17_0 [b9645dca1] 2024-09-15 13:33:09 -0400 |
| Branch: REL_16_STABLE [4c9bf947a] 2024-09-15 13:33:09 -0400 |
| Branch: REL_15_STABLE [634804885] 2024-09-15 13:33:09 -0400 |
| Branch: REL_14_STABLE [7721fff06] 2024-09-15 13:33:09 -0400 |
| Branch: REL_13_STABLE [4310dfa25] 2024-09-15 13:33:09 -0400 |
| Branch: REL_12_STABLE [0206795d2] 2024-09-15 13:33:09 -0400 |
| --> |
| <para> |
| Guard against stack overflow in <application>libxml2</application> |
| with too-deeply-nested XML input (Tom Lane, with hat tip to Nick |
| Wellnhofer) |
| <ulink url="&commit_baseurl;4c9bf947a">§</ulink> |
| </para> |
| |
| <para> |
| Use <function>xmlXPathCtxtCompile()</function> rather |
| than <function>xmlXPathCompile()</function>, because the latter |
| fails to protect itself against recursion-to-stack-overflow |
| in <application>libxml2</application> releases before 2.13.4. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Tom Lane <tgl@sss.pgh.pa.us> |
| Branch: master [bccca780e] 2024-09-10 16:20:31 -0400 |
| Branch: REL_17_STABLE Release: REL_17_0 [946f150aa] 2024-09-10 16:20:31 -0400 |
| Branch: REL_16_STABLE [06c285018] 2024-09-10 16:20:31 -0400 |
| --> |
| <para> |
| Fix some whitespace issues in the result |
| of <literal>XMLSERIALIZE(... INDENT)</literal> (Jim Jones) |
| <ulink url="&commit_baseurl;06c285018">§</ulink> |
| </para> |
| |
| <para> |
| Fix failure to indent nodes separated by whitespace, and ensure that |
| a trailing newline is not added. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Michael Paquier <michael@paquier.xyz> |
| Branch: master [5bbdfa8a1] 2024-09-09 13:49:36 +0900 |
| Branch: REL_17_STABLE Release: REL_17_0 [cd6b2ae3e] 2024-09-09 13:49:59 +0900 |
| Branch: REL_16_STABLE [edb0f6e41] 2024-09-09 13:50:02 +0900 |
| Branch: REL_15_STABLE [239837a70] 2024-09-09 13:50:12 +0900 |
| Branch: REL_14_STABLE [902151548] 2024-09-09 13:50:16 +0900 |
| --> |
| <para> |
| Do not ignore a concurrent <command>REINDEX CONCURRENTLY</command> |
| that is working on an index with predicates or expressions (Michail |
| Nikolaev) |
| <ulink url="&commit_baseurl;edb0f6e41">§</ulink> |
| </para> |
| |
| <para> |
| Normally, <command>REINDEX CONCURRENTLY</command> does not need to |
| wait for other <command>REINDEX CONCURRENTLY</command> operations on |
| other tables. However, this optimization is not applied if the |
| other <command>REINDEX CONCURRENTLY</command> is processing an index |
| with predicates or expressions, on the chance that such expressions |
| contain user-defined code that accesses other tables. Careless |
| coding created a race condition such that that rule was not applied |
| uniformly, possibly allowing inconsistent behavior. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Tom Lane <tgl@sss.pgh.pa.us> |
| Branch: master [43f2e7634] 2024-08-29 13:24:17 -0400 |
| Branch: REL_17_STABLE Release: REL_17_0 [a7eb63356] 2024-08-29 13:24:17 -0400 |
| Branch: REL_16_STABLE [9fe6319dc] 2024-08-29 13:24:17 -0400 |
| --> |
| <para> |
| Fix mis-deparsing of <literal>ORDER BY</literal> lists when there is |
| a name conflict (Tom Lane) |
| <ulink url="&commit_baseurl;9fe6319dc">§</ulink> |
| </para> |
| |
| <para> |
| If an <literal>ORDER BY</literal> item in <literal>SELECT</literal> |
| is a bare identifier, the parser first seeks it as an output column |
| name of the <literal>SELECT</literal>, for SQL92 compatibility. |
| However, ruleutils.c expects the SQL99 interpretation where such a |
| name is an input column name. So it was possible to produce an |
| incorrect display of a view in the (rather ill-advised) case where |
| some other column is renamed in the <literal>SELECT</literal> output |
| list to match an input column used in <literal>ORDER BY</literal>. |
| Fix by table-qualifying such names in the dumped view text. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Tom Lane <tgl@sss.pgh.pa.us> |
| Branch: master [b2be5cb2a] 2024-08-11 12:24:56 -0400 |
| Branch: REL_17_STABLE Release: REL_17_0 [aed881386] 2024-08-11 12:24:56 -0400 |
| Branch: REL_16_STABLE [9db6650a5] 2024-08-11 12:24:56 -0400 |
| Branch: REL_15_STABLE [16e67bc5f] 2024-08-11 12:24:56 -0400 |
| Branch: REL_14_STABLE [bc5446a21] 2024-08-11 12:24:56 -0400 |
| Branch: REL_13_STABLE [016f44364] 2024-08-11 12:24:56 -0400 |
| Branch: master [b919a97a6] 2024-08-09 11:21:39 -0400 |
| Branch: REL_17_STABLE Release: REL_17_0 [81a12a447] 2024-08-09 11:21:39 -0400 |
| Branch: REL_16_STABLE [03f679475] 2024-08-09 11:21:39 -0400 |
| Branch: REL_15_STABLE [12010f414] 2024-08-09 11:21:39 -0400 |
| Branch: REL_14_STABLE [120dd0337] 2024-08-09 11:21:39 -0400 |
| Branch: REL_13_STABLE [3ad35d502] 2024-08-09 11:21:39 -0400 |
| Branch: REL_12_STABLE [7408772de] 2024-08-09 11:21:39 -0400 |
| --> |
| <para> |
| Fix <quote>failed to find plan for subquery/CTE</quote> errors |
| in <command>EXPLAIN</command> (Richard Guo, Tom Lane) |
| <ulink url="&commit_baseurl;9db6650a5">§</ulink> |
| <ulink url="&commit_baseurl;03f679475">§</ulink> |
| </para> |
| |
| <para> |
| This case arose while trying to print references to fields of a |
| RECORD-type output of a subquery when the subquery has been |
| optimized out of the plan altogether (which is possible at least in |
| the case that it has a constant-false <literal>WHERE</literal> |
| condition). Nothing remains in the plan to identify the original |
| field names, so fall back to |
| printing <literal>f<replaceable>N</replaceable></literal> for |
| the <replaceable>N</replaceable>'th record column. (That's actually |
| the right thing anyway, if the record output arose from |
| a <literal>ROW()</literal> constructor.) |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Peter Eisentraut <peter@eisentraut.org> |
| Branch: master [4d68a0432] 2024-08-29 09:06:15 +0200 |
| Branch: REL_17_STABLE Release: REL_17_0 [fdbf7e46a] 2024-08-29 08:59:30 +0200 |
| Branch: REL_16_STABLE [5867ee005] 2024-08-29 09:00:06 +0200 |
| Branch: REL_15_STABLE [cf49a606c] 2024-08-29 09:01:02 +0200 |
| Branch: REL_14_STABLE [ecd19a3cc] 2024-08-29 09:01:33 +0200 |
| Branch: REL_13_STABLE [7589d5c5b] 2024-08-29 09:02:06 +0200 |
| Branch: REL_12_STABLE [1c57ae795] 2024-08-29 09:03:06 +0200 |
| --> |
| <para> |
| Disallow a <literal>USING</literal> clause when altering the type of |
| a generated column (Peter Eisentraut) |
| <ulink url="&commit_baseurl;5867ee005">§</ulink> |
| </para> |
| |
| <para> |
| A generated column already has an expression specifying the column |
| contents, so including <literal>USING</literal> doesn't make sense. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Tom Lane <tgl@sss.pgh.pa.us> |
| Branch: master [f8d9a9f21] 2024-10-06 16:03:48 -0400 |
| Branch: REL_17_STABLE [3daeb539a] 2024-10-06 16:03:48 -0400 |
| Branch: REL_16_STABLE [5de77b609] 2024-10-06 16:03:48 -0400 |
| Branch: REL_15_STABLE [aef75219c] 2024-10-06 16:03:48 -0400 |
| Branch: REL_14_STABLE [3922c9e9f] 2024-10-06 16:03:48 -0400 |
| Branch: REL_13_STABLE [4a17acd0d] 2024-10-06 16:03:48 -0400 |
| Branch: REL_12_STABLE [5c17f5a63] 2024-10-06 16:03:48 -0400 |
| --> |
| <para> |
| Ignore not-yet-defined Portals in |
| the <structname>pg_cursors</structname> view (Tom Lane) |
| <ulink url="&commit_baseurl;5de77b609">§</ulink> |
| </para> |
| |
| <para> |
| It is possible for user-defined code that inspects this view to be |
| called while a new cursor is being set up, and if that happens a |
| null pointer dereference would ensue. Avoid the problem by defining |
| the view to exclude incompletely-set-up cursors. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Tom Lane <tgl@sss.pgh.pa.us> |
| Branch: master [129a2f667] 2024-09-06 11:57:57 -0400 |
| Branch: REL_17_STABLE Release: REL_17_0 [e69030cb5] 2024-09-06 11:58:10 -0400 |
| Branch: REL_16_STABLE [dd20f950d] 2024-09-06 11:58:15 -0400 |
| --> |
| <para> |
| Fix incorrect output of the <structname>pg_stat_io</structname> view |
| on 32-bit machines (Bertrand Drouvot) |
| <ulink url="&commit_baseurl;dd20f950d">§</ulink> |
| </para> |
| |
| <para> |
| The <structfield>stats_reset</structfield> timestamp column |
| contained garbage on such hardware. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Tom Lane <tgl@sss.pgh.pa.us> |
| Branch: master [fadff3fc9] 2024-09-05 12:42:33 -0400 |
| Branch: REL_17_STABLE Release: REL_17_0 [7dcbf0afa] 2024-09-05 12:42:33 -0400 |
| Branch: REL_16_STABLE [4fd4d7653] 2024-09-05 12:42:33 -0400 |
| Branch: REL_15_STABLE [f37ac613a] 2024-09-05 12:42:33 -0400 |
| --> |
| <para> |
| Prevent mis-encoding of <quote>trailing junk after numeric |
| literal</quote> error messages (Karina Litskevich) |
| <ulink url="&commit_baseurl;4fd4d7653">§</ulink> |
| </para> |
| |
| <para> |
| We do not allow identifiers to appear immediately following numeric |
| literals (there must be some whitespace between). If a multibyte |
| character immediately followed a numeric literal, the syntax error |
| message about it included only the first byte of that character, |
| causing bad-encoding problems both in the report to the client and |
| in the postmaster log file. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Amit Kapila <akapila@postgresql.org> |
| Branch: master [022564f60] 2024-10-07 15:38:45 +0530 |
| Branch: REL_17_STABLE [918107759] 2024-10-07 15:15:05 +0530 |
| Branch: REL_16_STABLE [0f0e253db] 2024-10-07 15:04:05 +0530 |
| Branch: REL_15_STABLE [8175a7d11] 2024-10-07 14:53:18 +0530 |
| Branch: REL_14_STABLE [efe706e27] 2024-10-07 14:45:39 +0530 |
| Branch: master [d759c1a0b] 2024-10-08 12:25:52 +0530 |
| Branch: REL_17_STABLE [c4b8a916f] 2024-10-08 12:13:28 +0530 |
| Branch: REL_16_STABLE [0c40d9019] 2024-10-08 12:01:35 +0530 |
| Branch: REL_15_STABLE [5ce0dcc99] 2024-10-08 11:45:58 +0530 |
| Branch: REL_14_STABLE [581092c90] 2024-10-08 11:30:26 +0530 |
| --> |
| <para> |
| Avoid <quote>unexpected table_index_fetch_tuple call during logical |
| decoding</quote> error while decoding a transaction involving |
| insertion of a column default value (Takeshi Ideriha, Hou Zhijie) |
| <ulink url="&commit_baseurl;0f0e253db">§</ulink> |
| <ulink url="&commit_baseurl;0c40d9019">§</ulink> |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Masahiko Sawada <msawada@postgresql.org> |
| Branch: master [1b9b6cc34] 2024-10-16 12:08:05 -0700 |
| Branch: REL_17_STABLE [eef9cc4dc] 2024-10-16 12:08:02 -0700 |
| Branch: REL_16_STABLE [05e982cdc] 2024-10-16 12:08:00 -0700 |
| Branch: REL_15_STABLE [4a675f318] 2024-10-16 12:07:58 -0700 |
| Branch: REL_14_STABLE [5c1ed0a51] 2024-10-16 12:07:55 -0700 |
| Branch: REL_13_STABLE [cb988b04d] 2024-10-16 12:07:52 -0700 |
| Branch: REL_12_STABLE [53fa68b3b] 2024-10-16 12:07:50 -0700 |
| --> |
| <para> |
| Reduce memory consumption of logical decoding (Masahiko Sawada) |
| <ulink url="&commit_baseurl;05e982cdc">§</ulink> |
| </para> |
| |
| <para> |
| Use a smaller default block size to store tuple data received during |
| logical replication. This reduces memory wastage, which has been |
| reported to be severe while processing long-running transactions, |
| even leading to out-of-memory failures. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Amit Kapila <akapila@postgresql.org> |
| Branch: master [3f28b2fca] 2024-08-21 09:22:32 +0530 |
| Branch: REL_17_STABLE Release: REL_17_0 [915aafe82] 2024-08-21 09:08:16 +0530 |
| Branch: REL_16_STABLE [b39c5272c] 2024-08-21 09:01:11 +0530 |
| --> |
| <para> |
| In a logical replication apply worker, ensure that origin progress |
| is not advanced during an error or apply worker shutdown (Hayato |
| Kuroda, Shveta Malik) |
| <ulink url="&commit_baseurl;b39c5272c">§</ulink> |
| </para> |
| |
| <para> |
| This avoids possible loss of a transaction, since once the origin |
| progress point is advanced the source server won't send that data |
| again. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Daniel Gustafsson <dgustafsson@postgresql.org> |
| Branch: master [4fdb6558c] 2024-08-19 12:55:11 +0200 |
| Branch: REL_17_STABLE Release: REL_17_0 [19021d28c] 2024-08-19 12:55:11 +0200 |
| Branch: REL_16_STABLE [9333174af] 2024-08-19 12:55:11 +0200 |
| Branch: REL_15_STABLE [23c200940] 2024-08-19 12:55:11 +0200 |
| Branch: REL_14_STABLE [8cea8c023] 2024-08-19 12:55:11 +0200 |
| Branch: REL_13_STABLE [f925b7f65] 2024-08-19 12:55:11 +0200 |
| Branch: REL_12_STABLE [cd98a142c] 2024-08-19 12:55:11 +0200 |
| --> |
| <para> |
| Re-disable sending of stateless (TLSv1.2) session tickets |
| (Daniel Gustafsson) |
| <ulink url="&commit_baseurl;9333174af">§</ulink> |
| </para> |
| |
| <para> |
| A previous change to prevent sending of stateful (TLSv1.3) session |
| tickets accidentally re-enabled sending of stateless ones. Thus, |
| while we intended to prevent clients from thinking that TLS session |
| resumption is supported, some still did. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Tomas Vondra <tomas.vondra@postgresql.org> |
| Branch: master [0f92b230f] 2024-08-19 00:04:48 +0200 |
| Branch: REL_17_STABLE Release: REL_17_0 [d1da80115] 2024-08-19 00:05:23 +0200 |
| Branch: REL_16_STABLE [545794515] 2024-08-19 00:05:42 +0200 |
| Branch: REL_15_STABLE [df9c5fb58] 2024-08-19 00:06:03 +0200 |
| Branch: REL_14_STABLE [b3bb1e24b] 2024-08-19 00:06:23 +0200 |
| Branch: REL_13_STABLE [33c615f76] 2024-08-19 00:07:04 +0200 |
| Branch: REL_12_STABLE [f18d3e47f] 2024-08-19 00:07:20 +0200 |
| Branch: master [5cb902e9d] 2024-08-19 13:31:51 +0200 |
| Branch: REL_17_STABLE Release: REL_17_0 [de8770b47] 2024-08-19 13:43:27 +0200 |
| Branch: REL_16_STABLE [f6991cafa] 2024-08-19 13:43:43 +0200 |
| Branch: REL_15_STABLE [e498d22e2] 2024-08-19 14:00:50 +0200 |
| Branch: REL_14_STABLE [3acbe198e] 2024-08-19 13:47:07 +0200 |
| Branch: REL_13_STABLE [4e7531fda] 2024-08-19 13:49:23 +0200 |
| Branch: REL_12_STABLE [9d42627bc] 2024-08-19 13:49:36 +0200 |
| --> |
| <para> |
| Avoid <quote>wrong tuple length</quote> failure when dropping a |
| database with many ACL (permission) entries (Ayush Tiwari) |
| <ulink url="&commit_baseurl;545794515">§</ulink> |
| <ulink url="&commit_baseurl;f6991cafa">§</ulink> |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Tom Lane <tgl@sss.pgh.pa.us> |
| Branch: master [364de74cf] 2024-08-10 15:51:30 -0400 |
| Branch: REL_17_STABLE Release: REL_17_0 [2b8d33f66] 2024-08-10 15:51:28 -0400 |
| Branch: REL_16_STABLE [f3ab5d3a2] 2024-08-10 15:51:28 -0400 |
| Branch: REL_15_STABLE [2f4e895be] 2024-08-10 15:51:28 -0400 |
| Branch: REL_14_STABLE [546a26b3d] 2024-08-10 15:51:28 -0400 |
| Branch: REL_13_STABLE [adf9808fa] 2024-08-10 15:51:28 -0400 |
| Branch: REL_12_STABLE [adc28d01e] 2024-08-10 15:51:28 -0400 |
| --> |
| <para> |
| Allow adjusting the <varname>session_authorization</varname> |
| and <varname>role</varname> settings in parallel workers (Tom Lane) |
| <ulink url="&commit_baseurl;f3ab5d3a2">§</ulink> |
| </para> |
| |
| <para> |
| Our code intends to allow modifiable server settings to be set by |
| function <literal>SET</literal> clauses, but not otherwise within a |
| parallel worker. <literal>SET</literal> clauses failed for these |
| two settings, though. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Tom Lane <tgl@sss.pgh.pa.us> |
| Branch: master [c96de42c4] 2024-10-16 17:36:40 -0400 |
| Branch: REL_17_STABLE [b5eef7539] 2024-10-16 17:36:29 -0400 |
| Branch: REL_16_STABLE [25d639eea] 2024-10-16 17:36:29 -0400 |
| Branch: REL_15_STABLE [b35231989] 2024-10-16 17:36:29 -0400 |
| Branch: REL_14_STABLE [ab13c46ff] 2024-10-16 17:36:30 -0400 |
| Branch: REL_13_STABLE [0d83ced3c] 2024-10-16 17:36:30 -0400 |
| Branch: REL_12_STABLE [cf1443d67] 2024-10-16 17:36:30 -0400 |
| --> |
| <para> |
| Fix behavior of stable functions called from |
| a <command>CALL</command> statement's argument list, when |
| the <command>CALL</command> is within a |
| PL/pgSQL <literal>EXCEPTION</literal> block (Tom Lane) |
| <ulink url="&commit_baseurl;25d639eea">§</ulink> |
| </para> |
| |
| <para> |
| As with a similar fix in our previous quarterly releases, this case |
| allowed such functions to be passed the wrong snapshot, causing them |
| to see stale values of rows modified since the start of the outer |
| transaction. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Tom Lane <tgl@sss.pgh.pa.us> |
| Branch: master [8d148bb8b] 2024-08-07 12:54:39 -0400 |
| Branch: REL_17_STABLE Release: REL_17_0 [0dd33a6fc] 2024-08-07 12:54:39 -0400 |
| Branch: REL_16_STABLE [a073835c1] 2024-08-07 12:54:39 -0400 |
| Branch: REL_15_STABLE [de3520701] 2024-08-07 12:54:39 -0400 |
| Branch: REL_14_STABLE [7f875fb5b] 2024-08-07 12:54:39 -0400 |
| --> |
| <para> |
| Fix <quote>cache lookup failed for function</quote> errors in edge |
| cases in PL/pgSQL's <command>CALL</command> (Tom Lane) |
| <ulink url="&commit_baseurl;a073835c1">§</ulink> |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Heikki Linnakangas <heikki.linnakangas@iki.fi> |
| Branch: master [2676040df] 2024-08-07 10:43:52 +0300 |
| Branch: REL_17_STABLE Release: REL_17_0 [ffac8ac48] 2024-08-07 10:44:00 +0300 |
| Branch: REL_16_STABLE [0583863e9] 2024-08-07 10:44:05 +0300 |
| Branch: REL_15_STABLE [a38f5f880] 2024-08-07 10:44:10 +0300 |
| Branch: REL_14_STABLE [7696b2ea5] 2024-08-07 10:44:16 +0300 |
| --> |
| <para> |
| Fix thread safety of our fallback (non-OpenSSL) MD5 implementation |
| on big-endian hardware (Heikki Linnakangas) |
| <ulink url="&commit_baseurl;0583863e9">§</ulink> |
| </para> |
| |
| <para> |
| Thread safety is not currently a concern in the server, but it is |
| for libpq. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Tom Lane <tgl@sss.pgh.pa.us> |
| Branch: master [920d51979] 2024-10-02 17:30:36 -0400 |
| Branch: REL_17_STABLE [c7a201053] 2024-10-02 17:30:36 -0400 |
| Branch: REL_16_STABLE [65f431aff] 2024-10-02 17:30:36 -0400 |
| Branch: REL_15_STABLE [bb8c89dbc] 2024-10-02 17:30:36 -0400 |
| Branch: REL_14_STABLE [e7af9b52f] 2024-10-02 17:30:36 -0400 |
| Branch: REL_13_STABLE [2120eda94] 2024-10-02 17:30:36 -0400 |
| Branch: REL_12_STABLE [47d8a15de] 2024-10-02 17:30:36 -0400 |
| --> |
| <para> |
| Parse <application>libpq</application>'s <literal>keepalives</literal> |
| connection option in the same way as other integer-valued options |
| (Yuto Sasaki) |
| <ulink url="&commit_baseurl;65f431aff">§</ulink> |
| </para> |
| |
| <para> |
| The coding used here rejected trailing whitespace in the option |
| value, unlike other cases. This turns out to be problematic |
| in <application>ecpg</application>'s usage, for example. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Peter Eisentraut <peter@eisentraut.org> |
| Branch: master [5388216f6] 2024-08-07 09:21:07 +0200 |
| Branch: REL_17_STABLE Release: REL_17_0 [e9e05c655] 2024-08-08 07:41:02 +0200 |
| Branch: REL_16_STABLE [ee2997c67] 2024-08-08 07:42:21 +0200 |
| Branch: REL_15_STABLE [2de129b35] 2024-08-08 07:42:31 +0200 |
| Branch: REL_14_STABLE [355718553] 2024-08-08 07:42:44 +0200 |
| Branch: REL_13_STABLE [f0096ef13] 2024-08-08 07:42:46 +0200 |
| --> |
| <para> |
| Avoid use of <function>pnstrdup()</function> |
| in <application>ecpglib</application> (Jacob Champion) |
| <ulink url="&commit_baseurl;ee2997c67">§</ulink> |
| </para> |
| |
| <para> |
| That function will call <function>exit()</function> on |
| out-of-memory, which is undesirable in a library. The calling code |
| already handles allocation failures properly. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Michael Paquier <michael@paquier.xyz> |
| Branch: master [a0bff38d1] 2024-10-23 08:33:54 +0900 |
| Branch: REL_17_STABLE [2c37cb26f] 2024-10-23 08:35:00 +0900 |
| Branch: REL_16_STABLE [a1e613b81] 2024-10-23 08:35:02 +0900 |
| Branch: REL_15_STABLE [335501fb2] 2024-10-23 08:35:04 +0900 |
| Branch: REL_14_STABLE [9a51d4af1] 2024-10-23 08:35:05 +0900 |
| Branch: REL_13_STABLE [fcafbaadf] 2024-10-23 08:35:07 +0900 |
| Branch: REL_12_STABLE [9ecfd8a48] 2024-10-23 08:35:08 +0900 |
| --> |
| <para> |
| In <application>ecpglib</application>, fix out-of-bounds read when |
| parsing incorrect datetime input (Bruce Momjian, Pavel Nekrasov) |
| <ulink url="&commit_baseurl;a1e613b81">§</ulink> |
| </para> |
| |
| <para> |
| It was possible to try to read the location just before the start of |
| a constant array. Real-world consequences seem minimal, though. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Michael Paquier <michael@paquier.xyz> |
| Branch: master [87eeadaea] 2024-09-19 15:39:01 +0900 |
| Branch: REL_17_STABLE Release: REL_17_0 [b0ae6db20] 2024-09-19 16:25:07 +0900 |
| Branch: REL_16_STABLE [c2fb2f9e2] 2024-09-19 16:25:11 +0900 |
| --> |
| <para> |
| Fix memory leak in <application>psql</application> during repeated |
| use of <command>\bind</command> (Michael Paquier) |
| <ulink url="&commit_baseurl;c2fb2f9e2">§</ulink> |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Michael Paquier <michael@paquier.xyz> |
| Branch: master [9f34cae14] 2024-10-14 12:27:51 +0900 |
| Branch: REL_17_STABLE [8a6170860] 2024-10-14 12:27:57 +0900 |
| Branch: REL_16_STABLE [6331972c7] 2024-10-14 12:28:01 +0900 |
| --> |
| <para> |
| Avoid hanging if an interval less than 1ms is specified |
| in <application>psql</application>'s <literal>\watch</literal> |
| command (Andrey Borodin, Michael Paquier) |
| <ulink url="&commit_baseurl;6331972c7">§</ulink> |
| </para> |
| |
| <para> |
| Instead, treat this the same as an interval of zero (no wait between |
| executions). |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Tom Lane <tgl@sss.pgh.pa.us> |
| Branch: master [918e21d25] 2024-09-17 15:53:35 -0400 |
| Branch: REL_17_STABLE Release: REL_17_0 [f7567f9e5] 2024-09-17 15:53:36 -0400 |
| Branch: REL_16_STABLE [b8b175a4c] 2024-09-17 15:53:26 -0400 |
| Branch: REL_15_STABLE [fc2d1ac1a] 2024-09-17 15:53:26 -0400 |
| --> |
| <para> |
| Fix <application>pg_dump</application>'s handling of identity |
| sequences that have persistence different from their owning table's |
| persistence (Tom Lane) |
| <ulink url="&commit_baseurl;b8b175a4c">§</ulink> |
| </para> |
| |
| <para> |
| Since v15, it's been possible to set an identity sequence to be |
| LOGGED when its owning table is UNLOGGED or vice versa. |
| However, <application>pg_dump</application>'s method for recreating |
| that situation failed in binary-upgrade mode, |
| causing <application>pg_upgrade</application> to fail when such |
| sequences are present. Fix by introducing a new option |
| for <literal>ADD/ALTER COLUMN GENERATED AS IDENTITY</literal> to |
| allow the sequence's persistence to be set correctly at creation. |
| Note that this means a dump from a database containing such a |
| sequence will only load into a server of this minor version or |
| newer. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Heikki Linnakangas <heikki.linnakangas@iki.fi> |
| Branch: master [49dc191bd] 2024-08-08 10:20:25 +0300 |
| Branch: REL_17_STABLE Release: REL_17_0 [a7bf3e668] 2024-08-08 10:21:12 +0300 |
| Branch: REL_16_STABLE [e8240dbd8] 2024-08-08 10:22:49 +0300 |
| Branch: REL_15_STABLE [b5a5027c9] 2024-08-08 10:22:45 +0300 |
| Branch: REL_14_STABLE [bb5592cac] 2024-08-08 10:22:39 +0300 |
| Branch: REL_13_STABLE [c943e2aae] 2024-08-08 10:22:30 +0300 |
| Branch: REL_12_STABLE [8b86e289f] 2024-08-08 10:22:04 +0300 |
| --> |
| <para> |
| Include the source timeline history |
| in <application>pg_rewind</application>'s debug output |
| (Heikki Linnakangas) |
| <ulink url="&commit_baseurl;e8240dbd8">§</ulink> |
| </para> |
| |
| <para> |
| This was the intention to begin with, but a coding error caused the |
| source history to always print as empty. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Michael Paquier <michael@paquier.xyz> |
| Branch: master [1ab67c9df] 2024-09-25 14:43:16 +0900 |
| Branch: REL_17_STABLE [85cb21df6] 2024-09-25 14:44:50 +0900 |
| Branch: REL_16_STABLE [1ea4d9c00] 2024-09-25 14:44:53 +0900 |
| Branch: REL_15_STABLE [74eaa0544] 2024-09-25 14:44:56 +0900 |
| Branch: REL_14_STABLE [60c618216] 2024-09-25 14:44:57 +0900 |
| Branch: REL_13_STABLE [9db4598c9] 2024-09-25 14:44:59 +0900 |
| Branch: REL_12_STABLE [ef57a7135] 2024-09-25 14:45:01 +0900 |
| Author: Fujii Masao <fujii@postgresql.org> |
| Branch: master [20cfec896] 2024-09-30 11:13:55 +0900 |
| Branch: REL_17_STABLE [77f154681] 2024-09-30 11:15:56 +0900 |
| Branch: REL_16_STABLE [653ce5b8b] 2024-09-30 11:16:15 +0900 |
| Branch: REL_15_STABLE [92cc21d15] 2024-09-30 11:16:21 +0900 |
| Branch: REL_14_STABLE [88e1153cb] 2024-09-30 11:16:27 +0900 |
| Branch: REL_13_STABLE [9410f7cbf] 2024-09-30 11:17:23 +0900 |
| Author: Nathan Bossart <nathan@postgresql.org> |
| Branch: master [8318f2b17] 2024-10-07 16:49:20 -0500 |
| Branch: REL_17_STABLE [5bd26e652] 2024-10-07 16:49:20 -0500 |
| Branch: REL_16_STABLE [eba8cc1af] 2024-10-07 16:49:20 -0500 |
| Branch: REL_15_STABLE [6d047c6a9] 2024-10-07 16:49:20 -0500 |
| Branch: REL_14_STABLE [ce6f27857] 2024-10-07 16:49:20 -0500 |
| Branch: REL_13_STABLE [d4ade0baf] 2024-10-07 16:49:20 -0500 |
| Branch: REL_12_STABLE [5e0431c32] 2024-10-07 16:49:20 -0500 |
| --> |
| <para> |
| Avoid trying to reindex temporary tables and indexes |
| in <application>vacuumdb</application> and in |
| parallel <application>reindexdb</application> (VaibhaveS, Michael |
| Paquier, Fujii Masao, Nathan Bossart) |
| <ulink url="&commit_baseurl;1ea4d9c00">§</ulink> |
| <ulink url="&commit_baseurl;653ce5b8b">§</ulink> |
| <ulink url="&commit_baseurl;eba8cc1af">§</ulink> |
| </para> |
| |
| <para> |
| Reindexing other sessions' temporary tables cannot work, but the |
| check to skip them was missing in some code paths, leading to |
| unwanted failures. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Nathan Bossart <nathan@postgresql.org> |
| Branch: master [05036a315] 2024-09-12 16:31:29 -0500 |
| Branch: REL_17_STABLE Release: REL_17_0 [6ea7f04b7] 2024-09-12 16:31:29 -0500 |
| Branch: REL_16_STABLE [2bd4c06bb] 2024-09-12 16:31:29 -0500 |
| Branch: REL_15_STABLE [e03042a70] 2024-09-12 16:31:29 -0500 |
| Branch: REL_14_STABLE [8a94af8a2] 2024-09-12 16:31:29 -0500 |
| Branch: REL_13_STABLE [ca902529c] 2024-09-12 16:31:29 -0500 |
| Branch: REL_12_STABLE [dd5670fa5] 2024-09-12 16:31:29 -0500 |
| Branch: master [70d1c664f] 2024-09-13 10:16:40 -0500 |
| Branch: REL_17_STABLE Release: REL_17_0 [9b3c3c0fc] 2024-09-13 10:16:40 -0500 |
| Branch: REL_16_STABLE [0938a4ecd] 2024-09-13 10:16:40 -0500 |
| Branch: REL_15_STABLE [a63aef5e4] 2024-09-13 10:16:40 -0500 |
| Branch: REL_14_STABLE [0970889e3] 2024-09-13 10:16:40 -0500 |
| Branch: REL_13_STABLE [ef46a73f6] 2024-09-13 10:16:40 -0500 |
| Branch: REL_12_STABLE [e0277d90a] 2024-09-13 10:16:40 -0500 |
| --> |
| <para> |
| Allow inspection of sequence relations in relevant functions |
| of <filename>contrib/pageinspect</filename> |
| and <filename>contrib/pgstattuple</filename> (Nathan Bossart, Ayush |
| Vatsa) |
| <ulink url="&commit_baseurl;2bd4c06bb">§</ulink> |
| <ulink url="&commit_baseurl;0938a4ecd">§</ulink> |
| </para> |
| |
| <para> |
| This had been allowed in the past, but it got broken during the |
| introduction of non-default access methods for tables. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Thomas Munro <tmunro@postgresql.org> |
| Branch: master [9044fc1d4] 2024-11-06 23:17:18 +1300 |
| Branch: REL_17_STABLE [b7467ab71] 2024-11-06 23:07:34 +1300 |
| Branch: REL_16_STABLE [ee67b73f5] 2024-11-06 23:09:03 +1300 |
| Branch: REL_15_STABLE [19bf81c06] 2024-11-06 23:09:28 +1300 |
| Branch: REL_14_STABLE [0b022ddf3] 2024-11-06 23:09:50 +1300 |
| Branch: REL_13_STABLE [e88d824a4] 2024-11-06 23:10:05 +1300 |
| Branch: REL_12_STABLE [50c1453a3] 2024-11-06 23:10:20 +1300 |
| --> |
| <para> |
| Fix incorrect LLVM-generated code on ARM64 platforms (Thomas |
| Munro, Anthonin Bonnefoy) |
| <ulink url="&commit_baseurl;ee67b73f5">§</ulink> |
| </para> |
| |
| <para> |
| When using JIT compilation on ARM platforms, the generated code |
| could not support relocation distances exceeding 32 bits, allowing |
| unlucky placement of generated code to cause server crashes on |
| large-memory systems. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Nathan Bossart <nathan@postgresql.org> |
| Branch: master [5d6187d2a] 2024-10-07 13:51:03 -0500 |
| Branch: REL_17_STABLE [a356d23fd] 2024-10-07 13:51:03 -0500 |
| Branch: REL_16_STABLE [8aaf88b63] 2024-10-07 13:51:03 -0500 |
| Branch: REL_15_STABLE [01731eeea] 2024-10-07 13:51:03 -0500 |
| Branch: REL_14_STABLE [5cea7168d] 2024-10-07 13:51:03 -0500 |
| Branch: REL_13_STABLE [b255493ae] 2024-10-07 13:51:03 -0500 |
| Branch: REL_12_STABLE [c91d0af0a] 2024-10-07 13:51:03 -0500 |
| --> |
| <para> |
| Fix a few places that assumed that process start time (represented |
| as a <type>time_t</type>) will fit into a <type>long</type> value |
| (Max Johnson, Nathan Bossart) |
| <ulink url="&commit_baseurl;8aaf88b63">§</ulink> |
| </para> |
| |
| <para> |
| On platforms where <type>long</type> is 32 bits (notably Windows), |
| this coding would fail after Y2038. Most of the failures appear |
| only cosmetic, but notably <literal>pg_ctl start</literal> would |
| hang. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Andrew Dunstan <andrew@dunslane.net> |
| Branch: master [bc46104fc] 2024-09-14 08:47:06 -0400 |
| Branch: REL_17_STABLE Release: REL_17_0 [648397b1d] 2024-09-14 08:48:04 -0400 |
| Branch: REL_16_STABLE [0a0db4631] 2024-09-14 08:50:44 -0400 |
| Branch: REL_15_STABLE [17c35ab23] 2024-09-14 09:17:51 -0400 |
| Branch: REL_14_STABLE [9f7749464] 2024-09-14 09:19:04 -0400 |
| Branch: REL_13_STABLE [f40d9e9f1] 2024-09-14 09:19:53 -0400 |
| Branch: REL_12_STABLE [d94e3b33e] 2024-09-14 09:20:12 -0400 |
| --> |
| <para> |
| Fix building with Strawberry Perl on Windows (Andrew Dunstan) |
| <ulink url="&commit_baseurl;0a0db4631">§</ulink> |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Tom Lane <tgl@sss.pgh.pa.us> |
| Branch: master [502e7bf7f] 2024-10-29 11:49:38 -0400 |
| Branch: REL_17_STABLE [cad65907e] 2024-10-29 11:49:50 -0400 |
| Branch: REL_16_STABLE [a0c8d600b] 2024-10-29 11:49:56 -0400 |
| Branch: REL_15_STABLE [74f70cb86] 2024-10-29 11:50:00 -0400 |
| Branch: REL_14_STABLE [dedced73e] 2024-10-29 11:50:05 -0400 |
| Branch: REL_13_STABLE [8a8486175] 2024-10-29 11:50:10 -0400 |
| Branch: REL_12_STABLE [8f1759c9b] 2024-10-29 11:50:14 -0400 |
| Branch: master [b8ea0f675] 2024-09-14 17:55:02 -0400 |
| Branch: REL_17_STABLE Release: REL_17_0 [6283ff201] 2024-09-14 17:55:02 -0400 |
| Branch: REL_16_STABLE [2abc88958] 2024-09-14 17:55:03 -0400 |
| Branch: REL_15_STABLE [2b94ee58b] 2024-09-14 17:55:03 -0400 |
| Branch: REL_14_STABLE [b27622c90] 2024-09-14 17:55:03 -0400 |
| Branch: REL_13_STABLE [b28b9b19b] 2024-09-14 17:55:03 -0400 |
| Branch: REL_12_STABLE [205813da4] 2024-09-14 17:55:03 -0400 |
| --> |
| <para> |
| Update time zone data files to <application>tzdata</application> |
| release 2024b (Tom Lane) |
| <ulink url="&commit_baseurl;a0c8d600b">§</ulink> |
| <ulink url="&commit_baseurl;2abc88958">§</ulink> |
| </para> |
| |
| <para> |
| This <application>tzdata</application> release changes the old |
| System-V-compatibility zone names to duplicate the corresponding |
| geographic zones; for example <literal>PST8PDT</literal> is now an |
| alias for <literal>America/Los_Angeles</literal>. The main visible |
| consequence is that for timestamps before the introduction of |
| standardized time zones, the zone is considered to represent local |
| mean solar time for the named location. For example, |
| in <literal>PST8PDT</literal>, <type>timestamptz</type> input such |
| as <literal>1801-01-01 00:00</literal> would previously have been |
| rendered as <literal>1801-01-01 00:00:00-08</literal>, but now it is |
| rendered as <literal>1801-01-01 00:00:00-07:52:58</literal>. |
| </para> |
| |
| <para> |
| Also, historical corrections for Mexico, Mongolia, and Portugal. |
| Notably, <literal>Asia/Choibalsan</literal> is now an alias |
| for <literal>Asia/Ulaanbaatar</literal> rather than being a separate |
| zone, mainly because the differences between those zones were found to |
| be based on untrustworthy data. |
| </para> |
| </listitem> |
| |
| </itemizedlist> |
| |
| </sect2> |
| </sect1> |
| |
| <sect1 id="release-16-4"> |
| <title>Release 16.4</title> |
| |
| <formalpara> |
| <title>Release date:</title> |
| <para>2024-08-08</para> |
| </formalpara> |
| |
| <para> |
| This release contains a variety of fixes from 16.3. |
| For information about new features in major release 16, see |
| <xref linkend="release-16"/>. |
| </para> |
| |
| <sect2 id="release-16-4-migration"> |
| <title>Migration to Version 16.4</title> |
| |
| <para> |
| A dump/restore is not required for those running 16.X. |
| </para> |
| |
| <para> |
| However, if you are upgrading from a version earlier than 16.3, |
| see <xref linkend="release-16-3"/>. |
| </para> |
| </sect2> |
| |
| <sect2 id="release-16-4-changes"> |
| <title>Changes</title> |
| |
| <itemizedlist> |
| |
| <listitem> |
| <!-- |
| Author: Masahiko Sawada <msawada@postgresql.org> |
| Branch: master [66e94448a] 2024-08-05 06:05:33 -0700 |
| Branch: REL_17_STABLE [fdf218f1d] 2024-08-05 06:05:30 -0700 |
| Branch: REL_16_STABLE [6aba85a4b] 2024-08-05 06:05:28 -0700 |
| Branch: REL_15_STABLE [e81e53a0c] 2024-08-05 06:05:25 -0700 |
| Branch: REL_14_STABLE [72ef1675e] 2024-08-05 06:05:23 -0700 |
| Branch: REL_13_STABLE [bbc94abf6] 2024-08-05 06:05:20 -0700 |
| Branch: REL_12_STABLE [79c7a7e29] 2024-08-05 06:05:17 -0700 |
| --> |
| <para> |
| Prevent unauthorized code execution |
| during <application>pg_dump</application> (Masahiko Sawada) |
| <ulink url="&commit_baseurl;6aba85a4b">§</ulink> |
| </para> |
| |
| <para> |
| An attacker able to create and drop non-temporary objects could |
| inject SQL code that would be executed by a |
| concurrent <application>pg_dump</application> session with the |
| privileges of the role running <application>pg_dump</application> |
| (which is often a superuser). The attack involves replacing a |
| sequence or similar object with a view or foreign table that will |
| execute malicious code. To prevent this, introduce a new server |
| parameter <varname>restrict_nonsystem_relation_kind</varname> that |
| can disable expansion of non-builtin views as well as access to |
| foreign tables, and teach <application>pg_dump</application> to set |
| it when available. Note that the attack is prevented only if |
| both <application>pg_dump</application> and the server it is dumping |
| from are new enough to have this fix. |
| </para> |
| |
| <para> |
| The <productname>PostgreSQL</productname> Project thanks |
| Noah Misch for reporting this problem. |
| (CVE-2024-7348) |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Richard Guo <rguo@postgresql.org> |
| Branch: master [0ffc0acaf] 2024-07-08 10:11:46 +0900 |
| Branch: REL_17_STABLE [cccab85c2] 2024-07-08 10:17:12 +0900 |
| Branch: REL_16_STABLE [507f2347e] 2024-07-08 10:30:28 +0900 |
| --> |
| <para> |
| Avoid incorrect results from Merge Right Anti Join plans |
| (Richard Guo) |
| <ulink url="&commit_baseurl;507f2347e">§</ulink> |
| </para> |
| |
| <para> |
| If the inner relation is known to have unique join keys, the merge |
| could misbehave when there are duplicated join keys in the outer |
| relation. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Melanie Plageman <melanieplageman@gmail.com> |
| Branch: master [83c39a1f7] 2024-07-19 12:04:00 -0400 |
| Branch: REL_17_STABLE [fd4f12df5] 2024-07-19 12:12:03 -0400 |
| Branch: REL_16_STABLE [06bf404cd] 2024-07-19 12:11:41 -0400 |
| Branch: REL_15_STABLE [dc6354c67] 2024-07-19 12:05:51 -0400 |
| Branch: REL_14_STABLE [45ce054c0] 2024-07-19 12:07:53 -0400 |
| --> |
| <para> |
| Prevent infinite loop in <command>VACUUM</command> |
| (Melanie Plageman) |
| <ulink url="&commit_baseurl;06bf404cd">§</ulink> |
| </para> |
| |
| <para> |
| After a disconnected standby server with an old running transaction |
| reconnected to the primary, it was possible |
| for <command>VACUUM</command> on the primary to get confused about |
| which tuples are removable, resulting in an infinite loop. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Alvaro Herrera <alvherre@alvh.no-ip.org> |
| Branch: master [3dd637f3d] 2024-07-24 12:38:18 +0200 |
| Branch: REL_17_STABLE [2b22543a4] 2024-07-24 12:38:18 +0200 |
| Branch: REL_16_STABLE [084814d88] 2024-07-24 12:38:18 +0200 |
| Branch: REL_15_STABLE [f74fac06c] 2024-07-24 12:38:18 +0200 |
| Branch: REL_14_STABLE [fe1d16f66] 2024-07-24 12:38:18 +0200 |
| Branch: REL_13_STABLE [ed7430975] 2024-07-24 12:38:18 +0200 |
| Branch: REL_12_STABLE [08b6a9ecf] 2024-07-24 12:38:18 +0200 |
| --> |
| <para> |
| Fix failure after attaching a table as a partition, if the |
| table had previously had inheritance children |
| (Álvaro Herrera) |
| <ulink url="&commit_baseurl;084814d88">§</ulink> |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Alvaro Herrera <alvherre@alvh.no-ip.org> |
| Branch: master [839177913] 2024-07-12 12:54:01 +0200 |
| Branch: REL_17_STABLE [30ca4e1ab] 2024-07-12 12:54:01 +0200 |
| Branch: REL_16_STABLE [00a40e33c] 2024-07-12 12:54:01 +0200 |
| Branch: REL_15_STABLE [4ae09c59d] 2024-07-12 12:54:01 +0200 |
| Branch: REL_14_STABLE [66aaa7a71] 2024-07-12 12:54:01 +0200 |
| Branch: REL_13_STABLE [057482569] 2024-07-12 12:54:01 +0200 |
| Branch: REL_12_STABLE [d0054432d] 2024-07-12 12:54:01 +0200 |
| Branch: master [74e12db19] 2024-07-12 13:44:19 +0200 |
| Branch: REL_17_STABLE [0340eefd9] 2024-07-12 13:44:19 +0200 |
| Branch: REL_16_STABLE [34eb37f79] 2024-07-12 13:44:19 +0200 |
| Branch: REL_15_STABLE [9f0f72d89] 2024-07-12 13:44:19 +0200 |
| Branch: REL_14_STABLE [2f5007459] 2024-07-12 13:44:19 +0200 |
| Branch: REL_13_STABLE [7898a494f] 2024-07-12 13:44:19 +0200 |
| Branch: REL_12_STABLE [067cb6c5d] 2024-07-12 13:44:19 +0200 |
| --> |
| <para> |
| Fix <command>ALTER TABLE DETACH PARTITION</command> for cases |
| involving inconsistent index-based constraints |
| (Álvaro Herrera, Tender Wang) |
| <ulink url="&commit_baseurl;00a40e33c">§</ulink> |
| <ulink url="&commit_baseurl;34eb37f79">§</ulink> |
| </para> |
| |
| <para> |
| When a partitioned table has an index that is not associated with a |
| constraint, but a partition has an equivalent index that is, then |
| detaching the partition would misbehave, leaving the ex-partition's |
| constraint with an incorrect <structfield>coninhcount</structfield> |
| value. This would cause trouble during any further manipulations of |
| that constraint. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Alvaro Herrera <alvherre@alvh.no-ip.org> |
| Branch: master Release: REL_17_BR [27162a64b] 2024-06-24 15:56:32 +0200 |
| Branch: REL_16_STABLE [96105ebfe] 2024-06-24 15:56:32 +0200 |
| Branch: REL_15_STABLE [fb0fb0740] 2024-06-24 15:56:32 +0200 |
| Branch: REL_14_STABLE [66e569f50] 2024-06-24 15:56:32 +0200 |
| Branch: master Release: REL_17_BR [c2fab7024] 2024-06-11 11:38:45 +0200 |
| Branch: REL_16_STABLE [bf78abebf] 2024-06-11 11:38:45 +0200 |
| Branch: REL_15_STABLE [03c8cdbb7] 2024-06-11 11:38:45 +0200 |
| Branch: REL_14_STABLE [5dcaefc6a] 2024-06-11 11:38:45 +0200 |
| --> |
| <para> |
| Fix partition pruning setup during <literal>ALTER TABLE DETACH |
| PARTITION CONCURRENTLY</literal> (Álvaro Herrera) |
| <ulink url="&commit_baseurl;96105ebfe">§</ulink> |
| <ulink url="&commit_baseurl;bf78abebf">§</ulink> |
| </para> |
| |
| <para> |
| The executor assumed that no partition could be detached between |
| planning and execution of a query on a partitioned table. This is |
| no longer true since the introduction of <literal>DETACH |
| PARTITION</literal>'s <literal>CONCURRENTLY</literal> option, making |
| it possible for query execution to fail transiently when that is |
| used. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Noah Misch <noah@leadboat.com> |
| Branch: master [710207032] 2024-07-13 08:09:33 -0700 |
| Branch: REL_17_STABLE [f5bb46fb2] 2024-07-13 08:09:36 -0700 |
| Branch: REL_16_STABLE [e81deeefc] 2024-07-13 08:09:37 -0700 |
| Branch: REL_15_STABLE [2b4a2a79e] 2024-07-13 08:09:37 -0700 |
| Branch: REL_14_STABLE [2b415e95a] 2024-07-13 08:09:37 -0700 |
| --> |
| <para> |
| Correctly update a partitioned table's |
| <structname>pg_class</structname>.<structfield>reltuples</structfield> |
| field to zero after its last child partition is dropped (Noah Misch) |
| <ulink url="&commit_baseurl;e81deeefc">§</ulink> |
| </para> |
| |
| <para> |
| The first <command>ANALYZE</command> on such a partitioned table |
| must update <structfield>relhassubclass</structfield> as well, and |
| that caused the <structfield>reltuples</structfield> update to be |
| lost. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Tom Lane <tgl@sss.pgh.pa.us> |
| Branch: master Release: REL_17_BR [f535f350c] 2024-05-14 20:19:20 -0400 |
| Branch: REL_16_STABLE [8e0e99972] 2024-05-14 20:19:20 -0400 |
| Branch: REL_15_STABLE [c40e78d23] 2024-05-14 20:19:20 -0400 |
| Branch: REL_14_STABLE [525bd1620] 2024-05-14 20:19:20 -0400 |
| Branch: REL_13_STABLE [e85f641b2] 2024-05-14 20:19:20 -0400 |
| Branch: REL_12_STABLE [70ffb27b2] 2024-05-14 20:19:20 -0400 |
| Branch: master Release: REL_17_BR [751598263] 2024-06-06 15:16:56 -0400 |
| Branch: REL_16_STABLE [bb331af4a] 2024-06-06 15:16:56 -0400 |
| Branch: REL_15_STABLE [5fe43d41d] 2024-06-06 15:16:56 -0400 |
| Branch: REL_14_STABLE [d88dcdf0f] 2024-06-06 15:16:56 -0400 |
| Branch: REL_13_STABLE [9de0ff91a] 2024-06-06 15:16:56 -0400 |
| Branch: REL_12_STABLE [4208f44c9] 2024-06-06 15:16:56 -0400 |
| --> |
| <para> |
| Fix handling of polymorphic output arguments for procedures |
| (Tom Lane) |
| <ulink url="&commit_baseurl;8e0e99972">§</ulink> |
| <ulink url="&commit_baseurl;bb331af4a">§</ulink> |
| </para> |
| |
| <para> |
| The SQL <command>CALL</command> statement did not resolve the |
| correct data types for such arguments, leading to errors such |
| as <quote>cannot display a value of type anyelement</quote>, or even |
| outright crashes. (But <command>CALL</command> |
| in <application>PL/pgSQL</application> worked correctly.) |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Tom Lane <tgl@sss.pgh.pa.us> |
| Branch: master Release: REL_17_BR [2dc1deaea] 2024-06-07 13:27:26 -0400 |
| Branch: REL_16_STABLE [0d18b8eb4] 2024-06-07 13:27:26 -0400 |
| Branch: REL_15_STABLE [a160e9277] 2024-06-07 13:27:26 -0400 |
| Branch: REL_14_STABLE [0f7d1338c] 2024-06-07 13:27:26 -0400 |
| Branch: REL_13_STABLE [1d4ea1376] 2024-06-07 13:27:26 -0400 |
| Branch: REL_12_STABLE [0be81dd71] 2024-06-07 13:27:26 -0400 |
| --> |
| <para> |
| Fix behavior of stable functions called from |
| a <command>CALL</command> statement's argument list (Tom Lane) |
| <ulink url="&commit_baseurl;0d18b8eb4">§</ulink> |
| </para> |
| |
| <para> |
| If the <command>CALL</command> is within an atomic context |
| (e.g. there's an outer transaction block), such functions were |
| passed the wrong snapshot, causing them to see stale values of rows |
| modified since the start of the outer transaction. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Tom Lane <tgl@sss.pgh.pa.us> |
| Branch: master Release: REL_17_BR [a9a7c2c3e] 2024-05-22 18:22:58 -0400 |
| Branch: REL_16_STABLE [019ea7675] 2024-05-22 18:22:51 -0400 |
| --> |
| <para> |
| Fix input of ISO-8601 <quote>extended</quote> time format for |
| types <type>time</type> and <type>timetz</type> (Tom Lane) |
| <ulink url="&commit_baseurl;019ea7675">§</ulink> |
| </para> |
| |
| <para> |
| Re-allow cases such as <literal>T12:34:56</literal>. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Nathan Bossart <nathan@postgresql.org> |
| Branch: master [22b0ccd65] 2024-07-19 11:52:32 -0500 |
| Branch: REL_17_STABLE [3764ee47f] 2024-07-19 11:52:32 -0500 |
| Branch: REL_16_STABLE [34e9dce69] 2024-07-19 11:52:32 -0500 |
| Branch: REL_15_STABLE [b82791c8f] 2024-07-19 11:52:32 -0500 |
| Branch: REL_14_STABLE [e8dfe0430] 2024-07-19 11:52:32 -0500 |
| Branch: REL_13_STABLE [c5321e965] 2024-07-19 11:52:32 -0500 |
| Branch: REL_12_STABLE [4f9628158] 2024-07-19 11:52:32 -0500 |
| --> |
| <para> |
| Detect integer overflow in <type>money</type> calculations |
| (Joseph Koshakow) |
| <ulink url="&commit_baseurl;34e9dce69">§</ulink> |
| </para> |
| |
| <para> |
| None of the arithmetic functions for the <type>money</type> type |
| checked for overflow before, so they would silently give wrong |
| answers for overflowing cases. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Dean Rasheed <dean.a.rasheed@gmail.com> |
| Branch: master [1ff39f4ff] 2024-07-08 17:48:45 +0100 |
| Branch: REL_17_STABLE [7a8977d25] 2024-07-08 17:51:23 +0100 |
| Branch: REL_16_STABLE [f7aec8c1d] 2024-07-08 17:52:52 +0100 |
| Branch: REL_15_STABLE [47ca912de] 2024-07-08 17:54:22 +0100 |
| Branch: REL_14_STABLE [a3c0124f6] 2024-07-08 17:55:31 +0100 |
| Branch: REL_13_STABLE [ece296926] 2024-07-08 17:56:51 +0100 |
| Branch: REL_12_STABLE [8badee787] 2024-07-08 17:58:42 +0100 |
| --> |
| <para> |
| Fix over-aggressive clamping of the scale argument |
| in <function>round(numeric)</function> |
| and <function>trunc(numeric)</function> (Dean Rasheed) |
| <ulink url="&commit_baseurl;f7aec8c1d">§</ulink> |
| </para> |
| |
| <para> |
| These functions clamped their scale argument to +/-2000, but there |
| are valid use-cases for it to be larger; the functions returned |
| incorrect results in such cases. Instead clamp to the actual |
| allowed range of type <type>numeric</type>. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: David Rowley <drowley@postgresql.org> |
| Branch: master [b181062aa] 2024-07-28 22:22:52 +1200 |
| Branch: REL_17_STABLE [1e020258e] 2024-07-28 22:23:32 +1200 |
| Branch: REL_16_STABLE [6f6b0f193] 2024-07-28 22:23:54 +1200 |
| Branch: REL_15_STABLE [0a80e88d9] 2024-07-28 22:24:15 +1200 |
| --> |
| <para> |
| Fix result for <function>pg_size_pretty()</function> when applied to |
| the smallest possible <type>bigint</type> value (Joseph Koshakow) |
| <ulink url="&commit_baseurl;6f6b0f193">§</ulink> |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Nathan Bossart <nathan@postgresql.org> |
| Branch: master Release: REL_17_BR [3cb2f13ac] 2024-05-13 15:53:50 -0500 |
| Branch: REL_16_STABLE [c1664c8ee] 2024-05-13 15:54:04 -0500 |
| Branch: REL_15_STABLE [857d280c6] 2024-05-13 15:54:10 -0500 |
| Branch: REL_14_STABLE [c8714230a] 2024-05-13 15:54:14 -0500 |
| Branch: REL_13_STABLE [09ec5d455] 2024-05-13 15:54:18 -0500 |
| Branch: REL_12_STABLE [2812059d3] 2024-05-13 15:54:23 -0500 |
| --> |
| <para> |
| Prevent <function>pg_sequence_last_value()</function> from failing |
| on unlogged sequences on standby servers and on temporary sequences |
| of other sessions (Nathan Bossart) |
| <ulink url="&commit_baseurl;c1664c8ee">§</ulink> |
| </para> |
| |
| <para> |
| Make it return NULL in these cases instead of throwing an error. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Tom Lane <tgl@sss.pgh.pa.us> |
| Branch: master Release: REL_17_BR [56a829621] 2024-06-13 20:35:02 -0400 |
| Branch: REL_16_STABLE [086ecd12b] 2024-06-13 20:35:02 -0400 |
| Branch: REL_15_STABLE [df95c1ec0] 2024-06-13 20:35:03 -0400 |
| Branch: REL_14_STABLE [5912bf77c] 2024-06-13 20:34:43 -0400 |
| Branch: REL_13_STABLE [c7de5a654] 2024-06-13 20:34:43 -0400 |
| Branch: REL_12_STABLE [5e63a6f43] 2024-06-13 20:34:43 -0400 |
| --> |
| <para> |
| Fix parsing of ignored operators |
| in <function>websearch_to_tsquery()</function> (Tom Lane) |
| <ulink url="&commit_baseurl;086ecd12b">§</ulink> |
| </para> |
| |
| <para> |
| Per the manual, punctuation in the input |
| of <function>websearch_to_tsquery()</function> is ignored except for |
| the special cases of dashes and quotes. However, parentheses and a |
| few other characters appearing immediately before |
| an <literal>or</literal> could cause <literal>or</literal> to be |
| treated as a data word, rather than as an <literal>OR</literal> |
| operator as expected. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Nathan Bossart <nathan@postgresql.org> |
| Branch: master [991f8cf8a] 2024-07-23 21:59:02 -0500 |
| Branch: REL_17_STABLE [657e54a05] 2024-07-23 21:59:02 -0500 |
| Branch: REL_16_STABLE [a57d16865] 2024-07-23 21:59:02 -0500 |
| Branch: REL_15_STABLE [547dd2cbd] 2024-07-23 21:59:02 -0500 |
| Branch: REL_14_STABLE [670fb9f18] 2024-07-23 21:59:02 -0500 |
| Branch: REL_13_STABLE [6c1b71bc6] 2024-07-23 21:59:02 -0500 |
| Branch: REL_12_STABLE [878e8c6be] 2024-07-23 21:59:02 -0500 |
| --> |
| <para> |
| Detect another integer overflow case while computing new array |
| dimensions (Joseph Koshakow) |
| <ulink url="&commit_baseurl;a57d16865">§</ulink> |
| </para> |
| |
| <para> |
| Reject applying array |
| dimensions <literal>[-2147483648:2147483647]</literal> to an empty |
| array. This is closely related to CVE-2023-5869, but appears |
| harmless since the array still ends up empty. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Jeff Davis <jdavis@postgresql.org> |
| Branch: master [679c5084c] 2024-07-30 16:23:20 -0700 |
| Branch: REL_17_STABLE [10fdc67f8] 2024-07-30 16:25:03 -0700 |
| Branch: REL_16_STABLE [403cbd210] 2024-07-30 16:25:21 -0700 |
| --> |
| <para> |
| Fix unportable usage of <function>strnxfrm()</function> (Jeff Davis) |
| <ulink url="&commit_baseurl;403cbd210">§</ulink> |
| </para> |
| |
| <para> |
| Some code paths for non-deterministic collations could fail with |
| errors like <quote>pg_strnxfrm() returned unexpected result</quote>. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Noah Misch <noah@leadboat.com> |
| Branch: master Release: REL_17_BR [f9f47f0d9] 2024-06-27 19:21:06 -0700 |
| Branch: REL_16_STABLE [e4afd7153] 2024-06-27 19:21:10 -0700 |
| Branch: REL_15_STABLE [b08a4b616] 2024-06-27 19:21:11 -0700 |
| Branch: REL_14_STABLE [af73e37fa] 2024-06-27 19:21:12 -0700 |
| Branch: REL_13_STABLE [7a21306ae] 2024-06-27 19:21:13 -0700 |
| Branch: REL_12_STABLE [11f3815d6] 2024-06-27 19:21:13 -0700 |
| --> |
| <para> |
| Detect another case of a new catalog cache entry becoming stale |
| while detoasting its fields (Noah Misch) |
| <ulink url="&commit_baseurl;e4afd7153">§</ulink> |
| </para> |
| |
| <para> |
| An in-place update occurring while we expand out-of-line fields in a |
| catalog tuple could be missed, leading to a catalog cache entry that |
| lacks the in-place change but is not known to be stale. This is |
| only possible in the <structname>pg_database</structname> catalog, |
| so the effects are narrow, but misbehavior is possible. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Tom Lane <tgl@sss.pgh.pa.us> |
| Branch: master [220003b9b] 2024-07-20 13:40:15 -0400 |
| Branch: REL_17_STABLE [041a00c48] 2024-07-20 13:40:15 -0400 |
| Branch: REL_16_STABLE [fd958bbbd] 2024-07-20 13:40:15 -0400 |
| Branch: REL_15_STABLE [96953052a] 2024-07-20 13:40:15 -0400 |
| Branch: REL_14_STABLE [0d712ec12] 2024-07-20 13:40:15 -0400 |
| Branch: REL_13_STABLE [461f47948] 2024-07-20 13:40:15 -0400 |
| Branch: REL_12_STABLE [feca6c688] 2024-07-20 13:40:15 -0400 |
| --> |
| <para> |
| Correctly check updatability of view columns targeted |
| by <literal>INSERT</literal> ... <literal>DEFAULT</literal> |
| (Tom Lane) |
| <ulink url="&commit_baseurl;fd958bbbd">§</ulink> |
| </para> |
| |
| <para> |
| If such a column is non-updatable, we should give an error reporting |
| that. But the check was missed and then later code would report an |
| unhelpful error such as <quote>attribute |
| number <replaceable>N</replaceable> not found in view |
| targetlist</quote>. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Tom Lane <tgl@sss.pgh.pa.us> |
| Branch: master [f96c2c727] 2024-07-14 13:49:46 -0400 |
| Branch: REL_17_STABLE [cf588e10f] 2024-07-14 13:49:46 -0400 |
| Branch: REL_16_STABLE [8fc487614] 2024-07-14 13:49:46 -0400 |
| Branch: REL_15_STABLE [e7f9f44e3] 2024-07-14 13:49:46 -0400 |
| Branch: REL_14_STABLE [02b4f5e1f] 2024-07-14 13:49:46 -0400 |
| Branch: REL_13_STABLE [b020a866a] 2024-07-14 13:49:46 -0400 |
| Branch: REL_12_STABLE [236b225ed] 2024-07-14 13:49:46 -0400 |
| --> |
| <para> |
| Avoid reporting an unhelpful internal error for incorrect recursive |
| queries (Tom Lane) |
| <ulink url="&commit_baseurl;8fc487614">§</ulink> |
| </para> |
| |
| <para> |
| Rearrange the order of error checks so that we throw an on-point |
| error when a <command>WITH RECURSIVE</command> query does not have a |
| self-reference within the second arm of |
| the <literal>UNION</literal>, but does have one self-reference in |
| some other place such as <literal>ORDER BY</literal>. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Noah Misch <noah@leadboat.com> |
| Branch: master Release: REL_17_BR [f88cdb36c] 2024-06-27 19:21:05 -0700 |
| Branch: REL_16_STABLE [112d05570] 2024-06-27 19:21:09 -0700 |
| Branch: REL_15_STABLE [24561b498] 2024-06-27 19:21:10 -0700 |
| --> |
| <para> |
| Lock owned sequences during <literal>ALTER TABLE SET |
| LOGGED|UNLOGGED</literal> (Noah Misch) |
| <ulink url="&commit_baseurl;112d05570">§</ulink> |
| </para> |
| |
| <para> |
| These commands change the persistence of a table's owned sequences |
| along with the table, but they failed to acquire lock on the |
| sequences while doing so. This could result in losing the effects |
| of concurrent <function>nextval()</function> calls. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Tom Lane <tgl@sss.pgh.pa.us> |
| Branch: master Release: REL_17_BR [e6d0d16ad] 2024-06-20 14:21:36 -0400 |
| Branch: REL_16_STABLE [4f1966676] 2024-06-20 14:21:36 -0400 |
| Branch: REL_15_STABLE [1424c7abc] 2024-06-20 14:21:36 -0400 |
| Branch: REL_14_STABLE [88f3baa06] 2024-06-20 14:21:36 -0400 |
| Branch: REL_13_STABLE [9ce8ee9d3] 2024-06-20 14:21:36 -0400 |
| Branch: REL_12_STABLE [b0037bbef] 2024-06-20 14:21:36 -0400 |
| --> |
| <para> |
| Don't throw an error if a queued <literal>AFTER</literal> trigger no |
| longer exists (Tom Lane) |
| <ulink url="&commit_baseurl;4f1966676">§</ulink> |
| </para> |
| |
| <para> |
| It's possible for a transaction to execute an operation that queues |
| a deferred <literal>AFTER</literal> trigger for later execution, and |
| then to drop the trigger before that happens. Formerly this led to |
| weird errors such as <quote>could not find |
| trigger <replaceable>NNNN</replaceable></quote>. It seems better to |
| silently do nothing if the trigger no longer exists at the time when |
| it would have been executed. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Tom Lane <tgl@sss.pgh.pa.us> |
| Branch: master Release: REL_17_BR [76618097a] 2024-06-14 16:20:35 -0400 |
| Branch: REL_16_STABLE [9cf4beb9e] 2024-06-14 16:20:35 -0400 |
| Branch: REL_15_STABLE [1f1eedd3f] 2024-06-14 16:20:35 -0400 |
| Branch: REL_14_STABLE [f3f6a14ce] 2024-06-14 16:20:35 -0400 |
| Branch: REL_13_STABLE [198de7961] 2024-06-14 16:20:35 -0400 |
| Branch: REL_12_STABLE [0a39343ae] 2024-06-14 16:20:35 -0400 |
| --> |
| <para> |
| Fix failure to remove <structname>pg_init_privs</structname> entries |
| for column-level privileges when their table is dropped (Tom Lane) |
| <ulink url="&commit_baseurl;9cf4beb9e">§</ulink> |
| </para> |
| |
| <para> |
| If an extension grants some column-level privileges on a table it |
| creates, relevant catalog entries would remain behind after the |
| extension is dropped. This was harmless until/unless the table's |
| OID was re-used for another relation, when it could interfere with |
| what <application>pg_dump</application> dumps for that relation. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Tom Lane <tgl@sss.pgh.pa.us> |
| Branch: master Release: REL_17_BR [915de706d] 2024-06-11 17:57:46 -0400 |
| Branch: REL_16_STABLE [b188e1bf7] 2024-06-11 17:57:46 -0400 |
| Branch: REL_15_STABLE [1d0399b54] 2024-06-11 17:57:46 -0400 |
| Branch: REL_14_STABLE [096f2132c] 2024-06-11 17:57:46 -0400 |
| Branch: REL_13_STABLE [5e8aa32a9] 2024-06-11 17:57:46 -0400 |
| Branch: REL_12_STABLE [9256bf6eb] 2024-06-11 17:57:46 -0400 |
| --> |
| <para> |
| Fix selection of an arbiter index for <literal>ON CONFLICT</literal> |
| when the desired index has expressions or predicates (Tom Lane) |
| <ulink url="&commit_baseurl;b188e1bf7">§</ulink> |
| </para> |
| |
| <para> |
| If a query using <literal>ON CONFLICT</literal> accesses the target |
| table through an updatable view, it could fail with <quote>there is |
| no unique or exclusion constraint matching the ON CONFLICT |
| specification</quote>, even though a matching index does exist. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Tom Lane <tgl@sss.pgh.pa.us> |
| Branch: master Release: REL_17_BR [7ed8ce8a4] 2024-06-07 14:50:09 -0400 |
| Branch: REL_16_STABLE [8397f161e] 2024-06-07 14:50:09 -0400 |
| Branch: REL_15_STABLE [3c71cb497] 2024-06-07 14:50:09 -0400 |
| Branch: REL_14_STABLE [2dad0f433] 2024-06-07 14:50:09 -0400 |
| Branch: REL_13_STABLE [7c4ac652e] 2024-06-07 14:50:09 -0400 |
| Branch: REL_12_STABLE [b8efd756d] 2024-06-07 14:50:09 -0400 |
| --> |
| <para> |
| Refuse to modify a temporary table of another session |
| with <literal>ALTER TABLE</literal> (Tom Lane) |
| <ulink url="&commit_baseurl;8397f161e">§</ulink> |
| </para> |
| |
| <para> |
| Permissions checks normally would prevent this case from arising, |
| but it is possible to reach it by altering a parent table whose |
| child is another session's temporary table. Throw an error if we |
| discover that such a child table belongs to another session. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Tom Lane <tgl@sss.pgh.pa.us> |
| Branch: master Release: REL_17_BR [5278668d7] 2024-05-22 17:54:17 -0400 |
| Branch: REL_16_STABLE [2aa90c02d] 2024-05-22 17:54:17 -0400 |
| Branch: REL_15_STABLE [2f3cfcf76] 2024-05-22 17:54:17 -0400 |
| Branch: REL_14_STABLE [1015162c3] 2024-05-22 17:54:17 -0400 |
| --> |
| <para> |
| Fix handling of extended statistics on expressions |
| in <literal>CREATE TABLE LIKE STATISTICS</literal> (Tom Lane) |
| <ulink url="&commit_baseurl;2aa90c02d">§</ulink> |
| </para> |
| |
| <para> |
| The <literal>CREATE</literal> command failed to adjust column |
| references in statistics expressions to the possibly-different |
| column numbering of the new table. This resulted in invalid |
| statistics objects that would cause problems later. A typical |
| scenario where renumbering columns is needed is when the source |
| table contains some dropped columns. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Tom Lane <tgl@sss.pgh.pa.us> |
| Branch: master Release: REL_17_BR [d0d44049d] 2023-07-14 11:41:20 -0400 |
| Branch: master Release: REL_17_BR [779ac2c74] 2024-05-18 14:26:13 -0400 |
| Branch: REL_16_STABLE [ce0d16544] 2024-05-18 14:31:35 -0400 |
| Branch: REL_15_STABLE [4ac385adc] 2024-05-18 14:31:35 -0400 |
| Branch: REL_14_STABLE [5ac340602] 2024-05-18 14:31:35 -0400 |
| Branch: REL_13_STABLE [7f90a5dc3] 2024-05-18 14:31:35 -0400 |
| Branch: REL_12_STABLE [686c995fc] 2024-05-18 14:31:35 -0400 |
| --> |
| <para> |
| Fix failure to recalculate sub-queries generated |
| from <function>MIN()</function> or <function>MAX()</function> |
| aggregates (Tom Lane) |
| <ulink url="&commit_baseurl;ce0d16544">§</ulink> |
| </para> |
| |
| <para> |
| In some cases the aggregate result computed at one row of the outer |
| query could be re-used for later rows when it should not be. This |
| has only been seen to happen when the outer query uses |
| <literal>DISTINCT</literal> that is implemented with hash |
| aggregation, but other cases may exist. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Peter Eisentraut <peter@eisentraut.org> |
| Branch: master Release: REL_17_BR [98b4f53d1] 2024-05-15 13:49:41 +0200 |
| Branch: REL_16_STABLE [315661eca] 2024-05-15 13:54:00 +0200 |
| --> |
| <para> |
| Re-forbid underscore in positional parameters (Erik Wienhold) |
| <ulink url="&commit_baseurl;315661eca">§</ulink> |
| </para> |
| |
| <para> |
| As of v16 we allow integer literals to contain underscores. |
| This change caused input such as <literal>$1_234</literal> |
| to be taken as a single token, but it did not work correctly. |
| It seems better to revert to the original definition in which a |
| parameter symbol is only <literal>$</literal> followed by digits. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Tom Lane <tgl@sss.pgh.pa.us> |
| Branch: master Release: REL_17_BR [5d6c64d29] 2024-06-27 14:44:02 -0400 |
| Branch: REL_16_STABLE [07d66d3cc] 2024-06-27 14:44:02 -0400 |
| Branch: REL_15_STABLE [5401e70e4] 2024-06-27 14:44:03 -0400 |
| Branch: REL_14_STABLE [13abc1f66] 2024-06-27 14:44:03 -0400 |
| Branch: REL_13_STABLE [86fac88ee] 2024-06-27 14:44:03 -0400 |
| Branch: REL_12_STABLE [dccda847b] 2024-06-27 14:44:04 -0400 |
| --> |
| <para> |
| Avoid crashing when a JIT-inlined backend function throws an error |
| (Tom Lane) |
| <ulink url="&commit_baseurl;07d66d3cc">§</ulink> |
| </para> |
| |
| <para> |
| The error state can include pointers into the dynamically loaded |
| module holding the JIT-compiled code (for error location strings). |
| In some code paths the module could get unloaded before the error |
| report is processed, leading to SIGSEGV when the location strings |
| are accessed. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Tom Lane <tgl@sss.pgh.pa.us> |
| Branch: master [066e8ac6e] 2024-07-06 15:16:13 -0400 |
| Branch: master [6082b3d5d] 2024-07-08 14:04:00 -0400 |
| Branch: master [e7192486d] 2024-07-09 15:01:13 -0400 |
| Branch: master [896cd266f] 2024-07-09 16:31:24 -0400 |
| Branch: REL_17_STABLE [a9747be27] 2024-07-10 20:15:52 -0400 |
| Branch: REL_16_STABLE [f85c91a18] 2024-07-10 20:15:52 -0400 |
| Branch: REL_15_STABLE [f68d6aabb] 2024-07-10 20:15:52 -0400 |
| Branch: REL_14_STABLE [475e1807c] 2024-07-10 20:15:52 -0400 |
| Branch: REL_13_STABLE [48132587d] 2024-07-10 20:15:52 -0400 |
| Branch: REL_12_STABLE [a134baea7] 2024-07-10 20:15:52 -0400 |
| --> |
| <para> |
| Cope with behavioral changes in <application>libxml2</application> |
| version 2.13.x (Erik Wienhold, Tom Lane) |
| <ulink url="&commit_baseurl;f85c91a18">§</ulink> |
| </para> |
| |
| <para> |
| Notably, we now suppress <quote>chunk is not well balanced</quote> |
| errors from <application>libxml2</application>, unless that is the |
| only reported error. This is to make error reports consistent |
| between 2.13.x and earlier <application>libxml2</application> |
| versions. In earlier versions, that message was almost always |
| redundant or outright incorrect, so 2.13.x substantially reduced the |
| number of cases in which it's reported. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Heikki Linnakangas <heikki.linnakangas@iki.fi> |
| Branch: master Release: REL_17_BR [cbfbda784] 2024-06-27 21:09:58 +0300 |
| Branch: REL_16_STABLE [b5b418b68] 2024-06-27 21:10:27 +0300 |
| Branch: REL_15_STABLE [0e2f3d78b] 2024-06-27 21:10:31 +0300 |
| Branch: REL_14_STABLE [9dbf8ab48] 2024-06-27 21:10:34 +0300 |
| Branch: REL_13_STABLE [e9c8747ee] 2024-06-27 21:08:55 +0300 |
| Branch: REL_12_STABLE [5dea6628b] 2024-06-27 21:09:15 +0300 |
| --> |
| <para> |
| Fix handling of subtransactions of prepared transactions |
| when starting a hot standby server (Heikki Linnakangas) |
| <ulink url="&commit_baseurl;b5b418b68">§</ulink> |
| </para> |
| |
| <para> |
| When starting a standby's replay at a shutdown checkpoint WAL |
| record, transactions that had been prepared but not yet committed on |
| the primary are correctly understood as being still in progress. |
| But subtransactions of a prepared transaction (created by savepoints |
| or <application>PL/pgSQL</application> exception blocks) were not |
| accounted for and would be treated as aborted. That led to |
| inconsistency if the prepared transaction was later committed. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Masahiko Sawada <msawada@postgresql.org> |
| Branch: master [bb19b7008] 2024-07-11 22:48:23 +0900 |
| Branch: REL_17_STABLE [068674f4a] 2024-07-11 22:48:21 +0900 |
| Branch: REL_16_STABLE [2f3304ce1] 2024-07-11 22:48:18 +0900 |
| Branch: REL_15_STABLE [aee8c2b95] 2024-07-11 22:48:16 +0900 |
| Branch: REL_14_STABLE [f7d3caf9d] 2024-07-11 22:48:13 +0900 |
| Branch: REL_13_STABLE [cf2c69ec5] 2024-07-11 22:48:10 +0900 |
| Branch: REL_12_STABLE [1b3707587] 2024-07-11 22:48:08 +0900 |
| --> |
| <para> |
| Prevent incorrect initialization of logical replication slots |
| (Masahiko Sawada) |
| <ulink url="&commit_baseurl;2f3304ce1">§</ulink> |
| </para> |
| |
| <para> |
| In some cases a replication slot's start point within the WAL stream |
| could be set to a point within a transaction, leading to assertion |
| failures or incorrect decoding results. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Michael Paquier <michael@paquier.xyz> |
| Branch: master Release: REL_17_BR [cd312adc5] 2024-06-06 08:47:40 +0900 |
| Branch: REL_16_STABLE [f2c922ff2] 2024-06-06 08:48:17 +0900 |
| Branch: REL_15_STABLE [bfc44da24] 2024-06-06 08:48:21 +0900 |
| --> |
| <para> |
| Avoid <quote>can only drop stats once</quote> error during |
| replication slot creation and drop (Floris Van Nee) |
| <ulink url="&commit_baseurl;f2c922ff2">§</ulink> |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Amit Kapila <akapila@postgresql.org> |
| Branch: master Release: REL_17_BR [3e53492aa] 2024-06-27 11:35:00 +0530 |
| Branch: REL_16_STABLE [b8f953d8d] 2024-06-27 11:19:57 +0530 |
| Branch: REL_15_STABLE [76fda6140] 2024-06-27 10:43:52 +0530 |
| --> |
| <para> |
| Fix resource leakage in logical replication WAL sender (Hou Zhijie) |
| <ulink url="&commit_baseurl;b8f953d8d">§</ulink> |
| </para> |
| |
| <para> |
| The walsender process leaked memory when publishing changes to a |
| partitioned table whose partitions have row types physically |
| different from the partitioned table's. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Tom Lane <tgl@sss.pgh.pa.us> |
| Branch: REL_17_STABLE [31f8d620b] 2024-07-01 12:21:07 -0400 |
| Branch: REL_16_STABLE [54a7b21b3] 2024-07-01 12:21:07 -0400 |
| Branch: REL_15_STABLE [4df767cf9] 2024-07-01 12:21:07 -0400 |
| Branch: REL_14_STABLE [1608902fc] 2024-07-01 12:21:07 -0400 |
| Branch: REL_13_STABLE [5f86cd70d] 2024-07-01 12:21:07 -0400 |
| Branch: REL_12_STABLE [8565fb6fb] 2024-07-01 12:21:07 -0400 |
| --> |
| <para> |
| Avoid memory leakage after servicing a notify or sinval interrupt |
| (Tom Lane) |
| <ulink url="&commit_baseurl;54a7b21b3">§</ulink> |
| </para> |
| |
| <para> |
| The processing functions for these events could switch the current |
| memory context to TopMemoryContext, resulting in session-lifespan |
| leakage of any data allocated before the incorrect setting gets |
| replaced. There were observable leaks associated with (at least) |
| encoding conversion of incoming queries and parameters attached to |
| Bind messages. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Michael Paquier <michael@paquier.xyz> |
| Branch: master Release: REL_17_BR [7467939ea] 2024-06-27 09:44:47 +0900 |
| Branch: REL_16_STABLE [6f61d0e7e] 2024-06-27 09:44:51 +0900 |
| Branch: REL_15_STABLE [eb144dfca] 2024-06-27 09:44:55 +0900 |
| --> |
| <para> |
| Prevent leakage of reference counts for the shared memory block used |
| for statistics (Anthonin Bonnefoy) |
| <ulink url="&commit_baseurl;6f61d0e7e">§</ulink> |
| </para> |
| |
| <para> |
| A new backend process attaching to the statistics shared memory |
| incremented its reference count, but failed to decrement the count |
| when exiting. After 2<superscript>32</superscript> sessions had |
| been created, the reference count would overflow to zero, causing |
| failures in all subsequent backend process starts. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Heikki Linnakangas <heikki.linnakangas@iki.fi> |
| Branch: master Release: REL_17_BR [b1ffe3ff0] 2024-06-26 23:02:06 +0300 |
| Branch: REL_16_STABLE [e7cbe5a85] 2024-06-26 23:04:36 +0300 |
| Branch: REL_15_STABLE [c809a2b2d] 2024-06-26 23:05:58 +0300 |
| Branch: REL_14_STABLE [4c8e00ae9] 2024-06-26 23:06:12 +0300 |
| --> |
| <para> |
| Prevent deadlocks and assertion failures during truncation of the |
| multixact SLRU log (Heikki Linnakangas) |
| <ulink url="&commit_baseurl;e7cbe5a85">§</ulink> |
| </para> |
| |
| <para> |
| A process trying to delete SLRU segments could deadlock with the |
| checkpointer process. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Thomas Munro <tmunro@postgresql.org> |
| Branch: master [a8458f508] 2024-07-13 14:59:46 +1200 |
| Branch: REL_17_STABLE [3c1c82d40] 2024-07-13 15:02:33 +1200 |
| Branch: REL_16_STABLE [a622095bc] 2024-07-13 15:27:35 +1200 |
| Branch: REL_15_STABLE [5546a834c] 2024-07-13 15:28:38 +1200 |
| Branch: REL_14_STABLE [894b497ac] 2024-07-13 15:43:43 +1200 |
| Branch: REL_13_STABLE [3554d841d] 2024-07-13 15:44:11 +1200 |
| Branch: REL_12_STABLE [ba9fcac72] 2024-07-13 15:45:28 +1200 |
| --> |
| <para> |
| Avoid possibly missing end-of-input events on Windows sockets |
| (Thomas Munro) |
| <ulink url="&commit_baseurl;a622095bc">§</ulink> |
| </para> |
| |
| <para> |
| Windows reports an FD_CLOSE event only once after the remote end of |
| the connection disconnects. With unlucky timing, we could miss that |
| report and wait indefinitely, or at least until a timeout elapsed, |
| expecting more input. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Michael Paquier <michael@paquier.xyz> |
| Branch: master Release: REL_17_BR [855517307] 2024-05-09 12:45:37 +0900 |
| Branch: REL_16_STABLE [5396a2987] 2024-05-09 12:45:43 +0900 |
| Branch: REL_15_STABLE [8c3f30e67] 2024-05-09 12:45:45 +0900 |
| Branch: REL_14_STABLE [41adf9d96] 2024-05-09 12:45:48 +0900 |
| Branch: REL_13_STABLE [377c25d32] 2024-05-09 12:45:51 +0900 |
| --> |
| <para> |
| Fix buffer overread in JSON parse error reports for incomplete byte |
| sequences (Jacob Champion) |
| <ulink url="&commit_baseurl;5396a2987">§</ulink> |
| </para> |
| |
| <para> |
| It was possible to walk off the end of the input buffer by a few |
| bytes when the last bytes comprise an incomplete multi-byte |
| character. While usually harmless, in principle this could cause a |
| crash. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Daniel Gustafsson <dgustafsson@postgresql.org> |
| Branch: master [274bbced8] 2024-07-26 11:09:45 +0200 |
| Branch: REL_17_STABLE [3df7f44a8] 2024-07-26 11:09:45 +0200 |
| Branch: REL_16_STABLE [cc606afce] 2024-07-26 11:09:45 +0200 |
| Branch: REL_15_STABLE [118ec331b] 2024-07-26 11:09:45 +0200 |
| Branch: REL_14_STABLE [ecbb1cd9b] 2024-07-26 11:09:45 +0200 |
| Branch: REL_13_STABLE [1f476bc75] 2024-07-26 11:09:45 +0200 |
| Branch: REL_12_STABLE [32121c077] 2024-07-26 11:09:45 +0200 |
| Branch: master [161c73462] 2024-07-26 16:25:28 +0200 |
| Branch: REL_17_STABLE [1272cfb72] 2024-07-26 16:25:56 +0200 |
| Branch: REL_16_STABLE [83b4a6358] 2024-07-26 16:29:47 +0200 |
| Branch: REL_15_STABLE [970cd5c62] 2024-07-26 14:16:40 +0200 |
| Branch: REL_14_STABLE [51c1b4fd1] 2024-07-26 14:16:40 +0200 |
| Branch: REL_13_STABLE [40e8ea949] 2024-07-26 14:16:40 +0200 |
| Branch: REL_12_STABLE [ac77add23] 2024-07-26 14:16:40 +0200 |
| Branch: REL_16_STABLE [441eba34d] 2024-07-26 16:29:52 +0200 |
| Branch: REL_15_STABLE [ce3045e9b] 2024-07-26 19:09:27 +0200 |
| Branch: REL_14_STABLE [ddd66a629] 2024-07-26 19:09:54 +0200 |
| Branch: REL_13_STABLE [634710dfb] 2024-07-26 19:10:12 +0200 |
| Branch: REL_12_STABLE [e6dd0b863] 2024-07-26 19:10:37 +0200 |
| --> |
| <para> |
| Disable creation of stateful TLS session tickets by OpenSSL |
| (Daniel Gustafsson) |
| <ulink url="&commit_baseurl;cc606afce">§</ulink> |
| <ulink url="&commit_baseurl;83b4a6358">§</ulink> |
| <ulink url="&commit_baseurl;441eba34d">§</ulink> |
| </para> |
| |
| <para> |
| This avoids possible failures with clients that think receipt of |
| a session ticket means that TLS session resumption is supported. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Tom Lane <tgl@sss.pgh.pa.us> |
| Branch: master Release: REL_17_BR [6dfac2440] 2024-06-13 13:37:49 -0400 |
| Branch: REL_16_STABLE [82a931d3d] 2024-06-13 13:37:49 -0400 |
| Branch: REL_15_STABLE [bf552b1b2] 2024-06-13 13:37:50 -0400 |
| Branch: REL_14_STABLE [1450db793] 2024-06-13 13:37:50 -0400 |
| Branch: REL_13_STABLE [1fa46dba5] 2024-06-13 13:37:50 -0400 |
| Branch: REL_12_STABLE [ec210914c] 2024-06-13 13:37:51 -0400 |
| --> |
| <para> |
| When replanning a <application>PL/pgSQL</application> <quote>simple |
| expression</quote>, check it's still simple (Tom Lane) |
| <ulink url="&commit_baseurl;82a931d3d">§</ulink> |
| </para> |
| |
| <para> |
| Certain fairly-artificial cases, such as dropping a referenced |
| function and recreating it as an aggregate, could lead to surprising |
| failures such as <quote>unexpected plan node type</quote>. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Dean Rasheed <dean.a.rasheed@gmail.com> |
| Branch: master Release: REL_17_BR [cd2624fd9] 2024-06-04 11:48:01 +0100 |
| Branch: REL_16_STABLE [b4e909082] 2024-06-04 11:51:25 +0100 |
| --> |
| <para> |
| Fix <application>PL/pgSQL</application>'s handling of integer ranges |
| containing underscores (Erik Wienhold) |
| <ulink url="&commit_baseurl;b4e909082">§</ulink> |
| </para> |
| |
| <para> |
| As of v16 we allow integer literals to contain underscores, |
| but <application>PL/pgSQL</application> failed to handle examples |
| such as <literal>FOR i IN 1_001..1_003</literal>. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Tom Lane <tgl@sss.pgh.pa.us> |
| Branch: master Release: REL_17_BR [d727c5431] 2024-05-09 13:16:34 -0400 |
| Branch: REL_16_STABLE [52ea653aa] 2024-05-09 13:16:21 -0400 |
| Branch: REL_15_STABLE [6e29963ed] 2024-05-09 13:16:21 -0400 |
| Branch: REL_14_STABLE [d39337021] 2024-05-09 13:16:21 -0400 |
| Branch: REL_13_STABLE [272867792] 2024-05-09 13:16:21 -0400 |
| Branch: REL_12_STABLE [157b1e6b4] 2024-05-09 13:16:21 -0400 |
| --> |
| <para> |
| Fix recursive <type>RECORD</type>-returning |
| <application>PL/Python</application> functions (Tom Lane) |
| <ulink url="&commit_baseurl;52ea653aa">§</ulink> |
| </para> |
| |
| <para> |
| If we recurse to a new call of the same function that passes a |
| different column definition list (<literal>AS</literal> clause), it |
| would fail because the inner call would overwrite the outer call's |
| idea of what rowtype to return. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Tom Lane <tgl@sss.pgh.pa.us> |
| Branch: master Release: REL_17_BR [c5bec5426] 2024-05-07 18:15:00 -0400 |
| Branch: REL_16_STABLE [be18a12b6] 2024-05-07 18:15:00 -0400 |
| Branch: REL_15_STABLE [363e8c2f9] 2024-05-07 18:15:00 -0400 |
| Branch: REL_14_STABLE [90d39929a] 2024-05-07 18:15:00 -0400 |
| Branch: REL_13_STABLE [abe60b6a0] 2024-05-07 18:15:00 -0400 |
| Branch: REL_12_STABLE [4488142a4] 2024-05-07 18:15:00 -0400 |
| --> |
| <para> |
| Don't corrupt <application>PL/Python</application>'s |
| <literal>TD</literal> dictionary during a recursive trigger call |
| (Tom Lane) |
| <ulink url="&commit_baseurl;be18a12b6">§</ulink> |
| </para> |
| |
| <para> |
| If a <application>PL/Python</application>-language trigger caused |
| another one to be invoked, the <literal>TD</literal> dictionary |
| created for the inner one would overwrite the outer |
| one's <literal>TD</literal> dictionary. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Tom Lane <tgl@sss.pgh.pa.us> |
| Branch: master Release: REL_17_BR [b631d0149] 2024-06-04 18:02:13 -0400 |
| Branch: REL_16_STABLE [c236ecc82] 2024-06-04 18:02:13 -0400 |
| Branch: REL_15_STABLE [89ef2aeda] 2024-06-04 18:02:13 -0400 |
| Branch: REL_14_STABLE [1488dee08] 2024-06-04 18:02:13 -0400 |
| Branch: REL_13_STABLE [dda633a03] 2024-06-04 18:02:13 -0400 |
| Branch: REL_12_STABLE [30487423c] 2024-06-04 18:02:13 -0400 |
| --> |
| <para> |
| Fix <application>PL/Tcl</application>'s reporting of invalid list |
| syntax in the result of a function returning tuple (Erik Wienhold, |
| Tom Lane) |
| <ulink url="&commit_baseurl;c236ecc82">§</ulink> |
| </para> |
| |
| <para> |
| Such a case could result in a crash, or in emission of misleading |
| context information that actually refers to the previous Tcl error. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Peter Eisentraut <peter@eisentraut.org> |
| Branch: master [1e666fd7c] 2024-07-28 09:23:24 +0200 |
| Branch: REL_17_STABLE [821fbd63e] 2024-07-28 10:19:57 +0200 |
| Branch: REL_16_STABLE [c53016860] 2024-07-28 09:25:03 +0200 |
| Branch: REL_15_STABLE [6ddc8556c] 2024-07-28 09:25:52 +0200 |
| Branch: REL_14_STABLE [95e805e9c] 2024-07-28 09:26:21 +0200 |
| Branch: REL_13_STABLE [da5d7a771] 2024-07-28 09:26:39 +0200 |
| Branch: REL_12_STABLE [407048999] 2024-07-28 09:26:48 +0200 |
| --> |
| <para> |
| Avoid non-thread-safe usage of <function>strerror()</function> |
| in <application>libpq</application> (Peter Eisentraut) |
| <ulink url="&commit_baseurl;c53016860">§</ulink> |
| </para> |
| |
| <para> |
| Certain error messages returned by OpenSSL could become garbled in |
| multi-threaded applications. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Daniel Gustafsson <dgustafsson@postgresql.org> |
| Branch: master Release: REL_17_BR [a8f87d5d2] 2024-05-15 22:48:51 +0200 |
| Branch: REL_16_STABLE [0ae05c18e] 2024-05-15 22:48:51 +0200 |
| Branch: REL_15_STABLE [e6fc3b70d] 2024-05-15 22:48:51 +0200 |
| --> |
| <para> |
| Avoid memory leak within <application>pg_dump</application> during a |
| binary upgrade (Daniel Gustafsson) |
| <ulink url="&commit_baseurl;0ae05c18e">§</ulink> |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Tom Lane <tgl@sss.pgh.pa.us> |
| Branch: master Release: REL_17_BR [c1aea206e] 2024-05-07 18:22:52 -0400 |
| Branch: REL_16_STABLE [5dce8ce0a] 2024-05-07 18:23:01 -0400 |
| Branch: REL_15_STABLE [6a458d93b] 2024-05-07 18:23:07 -0400 |
| Branch: REL_14_STABLE [52b23b4e1] 2024-05-07 18:23:11 -0400 |
| Branch: REL_13_STABLE [b99dc6694] 2024-05-07 18:23:15 -0400 |
| Branch: REL_12_STABLE [a3c00ab15] 2024-05-07 18:23:20 -0400 |
| --> |
| <para> |
| Ensure that <literal>pg_restore</literal> <option>-l</option> |
| reports dependent TOC entries correctly (Tom Lane) |
| <ulink url="&commit_baseurl;5dce8ce0a">§</ulink> |
| </para> |
| |
| <para> |
| If <option>-l</option> was specified together with selective-restore |
| options such as <option>-n</option> or <option>-N</option>, |
| dependent TOC entries such as comments would be omitted from the |
| listing, even when an actual restore would have selected them. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Michael Paquier <michael@paquier.xyz> |
| Branch: master [c145f321b] 2024-07-19 10:21:01 +0900 |
| Branch: REL_17_STABLE [38e271d3c] 2024-07-19 10:21:21 +0900 |
| Branch: REL_16_STABLE [9cd365f28] 2024-07-19 10:21:24 +0900 |
| --> |
| <para> |
| Allow <filename>contrib/pg_stat_statements</filename> to distinguish |
| among utility statements appearing within SQL-language functions |
| (Anthonin Bonnefoy) |
| <ulink url="&commit_baseurl;9cd365f28">§</ulink> |
| </para> |
| |
| <para> |
| The SQL-language function executor failed to pass along the query ID |
| that is computed for a utility |
| (non <command>SELECT</command>/<command>INSERT</command>/<command>UPDATE</command>/<command>DELETE</command>/<command>MERGE</command>) |
| statement. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Etsuro Fujita <efujita@postgresql.org> |
| Branch: master [5c571a34d] 2024-07-19 13:15:00 +0900 |
| Branch: REL_17_STABLE [935fe79ea] 2024-07-19 13:15:01 +0900 |
| Branch: REL_16_STABLE [d97f2ee50] 2024-07-19 13:15:03 +0900 |
| Branch: REL_15_STABLE [f39f3e0fb] 2024-07-19 13:15:05 +0900 |
| --> |
| <para> |
| Avoid <quote>cursor can only scan forward</quote> error |
| in <filename>contrib/postgres_fdw</filename> (Etsuro Fujita) |
| <ulink url="&commit_baseurl;d97f2ee50">§</ulink> |
| </para> |
| |
| <para> |
| This error could occur if the remote server is v15 or later |
| and a foreign table is mapped to a non-trivial remote view. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Etsuro Fujita <efujita@postgresql.org> |
| Branch: master Release: REL_17_BR [8cfbac149] 2024-06-07 17:45:00 +0900 |
| Branch: REL_16_STABLE [8405d5a37] 2024-06-07 17:45:02 +0900 |
| Branch: REL_15_STABLE [b33c141cc] 2024-06-07 17:45:04 +0900 |
| Branch: REL_14_STABLE [269e2c391] 2024-06-07 17:45:06 +0900 |
| Branch: REL_13_STABLE [2b461efc5] 2024-06-07 17:45:08 +0900 |
| --> |
| <para> |
| In <filename>contrib/postgres_fdw</filename>, do not |
| send <literal>FETCH FIRST WITH TIES</literal> clauses to the remote |
| server (Japin Li) |
| <ulink url="&commit_baseurl;8405d5a37">§</ulink> |
| </para> |
| |
| <para> |
| The remote server might not implement this clause, or might |
| interpret it differently than we would locally, so don't risk |
| attempting remote execution. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Thomas Munro <tmunro@postgresql.org> |
| Branch: master [2a5ef0983] 2024-07-06 10:27:16 +1200 |
| Branch: REL_17_STABLE [9c273679b] 2024-07-06 11:23:40 +1200 |
| Branch: REL_16_STABLE [31423bc44] 2024-07-06 11:18:29 +1200 |
| Branch: REL_15_STABLE [467d77bb1] 2024-07-06 10:53:13 +1200 |
| Branch: REL_14_STABLE [c2342a925] 2024-07-06 10:44:41 +1200 |
| Branch: REL_13_STABLE [440aedc0f] 2024-07-06 10:39:10 +1200 |
| Branch: REL_12_STABLE [274a8195d] 2024-07-06 10:30:03 +1200 |
| --> |
| <para> |
| Avoid clashing with |
| system-provided <filename><regex.h></filename> headers |
| (Thomas Munro) |
| <ulink url="&commit_baseurl;31423bc44">§</ulink> |
| </para> |
| |
| <para> |
| This fixes a compilation failure on macOS version 15 and up. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: David Rowley <drowley@postgresql.org> |
| Branch: master Release: REL_17_BR [aa901a37c] 2024-06-19 10:20:24 +1200 |
| Branch: REL_16_STABLE [6143c9c03] 2024-06-19 10:21:00 +1200 |
| Branch: REL_15_STABLE [27c6242a0] 2024-06-19 10:21:26 +1200 |
| Branch: REL_14_STABLE [dae9f16aa] 2024-06-19 10:21:52 +1200 |
| --> |
| <para> |
| Fix otherwise-harmless assertion failure in Memoize cost estimation |
| (David Rowley) |
| <ulink url="&commit_baseurl;6143c9c03">§</ulink> |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Tom Lane <tgl@sss.pgh.pa.us> |
| Branch: master Release: REL_17_BR [92c49d106] 2024-06-17 14:30:59 -0400 |
| Branch: REL_16_STABLE [06f81fed3] 2024-06-17 14:30:59 -0400 |
| Branch: REL_15_STABLE [f55083319] 2024-06-17 14:30:59 -0400 |
| Branch: REL_14_STABLE [e4a55378f] 2024-06-17 14:30:59 -0400 |
| Branch: REL_13_STABLE [507a900ad] 2024-06-17 14:30:59 -0400 |
| Branch: REL_12_STABLE [3e3e2ebea] 2024-06-17 14:30:59 -0400 |
| --> |
| <para> |
| Fix otherwise-harmless assertion failures in <literal>REINDEX |
| CONCURRENTLY</literal> applied to an SP-GiST index (Tom Lane) |
| <ulink url="&commit_baseurl;06f81fed3">§</ulink> |
| </para> |
| </listitem> |
| |
| </itemizedlist> |
| |
| </sect2> |
| </sect1> |
| |
| <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) |
| <ulink url="&commit_baseurl;2485a85e9">§</ulink> |
| </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) |
| <ulink url="&commit_baseurl;52898c63e">§</ulink> |
| </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) |
| <ulink url="&commit_baseurl;a3f5d2056">§</ulink> |
| </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) |
| <ulink url="&commit_baseurl;dd73d10ad">§</ulink> |
| </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) |
| <ulink url="&commit_baseurl;fb95cc72b">§</ulink> |
| </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) |
| <ulink url="&commit_baseurl;7445f0928">§</ulink> |
| </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) |
| <ulink url="&commit_baseurl;86d2b434c">§</ulink> |
| </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) |
| <ulink url="&commit_baseurl;11d40a44b">§</ulink> |
| <ulink url="&commit_baseurl;b19255ca6">§</ulink> |
| </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) |
| <ulink url="&commit_baseurl;9e6faeb32">§</ulink> |
| </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) |
| <ulink url="&commit_baseurl;1f4eb7342">§</ulink> |
| </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) |
| <ulink url="&commit_baseurl;34c854b93">§</ulink> |
| </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) |
| <ulink url="&commit_baseurl;cbfbb14bd">§</ulink> |
| </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) |
| <ulink url="&commit_baseurl;407cb6c65">§</ulink> |
| </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) |
| <ulink url="&commit_baseurl;92685c389">§</ulink> |
| </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) |
| <ulink url="&commit_baseurl;f199436c1">§</ulink> |
| </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) |
| <ulink url="&commit_baseurl;91800af13">§</ulink> |
| </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) |
| <ulink url="&commit_baseurl;4e1ff2aad">§</ulink> |
| </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) |
| <ulink url="&commit_baseurl;9d36b883b">§</ulink> |
| </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) |
| <ulink url="&commit_baseurl;a94f51a7b">§</ulink> |
| </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) |
| <ulink url="&commit_baseurl;ef0333e67">§</ulink> |
| </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) |
| <ulink url="&commit_baseurl;348233cb1">§</ulink> |
| </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) |
| <ulink url="&commit_baseurl;ac7e6a01c">§</ulink> |
| </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) |
| <ulink url="&commit_baseurl;14e991db8">§</ulink> |
| </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) |
| <ulink url="&commit_baseurl;cc1eb6a3c">§</ulink> |
| <ulink url="&commit_baseurl;1b3029be5">§</ulink> |
| </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) |
| <ulink url="&commit_baseurl;40d1bdeb7">§</ulink> |
| </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) |
| <ulink url="&commit_baseurl;760767182">§</ulink> |
| </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) |
| <ulink url="&commit_baseurl;17db5436e">§</ulink> |
| </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) |
| <ulink url="&commit_baseurl;3752e3d21">§</ulink> |
| </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) |
| <ulink url="&commit_baseurl;4eb261165">§</ulink> |
| </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) |
| <ulink url="&commit_baseurl;e3e05adde">§</ulink> |
| </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) |
| <ulink url="&commit_baseurl;4e62ba21a">§</ulink> |
| </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) |
| <ulink url="&commit_baseurl;e79ceafe9">§</ulink> |
| </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) |
| <ulink url="&commit_baseurl;f6f61a4bd">§</ulink> |
| </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) |
| <ulink url="&commit_baseurl;8c785d354">§</ulink> |
| </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) |
| <ulink url="&commit_baseurl;68d358545">§</ulink> |
| </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) |
| <ulink url="&commit_baseurl;59cea09f0">§</ulink> |
| </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) |
| <ulink url="&commit_baseurl;a9155efc7">§</ulink> |
| </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) |
| <ulink url="&commit_baseurl;f2f09b825">§</ulink> |
| </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) |
| <ulink url="&commit_baseurl;539e328b1">§</ulink> |
| </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) |
| <ulink url="&commit_baseurl;6a2c80e95">§</ulink> |
| </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) |
| <ulink url="&commit_baseurl;0460e4ecc">§</ulink> |
| </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) |
| <ulink url="&commit_baseurl;52afe5632">§</ulink> |
| <ulink url="&commit_baseurl;9440d23a0">§</ulink> |
| </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) |
| <ulink url="&commit_baseurl;392e6e9e6">§</ulink> |
| <ulink url="&commit_baseurl;0018f0af5">§</ulink> |
| <ulink url="&commit_baseurl;dd3fddc85">§</ulink> |
| </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) |
| <ulink url="&commit_baseurl;118558e6d">§</ulink> |
| </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) |
| <ulink url="&commit_baseurl;88e03d055">§</ulink> |
| </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) |
| <ulink url="&commit_baseurl;b78f4d22b">§</ulink> |
| </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) |
| <ulink url="&commit_baseurl;a85e3ba1c">§</ulink> |
| </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) |
| <ulink url="&commit_baseurl;5863bacb8">§</ulink> |
| </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) |
| <ulink url="&commit_baseurl;103235888">§</ulink> |
| </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) |
| <ulink url="&commit_baseurl;48f216dc6">§</ulink> |
| </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) |
| <ulink url="&commit_baseurl;3676b846b">§</ulink> |
| <ulink url="&commit_baseurl;a6ddb8ad0">§</ulink> |
| </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) |
| <ulink url="&commit_baseurl;8cea358b1">§</ulink> |
| <ulink url="&commit_baseurl;ccd8f0fa1">§</ulink> |
| </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) |
| <ulink url="&commit_baseurl;6a9e2cb2b">§</ulink> |
| </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) |
| <ulink url="&commit_baseurl;75929b6cf">§</ulink> |
| </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) |
| <ulink url="&commit_baseurl;7c93f31de">§</ulink> |
| </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) |
| <ulink url="&commit_baseurl;bf1cfe77e">§</ulink> |
| </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) |
| <ulink url="&commit_baseurl;7651fd387">§</ulink> |
| </para> |
| </listitem> |
| |
| </itemizedlist> |
| |
| </sect2> |
| </sect1> |
| |
| <sect1 id="release-16-2"> |
| <title>Release 16.2</title> |
| |
| <formalpara> |
| <title>Release date:</title> |
| <para>2024-02-08</para> |
| </formalpara> |
| |
| <para> |
| This release contains a variety of fixes from 16.1. |
| For information about new features in major release 16, see |
| <xref linkend="release-16"/>. |
| </para> |
| |
| <sect2 id="release-16-2-migration"> |
| <title>Migration to Version 16.2</title> |
| |
| <para> |
| A dump/restore is not required for those running 16.X. |
| </para> |
| |
| <para> |
| However, one bug was fixed that could have resulted in corruption of |
| GIN indexes during concurrent updates. If you suspect such |
| corruption, reindex affected indexes after installing this update. |
| </para> |
| |
| <para> |
| Also, if you are upgrading from a version earlier than 16.1, |
| see <xref linkend="release-16-1"/>. |
| </para> |
| </sect2> |
| |
| <sect2 id="release-16-2-changes"> |
| <title>Changes</title> |
| |
| <itemizedlist> |
| |
| <listitem> |
| <!-- |
| Author: Heikki Linnakangas <heikki.linnakangas@iki.fi> |
| Branch: master [5a9167c39] 2024-02-05 11:01:23 +0200 |
| Branch: REL_16_STABLE [d6a61cb3b] 2024-02-05 11:02:56 +0200 |
| Branch: REL_15_STABLE [f2fdea198] 2024-02-05 11:03:26 +0200 |
| Branch: REL_14_STABLE [f4f288352] 2024-02-05 11:03:43 +0200 |
| Branch: REL_13_STABLE [d541ce3b6] 2024-02-05 11:04:08 +0200 |
| Branch: REL_12_STABLE [2699fc035] 2024-02-05 11:04:22 +0200 |
| Branch: master [b96115acb] 2024-02-05 11:01:30 +0200 |
| Branch: REL_16_STABLE [fb3836855] 2024-02-05 11:03:03 +0200 |
| Branch: REL_15_STABLE [06f36bc01] 2024-02-05 11:03:28 +0200 |
| Branch: REL_14_STABLE [a45c950ae] 2024-02-05 11:03:43 +0200 |
| Branch: REL_13_STABLE [b73d21648] 2024-02-05 11:04:10 +0200 |
| Branch: REL_12_STABLE [add8bc9b8] 2024-02-05 11:04:23 +0200 |
| --> |
| <para> |
| Tighten security restrictions within <command>REFRESH MATERIALIZED |
| VIEW CONCURRENTLY</command> (Heikki Linnakangas) |
| <ulink url="&commit_baseurl;d6a61cb3b">§</ulink> |
| <ulink url="&commit_baseurl;fb3836855">§</ulink> |
| </para> |
| |
| <para> |
| One step of a concurrent refresh command was run under weak security |
| restrictions. If a materialized view's owner could persuade a |
| superuser or other high-privileged user to perform a concurrent |
| refresh on that view, the view's owner could control code executed |
| with the privileges of the user running <command>REFRESH</command>. |
| Fix things so that all user-determined code is run as the view's |
| owner, as expected. |
| </para> |
| |
| <para> |
| The only known exploit for this error does not work |
| in <productname>PostgreSQL</productname> 16.0 and later, so it may |
| be that v16 is not vulnerable in practice. |
| </para> |
| |
| <para> |
| The <productname>PostgreSQL</productname> Project thanks Pedro |
| Gallegos for reporting this problem. |
| (CVE-2024-0985) <!-- not CVE-2023-5869 as claimed in commit msg --> |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Daniel Gustafsson <dgustafsson@postgresql.org> |
| Branch: master [9dce22033] 2023-09-27 13:02:21 +0200 |
| Branch: REL_16_STABLE [2cf50585e] 2023-11-17 10:18:38 +0100 |
| Branch: REL_15_STABLE [aef521849] 2023-11-17 10:21:34 +0100 |
| Branch: REL_14_STABLE [75a20a4b4] 2023-11-17 10:27:45 +0100 |
| Branch: REL_13_STABLE [10912f7d4] 2023-11-17 11:46:31 +0100 |
| Branch: REL_12_STABLE [3b991f81c] 2023-11-17 11:47:17 +0100 |
| Branch: REL_12_STABLE [c922b2410] 2023-12-11 12:02:01 +0100 |
| --> |
| <para> |
| Fix memory leak when performing JIT inlining (Andres Freund, |
| Daniel Gustafsson) |
| <ulink url="&commit_baseurl;2cf50585e">§</ulink> |
| </para> |
| |
| <para> |
| There have been multiple reports of backend processes suffering |
| out-of-memory conditions after sufficiently many JIT compilations. |
| This fix should resolve that. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Tom Lane <tgl@sss.pgh.pa.us> |
| Branch: REL_16_STABLE [62f120203] 2024-02-01 12:34:21 -0500 |
| Branch: REL_15_STABLE [12ec16d11] 2024-02-01 12:34:21 -0500 |
| Branch: REL_14_STABLE [e031995d5] 2024-02-01 12:34:21 -0500 |
| Branch: REL_13_STABLE [7af96a66f] 2024-02-01 12:34:21 -0500 |
| Branch: REL_12_STABLE [2e822a1d6] 2024-02-01 12:34:21 -0500 |
| --> |
| <para> |
| Avoid generating incorrect partitioned-join plans (Richard Guo) |
| <ulink url="&commit_baseurl;62f120203">§</ulink> |
| </para> |
| |
| <para> |
| Some uncommon situations involving lateral references could create |
| incorrect plans. Affected queries could produce wrong answers, or |
| odd failures such as <quote>variable not found in subplan target |
| list</quote>, or executor crashes. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Tom Lane <tgl@sss.pgh.pa.us> |
| Branch: master [29f114b6f] 2024-01-11 15:28:22 -0500 |
| Branch: REL_16_STABLE [80bece312] 2024-01-11 15:28:13 -0500 |
| Branch: REL_15_STABLE [a0b4fda44] 2024-01-11 15:28:13 -0500 |
| Branch: REL_14_STABLE [ea1d54288] 2024-01-11 15:28:13 -0500 |
| Branch: REL_13_STABLE [bfd28bb07] 2024-01-11 15:28:13 -0500 |
| Branch: REL_12_STABLE [69c12c417] 2024-01-11 15:28:13 -0500 |
| --> |
| <para> |
| Fix incorrect wrapping of subquery output expressions in |
| PlaceHolderVars (Tom Lane) |
| <ulink url="&commit_baseurl;80bece312">§</ulink> |
| </para> |
| |
| <para> |
| This fixes incorrect results when a subquery is underneath an outer |
| join and has an output column that laterally references something |
| outside the outer join's scope. The output column might not appear |
| as NULL when it should do so due to the action of the outer join. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Tom Lane <tgl@sss.pgh.pa.us> |
| Branch: master [d641b827a] 2024-01-10 13:36:33 -0500 |
| Branch: REL_16_STABLE [ee9553218] 2024-01-10 13:36:34 -0500 |
| Branch: REL_15_STABLE [c3f52fd5d] 2024-01-10 13:36:34 -0500 |
| --> |
| <para> |
| Fix misprocessing of window function run conditions (Richard Guo) |
| <ulink url="&commit_baseurl;ee9553218">§</ulink> |
| </para> |
| |
| <para> |
| This oversight could lead to <quote>WindowFunc not found in subplan |
| target lists</quote> errors. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: David Rowley <drowley@postgresql.org> |
| Branch: master [2bcf0785c] 2024-01-22 22:45:02 +1300 |
| Branch: REL_16_STABLE [74f770ef2] 2024-01-22 22:45:33 +1300 |
| --> |
| <para> |
| Fix detection of inner-side uniqueness for Memoize plans |
| (Richard Guo) |
| <ulink url="&commit_baseurl;74f770ef2">§</ulink> |
| </para> |
| |
| <para> |
| This mistake could lead to <quote>cache entry already |
| complete</quote> errors. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Tom Lane <tgl@sss.pgh.pa.us> |
| Branch: master [36f5594c0] 2023-11-09 15:46:16 -0500 |
| Branch: REL_16_STABLE [6bf2efb38] 2023-11-09 15:46:16 -0500 |
| --> |
| <para> |
| Fix computation of nullingrels when constant-folding field selection |
| (Richard Guo) |
| <ulink url="&commit_baseurl;6bf2efb38">§</ulink> |
| </para> |
| |
| <para> |
| Failure to do this led to errors like <quote>wrong varnullingrels |
| (b) (expected (b 3)) for Var 2/2</quote>. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Dean Rasheed <dean.a.rasheed@gmail.com> |
| Branch: master [a4f7d33a9] 2023-11-09 11:23:42 +0000 |
| Branch: REL_16_STABLE [06a546382] 2023-11-09 11:27:04 +0000 |
| Branch: REL_15_STABLE [c0bfdaf2b] 2023-11-09 11:28:25 +0000 |
| --> |
| <para> |
| Skip inappropriate actions when <command>MERGE</command> causes a |
| cross-partition update (Dean Rasheed) |
| <ulink url="&commit_baseurl;06a546382">§</ulink> |
| </para> |
| |
| <para> |
| When executing a <literal>MERGE UPDATE</literal> action on a |
| partitioned table, if the <literal>UPDATE</literal> is turned into |
| a <literal>DELETE</literal> and <literal>INSERT</literal> due to |
| changing a partition key column, skip firing <literal>AFTER |
| UPDATE ROW</literal> triggers, as well as other post-update actions |
| such as RLS checks. These actions would typically fail, which is |
| why a regular <literal>UPDATE</literal> doesn't do them in such |
| cases; <literal>MERGE</literal> shouldn't either. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Dean Rasheed <dean.a.rasheed@gmail.com> |
| Branch: master [a0ff37173] 2023-12-21 12:55:22 +0000 |
| Branch: REL_16_STABLE [7f07384dc] 2023-12-21 12:53:48 +0000 |
| Branch: REL_15_STABLE [7e8c6d7af] 2023-12-21 12:51:55 +0000 |
| --> |
| <para> |
| Cope with <literal>BEFORE ROW DELETE</literal> triggers in |
| cross-partition <command>MERGE</command> updates (Dean Rasheed) |
| <ulink url="&commit_baseurl;7f07384dc">§</ulink> |
| </para> |
| |
| <para> |
| If such a trigger attempted to prevent the update by returning |
| NULL, <command>MERGE</command> would suffer an error or assertion |
| failure. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Tom Lane <tgl@sss.pgh.pa.us> |
| Branch: master [6545ba96c] 2024-01-14 12:38:41 -0500 |
| Branch: REL_16_STABLE [23e0ba59c] 2024-01-14 12:38:41 -0500 |
| Branch: REL_15_STABLE [1a4e54617] 2024-01-14 12:38:41 -0500 |
| Branch: REL_14_STABLE [c7edaeec5] 2024-01-14 12:38:41 -0500 |
| --> |
| <para> |
| Prevent access to a no-longer-pinned buffer in <literal>BEFORE ROW |
| UPDATE</literal> triggers (Alexander Lakhin, Tom Lane) |
| <ulink url="&commit_baseurl;23e0ba59c">§</ulink> |
| </para> |
| |
| <para> |
| If the tuple being updated had just been updated and moved to |
| another page by another session, there was a narrow window where |
| we would attempt to fetch data from the new tuple version without |
| any pin on its buffer. In principle this could result in garbage |
| data appearing in non-updated columns of the proposed new tuple. |
| The odds of problems in practice seem rather low, however. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Alexander Korotkov <akorotkov@postgresql.org> |
| Branch: master [2a67b5a60] 2024-01-07 09:10:19 +0200 |
| Branch: REL_16_STABLE [714a987bc] 2024-01-07 09:32:58 +0200 |
| Branch: REL_15_STABLE [1a7c03e6f] 2024-01-07 09:10:40 +0200 |
| Branch: REL_14_STABLE [3bdaa8fc6] 2024-01-07 09:10:49 +0200 |
| Branch: REL_13_STABLE [60de25c6e] 2024-01-07 09:11:00 +0200 |
| Branch: REL_12_STABLE [72d5b2776] 2024-01-07 09:18:43 +0200 |
| Branch: master [6d94cc6ca] 2024-01-08 20:00:20 +0200 |
| Branch: REL_16_STABLE [20a566cd4] 2024-01-08 19:57:09 +0200 |
| Branch: REL_15_STABLE [6eecc3a62] 2024-01-08 19:57:03 +0200 |
| Branch: REL_14_STABLE [97e64911d] 2024-01-08 19:57:58 +0200 |
| Branch: REL_13_STABLE [17b6f39f1] 2024-01-08 19:58:38 +0200 |
| Branch: REL_12_STABLE [a5e2853c3] 2024-01-08 19:58:51 +0200 |
| --> |
| <para> |
| Avoid requesting an oversize shared-memory area in parallel hash |
| join (Thomas Munro, Andrei Lepikhov, Alexander Korotkov) |
| <ulink url="&commit_baseurl;714a987bc">§</ulink> |
| <ulink url="&commit_baseurl;20a566cd4">§</ulink> |
| </para> |
| |
| <para> |
| The limiting value was too large, allowing <quote>invalid DSA memory |
| alloc request size</quote> errors to occur with sufficiently large |
| expected hash table sizes. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Michael Paquier <michael@paquier.xyz> |
| Branch: master [9cd0d77df] 2024-01-05 20:08:34 +0900 |
| Branch: REL_16_STABLE [37c551663] 2024-01-05 20:10:46 +0900 |
| --> |
| <para> |
| Fix corruption of local buffer state when an error occurs while |
| trying to extend a temporary table (Tender Wang) |
| <ulink url="&commit_baseurl;37c551663">§</ulink> |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: David Rowley <drowley@postgresql.org> |
| Branch: master [ae69c4fcf] 2024-01-04 20:38:25 +1300 |
| Branch: REL_16_STABLE [6298673f4] 2024-01-04 20:40:11 +1300 |
| --> |
| <para> |
| Fix use of wrong tuple slot while |
| evaluating <literal>DISTINCT</literal> aggregates that have multiple |
| arguments (David Rowley) |
| <ulink url="&commit_baseurl;6298673f4">§</ulink> |
| </para> |
| |
| <para> |
| This mistake could lead to errors such as <quote>attribute 1 of type |
| record has wrong type</quote>. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Heikki Linnakangas <heikki.linnakangas@iki.fi> |
| Branch: master [60f227316] 2023-11-28 12:00:14 +0200 |
| Branch: REL_16_STABLE [9fee3232a] 2023-11-28 11:59:45 +0200 |
| Branch: REL_15_STABLE [2873fbfe0] 2023-11-28 11:59:50 +0200 |
| Branch: REL_14_STABLE [59c62a21f] 2023-11-28 11:59:51 +0200 |
| Branch: REL_13_STABLE [e434d3620] 2023-11-28 11:59:52 +0200 |
| Branch: REL_12_STABLE [b8a606e21] 2023-11-28 11:59:53 +0200 |
| --> |
| <para> |
| Avoid assertion failures in <function>heap_update()</function> |
| and <function>heap_delete()</function> when a tuple to be updated by |
| a foreign-key enforcement trigger fails the extra visibility |
| crosscheck (Alexander Lakhin) |
| <ulink url="&commit_baseurl;9fee3232a">§</ulink> |
| </para> |
| |
| <para> |
| This error had no impact in non-assert builds. |
| </para> |
| </listitem> |
| |
| <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) |
| <ulink url="&commit_baseurl;4dccf9575">§</ulink> |
| </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 |
| Branch: REL_14_STABLE [5a7833f49] 2024-01-24 14:20:11 +0900 |
| Branch: REL_13_STABLE [bfec14d06] 2024-01-24 14:20:13 +0900 |
| Branch: REL_12_STABLE [2f7242837] 2024-01-24 14:20:14 +0900 |
| --> |
| <para> |
| Fix possible failure during <command>ALTER TABLE ADD |
| COLUMN</command> on a complex inheritance tree (Tender Wang) |
| <ulink url="&commit_baseurl;51193e7a7">§</ulink> |
| </para> |
| |
| <para> |
| If a grandchild table would inherit the new column via multiple |
| intermediate parents, the command failed with <quote>tuple already |
| updated by self</quote>. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Michael Paquier <michael@paquier.xyz> |
| Branch: master [3e91dba8b] 2024-01-31 13:15:21 +0900 |
| Branch: REL_16_STABLE [f33e83285] 2024-01-31 13:16:43 +0900 |
| Branch: REL_15_STABLE [41fa4b31c] 2024-01-31 13:16:46 +0900 |
| Branch: REL_14_STABLE [dde5b01c3] 2024-01-31 13:16:47 +0900 |
| Branch: REL_13_STABLE [4d0e8a008] 2024-01-31 13:16:49 +0900 |
| Branch: REL_12_STABLE [056109782] 2024-01-31 13:16:50 +0900 |
| --> |
| <para> |
| Fix problems with duplicate token names in <command>ALTER TEXT |
| SEARCH CONFIGURATION ... MAPPING</command> commands (Tender Wang, |
| Michael Paquier) |
| <ulink url="&commit_baseurl;f33e83285">§</ulink> |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Michael Paquier <michael@paquier.xyz> |
| Branch: master [50b797dc9] 2024-01-29 08:05:59 +0900 |
| Branch: REL_16_STABLE [f57a580fd] 2024-01-29 08:06:03 +0900 |
| --> |
| <para> |
| Fix <command>DROP ROLE</command> with duplicate role names |
| (Michael Paquier) |
| <ulink url="&commit_baseurl;f57a580fd">§</ulink> |
| </para> |
| |
| <para> |
| Previously this led to a <quote>tuple already updated by |
| self</quote> failure. Instead, ignore the duplicate. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Tomas Vondra <tomas.vondra@postgresql.org> |
| Branch: master [28f84f72f] 2023-11-19 21:03:38 +0100 |
| Branch: REL_16_STABLE [ee32b824d] 2023-11-19 21:03:50 +0100 |
| Branch: REL_15_STABLE [0177fc773] 2023-11-19 21:04:16 +0100 |
| Branch: REL_14_STABLE [9dd50e92e] 2023-11-19 21:04:28 +0100 |
| Branch: REL_13_STABLE [1e468ea4e] 2023-11-19 21:04:39 +0100 |
| Branch: REL_12_STABLE [4f8d3c5b5] 2023-11-19 21:04:47 +0100 |
| --> |
| <para> |
| Properly lock the associated table during <command>DROP |
| STATISTICS</command> (Tomas Vondra) |
| <ulink url="&commit_baseurl;ee32b824d">§</ulink> |
| </para> |
| |
| <para> |
| Failure to acquire the lock could result in <quote>tuple |
| concurrently deleted</quote> errors if the <command>DROP</command> |
| executes concurrently with <command>ANALYZE</command>. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Tom Lane <tgl@sss.pgh.pa.us> |
| Branch: master [743ddafc7] 2023-11-16 10:05:14 -0500 |
| Branch: REL_16_STABLE [f07a3039c] 2023-11-16 10:05:14 -0500 |
| Branch: REL_15_STABLE [9057ddbef] 2023-11-16 10:05:14 -0500 |
| Branch: REL_14_STABLE [9bd0f74ea] 2023-11-16 10:05:14 -0500 |
| Branch: REL_13_STABLE [5c11104c7] 2023-11-16 10:05:14 -0500 |
| Branch: REL_12_STABLE [abd1b1325] 2023-11-16 10:05:14 -0500 |
| --> |
| <para> |
| Fix function volatility checking for <literal>GENERATED</literal> |
| and <literal>DEFAULT</literal> expressions (Tom Lane) |
| <ulink url="&commit_baseurl;f07a3039c">§</ulink> |
| </para> |
| |
| <para> |
| These places could fail to detect insertion of a volatile function |
| default-argument expression, or decide that a polymorphic function |
| is volatile although it is actually immutable on the datatype of |
| interest. This could lead to improperly rejecting or accepting |
| a <literal>GENERATED</literal> clause, or to mistakenly applying the |
| constant-default-value optimization in <command>ALTER TABLE ADD |
| COLUMN</command>. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Tom Lane <tgl@sss.pgh.pa.us> |
| Branch: master [ad98fb142] 2024-01-13 13:46:27 -0500 |
| Branch: REL_16_STABLE [7e2561e1a] 2024-01-13 13:46:27 -0500 |
| Branch: REL_15_STABLE [2a46a0df4] 2024-01-13 13:46:27 -0500 |
| Branch: REL_14_STABLE [db122d426] 2024-01-13 13:46:27 -0500 |
| Branch: REL_13_STABLE [98e03f957] 2024-01-13 13:46:27 -0500 |
| Branch: REL_12_STABLE [3b4d85cf1] 2024-01-13 13:46:27 -0500 |
| Branch: master [96c019ffa] 2024-01-13 13:54:11 -0500 |
| Branch: REL_16_STABLE [56dcd71de] 2024-01-13 13:54:11 -0500 |
| Branch: REL_15_STABLE [d41358f4b] 2024-01-13 13:54:11 -0500 |
| Branch: REL_14_STABLE [7ceeb57ba] 2024-01-13 13:54:11 -0500 |
| Branch: REL_13_STABLE [475b3ea3c] 2024-01-13 13:54:11 -0500 |
| Branch: REL_12_STABLE [d29a4fbac] 2024-01-13 13:54:11 -0500 |
| --> |
| <para> |
| Detect that a new catalog cache entry became stale while detoasting |
| its fields (Tom Lane) |
| <ulink url="&commit_baseurl;7e2561e1a">§</ulink> |
| <ulink url="&commit_baseurl;56dcd71de">§</ulink> |
| </para> |
| |
| <para> |
| We expand any out-of-line fields in a catalog tuple before inserting |
| it into the catalog caches. That involves database access which |
| might cause invalidation of catalog cache entries — but the |
| new entry isn't in the cache yet, so we would miss noticing that it |
| should get invalidated. The result is a race condition in which an |
| already-stale cache entry could get made, and then persist |
| indefinitely. This would lead to hard-to-predict misbehavior. |
| Fix by rechecking the tuple's visibility after detoasting. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Dean Rasheed <dean.a.rasheed@gmail.com> |
| Branch: master [0e3e8fbd3] 2023-11-09 09:50:23 +0000 |
| Branch: REL_16_STABLE [c396aca2b] 2023-11-09 09:53:05 +0000 |
| Branch: REL_15_STABLE [308a69a98] 2023-11-09 09:54:22 +0000 |
| Branch: REL_14_STABLE [dea12b40d] 2023-11-09 09:55:39 +0000 |
| Branch: REL_13_STABLE [4f4a0010a] 2023-11-09 09:56:31 +0000 |
| Branch: REL_12_STABLE [b17a02be2] 2023-11-09 09:57:52 +0000 |
| --> |
| <para> |
| Fix edge-case integer overflow detection bug on some platforms (Dean |
| Rasheed) |
| <ulink url="&commit_baseurl;c396aca2b">§</ulink> |
| </para> |
| |
| <para> |
| Computing <literal>0 - INT64_MIN</literal> should result in an |
| overflow error, and did on most platforms. However, platforms with |
| neither integer overflow builtins nor 128-bit integers would fail to |
| spot the overflow, instead returning <literal>INT64_MIN</literal>. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Tom Lane <tgl@sss.pgh.pa.us> |
| Branch: master [25cd2d640] 2024-01-26 13:39:45 -0500 |
| Branch: REL_16_STABLE [7204aea83] 2024-01-26 13:39:37 -0500 |
| Branch: REL_15_STABLE [86b6243a8] 2024-01-26 13:39:37 -0500 |
| Branch: REL_14_STABLE [3eb8a87f6] 2024-01-26 13:39:37 -0500 |
| Branch: REL_13_STABLE [425127bed] 2024-01-26 13:39:37 -0500 |
| Branch: REL_12_STABLE [c3bdb25fb] 2024-01-26 13:39:37 -0500 |
| --> |
| <para> |
| Detect Julian-date overflow when adding or subtracting |
| an <type>interval</type> to/from a <type>timestamp</type> (Tom Lane) |
| <ulink url="&commit_baseurl;7204aea83">§</ulink> |
| </para> |
| |
| <para> |
| Some cases that should cause an out-of-range error produced an |
| incorrect result instead. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Dean Rasheed <dean.a.rasheed@gmail.com> |
| Branch: master [b218fbb7a] 2023-11-18 14:41:20 +0000 |
| Branch: REL_16_STABLE [72d0c135b] 2023-11-18 14:46:02 +0000 |
| Branch: REL_15_STABLE [2851aa7d1] 2023-11-18 14:47:04 +0000 |
| Branch: REL_14_STABLE [2ffcebdba] 2023-11-18 14:48:10 +0000 |
| Branch: REL_13_STABLE [428770aad] 2023-11-18 14:49:18 +0000 |
| Branch: REL_12_STABLE [f499d2b20] 2023-11-18 14:50:00 +0000 |
| --> |
| <para> |
| Add more checks for overflow in <function>interval_mul()</function> |
| and <function>interval_div()</function> (Dean Rasheed) |
| <ulink url="&commit_baseurl;72d0c135b">§</ulink> |
| </para> |
| |
| <para> |
| Some cases that should cause an out-of-range error produced an |
| incorrect result instead. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Michael Paquier <michael@paquier.xyz> |
| Branch: master [14f2f9eb1] 2023-11-28 08:35:50 +0900 |
| Branch: REL_16_STABLE [07cb7bc1c] 2023-11-28 08:35:56 +0900 |
| --> |
| <para> |
| Allow <function>scram_SaltedPassword()</function> to be interrupted |
| (Bowen Shi) |
| <ulink url="&commit_baseurl;07cb7bc1c">§</ulink> |
| </para> |
| |
| <para> |
| With large <varname>scram_iterations</varname> values, this function |
| could take a long time to run. Allow it to be interrupted by query |
| cancel requests. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Michael Paquier <michael@paquier.xyz> |
| Branch: master [235c09efb] 2024-02-01 17:12:50 +0900 |
| Branch: REL_16_STABLE [781bc121d] 2024-02-01 17:13:09 +0900 |
| Branch: REL_15_STABLE [171d21f50] 2024-02-01 17:13:11 +0900 |
| --> |
| <para> |
| Ensure cached statistics are discarded after a change |
| to <varname>stats_fetch_consistency</varname> (Shinya Kato) |
| <ulink url="&commit_baseurl;781bc121d">§</ulink> |
| </para> |
| |
| <para> |
| In some code paths, it was possible for stale statistics to be |
| returned. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Tom Lane <tgl@sss.pgh.pa.us> |
| Branch: master [059de3ca4] 2023-12-26 17:57:48 -0500 |
| Branch: REL_16_STABLE [e87252ceb] 2023-12-26 17:57:48 -0500 |
| Branch: REL_15_STABLE [76dd3d94a] 2023-12-26 17:57:48 -0500 |
| Branch: REL_14_STABLE [bf4f30a0f] 2023-12-26 17:57:48 -0500 |
| Branch: REL_13_STABLE [cb88f44ec] 2023-12-26 17:57:48 -0500 |
| Branch: REL_12_STABLE [ea61b1cf6] 2023-12-26 17:57:48 -0500 |
| --> |
| <para> |
| Make the <structname>pg_file_settings</structname> view check |
| validity of unapplied values for settings |
| with <literal>backend</literal> |
| or <literal>superuser-backend</literal> context (Tom Lane) |
| <ulink url="&commit_baseurl;e87252ceb">§</ulink> |
| </para> |
| |
| <para> |
| Invalid values were not noted in the view as intended. This escaped |
| detection because there are very few settings in these groups. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Peter Eisentraut <peter@eisentraut.org> |
| Branch: master [a11c9c42e] 2023-12-01 16:05:41 +0100 |
| Branch: REL_16_STABLE [267f33f68] 2023-12-01 16:09:54 +0100 |
| Branch: REL_15_STABLE [15d485921] 2023-12-01 16:14:22 +0100 |
| Branch: REL_14_STABLE [e846fc491] 2023-12-01 16:17:38 +0100 |
| Branch: REL_13_STABLE [3c49fa2af] 2023-12-01 16:23:18 +0100 |
| Branch: REL_12_STABLE [5d40b3c4f] 2023-12-01 16:27:18 +0100 |
| --> |
| <para> |
| Match collation too when matching an existing index to a new |
| partitioned index (Peter Eisentraut) |
| <ulink url="&commit_baseurl;267f33f68">§</ulink> |
| </para> |
| |
| <para> |
| Previously we could accept an index that has a different collation |
| from the corresponding element of the partition key, possibly |
| leading to misbehavior. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Michael Paquier <michael@paquier.xyz> |
| Branch: master [0ae3b4662] 2024-01-18 16:30:11 +0900 |
| Branch: REL_16_STABLE [c030e263e] 2024-01-18 16:31:38 +0900 |
| Branch: REL_15_STABLE [a0c19de11] 2024-01-18 16:31:46 +0900 |
| Branch: REL_14_STABLE [b6f2e019d] 2024-01-18 16:31:50 +0900 |
| Branch: master [8013850c8] 2024-01-18 15:04:24 +0900 |
| Branch: REL_16_STABLE [7ce65c6f7] 2024-01-18 15:04:31 +0900 |
| Branch: REL_15_STABLE [1cf2dba84] 2024-01-18 15:04:35 +0900 |
| Branch: REL_14_STABLE [b685b41cf] 2024-01-18 15:04:39 +0900 |
| --> |
| <para> |
| Avoid failure if a child index is dropped concurrently |
| with <command>REINDEX INDEX</command> on a partitioned index |
| (Fei Changhong) |
| <ulink url="&commit_baseurl;c030e263e">§</ulink> |
| <ulink url="&commit_baseurl;7ce65c6f7">§</ulink> |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Heikki Linnakangas <heikki.linnakangas@iki.fi> |
| Branch: master [6a1ea02c4] 2024-01-29 13:46:22 +0200 |
| Branch: REL_16_STABLE [b899e00e7] 2024-01-29 13:46:30 +0200 |
| Branch: REL_15_STABLE [e43425f48] 2024-01-29 13:46:42 +0200 |
| Branch: REL_14_STABLE [f120c0872] 2024-01-29 13:46:43 +0200 |
| Branch: REL_13_STABLE [e74c91665] 2024-01-29 13:46:45 +0200 |
| Branch: REL_12_STABLE [e6511fe64] 2024-01-29 13:46:48 +0200 |
| --> |
| <para> |
| Fix insufficient locking when cleaning up an incomplete split of |
| a GIN index's internal page (Fei Changhong, Heikki Linnakangas) |
| <ulink url="&commit_baseurl;b899e00e7">§</ulink> |
| </para> |
| |
| <para> |
| The code tried to do this with shared rather than exclusive lock on |
| the buffer. This could lead to index corruption if two processes |
| attempted the cleanup concurrently. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Tom Lane <tgl@sss.pgh.pa.us> |
| Branch: master [5c62ecf6e] 2023-11-13 11:44:35 -0500 |
| Branch: REL_16_STABLE [f76b975d5] 2023-11-13 11:44:48 -0500 |
| Branch: REL_15_STABLE [4c73ec604] 2023-11-13 11:44:57 -0500 |
| Branch: REL_14_STABLE [d900e74e0] 2023-11-13 11:45:04 -0500 |
| Branch: REL_13_STABLE [c859d688b] 2023-11-13 11:45:09 -0500 |
| Branch: REL_12_STABLE [5a6937ec9] 2023-11-13 11:45:13 -0500 |
| --> |
| <para> |
| Avoid premature release of buffer pin in GIN index insertion |
| (Tom Lane) |
| <ulink url="&commit_baseurl;f76b975d5">§</ulink> |
| </para> |
| |
| <para> |
| If an index root page split occurs concurrently with our own |
| insertion, the code could fail with <quote>buffer NNNN is not owned |
| by resource owner</quote>. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Tom Lane <tgl@sss.pgh.pa.us> |
| Branch: master [903737c5b] 2023-12-21 12:43:36 -0500 |
| Branch: REL_16_STABLE [0977bd64e] 2023-12-21 12:43:36 -0500 |
| Branch: REL_15_STABLE [ab04c1901] 2023-12-21 12:43:36 -0500 |
| Branch: REL_14_STABLE [375f441bd] 2023-12-21 12:43:36 -0500 |
| Branch: REL_13_STABLE [cc3865150] 2023-12-21 12:43:36 -0500 |
| Branch: REL_12_STABLE [1771ec9a8] 2023-12-21 12:43:36 -0500 |
| --> |
| <para> |
| Avoid failure with partitioned SP-GiST indexes (Tom Lane) |
| <ulink url="&commit_baseurl;0977bd64e">§</ulink> |
| </para> |
| |
| <para> |
| Trying to use an index of this kind could lead to <quote>No such |
| file or directory</quote> errors. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Tom Lane <tgl@sss.pgh.pa.us> |
| Branch: master [59bd34c2f] 2023-12-15 13:55:05 -0500 |
| Branch: REL_16_STABLE [152bfc0af] 2023-12-15 13:55:05 -0500 |
| --> |
| <para> |
| Fix ownership tests for large objects (Tom Lane) |
| <ulink url="&commit_baseurl;152bfc0af">§</ulink> |
| </para> |
| |
| <para> |
| Operations on large objects that require ownership privilege failed |
| with <quote>unrecognized class ID: 2613</quote>, unless run by a |
| superuser. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Tom Lane <tgl@sss.pgh.pa.us> |
| Branch: master [59bd34c2f] 2023-12-15 13:55:05 -0500 |
| Branch: REL_16_STABLE [152bfc0af] 2023-12-15 13:55:05 -0500 |
| Branch: REL_15_STABLE [7a99fb6e1] 2023-12-15 13:55:05 -0500 |
| Branch: REL_14_STABLE [f552f2be2] 2023-12-15 13:55:05 -0500 |
| Branch: REL_13_STABLE [55b5c67da] 2023-12-15 13:55:05 -0500 |
| Branch: REL_12_STABLE [ba66f2533] 2023-12-15 13:55:05 -0500 |
| --> |
| <para> |
| Fix ownership change reporting for large objects (Tom Lane) |
| <ulink url="&commit_baseurl;152bfc0af">§</ulink> |
| </para> |
| |
| <para> |
| A no-op <command>ALTER LARGE OBJECT OWNER</command> command (that |
| is, one selecting the existing owner) passed the wrong class ID to |
| the <varname>PostAlterHook</varname>, probably confusing any |
| extension using that hook. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Michael Paquier <michael@paquier.xyz> |
| Branch: REL_16_STABLE [db69101a1] 2023-12-14 09:59:47 +0100 |
| Branch: REL_15_STABLE [8dd70828b] 2023-12-14 09:59:52 +0100 |
| --> |
| <para> |
| Fix reporting of I/O timing data in <literal>EXPLAIN |
| (BUFFERS)</literal> (Michael Paquier) |
| <ulink url="&commit_baseurl;db69101a1">§</ulink> |
| </para> |
| |
| <para> |
| The numbers labeled as <quote>shared/local</quote> actually refer |
| only to shared buffers, so change that label |
| to <quote>shared</quote>. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Noah Misch <noah@leadboat.com> |
| Branch: master [df220714e] 2024-02-01 13:44:19 -0800 |
| Branch: REL_16_STABLE [6d423e9ff] 2024-02-01 13:44:22 -0800 |
| Branch: REL_15_STABLE [d493bed28] 2024-02-01 13:44:22 -0800 |
| Branch: master [0b6517a3b] 2024-02-01 13:44:19 -0800 |
| Branch: REL_16_STABLE [48a6bf5c4] 2024-02-01 13:44:22 -0800 |
| Branch: REL_15_STABLE [8fa4a1ac6] 2024-02-01 13:44:23 -0800 |
| --> |
| <para> |
| Ensure durability of <command>CREATE DATABASE</command> (Noah Misch) |
| <ulink url="&commit_baseurl;6d423e9ff">§</ulink> |
| <ulink url="&commit_baseurl;48a6bf5c4">§</ulink> |
| </para> |
| |
| <para> |
| If an operating system crash occurred during or shortly |
| after <command>CREATE DATABASE</command>, recovery could fail, or |
| subsequent connections to the new database could fail. If a base |
| backup was taken in that window, similar problems could be observed |
| when trying to use the backup. The symptom would be that the |
| database directory, <filename>PG_VERSION</filename> file, or |
| <filename>pg_filenode.map</filename> file was missing or empty. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Michael Paquier <michael@paquier.xyz> |
| Branch: master [1d35f705e] 2024-01-25 17:07:56 +0900 |
| Branch: REL_16_STABLE [edbd1b41a] 2024-01-29 09:04:51 +0900 |
| Branch: REL_15_STABLE [8b34cff33] 2024-01-29 09:04:55 +0900 |
| --> |
| <para> |
| Add more <literal>LOG</literal> messages when starting and ending |
| recovery from a backup (Andres Freund) |
| <ulink url="&commit_baseurl;edbd1b41a">§</ulink> |
| </para> |
| |
| <para> |
| This change provides additional information in the postmaster log |
| that may be useful for diagnosing recovery problems. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Michael Paquier <michael@paquier.xyz> |
| Branch: master [8a7cbfce1] 2023-12-12 17:05:18 +0100 |
| Branch: REL_16_STABLE [0e2c05af9] 2023-12-12 17:05:27 +0100 |
| Branch: REL_15_STABLE [f5d8f59ca] 2023-12-12 17:05:29 +0100 |
| Branch: REL_14_STABLE [0cfd3ddfe] 2023-12-12 17:05:33 +0100 |
| Branch: REL_13_STABLE [d99294e77] 2023-12-12 17:05:34 +0100 |
| Branch: REL_12_STABLE [4d45ecc92] 2023-12-12 17:05:36 +0100 |
| --> |
| <para> |
| Prevent standby servers from incorrectly processing dead index |
| tuples during subtransactions (Fei Changhong) |
| <ulink url="&commit_baseurl;0e2c05af9">§</ulink> |
| </para> |
| |
| <para> |
| The <structfield>startedInRecovery</structfield> flag was not |
| correctly set for a subtransaction. This affects only processing of |
| dead index tuples. It could allow a query in a subtransaction to |
| ignore index entries that it should return (if they are already dead |
| on the primary server, but not dead to the standby transaction), or |
| to prematurely mark index entries as dead that are not yet dead on |
| the primary. It is not clear that the latter case has any serious |
| consequences, but it's not the intended behavior. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Heikki Linnakangas <heikki.linnakangas@iki.fi> |
| Branch: master [21ef4d4d8] 2024-01-23 10:38:07 +0200 |
| Branch: REL_16_STABLE [c5a6d5337] 2024-01-23 10:53:23 +0200 |
| --> |
| <para> |
| Fix signal handling in walreceiver processes (Heikki Linnakangas) |
| <ulink url="&commit_baseurl;c5a6d5337">§</ulink> |
| </para> |
| |
| <para> |
| Revert a change that made walreceivers non-responsive |
| to <systemitem>SIGTERM</systemitem> while waiting for the |
| replication connection to be established. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Thomas Munro <tmunro@postgresql.org> |
| Branch: master [cd7f19da3] 2023-12-08 16:09:03 +1300 |
| Branch: REL_16_STABLE [8ca56620c] 2023-12-08 16:10:23 +1300 |
| Branch: REL_15_STABLE [b9f687f5a] 2023-12-08 16:11:12 +1300 |
| --> |
| <para> |
| Fix integer overflow hazard in checking whether a record will fit |
| into the WAL decoding buffer (Thomas Munro) |
| <ulink url="&commit_baseurl;8ca56620c">§</ulink> |
| </para> |
| |
| <para> |
| This bug appears to be only latent except when running a |
| 32-bit <productname>PostgreSQL</productname> build on a 64-bit |
| platform. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Amit Kapila <akapila@postgresql.org> |
| Branch: master [8d7d2197f] 2023-12-11 08:50:43 +0530 |
| Branch: REL_16_STABLE [01cc92fa6] 2023-12-11 08:36:17 +0530 |
| Branch: REL_15_STABLE [332b43063] 2023-12-11 08:23:33 +0530 |
| Branch: REL_14_STABLE [3f86867d5] 2023-12-11 08:10:46 +0530 |
| Branch: REL_13_STABLE [b47ea4f3d] 2023-12-11 07:57:50 +0530 |
| Branch: REL_12_STABLE [e81e617f3] 2023-12-11 07:45:45 +0530 |
| --> |
| <para> |
| Fix deadlock between a logical replication apply worker, its |
| tablesync worker, and a session process trying to alter the |
| subscription (Shlok Kyal) |
| <ulink url="&commit_baseurl;01cc92fa6">§</ulink> |
| </para> |
| |
| <para> |
| One edge of the deadlock loop did not involve a lock wait, so the |
| deadlock went undetected and would persist until manual |
| intervention. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Amit Kapila <akapila@postgresql.org> |
| Branch: master [360392fa2] 2023-11-27 08:49:55 +0530 |
| Branch: REL_16_STABLE [d7ca9209c] 2023-11-27 08:59:12 +0530 |
| Branch: REL_15_STABLE [a77fb8c68] 2023-11-27 09:14:17 +0530 |
| --> |
| <para> |
| Ensure that column default values are correctly transmitted by |
| the <application>pgoutput</application> logical replication plugin |
| (Nikhil Benesch) |
| <ulink url="&commit_baseurl;d7ca9209c">§</ulink> |
| </para> |
| |
| <para> |
| <command>ALTER TABLE ADD COLUMN</command> with a constant default |
| value for the new column avoids rewriting existing tuples, instead |
| expecting that reading code will insert the correct default into a |
| tuple that lacks that column. If replication was subsequently |
| initiated on the table, <application>pgoutput</application> would |
| transmit NULL instead of the correct default for such a column, |
| causing incorrect replication on the subscriber. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Amit Kapila <akapila@postgresql.org> |
| Branch: master [eeb0ebad7] 2023-11-22 11:44:14 +0530 |
| Branch: REL_16_STABLE [1b6da28e0] 2023-11-22 11:27:38 +0530 |
| Branch: REL_15_STABLE [57aae65ae] 2023-11-22 11:14:35 +0530 |
| --> |
| <para> |
| Fix failure of logical replication's initial sync for a table with |
| no columns (Vignesh C) |
| <ulink url="&commit_baseurl;1b6da28e0">§</ulink> |
| </para> |
| |
| <para> |
| This case generated an improperly-formatted <command>COPY</command> |
| command. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Jeff Davis <jdavis@postgresql.org> |
| Branch: master [5c3166905] 2024-01-12 13:41:36 -0800 |
| Branch: REL_16_STABLE [4c03ac7e2] 2024-01-12 13:42:09 -0800 |
| Branch: master [dd3ca8cbb] 2024-01-18 14:59:59 -0800 |
| Branch: REL_16_STABLE [5b5318c38] 2024-01-18 15:00:15 -0800 |
| --> |
| <para> |
| Re-validate a subscription's connection string before use (Vignesh C) |
| <ulink url="&commit_baseurl;4c03ac7e2">§</ulink> |
| <ulink url="&commit_baseurl;5b5318c38">§</ulink> |
| </para> |
| |
| <para> |
| This is meant to detect cases where a subscription was created |
| without a password (which is allowed to superusers) but then the |
| subscription owner is changed to a non-superuser. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Tom Lane <tgl@sss.pgh.pa.us> |
| Branch: master [aaf09c592] 2024-01-03 17:40:41 -0500 |
| Branch: REL_16_STABLE [fb464a1ae] 2024-01-03 17:40:38 -0500 |
| Branch: REL_15_STABLE [a0d016393] 2024-01-03 17:40:38 -0500 |
| Branch: REL_14_STABLE [9b042e27e] 2024-01-03 17:40:38 -0500 |
| Branch: REL_13_STABLE [5810888c5] 2024-01-03 17:40:38 -0500 |
| Branch: REL_12_STABLE [c20f2aab6] 2024-01-03 17:40:38 -0500 |
| --> |
| <para> |
| Return the correct status code when a new client disconnects without |
| responding to the server's password challenge (Liu Lang, Tom Lane) |
| <ulink url="&commit_baseurl;fb464a1ae">§</ulink> |
| </para> |
| |
| <para> |
| In some cases we'd treat this as a loggable error, which was not the |
| intention and tends to create log spam, since common clients |
| like <application>psql</application> frequently do this. It may |
| also confuse extensions that |
| use <varname>ClientAuthentication_hook</varname>. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Tom Lane <tgl@sss.pgh.pa.us> |
| Branch: master [c82207a54] 2023-11-28 12:34:03 -0500 |
| Branch: REL_16_STABLE [efa8f6064] 2023-11-28 12:34:03 -0500 |
| Branch: REL_15_STABLE [5dd30bb54] 2023-11-28 12:34:03 -0500 |
| Branch: REL_14_STABLE [b2b1f1288] 2023-11-28 12:34:03 -0500 |
| Branch: REL_13_STABLE [efb804682] 2023-11-28 12:34:03 -0500 |
| Branch: REL_12_STABLE [0bd682246] 2023-11-28 12:34:03 -0500 |
| --> |
| <para> |
| Fix incompatibility with <application>OpenSSL</application> 3.2 |
| (Tristan Partin, Bo Andreson) |
| <ulink url="&commit_baseurl;efa8f6064">§</ulink> |
| </para> |
| |
| <para> |
| Use the BIO <quote>app_data</quote> field for our private storage, |
| instead of assuming it's okay to use the <quote>data</quote> field. |
| This mistake didn't cause problems before, but with 3.2 it leads |
| to crashes and complaints about double frees. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Tom Lane <tgl@sss.pgh.pa.us> |
| Branch: master [0a5c46a7a] 2023-12-11 11:51:56 -0500 |
| Branch: REL_16_STABLE [ebbd499d4] 2023-12-11 11:51:56 -0500 |
| Branch: REL_15_STABLE [551d4b28e] 2023-12-11 11:51:56 -0500 |
| Branch: REL_14_STABLE [07ce24326] 2023-12-11 11:51:56 -0500 |
| Branch: REL_13_STABLE [87b46ad90] 2023-12-11 11:51:56 -0500 |
| Branch: REL_12_STABLE [271d24f31] 2023-12-11 11:51:56 -0500 |
| --> |
| <para> |
| Be more wary about <application>OpenSSL</application> not |
| setting <varname>errno</varname> on error (Tom Lane) |
| <ulink url="&commit_baseurl;ebbd499d4">§</ulink> |
| </para> |
| |
| <para> |
| If <varname>errno</varname> isn't set, assume the cause of the |
| reported failure is read EOF. This fixes rare cases of strange |
| error reports like <quote>could not accept SSL connection: |
| Success</quote>. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Heikki Linnakangas <heikki.linnakangas@iki.fi> |
| Branch: REL_16_STABLE [501cfd07d] 2023-11-23 13:30:13 +0200 |
| Branch: REL_15_STABLE [481d7d1c0] 2023-11-23 13:31:51 +0200 |
| Branch: REL_14_STABLE [555276f85] 2023-11-23 13:31:57 +0200 |
| --> |
| <para> |
| Fix file descriptor leakage when a foreign data |
| wrapper's <function>ForeignAsyncRequest</function> function fails |
| (Heikki Linnakangas) |
| <ulink url="&commit_baseurl;501cfd07d">§</ulink> |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Jeff Davis <jdavis@postgresql.org> |
| Branch: master [45da69371] 2024-01-12 21:40:23 -0800 |
| Branch: REL_16_STABLE [41820e640] 2024-01-12 21:39:35 -0800 |
| --> |
| <para> |
| Fix minor memory leak in connection string validation |
| for <command>CREATE SUBSCRIPTION</command> (Jeff Davis) |
| <ulink url="&commit_baseurl;41820e640">§</ulink> |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Tom Lane <tgl@sss.pgh.pa.us> |
| Branch: master [e4e63cd98] 2024-02-02 15:34:29 -0500 |
| Branch: REL_16_STABLE [a15378100] 2024-02-02 15:34:29 -0500 |
| Branch: REL_15_STABLE [3766b8b64] 2024-02-02 15:34:29 -0500 |
| Branch: REL_14_STABLE [329b96882] 2024-02-02 15:34:29 -0500 |
| Branch: REL_13_STABLE [29df29dad] 2024-02-02 15:34:29 -0500 |
| Branch: REL_12_STABLE [4493bfb70] 2024-02-02 15:34:29 -0500 |
| --> |
| <para> |
| Report <systemitem>ENOMEM</systemitem> errors from file-related system |
| calls as <literal>ERRCODE_OUT_OF_MEMORY</literal>, |
| not <literal>ERRCODE_INTERNAL_ERROR</literal> (Alexander Kuzmenkov) |
| <ulink url="&commit_baseurl;a15378100">§</ulink> |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Tom Lane <tgl@sss.pgh.pa.us> |
| Branch: master [57b440ec1] 2024-01-18 16:11:16 -0500 |
| Branch: REL_16_STABLE [00f941356] 2024-01-18 16:10:57 -0500 |
| Branch: REL_15_STABLE [de2d393a8] 2024-01-18 16:10:57 -0500 |
| Branch: REL_14_STABLE [b7e8f27d1] 2024-01-18 16:10:57 -0500 |
| --> |
| <para> |
| In <application>PL/pgSQL</application>, support SQL commands that |
| are <command>CREATE FUNCTION</command>/<command>CREATE |
| PROCEDURE</command> with SQL-standard bodies (Tom Lane) |
| <ulink url="&commit_baseurl;00f941356">§</ulink> |
| </para> |
| |
| <para> |
| Previously, such cases failed with parsing errors due to the |
| semicolon(s) appearing in the function body. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Alvaro Herrera <alvherre@alvh.no-ip.org> |
| Branch: master [b8ba7344e] 2023-12-05 12:43:24 +0100 |
| Branch: REL_16_STABLE [878aa41f8] 2023-12-05 12:43:24 +0100 |
| Branch: REL_15_STABLE [1171c6e74] 2023-12-05 12:43:24 +0100 |
| Branch: REL_14_STABLE [f89681816] 2023-12-05 12:43:24 +0100 |
| Branch: master [c6605c1bd] 2024-01-16 12:27:52 +0100 |
| Branch: REL_16_STABLE [39aab1108] 2024-01-16 12:27:52 +0100 |
| Branch: REL_15_STABLE [2b656cbd2] 2024-01-16 12:27:52 +0100 |
| Branch: REL_14_STABLE [7a7c8c98a] 2024-01-16 12:27:52 +0100 |
| --> |
| <para> |
| Fix <application>libpq</application>'s |
| handling of errors in pipelines (Álvaro Herrera) |
| <ulink url="&commit_baseurl;878aa41f8">§</ulink> |
| <ulink url="&commit_baseurl;39aab1108">§</ulink> |
| </para> |
| |
| <para> |
| The pipeline state could get out of sync if an error is returned |
| for reasons other than a query problem (for example, if the |
| connection is lost). Potentially this would lead to a busy-loop in |
| the calling application. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Alvaro Herrera <alvherre@alvh.no-ip.org> |
| Branch: master [1a5594b95] 2023-11-08 16:44:08 +0100 |
| Branch: REL_16_STABLE [42f832685] 2023-11-08 16:44:08 +0100 |
| Branch: REL_15_STABLE [0e28091d5] 2023-11-08 16:44:08 +0100 |
| Branch: REL_14_STABLE [99fa98766] 2023-11-08 16:44:08 +0100 |
| --> |
| <para> |
| Make <application>libpq</application>'s |
| <function>PQsendFlushRequest()</function> function flush the client |
| output buffer under the same rules as |
| other <literal>PQsend</literal> functions (Jelte Fennema-Nio) |
| <ulink url="&commit_baseurl;42f832685">§</ulink> |
| </para> |
| |
| <para> |
| In pipeline mode, it may still be necessary to |
| call <function>PQflush()</function> as well; but this change removes |
| some inconsistency. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Michael Paquier <michael@paquier.xyz> |
| Branch: master [01eca6a91] 2023-11-27 09:40:44 +0900 |
| Branch: REL_16_STABLE [8984480b5] 2023-11-27 09:40:49 +0900 |
| Branch: REL_15_STABLE [b97226815] 2023-11-27 09:40:50 +0900 |
| Branch: REL_14_STABLE [c3b79223f] 2023-11-27 09:40:52 +0900 |
| Branch: REL_13_STABLE [09f680d11] 2023-11-27 09:40:55 +0900 |
| Branch: REL_12_STABLE [0217a7444] 2023-11-27 09:40:57 +0900 |
| --> |
| <para> |
| Avoid race condition when <application>libpq</application> |
| initializes OpenSSL support concurrently in two different threads |
| (Willi Mann, Michael Paquier) |
| <ulink url="&commit_baseurl;8984480b5">§</ulink> |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Tom Lane <tgl@sss.pgh.pa.us> |
| Branch: master [d053a879b] 2023-11-23 13:30:18 -0500 |
| Branch: REL_16_STABLE [85eb77185] 2023-11-23 13:30:18 -0500 |
| Branch: REL_15_STABLE [a50053777] 2023-11-23 13:30:18 -0500 |
| Branch: REL_14_STABLE [8f23e6a45] 2023-11-23 13:30:18 -0500 |
| Branch: REL_13_STABLE [5abdfd88f] 2023-11-23 13:30:18 -0500 |
| Branch: REL_12_STABLE [18fad508b] 2023-11-23 13:30:19 -0500 |
| --> |
| <para> |
| Fix timing-dependent failure in GSSAPI data transmission (Tom Lane) |
| <ulink url="&commit_baseurl;85eb77185">§</ulink> |
| </para> |
| |
| <para> |
| When using GSSAPI encryption in non-blocking |
| mode, <application>libpq</application> sometimes failed |
| with <quote>GSSAPI caller failed to retransmit all data needing to |
| be retried</quote>. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Tom Lane <tgl@sss.pgh.pa.us> |
| Branch: master [3d185cfc0] 2024-01-10 18:09:29 -0500 |
| Branch: REL_16_STABLE [ba33775fd] 2024-01-10 18:09:29 -0500 |
| --> |
| <para> |
| Change <application>initdb</application> to always un-comment |
| the <filename>postgresql.conf</filename> entries for |
| the <literal>lc_<replaceable>xxx</replaceable></literal> parameters |
| (Kyotaro Horiguchi) |
| <ulink url="&commit_baseurl;ba33775fd">§</ulink> |
| </para> |
| |
| <para> |
| <application>initdb</application> used to work this way before v16, |
| and now it does again. The change |
| caused <application>initdb</application>'s <option>--no-locale</option> |
| option to not have the intended effect |
| on <varname>lc_messages</varname>. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Tom Lane <tgl@sss.pgh.pa.us> |
| Branch: master [a70f2a57f] 2023-11-13 17:04:26 -0500 |
| Branch: REL_16_STABLE [64d2467fc] 2023-11-13 17:04:26 -0500 |
| Branch: REL_15_STABLE [f15147df6] 2023-11-13 17:04:10 -0500 |
| Branch: REL_14_STABLE [15439205d] 2023-11-13 17:04:10 -0500 |
| Branch: REL_13_STABLE [9e08789d4] 2023-11-13 17:04:10 -0500 |
| Branch: REL_12_STABLE [891afa84c] 2023-11-13 17:04:10 -0500 |
| Branch: master [1e3f461e8] 2023-11-14 00:31:39 -0500 |
| Branch: REL_16_STABLE [f1674ac6b] 2023-11-14 00:31:39 -0500 |
| Branch: REL_15_STABLE [63c1b4d88] 2023-11-14 00:31:39 -0500 |
| Branch: REL_14_STABLE [c532be99d] 2023-11-14 00:31:39 -0500 |
| Branch: REL_13_STABLE [7836f6838] 2023-11-14 00:31:39 -0500 |
| Branch: REL_12_STABLE [e43790342] 2023-11-14 00:31:39 -0500 |
| --> |
| <para> |
| In <application>pg_dump</application>, don't dump RLS policies or |
| security labels for extension member objects (Tom Lane, Jacob |
| Champion) |
| <ulink url="&commit_baseurl;64d2467fc">§</ulink> |
| <ulink url="&commit_baseurl;f1674ac6b">§</ulink> |
| </para> |
| |
| <para> |
| Previously, commands would be included in the dump to set these |
| properties, which is really incorrect since they should be |
| considered as internal affairs of the extension. Moreover, the |
| restoring user might not have adequate privilege to set them, and |
| indeed the dumping user might not have enough privilege to dump them |
| (since dumping RLS policies requires acquiring lock on their table). |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Tom Lane <tgl@sss.pgh.pa.us> |
| Branch: master [7418767f1] 2023-12-29 10:57:11 -0500 |
| Branch: REL_16_STABLE [b2c9936a7] 2023-12-29 10:57:11 -0500 |
| Branch: REL_15_STABLE [1e0841426] 2023-12-29 10:57:11 -0500 |
| Branch: REL_14_STABLE [aa2e323ee] 2023-12-29 10:57:11 -0500 |
| Branch: REL_13_STABLE [8d4e8b746] 2023-12-29 10:57:11 -0500 |
| Branch: REL_12_STABLE [69d7edb06] 2023-12-29 10:57:11 -0500 |
| --> |
| <para> |
| In <application>pg_dump</application>, don't dump an extended |
| statistics object if its underlying table isn't being dumped |
| (Rian McGuire, Tom Lane) |
| <ulink url="&commit_baseurl;b2c9936a7">§</ulink> |
| </para> |
| |
| <para> |
| This conforms to the behavior for other dependent objects such as |
| indexes. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Daniel Gustafsson <dgustafsson@postgresql.org> |
| Branch: master [30e54d5c5] 2023-12-20 22:37:28 +0100 |
| Branch: REL_16_STABLE [5b5db413d] 2023-12-20 22:37:28 +0100 |
| --> |
| <para> |
| Properly detect out-of-memory in one code path |
| in <application>pg_dump</application> (Daniel Gustafsson) |
| <ulink url="&commit_baseurl;5b5db413d">§</ulink> |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Alvaro Herrera <alvherre@alvh.no-ip.org> |
| Branch: master [49f7c6c44] 2024-01-22 17:48:30 +0100 |
| Branch: REL_16_STABLE [07b53de70] 2024-01-22 17:48:30 +0100 |
| Branch: REL_15_STABLE [3fd36be52] 2024-01-22 17:48:30 +0100 |
| Branch: REL_14_STABLE [85ecff891] 2024-01-22 17:48:30 +0100 |
| --> |
| <para> |
| Make it an error for a <application>pgbench</application> script to |
| end with an open pipeline (Anthonin Bonnefoy) |
| <ulink url="&commit_baseurl;07b53de70">§</ulink> |
| </para> |
| |
| <para> |
| Previously, <application>pgbench</application> would behave oddly if |
| a <command>\startpipeline</command> command lacked a |
| matching <command>\endpipeline</command>. This seems like a |
| scripting mistake rather than a case |
| that <application>pgbench</application> needs to handle nicely, so |
| throw an error. |
| </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 |
| Branch: REL_15_STABLE [940ab02b5] 2024-01-07 15:19:50 -0500 |
| Branch: REL_14_STABLE [90e8b86fc] 2024-01-07 15:19:50 -0500 |
| Branch: REL_13_STABLE [9e7432faf] 2024-01-07 15:19:50 -0500 |
| Branch: REL_12_STABLE [1c7443521] 2024-01-07 15:19:50 -0500 |
| --> |
| <para> |
| Fix crash in <filename>contrib/intarray</filename> if an array with |
| an element equal to <literal>INT_MAX</literal> is inserted into |
| a <literal>gist__int_ops</literal> index |
| (Alexander Lakhin, Tom Lane) |
| <ulink url="&commit_baseurl;cf6f802bf">§</ulink> |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Michael Paquier <michael@paquier.xyz> |
| Branch: master [208470136] 2023-12-19 18:19:05 +0900 |
| Branch: REL_16_STABLE [7f68b1462] 2023-12-19 18:19:15 +0900 |
| Branch: REL_15_STABLE [2e08440d6] 2023-12-19 18:19:16 +0900 |
| Branch: REL_14_STABLE [bfbe4a146] 2023-12-19 18:19:18 +0900 |
| Branch: REL_13_STABLE [586c6a091] 2023-12-19 18:19:19 +0900 |
| Branch: REL_12_STABLE [f610d4f11] 2023-12-19 18:19:21 +0900 |
| --> |
| <para> |
| Report a better error |
| when <filename>contrib/pageinspect</filename>'s |
| <function>hash_bitmap_info()</function> function is applied to a |
| partitioned hash index (Alexander Lakhin, Michael Paquier) |
| <ulink url="&commit_baseurl;7f68b1462">§</ulink> |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Michael Paquier <michael@paquier.xyz> |
| Branch: master [a8dd62ef4] 2023-12-19 15:20:39 +0900 |
| Branch: REL_16_STABLE [b4948ed66] 2023-12-19 15:20:48 +0900 |
| Branch: REL_15_STABLE [b745f1680] 2023-12-19 15:20:50 +0900 |
| Branch: REL_14_STABLE [f729fdab4] 2023-12-19 15:20:52 +0900 |
| Branch: REL_13_STABLE [b4c1d255c] 2023-12-19 15:20:53 +0900 |
| Branch: REL_12_STABLE [bd2d3c928] 2023-12-19 15:20:55 +0900 |
| --> |
| <para> |
| Report a better error |
| when <filename>contrib/pgstattuple</filename>'s |
| <function>pgstathashindex()</function> function is applied to a |
| partitioned hash index (Alexander Lakhin) |
| <ulink url="&commit_baseurl;b4948ed66">§</ulink> |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Michael Paquier <michael@paquier.xyz> |
| Branch: master [9886744a3] 2024-01-10 10:41:57 +0900 |
| Branch: REL_16_STABLE [714bfb781] 2024-01-12 13:53:07 +0900 |
| Branch: REL_15_STABLE [33d1be06a] 2024-01-12 13:53:10 +0900 |
| Branch: REL_14_STABLE [4c6944223] 2024-01-12 13:53:12 +0900 |
| Branch: REL_13_STABLE [c8aab699e] 2024-01-12 13:53:13 +0900 |
| Branch: REL_12_STABLE [9e70e6564] 2024-01-12 13:53:14 +0900 |
| Branch: master [b83747a8a] 2024-01-11 10:39:58 +0900 |
| Branch: REL_16_STABLE [506c77f9b] 2024-01-12 13:59:51 +0900 |
| Branch: REL_15_STABLE [7e7d827f5] 2024-01-12 13:59:58 +0900 |
| Branch: REL_14_STABLE [4a7475e9a] 2024-01-12 14:00:00 +0900 |
| Branch: REL_13_STABLE [2a0eb80ae] 2024-01-12 14:00:01 +0900 |
| Branch: REL_12_STABLE [e50a52b2b] 2024-01-12 14:00:02 +0900 |
| --> |
| <para> |
| On Windows, suppress autorun options when launching subprocesses |
| in <application>pg_ctl</application> |
| and <application>pg_regress</application> (Kyotaro Horiguchi) |
| <ulink url="&commit_baseurl;714bfb781">§</ulink> |
| <ulink url="&commit_baseurl;506c77f9b">§</ulink> |
| </para> |
| |
| <para> |
| When launching a child process via <filename>cmd.exe</filename>, |
| pass the <option>/D</option> flag to prevent executing any autorun |
| commands specified in the registry. This avoids possibly-surprising |
| side effects. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Nathan Bossart <nathan@postgresql.org> |
| Branch: master [97287bdfa] 2024-01-29 12:08:57 -0600 |
| Branch: REL_16_STABLE [1b924a86e] 2024-01-29 12:09:03 -0600 |
| Branch: REL_15_STABLE [3726c1cb0] 2024-01-29 12:09:08 -0600 |
| --> |
| <para> |
| Move <function>is_valid_ascii()</function> |
| from <filename>mb/pg_wchar.h</filename> |
| to <filename>utils/ascii.h</filename> (Jubilee Young) |
| <ulink url="&commit_baseurl;1b924a86e">§</ulink> |
| </para> |
| |
| <para> |
| This change avoids the need to |
| include <filename><simd.h></filename> |
| in <filename>pg_wchar.h</filename>, which was causing problems for |
| some third-party code. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Tom Lane <tgl@sss.pgh.pa.us> |
| Branch: master [400928b83] 2024-01-29 12:06:13 -0500 |
| Branch: REL_16_STABLE [e02fea093] 2024-01-29 12:06:07 -0500 |
| Branch: REL_15_STABLE [3f8ac13b1] 2024-01-29 12:06:07 -0500 |
| Branch: REL_14_STABLE [29e25a6b1] 2024-01-29 12:06:08 -0500 |
| Branch: REL_13_STABLE [7c53b1977] 2024-01-29 12:06:08 -0500 |
| Branch: REL_12_STABLE [b2fd1dab9] 2024-01-29 12:06:08 -0500 |
| --> |
| <para> |
| Fix compilation failures with <application>libxml2</application> |
| version 2.12.0 and later (Tom Lane) |
| <ulink url="&commit_baseurl;e02fea093">§</ulink> |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Michael Paquier <michael@paquier.xyz> |
| Branch: master [7636725b9] 2023-12-06 14:10:39 +0900 |
| Branch: REL_16_STABLE [6248a2bb9] 2023-12-06 14:11:41 +0900 |
| Branch: REL_15_STABLE [87ed81a87] 2023-12-06 14:11:44 +0900 |
| Branch: REL_14_STABLE [c49b6cab1] 2023-12-06 14:11:46 +0900 |
| Branch: REL_13_STABLE [7d5a74033] 2023-12-06 14:11:47 +0900 |
| --> |
| <para> |
| Fix compilation failure of <literal>WAL_DEBUG</literal> code on |
| Windows (Bharath Rupireddy) |
| <ulink url="&commit_baseurl;6248a2bb9">§</ulink> |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Tom Lane <tgl@sss.pgh.pa.us> |
| Branch: master [58c3151bb] 2023-12-26 16:16:37 -0500 |
| Branch: REL_16_STABLE [b0115e7e2] 2023-12-26 16:16:29 -0500 |
| Branch: REL_15_STABLE [5f8d6d709] 2023-12-26 16:16:29 -0500 |
| Branch: REL_14_STABLE [7978eee02] 2023-12-26 16:16:29 -0500 |
| Branch: REL_13_STABLE [48e797164] 2023-12-26 16:16:29 -0500 |
| Branch: REL_12_STABLE [1613e2fae] 2023-12-26 16:16:29 -0500 |
| Branch: master [a46972e30] 2023-12-26 17:03:02 -0500 |
| Branch: REL_16_STABLE [c72049dbc] 2023-12-26 17:03:24 -0500 |
| --> |
| <para> |
| Suppress compiler warnings from Python's header files |
| (Peter Eisentraut, Tom Lane) |
| <ulink url="&commit_baseurl;b0115e7e2">§</ulink> |
| <ulink url="&commit_baseurl;c72049dbc">§</ulink> |
| </para> |
| |
| <para> |
| Our preferred compiler options provoke warnings about constructs |
| appearing in recent versions of Python's header files. When using |
| <application>gcc</application>, we can suppress these warnings with |
| a pragma. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Thomas Munro <tmunro@postgresql.org> |
| Branch: master [d282e88e5] 2024-01-25 13:44:54 +1300 |
| Branch: REL_16_STABLE [60ba7cae7] 2024-01-25 13:45:22 +1300 |
| Branch: REL_15_STABLE [67f7aaa38] 2024-01-25 13:46:07 +1300 |
| Branch: REL_14_STABLE [364283c92] 2024-01-25 13:46:38 +1300 |
| Branch: REL_13_STABLE [70a82f40a] 2024-01-25 13:47:20 +1300 |
| Branch: REL_12_STABLE [d060cb658] 2024-01-25 13:47:35 +1300 |
| --> |
| <para> |
| Avoid deprecation warning when compiling with LLVM 18 (Thomas Munro) |
| <ulink url="&commit_baseurl;60ba7cae7">§</ulink> |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Tom Lane <tgl@sss.pgh.pa.us> |
| Branch: master [272a7c303] 2024-02-01 15:57:53 -0500 |
| Branch: REL_16_STABLE [b4fb76fb5] 2024-02-01 15:57:53 -0500 |
| Branch: REL_15_STABLE [970b1aeeb] 2024-02-01 15:57:53 -0500 |
| Branch: REL_14_STABLE [35b8b2c4a] 2024-02-01 15:57:53 -0500 |
| Branch: REL_13_STABLE [ac3afc3f7] 2024-02-01 15:57:53 -0500 |
| Branch: REL_12_STABLE [b59ae79b7] 2024-02-01 15:57:53 -0500 |
| --> |
| <para> |
| Update time zone data files to <application>tzdata</application> |
| release 2024a for DST law changes in Greenland, Kazakhstan, and |
| Palestine, plus corrections for the Antarctic stations Casey and |
| Vostok. Also historical corrections for Vietnam, Toronto, and |
| Miquelon. (Tom Lane) |
| <ulink url="&commit_baseurl;b4fb76fb5">§</ulink> |
| </para> |
| </listitem> |
| |
| </itemizedlist> |
| |
| </sect2> |
| </sect1> |
| |
| <sect1 id="release-16-1"> |
| <title>Release 16.1</title> |
| |
| <formalpara> |
| <title>Release date:</title> |
| <para>2023-11-09</para> |
| </formalpara> |
| |
| <para> |
| This release contains a variety of fixes from 16.0. |
| For information about new features in major release 16, see |
| <xref linkend="release-16"/>. |
| </para> |
| |
| <sect2 id="release-16-1-migration"> |
| <title>Migration to Version 16.1</title> |
| |
| <para> |
| A dump/restore is not required for those running 16.X. |
| </para> |
| |
| <para> |
| However, several mistakes have been discovered that could lead to |
| certain types of indexes yielding wrong search results or being |
| unnecessarily inefficient. It is advisable |
| to <command>REINDEX</command> potentially-affected indexes after |
| installing this update. See the fourth through seventh changelog |
| entries below. |
| </para> |
| </sect2> |
| |
| <sect2 id="release-16-1-changes"> |
| <title>Changes</title> |
| |
| <itemizedlist> |
| |
| <listitem> |
| <!-- |
| Author: Tom Lane <tgl@sss.pgh.pa.us> |
| Branch: master [3b0776fde] 2023-11-06 10:38:00 -0500 |
| Branch: REL_16_STABLE [d3d1e2509] 2023-11-06 10:38:00 -0500 |
| Branch: REL_15_STABLE [4f4a422fb] 2023-11-06 10:38:00 -0500 |
| Branch: REL_14_STABLE [9146d0d65] 2023-11-06 10:38:00 -0500 |
| Branch: REL_13_STABLE [d3de70fdb] 2023-11-06 10:38:00 -0500 |
| Branch: REL_12_STABLE [e911afd09] 2023-11-06 10:38:00 -0500 |
| Branch: REL_11_STABLE [8c6633f4d] 2023-11-06 10:38:00 -0500 |
| --> |
| <para> |
| Fix handling of unknown-type arguments |
| in <literal>DISTINCT</literal> <type>"any"</type> aggregate |
| functions (Tom Lane) |
| <ulink url="&commit_baseurl;d3d1e2509">§</ulink> |
| </para> |
| |
| <para> |
| This error led to a <type>text</type>-type value being interpreted |
| as an <type>unknown</type>-type value (that is, a zero-terminated |
| string) at runtime. This could result in disclosure of server |
| memory following the <type>text</type> value. |
| </para> |
| |
| <para> |
| The <productname>PostgreSQL</productname> Project thanks Jingzhou Fu |
| for reporting this problem. |
| (CVE-2023-5868) |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Tom Lane <tgl@sss.pgh.pa.us> |
| Branch: master [18b585155] 2023-11-06 10:56:43 -0500 |
| Branch: REL_16_STABLE [e24daa94b] 2023-11-06 10:56:43 -0500 |
| Branch: REL_15_STABLE [3bc6bc3ee] 2023-11-06 10:56:43 -0500 |
| Branch: REL_14_STABLE [edc0a8d82] 2023-11-06 10:56:43 -0500 |
| Branch: REL_13_STABLE [26c599beb] 2023-11-06 10:56:43 -0500 |
| Branch: REL_12_STABLE [d267cea24] 2023-11-06 10:56:43 -0500 |
| Branch: REL_11_STABLE [c48008f59] 2023-11-06 10:56:43 -0500 |
| --> |
| <para> |
| Detect integer overflow while computing new array dimensions |
| (Tom Lane) |
| <ulink url="&commit_baseurl;e24daa94b">§</ulink> |
| </para> |
| |
| <para> |
| When assigning new elements to array subscripts that are outside the |
| current array bounds, an undetected integer overflow could occur in |
| edge cases. Memory stomps that are potentially exploitable for |
| arbitrary code execution are possible, and so is disclosure of |
| server memory. |
| </para> |
| |
| <para> |
| The <productname>PostgreSQL</productname> Project thanks Pedro |
| Gallegos for reporting this problem. |
| (CVE-2023-5869) |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Noah Misch <noah@leadboat.com> |
| Branch: master [3a9b18b30] 2023-11-06 06:14:13 -0800 |
| Branch: REL_16_STABLE [785412731] 2023-11-06 06:14:16 -0800 |
| Branch: REL_15_STABLE [595c988c9] 2023-11-06 06:14:16 -0800 |
| Branch: REL_14_STABLE [508acb901] 2023-11-06 06:14:17 -0800 |
| Branch: REL_13_STABLE [28b609550] 2023-11-06 06:14:17 -0800 |
| Branch: REL_12_STABLE [2893f2f40] 2023-11-06 06:14:17 -0800 |
| Branch: REL_11_STABLE [e082734c8] 2023-11-06 06:14:18 -0800 |
| Author: Noah Misch <noah@leadboat.com> |
| Branch: master [b72de09a1] 2023-11-06 06:14:13 -0800 |
| Branch: REL_16_STABLE [2c3c5ec49] 2023-11-06 06:14:16 -0800 |
| Branch: REL_15_STABLE [fbc371909] 2023-11-06 06:14:16 -0800 |
| Branch: REL_14_STABLE [ecd5d240c] 2023-11-06 06:14:17 -0800 |
| Branch: REL_13_STABLE [2c7a2a00a] 2023-11-06 06:14:17 -0800 |
| Branch: REL_12_STABLE [7bbf4d037] 2023-11-06 06:14:17 -0800 |
| Branch: REL_11_STABLE [a27be40c1] 2023-11-06 06:14:18 -0800 |
| --> |
| <para> |
| Prevent the <literal>pg_signal_backend</literal> role from |
| signalling background workers and autovacuum processes |
| (Noah Misch, Jelte Fennema-Nio) |
| <ulink url="&commit_baseurl;785412731">§</ulink> |
| <ulink url="&commit_baseurl;2c3c5ec49">§</ulink> |
| </para> |
| |
| <para> |
| The documentation says that <literal>pg_signal_backend</literal> |
| cannot issue signals to superuser-owned processes. It was able to |
| signal these background processes, though, because they advertise a |
| role OID of zero. Treat that as indicating superuser ownership. |
| The security implications of cancelling one of these process types |
| are fairly small so far as the core code goes (we'll just start |
| another one), but extensions might add background workers that are |
| more vulnerable. |
| </para> |
| |
| <para> |
| Also ensure that the <varname>is_superuser</varname> parameter is |
| set correctly in such processes. No specific security consequences |
| are known for that oversight, but it might be significant for some |
| extensions. |
| </para> |
| |
| <para> |
| The <productname>PostgreSQL</productname> Project thanks |
| Hemanth Sandrana and Mahendrakar Srinivasarao |
| for reporting this problem. |
| (CVE-2023-5870) |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Heikki Linnakangas <heikki.linnakangas@iki.fi> |
| Branch: master [28d3c2ddc] 2023-09-26 14:14:49 +0300 |
| Branch: REL_16_STABLE [d7f521325] 2023-09-26 14:15:01 +0300 |
| Branch: REL_15_STABLE [c3c284b37] 2023-09-26 14:15:19 +0300 |
| Branch: REL_14_STABLE [747cef5a5] 2023-09-26 14:15:28 +0300 |
| Branch: REL_13_STABLE [db7394d4d] 2023-09-26 14:15:35 +0300 |
| Branch: REL_12_STABLE [26917ebea] 2023-09-26 15:41:44 +0300 |
| --> |
| <para> |
| Fix misbehavior during recursive page split in GiST index build |
| (Heikki Linnakangas) |
| <ulink url="&commit_baseurl;d7f521325">§</ulink> |
| </para> |
| |
| <para> |
| Fix a case where the location of a page downlink was incorrectly |
| tracked, and introduce some logic to allow recovering from such |
| situations rather than silently doing the wrong thing. This error |
| could result in incorrect answers from subsequent index searches. |
| It may be advisable to reindex all GiST indexes after installing |
| this update. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Noah Misch <noah@leadboat.com> |
| Branch: master [5f27b5f84] 2023-10-14 16:33:51 -0700 |
| Branch: REL_16_STABLE [bf1c21c4f] 2023-10-14 16:33:54 -0700 |
| Branch: REL_15_STABLE [782be0f71] 2023-10-14 16:33:54 -0700 |
| Branch: REL_14_STABLE [0834df909] 2023-10-14 16:33:54 -0700 |
| Branch: REL_13_STABLE [6fd1dbdb2] 2023-10-14 16:33:54 -0700 |
| --> |
| <para> |
| Prevent de-duplication of btree index entries |
| for <type>interval</type> columns (Noah Misch) |
| <ulink url="&commit_baseurl;bf1c21c4f">§</ulink> |
| </para> |
| |
| <para> |
| There are <type>interval</type> values that are distinguishable but |
| compare equal, for example <literal>24:00:00</literal> |
| and <literal>1 day</literal>. This breaks assumptions made by btree |
| de-duplication, so <type>interval</type> columns need to be excluded |
| from de-duplication. This oversight can cause incorrect results |
| from index-only scans. Moreover, after |
| updating <application>amcheck</application> will report an error for |
| almost all such indexes. Users should reindex any btree indexes |
| on <type>interval</type> columns. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Tomas Vondra <tomas.vondra@postgresql.org> |
| Branch: master [394d51731] 2023-10-27 18:15:37 +0200 |
| Branch: REL_16_STABLE [e7965226d] 2023-10-27 18:28:19 +0200 |
| Branch: REL_15_STABLE [088233f8d] 2023-10-27 18:37:59 +0200 |
| Branch: REL_14_STABLE [d1740e169] 2023-10-27 18:46:49 +0200 |
| --> |
| <para> |
| Process <type>date</type> values more sanely in |
| BRIN <literal>datetime_minmax_multi_ops</literal> indexes |
| (Tomas Vondra) |
| <ulink url="&commit_baseurl;e7965226d">§</ulink> |
| </para> |
| |
| <para> |
| The distance calculation for dates was backward, causing poor |
| decisions about which entries to merge. The index still produces |
| correct results, but is much less efficient than it should be. |
| Reindexing BRIN <literal>minmax_multi</literal> indexes |
| on <type>date</type> columns is advisable. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Tomas Vondra <tomas.vondra@postgresql.org> |
| Branch: master [8da86d62a] 2023-10-27 18:15:37 +0200 |
| Branch: REL_16_STABLE [497fc9208] 2023-10-27 18:28:28 +0200 |
| Branch: REL_15_STABLE [d04a9283b] 2023-10-27 18:38:02 +0200 |
| Branch: REL_14_STABLE [52c934cc1] 2023-10-27 18:46:53 +0200 |
| Branch: master [b5489b75c] 2023-10-27 18:15:37 +0200 |
| Branch: REL_16_STABLE [0635fe02b] 2023-10-27 18:28:04 +0200 |
| Branch: REL_15_STABLE [daa7b0d7c] 2023-10-27 18:37:56 +0200 |
| Branch: REL_14_STABLE [90c4da6d4] 2023-10-27 18:46:46 +0200 |
| --> |
| <para> |
| Process large <type>timestamp</type> and <type>timestamptz</type> |
| values more sanely in |
| BRIN <literal>datetime_minmax_multi_ops</literal> indexes |
| (Tomas Vondra) |
| <ulink url="&commit_baseurl;497fc9208">§</ulink> |
| <ulink url="&commit_baseurl;0635fe02b">§</ulink> |
| </para> |
| |
| <para> |
| Infinities were mistakenly treated as having distance zero rather |
| than a large distance from other values, causing poor decisions |
| about which entries to merge. Also, finite-but-very-large values |
| (near the endpoints of the representable timestamp range) could |
| result in internal overflows, again causing poor decisions. The |
| index still produces correct results, but is much less efficient |
| than it should be. Reindexing BRIN <literal>minmax_multi</literal> |
| indexes on <type>timestamp</type> and <type>timestamptz</type> |
| columns is advisable if the column contains, or has contained, |
| infinities or large finite values. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Tomas Vondra <tomas.vondra@postgresql.org> |
| Branch: master [c6cf6d353] 2023-10-27 18:15:37 +0200 |
| Branch: REL_16_STABLE [924e0e2ee] 2023-10-27 18:28:37 +0200 |
| Branch: REL_15_STABLE [2fbb2fcb0] 2023-10-27 18:38:05 +0200 |
| Branch: REL_14_STABLE [0fa73c5cd] 2023-10-27 18:46:56 +0200 |
| --> |
| <para> |
| Avoid calculation overflows in |
| BRIN <literal>interval_minmax_multi_ops</literal> indexes with |
| extreme interval values (Tomas Vondra) |
| <ulink url="&commit_baseurl;924e0e2ee">§</ulink> |
| </para> |
| |
| <para> |
| This bug might have caused unexpected failures while trying to |
| insert large interval values into such an index. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: David Rowley <drowley@postgresql.org> |
| Branch: master [d9e46dfb7] 2023-10-13 01:12:31 +1300 |
| Branch: REL_16_STABLE [595db9e9c] 2023-10-13 01:13:07 +1300 |
| Branch: REL_15_STABLE [1e81d3e6e] 2023-10-13 01:13:36 +1300 |
| Branch: REL_14_STABLE [d26f33c32] 2023-10-13 01:13:59 +1300 |
| Branch: REL_13_STABLE [890a73ba3] 2023-10-13 01:14:22 +1300 |
| Branch: REL_12_STABLE [3cc0c2517] 2023-10-13 01:14:46 +1300 |
| Branch: REL_11_STABLE [2759924f3] 2023-10-13 01:15:12 +1300 |
| Author: David Rowley <drowley@postgresql.org> |
| Branch: master [f0c409d9c] 2023-10-12 19:50:38 +1300 |
| Branch: REL_16_STABLE [6352f1627] 2023-10-12 19:51:26 +1300 |
| Branch: REL_15_STABLE [916adc7c5] 2023-10-12 19:52:05 +1300 |
| Branch: REL_14_STABLE [cd15bff48] 2023-10-12 19:52:31 +1300 |
| Branch: REL_13_STABLE [45c4b2a3a] 2023-10-12 19:52:58 +1300 |
| Branch: REL_12_STABLE [cd259de50] 2023-10-12 19:53:23 +1300 |
| Branch: REL_11_STABLE [07f261b31] 2023-10-12 19:53:50 +1300 |
| --> |
| <para> |
| Fix partition step generation and runtime partition pruning for |
| hash-partitioned tables with multiple partition keys (David Rowley) |
| <ulink url="&commit_baseurl;595db9e9c">§</ulink> |
| <ulink url="&commit_baseurl;6352f1627">§</ulink> |
| </para> |
| |
| <para> |
| Some cases involving an <literal>IS NULL</literal> condition on one |
| of the partition keys could result in a crash. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Dean Rasheed <dean.a.rasheed@gmail.com> |
| Branch: master [1d5caec22] 2023-09-30 10:52:21 +0100 |
| Branch: REL_16_STABLE [6d2de076c] 2023-09-30 10:54:29 +0100 |
| Branch: REL_15_STABLE [3c1a1af91] 2023-09-30 10:55:24 +0100 |
| --> |
| <para> |
| Fix inconsistent rechecking of concurrently-updated rows |
| during <command>MERGE</command> (Dean Rasheed) |
| <ulink url="&commit_baseurl;6d2de076c">§</ulink> |
| </para> |
| |
| <para> |
| In <literal>READ COMMITTED</literal> mode, an update that finds that |
| its target row was just updated by a concurrent transaction will |
| recheck the query's <literal>WHERE</literal> conditions on the |
| updated row. <command>MERGE</command> failed to ensure that the |
| proper rows of other joined tables were used during this recheck, |
| possibly resulting in incorrect decisions about whether the |
| newly-updated row should be updated again |
| by <command>MERGE</command>. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Tom Lane <tgl@sss.pgh.pa.us> |
| Branch: master [387f9ed0a] 2023-10-24 14:48:33 -0400 |
| Branch: REL_16_STABLE [b1444a09d] 2023-10-24 14:48:34 -0400 |
| Branch: REL_15_STABLE [1268e7378] 2023-10-24 14:48:34 -0400 |
| Branch: REL_14_STABLE [8f4a6b9e4] 2023-10-24 14:48:34 -0400 |
| Author: Amit Langote <amitlan@postgresql.org> |
| Branch: master [01575ad78] 2023-10-26 11:53:56 +0900 |
| Branch: REL_16_STABLE [178ee1d85] 2023-10-26 11:53:41 +0900 |
| Author: Amit Langote <amitlan@postgresql.org> |
| Branch: master [1f06b7fc6] 2023-10-26 17:32:38 +0900 |
| Branch: REL_16_STABLE [2bf99b48d] 2023-10-26 17:29:32 +0900 |
| --> |
| <para> |
| Correctly identify the target table in an |
| inherited <command>UPDATE</command>/<command>DELETE</command>/<command>MERGE</command> |
| even when the parent table is excluded by constraints (Amit Langote, |
| Tom Lane) |
| <ulink url="&commit_baseurl;b1444a09d">§</ulink> |
| <ulink url="&commit_baseurl;178ee1d85">§</ulink> |
| <ulink url="&commit_baseurl;2bf99b48d">§</ulink> |
| </para> |
| |
| <para> |
| If the initially-named table is excluded by constraints, but not all |
| its inheritance descendants are, the first non-excluded descendant |
| was identified as the primary target table. This would lead to |
| firing statement-level triggers associated with that table, rather |
| than the initially-named table as should happen. In v16, the same |
| oversight could also lead to <quote>invalid perminfoindex 0 in RTE |
| with relid NNNN</quote> errors. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Peter Geoghegan <pg@bowt.ie> |
| Branch: master [714780dcd] 2023-09-28 16:29:37 -0700 |
| Branch: REL_16_STABLE [3fa81b62e] 2023-09-28 16:29:35 -0700 |
| Branch: REL_15_STABLE [cac37c1a1] 2023-09-28 16:29:32 -0700 |
| Branch: REL_14_STABLE [41486c4aa] 2023-09-28 16:29:29 -0700 |
| Branch: REL_13_STABLE [d4724e94a] 2023-09-28 16:29:27 -0700 |
| Branch: REL_12_STABLE [b36d72cbc] 2023-09-28 16:29:24 -0700 |
| Branch: REL_11_STABLE [7c07305e6] 2023-09-28 16:29:22 -0700 |
| --> |
| <para> |
| Fix edge case in btree mark/restore processing of ScalarArrayOpExpr |
| clauses (Peter Geoghegan) |
| <ulink url="&commit_baseurl;3fa81b62e">§</ulink> |
| </para> |
| |
| <para> |
| When restoring an indexscan to a previously marked position, the |
| code could miss required setup steps if the scan had advanced |
| exactly to the end of the matches for a ScalarArrayOpExpr (that is, |
| an <literal>indexcol = ANY(ARRAY[])</literal>) clause. This could |
| result in missing some rows that should have been fetched. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: David Rowley <drowley@postgresql.org> |
| Branch: master [0b053e78b] 2023-10-05 20:30:47 +1300 |
| Branch: REL_16_STABLE [31b2b2d72] 2023-10-05 20:31:25 +1300 |
| Branch: REL_15_STABLE [689af6db6] 2023-10-05 20:31:51 +1300 |
| Branch: REL_14_STABLE [e4b95b9b0] 2023-10-05 20:32:14 +1300 |
| --> |
| <para> |
| Fix intra-query memory leak in Memoize execution |
| (Orlov Aleksej, David Rowley) |
| <ulink url="&commit_baseurl;31b2b2d72">§</ulink> |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Tom Lane <tgl@sss.pgh.pa.us> |
| Branch: master [237f8765d] 2023-10-28 14:05:01 -0400 |
| Branch: REL_16_STABLE [07494a0df] 2023-10-28 14:04:43 -0400 |
| Branch: REL_15_STABLE [592cb11fb] 2023-10-28 14:04:43 -0400 |
| Branch: REL_14_STABLE [5d7515d7d] 2023-10-28 14:04:43 -0400 |
| Branch: REL_13_STABLE [b7684473d] 2023-10-28 14:04:43 -0400 |
| Branch: REL_12_STABLE [d8d7f282f] 2023-10-28 14:04:43 -0400 |
| Branch: REL_11_STABLE [7ab6971c6] 2023-10-28 14:04:43 -0400 |
| --> |
| <para> |
| Fix intra-query memory leak when a set-returning function repeatedly |
| returns zero rows (Tom Lane) |
| <ulink url="&commit_baseurl;07494a0df">§</ulink> |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Tom Lane <tgl@sss.pgh.pa.us> |
| Branch: master [f73fa5a47] 2023-09-18 14:28:17 -0400 |
| Branch: REL_16_STABLE [ec693a3f3] 2023-09-18 14:27:47 -0400 |
| Branch: REL_15_STABLE [95f54f0d0] 2023-09-18 14:27:47 -0400 |
| Branch: REL_14_STABLE [9baabfa38] 2023-09-18 14:27:47 -0400 |
| Branch: REL_13_STABLE [e6e50ada0] 2023-09-18 14:27:47 -0400 |
| Branch: REL_12_STABLE [123337079] 2023-09-18 14:27:47 -0400 |
| Branch: REL_11_STABLE [db00be6d7] 2023-09-18 14:27:47 -0400 |
| --> |
| <para> |
| Don't crash if <function>cursor_to_xmlschema()</function> is applied |
| to a non-data-returning Portal (Boyu Yang) |
| <ulink url="&commit_baseurl;ec693a3f3">§</ulink> |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Amit Kapila <akapila@postgresql.org> |
| Branch: master [54ccfd658] 2023-09-27 14:32:51 +0530 |
| Branch: REL_16_STABLE [8d05be931] 2023-09-27 14:20:57 +0530 |
| --> |
| <para> |
| Fix improper sharing of origin filter condition across |
| successive <function>pg_logical_slot_get_changes()</function> calls |
| (Hou Zhijie) |
| <ulink url="&commit_baseurl;8d05be931">§</ulink> |
| </para> |
| |
| <para> |
| The origin condition set by one call of this function would be |
| re-used by later calls that did not specify the origin argument. |
| This was not intended. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: David Rowley <drowley@postgresql.org> |
| Branch: master [73635b6d6] 2023-10-31 16:42:08 +1300 |
| Branch: REL_16_STABLE [a98f01c93] 2023-10-31 16:42:35 +1300 |
| Branch: REL_15_STABLE [136068353] 2023-10-31 16:43:01 +1300 |
| Branch: REL_14_STABLE [c5988e69f] 2023-10-31 16:43:28 +1300 |
| Branch: REL_13_STABLE [b3c8d1d0e] 2023-10-31 16:44:00 +1300 |
| Branch: REL_12_STABLE [efcb601d2] 2023-10-31 16:44:27 +1300 |
| --> |
| <para> |
| Throw the intended error if <function>pgrowlocks()</function> is |
| applied to a partitioned table (David Rowley) |
| <ulink url="&commit_baseurl;a98f01c93">§</ulink> |
| </para> |
| |
| <para> |
| Previously, a not-on-point complaint <quote>only heap AM is |
| supported</quote> would be raised. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Noah Misch <noah@leadboat.com> |
| Branch: master [13503eb59] 2023-10-30 14:46:05 -0700 |
| Branch: REL_16_STABLE [1a368dd3e] 2023-10-30 14:46:08 -0700 |
| Branch: REL_15_STABLE [e633e9b13] 2023-10-30 14:46:08 -0700 |
| Branch: REL_14_STABLE [0a7b183fd] 2023-10-30 14:46:09 -0700 |
| Branch: REL_13_STABLE [123b0d111] 2023-10-30 14:46:09 -0700 |
| Branch: REL_12_STABLE [975ae0553] 2023-10-30 14:46:09 -0700 |
| Branch: REL_11_STABLE [bae063db4] 2023-10-30 14:46:09 -0700 |
| --> |
| <para> |
| Handle invalid indexes more cleanly in assorted SQL functions |
| (Noah Misch) |
| <ulink url="&commit_baseurl;1a368dd3e">§</ulink> |
| </para> |
| |
| <para> |
| Report an error if <function>pgstatindex()</function>, |
| <function>pgstatginindex()</function>, |
| <function>pgstathashindex()</function>, |
| or <function>pgstattuple()</function> is applied to an invalid |
| index. If <function>brin_desummarize_range()</function>, |
| <function>brin_summarize_new_values()</function>, |
| <function>brin_summarize_range()</function>, |
| or <function>gin_clean_pending_list()</function> is applied to an |
| invalid index, do nothing except to report a debug-level message. |
| Formerly these functions attempted to process the index, and might |
| fail in strange ways depending on what the failed <command>CREATE |
| INDEX</command> had left behind. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Tom Lane <tgl@sss.pgh.pa.us> |
| Branch: master [cf1c65070] 2023-09-25 11:50:28 -0400 |
| Branch: REL_16_STABLE [8465efc1a] 2023-09-25 11:50:28 -0400 |
| Branch: REL_15_STABLE [71bb73f60] 2023-09-25 11:50:28 -0400 |
| Branch: REL_14_STABLE [a2799f53d] 2023-09-25 11:50:28 -0400 |
| Branch: REL_13_STABLE [52a676ef4] 2023-09-25 11:50:28 -0400 |
| Branch: REL_12_STABLE [4a81ed29d] 2023-09-25 11:50:28 -0400 |
| Branch: REL_11_STABLE [0fb91ed2b] 2023-09-25 11:50:28 -0400 |
| --> |
| <para> |
| Avoid premature memory allocation failure with long inputs |
| to <function>to_tsvector()</function> (Tom Lane) |
| <ulink url="&commit_baseurl;8465efc1a">§</ulink> |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Tom Lane <tgl@sss.pgh.pa.us> |
| Branch: master [5b7b38246] 2023-10-01 13:16:47 -0400 |
| Branch: REL_16_STABLE [5c34a7374] 2023-10-01 13:16:59 -0400 |
| Branch: REL_15_STABLE [55e188a15] 2023-10-01 13:17:06 -0400 |
| Branch: REL_14_STABLE [cf12c4fd2] 2023-10-01 13:17:11 -0400 |
| Branch: REL_13_STABLE [9da153846] 2023-10-01 13:17:15 -0400 |
| Branch: REL_12_STABLE [2296bc362] 2023-10-01 13:17:20 -0400 |
| Branch: REL_11_STABLE [7a310cae0] 2023-10-01 13:17:25 -0400 |
| --> |
| <para> |
| Fix over-allocation of the constructed <type>tsvector</type> |
| in <function>tsvectorrecv()</function> (Denis Erokhin) |
| <ulink url="&commit_baseurl;5c34a7374">§</ulink> |
| </para> |
| |
| <para> |
| If the incoming vector includes position data, the binary receive |
| function left wasted space (roughly equal to the size of the |
| position data) in the finished <type>tsvector</type>. In extreme |
| cases this could lead to <quote>maximum total lexeme length |
| exceeded</quote> failures for vectors that were under the length |
| limit when emitted. In any case it could lead to wasted space |
| on-disk. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Tom Lane <tgl@sss.pgh.pa.us> |
| Branch: master [9b103f861] 2023-10-18 20:43:27 -0400 |
| Branch: REL_16_STABLE [cfa4eba02] 2023-10-18 20:43:17 -0400 |
| Branch: REL_15_STABLE [985ac5ce2] 2023-10-18 20:43:17 -0400 |
| Branch: REL_14_STABLE [2c63dc035] 2023-10-18 20:43:17 -0400 |
| Branch: REL_13_STABLE [817669ea2] 2023-10-18 20:43:17 -0400 |
| --> |
| <para> |
| Improve checks for corrupt PGLZ compressed data (Flavien Guedez) |
| <ulink url="&commit_baseurl;cfa4eba02">§</ulink> |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Amit Kapila <akapila@postgresql.org> |
| Branch: master [f062cddaf] 2023-09-13 09:34:30 +0530 |
| Branch: REL_16_STABLE [a81e5516f] 2023-09-13 09:48:31 +0530 |
| --> |
| <para> |
| Fix <command>ALTER SUBSCRIPTION</command> so that a commanded change |
| in the <literal>run_as_owner</literal> option is actually applied |
| (Hou Zhijie) |
| <ulink url="&commit_baseurl;a81e5516f">§</ulink> |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Andres Freund <andres@anarazel.de> |
| Branch: master [22655aa23] 2023-10-13 19:16:44 -0700 |
| Branch: REL_16_STABLE [0002feb82] 2023-10-13 19:17:28 -0700 |
| --> |
| <para> |
| Fix bulk table insertion into partitioned tables (Andres Freund) |
| <ulink url="&commit_baseurl;0002feb82">§</ulink> |
| </para> |
| |
| <para> |
| Improper sharing of insertion state across partitions could result |
| in failures during <command>COPY FROM</command>, typically |
| manifesting as <quote>could not read block NNNN in file XXXX: read |
| only 0 of 8192 bytes</quote> errors. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Andrew Dunstan <andrew@dunslane.net> |
| Branch: master [276393f53] 2023-10-01 10:18:41 -0400 |
| Branch: REL_16_STABLE [910eb61b2] 2023-10-01 10:25:33 -0400 |
| --> |
| <para> |
| In <command>COPY FROM</command>, avoid evaluating column default |
| values that will not be needed by the command (Laurenz Albe) |
| <ulink url="&commit_baseurl;910eb61b2">§</ulink> |
| </para> |
| |
| <para> |
| This avoids a possible error if the default value isn't actually |
| valid for the column, or if the default's expression would fail in |
| the current execution context. Such edge cases sometimes arise |
| while restoring dumps, for example. Previous releases did not fail |
| in this situation, so prevent v16 from doing so. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Tom Lane <tgl@sss.pgh.pa.us> |
| Branch: master [d8a09939a] 2023-10-01 12:09:26 -0400 |
| Branch: REL_16_STABLE [ea0e7cd6b] 2023-10-01 12:09:26 -0400 |
| Branch: REL_15_STABLE [95fd5c89f] 2023-10-01 12:09:26 -0400 |
| Branch: REL_14_STABLE [a715c0212] 2023-10-01 12:09:26 -0400 |
| --> |
| <para> |
| In <command>COPY FROM</command>, fail cleanly when an unsupported |
| encoding conversion is needed (Tom Lane) |
| <ulink url="&commit_baseurl;ea0e7cd6b">§</ulink> |
| </para> |
| |
| <para> |
| Recent refactoring accidentally removed the intended error check for |
| this, such that it ended in <quote>cache lookup failed for function |
| 0</quote> instead of a useful error message. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Tom Lane <tgl@sss.pgh.pa.us> |
| Branch: master [7704a1a72] 2023-11-02 11:47:33 -0400 |
| Branch: REL_16_STABLE [82063edd4] 2023-11-02 11:47:33 -0400 |
| Branch: REL_15_STABLE [ae33659d4] 2023-11-02 11:47:33 -0400 |
| Branch: REL_14_STABLE [47c0f00cf] 2023-11-02 11:47:33 -0400 |
| Branch: REL_13_STABLE [137227c6d] 2023-11-02 11:47:33 -0400 |
| Branch: REL_12_STABLE [65810fc6d] 2023-11-02 11:47:33 -0400 |
| Branch: REL_11_STABLE [6e1cca511] 2023-11-02 11:47:33 -0400 !! no live bug |
| --> |
| <para> |
| Avoid crash in <command>EXPLAIN</command> if a parameter marked to |
| be displayed by <command>EXPLAIN</command> has a NULL boot-time |
| value (Xing Guo, Aleksander Alekseev, Tom Lane) |
| <ulink url="&commit_baseurl;82063edd4">§</ulink> |
| </para> |
| |
| <para> |
| No built-in parameter fits this description, but an extension could |
| define such a parameter. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Tom Lane <tgl@sss.pgh.pa.us> |
| Branch: master [54b208f90] 2023-10-16 14:06:14 -0400 |
| Branch: REL_16_STABLE [57e6e861d] 2023-10-16 14:06:15 -0400 |
| Branch: REL_15_STABLE [0d1a7cd14] 2023-10-16 14:06:15 -0400 |
| Branch: REL_14_STABLE [f6e1ee3cf] 2023-10-16 14:06:11 -0400 |
| Branch: REL_13_STABLE [1e678175c] 2023-10-16 14:06:11 -0400 |
| Branch: REL_12_STABLE [07eb22a77] 2023-10-16 14:06:11 -0400 |
| Branch: REL_11_STABLE [a295684b8] 2023-10-16 14:06:12 -0400 |
| --> |
| <para> |
| Ensure we have a snapshot while dropping <literal>ON COMMIT |
| DROP</literal> temp tables (Tom Lane) |
| <ulink url="&commit_baseurl;57e6e861d">§</ulink> |
| </para> |
| |
| <para> |
| This prevents possible misbehavior if any catalog entries for the |
| temp tables have fields wide enough to require toasting (such as a |
| very complex <literal>CHECK</literal> condition). |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Nathan Bossart <nathan@postgresql.org> |
| Branch: master [97550c071] 2023-10-17 10:41:48 -0500 |
| Branch: REL_16_STABLE [ee06199fc] 2023-10-17 10:41:58 -0500 |
| Branch: REL_15_STABLE [c9265ae80] 2023-10-17 10:42:06 -0500 |
| Branch: REL_14_STABLE [54fc9dca5] 2023-10-17 10:42:12 -0500 |
| Branch: REL_13_STABLE [ac1dfc303] 2023-10-17 10:42:17 -0500 |
| Branch: REL_12_STABLE [e2e169042] 2023-10-17 10:42:22 -0500 |
| Branch: REL_11_STABLE [d0e7f95b4] 2023-10-17 10:42:28 -0500 |
| Author: Nathan Bossart <nathan@postgresql.org> |
| Branch: REL_14_STABLE [555bc89c9] 2023-10-17 16:11:03 -0500 |
| Branch: REL_13_STABLE [ebc093fa6] 2023-10-17 16:11:08 -0500 |
| Branch: REL_12_STABLE [0e32652a7] 2023-10-17 16:11:13 -0500 |
| Branch: REL_11_STABLE [bc322c73c] 2023-10-17 16:11:18 -0500 |
| --> |
| <para> |
| Avoid improper response to shutdown signals in child processes |
| just forked by <function>system()</function> (Nathan Bossart) |
| <ulink url="&commit_baseurl;ee06199fc">§</ulink> |
| </para> |
| |
| <para> |
| This fix avoids a race condition in which a child process that has |
| been forked off by <function>system()</function>, but hasn't yet |
| exec'd the intended child program, might receive and act on a signal |
| intended for the parent server process. That would lead to |
| duplicate cleanup actions being performed, which will not end well. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Thomas Munro <tmunro@postgresql.org> |
| Branch: master [63a582222] 2023-10-16 17:33:08 +1300 |
| Branch: REL_16_STABLE [5725e4ebe] 2023-10-16 17:21:41 +1300 |
| Branch: REL_15_STABLE [5e39884d3] 2023-10-16 17:23:02 +1300 |
| Branch: REL_14_STABLE [dc75748a9] 2023-10-16 17:23:25 +1300 |
| Branch: REL_13_STABLE [67060be3d] 2023-10-16 17:24:35 +1300 |
| Branch: REL_12_STABLE [43c979086] 2023-10-16 17:25:43 +1300 |
| --> |
| <para> |
| Cope with torn reads of <filename>pg_control</filename> in frontend |
| programs (Thomas Munro) |
| <ulink url="&commit_baseurl;5725e4ebe">§</ulink> |
| </para> |
| |
| <para> |
| On some file systems, reading <filename>pg_control</filename> may |
| not be an atomic action when the server concurrently writes that |
| file. This is detectable via a bad CRC. Retry a few times to see |
| if the file becomes valid before we report error. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Thomas Munro <tmunro@postgresql.org> |
| Branch: master [c558e6fd9] 2023-10-16 10:43:47 +1300 |
| Branch: REL_16_STABLE [2371432cd] 2023-10-16 10:45:05 +1300 |
| Branch: REL_15_STABLE [606be8a35] 2023-10-16 10:45:18 +1300 |
| Branch: REL_14_STABLE [a56fe5cf0] 2023-10-16 10:47:01 +1300 |
| Branch: REL_13_STABLE [ae9da357b] 2023-10-16 10:47:10 +1300 |
| Branch: REL_12_STABLE [637e86ecc] 2023-10-16 10:47:33 +1300 |
| Branch: REL_11_STABLE [f1634c968] 2023-10-16 10:52:40 +1300 |
| --> |
| <para> |
| Avoid torn reads of <filename>pg_control</filename> in relevant SQL |
| functions (Thomas Munro) |
| <ulink url="&commit_baseurl;2371432cd">§</ulink> |
| </para> |
| |
| <para> |
| Acquire the appropriate lock before |
| reading <filename>pg_control</filename>, to ensure we get a |
| consistent view of that file. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: David Rowley <drowley@postgresql.org> |
| Branch: master [d8a295389] 2023-10-09 16:37:05 +1300 |
| Branch: REL_16_STABLE [9154ededf] 2023-10-09 16:37:33 +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) |
| <ulink url="&commit_baseurl;9154ededf">§</ulink> |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Michael Paquier <michael@paquier.xyz> |
| Branch: master [a956bd3fa] 2023-10-03 15:37:00 +0900 |
| Branch: REL_16_STABLE [75f31a3f2] 2023-10-03 15:37:18 +0900 |
| Branch: REL_15_STABLE [95e91da66] 2023-10-03 15:37:19 +0900 |
| Branch: REL_14_STABLE [f91c87b31] 2023-10-03 15:37:21 +0900 |
| Branch: REL_13_STABLE [a0b013625] 2023-10-03 15:37:23 +0900 |
| Branch: REL_12_STABLE [9b3900cdb] 2023-10-03 15:37:24 +0900 |
| --> |
| <para> |
| Avoid integer overflow when computing size of backend activity |
| string array (Jakub Wartak) |
| <ulink url="&commit_baseurl;75f31a3f2">§</ulink> |
| </para> |
| |
| <para> |
| On 64-bit machines we will allow values |
| of <varname>track_activity_query_size</varname> large enough to |
| cause 32-bit overflow when multiplied by the allowed number of |
| connections. The code actually allocating the per-backend local |
| array was careless about this though, and allocated the array |
| incorrectly. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Heikki Linnakangas <heikki.linnakangas@iki.fi> |
| Branch: master [c181f2e2b] 2023-09-30 17:03:50 +0300 |
| Branch: REL_16_STABLE [992d2ca81] 2023-09-30 17:07:24 +0300 |
| Branch: REL_15_STABLE [5ae245664] 2023-09-30 17:07:32 +0300 |
| Branch: REL_14_STABLE [2d4f99bc6] 2023-09-30 17:07:37 +0300 |
| Branch: REL_13_STABLE [ed9247cd7] 2023-09-30 17:07:41 +0300 |
| --> |
| <para> |
| Fix briefly showing inconsistent progress statistics |
| for <command>ANALYZE</command> on inherited tables |
| (Heikki Linnakangas) |
| <ulink url="&commit_baseurl;992d2ca81">§</ulink> |
| </para> |
| |
| <para> |
| The block-level counters should be reset to zero at the same time we |
| update the current-relation field. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Heikki Linnakangas <heikki.linnakangas@iki.fi> |
| Branch: master [e64c733bb] 2023-10-02 12:39:35 +0300 |
| Branch: REL_16_STABLE [4a97a43a7] 2023-10-02 12:49:25 +0300 |
| Branch: REL_15_STABLE [0684d1949] 2023-10-02 12:49:29 +0300 |
| Branch: REL_14_STABLE [594001864] 2023-10-02 12:50:32 +0300 |
| --> |
| <para> |
| Fix the background writer to report any WAL writes it makes to the |
| statistics counters (Nazir Bilal Yavuz) |
| <ulink url="&commit_baseurl;4a97a43a7">§</ulink> |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Michael Paquier <michael@paquier.xyz> |
| Branch: master [e221c0bef] 2023-09-26 09:29:47 +0900 |
| Branch: REL_16_STABLE [280f70221] 2023-09-26 09:30:36 +0900 |
| Branch: REL_15_STABLE [802fcb9ed] 2023-09-26 09:30:39 +0900 |
| --> |
| <para> |
| Fix confusion about forced-flush behavior |
| in <function>pgstat_report_wal()</function> |
| (Ryoga Yoshida, Michael Paquier) |
| <ulink url="&commit_baseurl;280f70221">§</ulink> |
| </para> |
| |
| <para> |
| This could result in some statistics about WAL I/O being forgotten |
| in a shutdown. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Andres Freund <andres@anarazel.de> |
| Branch: master [7369798a8] 2023-09-13 19:14:09 -0700 |
| Branch: REL_16_STABLE [c4758649b] 2023-09-13 19:14:11 -0700 |
| --> |
| <para> |
| Fix statistics tracking of temporary-table extensions (Karina |
| Litskevich, Andres Freund) |
| <ulink url="&commit_baseurl;c4758649b">§</ulink> |
| </para> |
| |
| <para> |
| These were counted as normal-table writes when they should be |
| counted as temp-table writes. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Michael Paquier <michael@paquier.xyz> |
| Branch: master [d17ffc734] 2023-10-18 14:54:33 +0900 |
| Branch: REL_16_STABLE [2308f18c0] 2023-10-18 14:54:39 +0900 |
| --> |
| <para> |
| When <varname>track_io_timing</varname> is enabled, include the |
| time taken by relation extension operations as write time |
| (Nazir Bilal Yavuz) |
| <ulink url="&commit_baseurl;2308f18c0">§</ulink> |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Tom Lane <tgl@sss.pgh.pa.us> |
| Branch: master [dc8d72c1c] 2023-09-25 14:42:17 -0400 |
| Branch: REL_16_STABLE [055f786ea] 2023-09-25 14:42:17 -0400 |
| Branch: REL_15_STABLE [0e59266a5] 2023-09-25 14:41:57 -0400 |
| Branch: REL_14_STABLE [5cff431bc] 2023-09-25 14:41:57 -0400 |
| Branch: REL_13_STABLE [8cfc3e80b] 2023-09-25 14:41:57 -0400 |
| Branch: REL_12_STABLE [4435a8d5d] 2023-09-25 14:41:57 -0400 |
| Branch: REL_11_STABLE [fdc7cf73b] 2023-09-25 14:41:57 -0400 |
| --> |
| <para> |
| Track the dependencies of cached <command>CALL</command> statements, |
| and re-plan them when needed (Tom Lane) |
| <ulink url="&commit_baseurl;055f786ea">§</ulink> |
| </para> |
| |
| <para> |
| DDL commands, such as replacement of a function that has been |
| inlined into a <command>CALL</command> argument, can create the need |
| to re-plan a <command>CALL</command> that has been cached by |
| PL/pgSQL. That was not happening, leading to misbehavior or strange |
| errors such as <quote>cache lookup failed</quote>. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Daniel Gustafsson <dgustafsson@postgresql.org> |
| Branch: master [5f3aa309a] 2023-09-22 11:18:25 +0200 |
| Branch: REL_16_STABLE [f720875a4] 2023-09-22 11:18:25 +0200 |
| Branch: REL_15_STABLE [9dc85806d] 2023-09-22 11:18:25 +0200 |
| --> |
| <para> |
| Avoid a possible pfree-a-NULL-pointer crash after an error in |
| OpenSSL connection setup (Sergey Shinderuk) |
| <ulink url="&commit_baseurl;f720875a4">§</ulink> |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Tom Lane <tgl@sss.pgh.pa.us> |
| Branch: master [e0e492e5a] 2023-09-15 17:01:52 -0400 |
| Branch: REL_16_STABLE [53630f12d] 2023-09-15 17:01:26 -0400 |
| Branch: REL_15_STABLE [2679a107a] 2023-09-15 17:01:26 -0400 |
| Branch: REL_14_STABLE [ae13f8166] 2023-09-15 17:01:26 -0400 |
| Branch: REL_13_STABLE [c5b7f791d] 2023-09-15 17:01:26 -0400 |
| Branch: REL_12_STABLE [d29812c0c] 2023-09-15 17:01:26 -0400 |
| Branch: REL_11_STABLE [a374f6c61] 2023-09-15 17:01:26 -0400 |
| --> |
| <para> |
| Track nesting depth correctly when |
| inspecting <type>RECORD</type>-type Vars from outer query levels |
| (Richard Guo) |
| <ulink url="&commit_baseurl;53630f12d">§</ulink> |
| </para> |
| |
| <para> |
| This oversight could lead to assertion failures, core dumps, |
| or <quote>bogus varno</quote> errors. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: David Rowley <drowley@postgresql.org> |
| Branch: master [ee3a551e9] 2023-09-14 11:27:29 +1200 |
| Branch: REL_16_STABLE [1a6900e58] 2023-09-14 11:27:16 +1200 |
| Branch: REL_15_STABLE [17a3f1c34] 2023-09-14 11:27:00 +1200 |
| Branch: REL_14_STABLE [6341cb0b0] 2023-09-14 11:27:43 +1200 |
| --> |
| <para> |
| Track hash function and negator function dependencies of |
| ScalarArrayOpExpr plan nodes (David Rowley) |
| <ulink url="&commit_baseurl;1a6900e58">§</ulink> |
| </para> |
| |
| <para> |
| In most cases this oversight was harmless, since these functions |
| would be unlikely to disappear while the node's original operator |
| remains present. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Thomas Munro <tmunro@postgresql.org> |
| Branch: master [3acd0599b] 2023-09-13 14:58:22 +1200 |
| Branch: REL_16_STABLE [f899c7f1e] 2023-09-13 15:06:07 +1200 |
| Branch: REL_15_STABLE [a26cc0334] 2023-09-13 14:43:04 +1200 |
| Branch: REL_14_STABLE [e2452c2a6] 2023-09-13 14:46:16 +1200 |
| Branch: REL_13_STABLE [189097db8] 2023-09-13 14:48:00 +1200 |
| Branch: REL_12_STABLE [012b80ad2] 2023-09-13 14:50:14 +1200 |
| Branch: REL_11_STABLE [6ae57f190] 2023-09-13 14:52:34 +1200 |
| --> |
| <para> |
| Fix error-handling bug in <type>RECORD</type> type cache management |
| (Thomas Munro) |
| <ulink url="&commit_baseurl;f899c7f1e">§</ulink> |
| </para> |
| |
| <para> |
| An out-of-memory error occurring at just the wrong point could leave |
| behind inconsistent state that would lead to an infinite loop. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Michael Paquier <michael@paquier.xyz> |
| Branch: master [6b18b3fe2] 2023-10-03 10:21:44 +0900 |
| Branch: REL_16_STABLE [a06efbc3a] 2023-10-03 10:25:12 +0900 |
| Branch: REL_15_STABLE [afc79591d] 2023-10-03 10:25:14 +0900 |
| Branch: REL_14_STABLE [baeb8542c] 2023-10-03 10:25:15 +0900 |
| Branch: REL_13_STABLE [6103d2cca] 2023-10-03 10:25:17 +0900 |
| Branch: REL_12_STABLE [22b2e6e9d] 2023-10-03 10:25:19 +0900 |
| --> |
| <para> |
| Treat out-of-memory failures as fatal while reading WAL |
| (Michael Paquier) |
| <ulink url="&commit_baseurl;a06efbc3a">§</ulink> |
| </para> |
| |
| <para> |
| Previously this would be treated as a bogus-data condition, leading |
| to the conclusion that we'd reached the end of WAL, which is |
| incorrect and could lead to inconsistent WAL replay. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Thomas Munro <tmunro@postgresql.org> |
| Branch: master [bae868caf] 2023-09-23 10:26:24 +1200 |
| Branch: REL_16_STABLE [ce497f648] 2023-09-23 10:27:02 +1200 |
| Branch: REL_15_STABLE [f4d152edd] 2023-09-23 10:28:12 +1200 |
| Branch: REL_14_STABLE [3ce3b53d7] 2023-09-23 10:28:40 +1200 |
| Branch: REL_13_STABLE [6606c5716] 2023-09-23 10:29:44 +1200 |
| Branch: REL_12_STABLE [e8f3c0687] 2023-09-23 10:29:56 +1200 |
| Author: Thomas Munro <tmunro@postgresql.org> |
| Branch: master [becfbdd6c] 2023-09-26 10:53:38 +1300 |
| Branch: REL_16_STABLE [10d0591ea] 2023-09-26 10:53:52 +1300 |
| Branch: REL_15_STABLE [99d334a18] 2023-09-26 10:54:02 +1300 |
| Branch: REL_14_STABLE [3d413c5a7] 2023-09-26 10:54:24 +1300 |
| Branch: REL_13_STABLE [45d1fe8b5] 2023-09-26 10:54:47 +1300 |
| Branch: REL_12_STABLE [bde2f1847] 2023-09-26 10:59:49 +1300 |
| --> |
| <para> |
| Fix possible recovery failure due to trying to allocate memory based |
| on a bogus WAL record length field (Thomas Munro, Michael Paquier) |
| <ulink url="&commit_baseurl;ce497f648">§</ulink> |
| <ulink url="&commit_baseurl;10d0591ea">§</ulink> |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Thomas Munro <tmunro@postgresql.org> |
| Branch: master [dab889d60] 2023-10-22 10:04:55 +1300 |
| Branch: REL_16_STABLE [174ccda5e] 2023-10-22 10:05:22 +1300 |
| Branch: REL_15_STABLE [f72790b29] 2023-10-22 10:05:40 +1300 |
| Branch: REL_14_STABLE [fb9a16a1a] 2023-10-22 10:05:59 +1300 |
| --> |
| <para> |
| Fix <quote>could not duplicate handle</quote> error occurring on |
| Windows when <varname>min_dynamic_shared_memory</varname> is set |
| above zero (Thomas Munro) |
| <ulink url="&commit_baseurl;174ccda5e">§</ulink> |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Jeff Davis <jdavis@postgresql.org> |
| Branch: master [ef74c7197] 2023-10-10 11:01:13 -0700 |
| Branch: REL_16_STABLE [b8963e8a2] 2023-10-10 11:01:55 -0700 |
| Branch: REL_15_STABLE [b9bb02620] 2023-10-10 11:02:45 -0700 |
| Branch: REL_14_STABLE [6615bb95a] 2023-10-10 11:02:56 -0700 |
| Branch: REL_13_STABLE [469d367be] 2023-10-10 11:03:03 -0700 |
| Branch: REL_12_STABLE [6dbd01b9f] 2023-10-10 11:03:10 -0700 |
| Branch: REL_11_STABLE [04f0baa85] 2023-10-10 11:03:20 -0700 |
| --> |
| <para> |
| Fix order of operations in <function>GenericXLogFinish</function> |
| (Jeff Davis) |
| <ulink url="&commit_baseurl;b8963e8a2">§</ulink> |
| </para> |
| |
| <para> |
| This code violated the conditions required for crash safety by |
| writing WAL before marking changed buffers dirty. No core code uses |
| this function, but extensions do (<filename>contrib/bloom</filename> |
| does, for example). |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Michael Paquier <michael@paquier.xyz> |
| Branch: master [af5b3c3d1] 2023-09-19 08:31:06 +0900 |
| Branch: REL_16_STABLE [f171430f0] 2023-09-19 08:31:22 +0900 |
| Branch: REL_15_STABLE [9e0ce80f3] 2023-09-19 08:31:24 +0900 |
| Branch: REL_14_STABLE [bb65f3c1b] 2023-09-19 08:31:26 +0900 |
| Branch: REL_13_STABLE [35e8ba3e5] 2023-09-19 08:31:27 +0900 |
| Branch: REL_12_STABLE [99d27e55c] 2023-09-19 08:31:29 +0900 |
| Branch: REL_11_STABLE [ddded779a] 2023-09-19 08:31:31 +0900 |
| --> |
| <para> |
| Remove incorrect assertion in PL/Python exception handling |
| (Alexander Lakhin) |
| <ulink url="&commit_baseurl;f171430f0">§</ulink> |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Tom Lane <tgl@sss.pgh.pa.us> |
| Branch: master [5ba4cc309] 2023-10-29 12:56:35 -0400 |
| Branch: REL_16_STABLE [67738dbf9] 2023-10-29 12:56:24 -0400 |
| --> |
| <para> |
| Fix <application>pg_dump</application> to dump the |
| new <literal>run_as_owner</literal> option of subscriptions |
| (Philip Warner) |
| <ulink url="&commit_baseurl;67738dbf9">§</ulink> |
| </para> |
| |
| <para> |
| Due to this oversight, subscriptions would always be restored |
| with <literal>run_as_owner</literal> set |
| to <literal>false</literal>, which is not equivalent to their |
| behavior in pre-v16 releases. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Tom Lane <tgl@sss.pgh.pa.us> |
| Branch: master [06c0c3688] 2023-10-02 13:27:58 -0400 |
| Branch: REL_16_STABLE [aaaf8fbb6] 2023-10-02 13:27:51 -0400 |
| Branch: REL_15_STABLE [10e705bd2] 2023-10-02 13:27:51 -0400 |
| Branch: REL_14_STABLE [829d91cc6] 2023-10-02 13:27:51 -0400 |
| Branch: REL_13_STABLE [295953f8b] 2023-10-02 13:27:51 -0400 |
| Branch: REL_12_STABLE [c02f29758] 2023-10-02 13:27:51 -0400 |
| Branch: REL_11_STABLE [4f16152d9] 2023-10-02 13:27:51 -0400 |
| --> |
| <para> |
| Fix <application>pg_restore</application> so that selective restores |
| will include both table-level and column-level ACLs for selected |
| tables (Euler Taveira, Tom Lane) |
| <ulink url="&commit_baseurl;aaaf8fbb6">§</ulink> |
| </para> |
| |
| <para> |
| Formerly, only the table-level ACL would get restored if both types |
| were present. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Alvaro Herrera <alvherre@alvh.no-ip.org> |
| Branch: master [2e3dc8c14] 2023-09-25 14:27:33 +0200 |
| Branch: REL_16_STABLE [fb9ddd0fa] 2023-09-25 14:34:06 +0200 |
| Branch: REL_15_STABLE [8845d8597] 2023-09-25 14:34:06 +0200 |
| Branch: REL_14_STABLE [26c291a15] 2023-09-25 14:34:06 +0200 |
| Branch: REL_13_STABLE [d3946c4f6] 2023-09-25 14:34:05 +0200 |
| Branch: REL_12_STABLE [af9f6cd1d] 2023-09-25 14:34:05 +0200 |
| Author: Peter Eisentraut <peter@eisentraut.org> |
| Branch: REL_15_STABLE [04d2d605f] 2023-11-03 12:07:11 -0400 |
| Branch: REL_14_STABLE [f9280e77e] 2023-11-03 12:07:25 -0400 |
| Branch: REL_13_STABLE [2f1f49975] 2023-11-03 12:07:35 -0400 |
| Branch: REL_12_STABLE [d3246a2ad] 2023-11-03 12:07:40 -0400 |
| --> |
| <para> |
| Add logic to <application>pg_upgrade</application> to check for use |
| of <type>abstime</type>, <type>reltime</type>, |
| and <type>tinterval</type> data types (Álvaro Herrera) |
| <ulink url="&commit_baseurl;fb9ddd0fa">§</ulink> |
| </para> |
| |
| <para> |
| These obsolete data types were removed |
| in <productname>PostgreSQL</productname> version 12, so check to |
| make sure they aren't present in an older database before claiming |
| it can be upgraded. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Noah Misch <noah@leadboat.com> |
| Branch: master [90ebcc32d] 2023-10-14 15:54:46 -0700 |
| Branch: REL_16_STABLE [06ff06484] 2023-10-14 15:54:49 -0700 |
| Branch: REL_15_STABLE [1102f4ece] 2023-10-14 15:54:49 -0700 |
| Branch: REL_14_STABLE [0df88a686] 2023-10-14 15:54:49 -0700 |
| Branch: REL_13_STABLE [3895e9153] 2023-10-14 15:54:50 -0700 |
| Branch: REL_12_STABLE [73cda80a3] 2023-10-14 15:54:50 -0700 |
| --> |
| <para> |
| Avoid false <quote>too many client connections</quote> errors |
| in <application>pgbench</application> on Windows (Noah Misch) |
| <ulink url="&commit_baseurl;06ff06484">§</ulink> |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Daniel Gustafsson <dgustafsson@postgresql.org> |
| Branch: master [fb56a1811] 2023-09-25 16:03:17 +0200 |
| Branch: REL_16_STABLE [2143d96dc] 2023-09-25 16:03:17 +0200 |
| --> |
| <para> |
| Fix <application>vacuumdb</application>'s handling of |
| multiple <option>-N</option> switches (Nathan Bossart, Kuwamura |
| Masaki) |
| <ulink url="&commit_baseurl;2143d96dc">§</ulink> |
| </para> |
| |
| <para> |
| Multiple <option>-N</option> switches should exclude tables |
| in multiple schemas, but in fact excluded nothing due to faulty |
| construction of a generated query. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: David Rowley <drowley@postgresql.org> |
| Branch: master [5cfba1ad6] 2023-09-21 17:47:20 +1200 |
| Branch: REL_16_STABLE [f7dbdab05] 2023-09-21 17:39:30 +1200 |
| --> |
| <para> |
| Fix <application>vacuumdb</application> to honor |
| its <option>--buffer-usage-limit</option> option in analyze-only |
| mode (Ryoga Yoshida, David Rowley) |
| <ulink url="&commit_baseurl;f7dbdab05">§</ulink> |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Noah Misch <noah@leadboat.com> |
| Branch: master [6ec9e9975] 2023-10-30 14:46:05 -0700 |
| Branch: REL_16_STABLE [3c6a05b80] 2023-10-30 14:46:08 -0700 |
| Branch: REL_15_STABLE [6f81386a9] 2023-10-30 14:46:08 -0700 |
| Branch: REL_14_STABLE [42496cba6] 2023-10-30 14:46:09 -0700 |
| Branch: REL_13_STABLE [f31ccb575] 2023-10-30 14:46:09 -0700 |
| Branch: REL_12_STABLE [3a205c916] 2023-10-30 14:46:09 -0700 |
| Branch: REL_11_STABLE [e04509f32] 2023-10-30 14:46:09 -0700 |
| --> |
| <para> |
| In <filename>contrib/amcheck</filename>, do not report interrupted |
| page deletion as corruption (Noah Misch) |
| <ulink url="&commit_baseurl;3c6a05b80">§</ulink> |
| </para> |
| |
| <para> |
| This fix prevents false-positive reports of <quote>the first child |
| of leftmost target page is not leftmost of its |
| level</quote>, <quote>block NNNN is not leftmost</quote> |
| or <quote>left link/right link pair in index XXXX not in |
| agreement</quote>. They appeared |
| if <application>amcheck</application> ran after an unfinished btree |
| index page deletion and before <command>VACUUM</command> had cleaned |
| things up. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Dean Rasheed <dean.a.rasheed@gmail.com> |
| Branch: master [849172ff4] 2023-10-29 11:14:37 +0000 |
| Branch: REL_16_STABLE [ab73a37e9] 2023-10-29 11:14:36 +0000 |
| Branch: REL_15_STABLE [5f0691839] 2023-10-29 11:14:35 +0000 |
| Branch: REL_14_STABLE [162b38a06] 2023-10-29 11:14:34 +0000 |
| Branch: REL_13_STABLE [35e6a5c20] 2023-10-29 11:14:34 +0000 |
| Branch: REL_12_STABLE [f7cd7b265] 2023-10-29 11:14:33 +0000 |
| Branch: REL_11_STABLE [c804ffb56] 2023-10-29 11:14:32 +0000 |
| --> |
| <para> |
| Fix failure of <filename>contrib/btree_gin</filename> indexes |
| on <type>interval</type> columns, |
| when an indexscan using the <literal><</literal> |
| or <literal><=</literal> operator is performed (Dean Rasheed) |
| <ulink url="&commit_baseurl;ab73a37e9">§</ulink> |
| </para> |
| |
| <para> |
| Such an indexscan failed to return all the entries it should. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Thomas Munro <tmunro@postgresql.org> |
| Branch: master [76200e5ee] 2023-10-19 05:13:23 +1300 |
| Branch: REL_16_STABLE [774185056] 2023-10-19 05:14:07 +1300 |
| Branch: REL_15_STABLE [b60e3ac76] 2023-10-19 05:15:38 +1300 |
| Branch: REL_14_STABLE [0a8b7d5c1] 2023-10-19 05:16:00 +1300 |
| Branch: REL_13_STABLE [53c4dabe1] 2023-10-19 05:16:24 +1300 |
| Branch: REL_12_STABLE [7da915e33] 2023-10-19 05:17:27 +1300 |
| Author: Thomas Munro <tmunro@postgresql.org> |
| Branch: master [37d5babb5] 2023-10-18 22:47:23 +1300 |
| Branch: REL_16_STABLE [74d19ec09] 2023-10-18 22:53:56 +1300 |
| Branch: REL_15_STABLE [eed1feb3f] 2023-10-18 22:59:46 +1300 |
| Branch: REL_14_STABLE [82d9a782a] 2023-10-18 23:04:09 +1300 |
| Branch: REL_13_STABLE [f28956b23] 2023-10-18 23:16:48 +1300 |
| Branch: REL_12_STABLE [15ddc9725] 2023-10-18 23:18:16 +1300 |
| Author: Thomas Munro <tmunro@postgresql.org> |
| Branch: master [f90b4a846] 2023-10-19 03:01:55 +1300 |
| Branch: REL_16_STABLE [60596f148] 2023-10-19 03:07:18 +1300 |
| Branch: REL_15_STABLE [b2e097788] 2023-10-19 03:03:27 +1300 |
| Branch: REL_14_STABLE [ee3e4c41f] 2023-10-19 03:03:46 +1300 |
| Branch: REL_13_STABLE [981292c19] 2023-10-19 03:04:00 +1300 |
| Branch: REL_12_STABLE [d701f0d1f] 2023-10-19 03:04:09 +1300 |
| Author: Thomas Munro <tmunro@postgresql.org> |
| Branch: REL_13_STABLE [7c070e224] 2023-10-24 11:23:08 +1300 |
| Branch: REL_12_STABLE [9ad986276] 2023-10-24 11:23:21 +1300 |
| --> |
| <para> |
| Add support for LLVM 16 and 17 (Thomas Munro, Dmitry Dolgov) |
| <ulink url="&commit_baseurl;774185056">§</ulink> |
| <ulink url="&commit_baseurl;74d19ec09">§</ulink> |
| <ulink url="&commit_baseurl;60596f148">§</ulink> |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Tom Lane <tgl@sss.pgh.pa.us> |
| Branch: master [06843df4a] 2023-09-29 14:07:30 -0400 |
| Branch: REL_16_STABLE [75c562653] 2023-09-29 14:07:30 -0400 |
| Branch: REL_15_STABLE [be3398ea1] 2023-09-29 14:07:30 -0400 |
| Branch: REL_14_STABLE [e9d1560d3] 2023-09-29 14:07:30 -0400 |
| Branch: REL_13_STABLE [1b64e374c] 2023-09-29 14:07:30 -0400 |
| Branch: REL_12_STABLE [d8ceb98e4] 2023-09-29 14:07:30 -0400 |
| Branch: REL_11_STABLE [4d10fda52] 2023-09-29 14:07:30 -0400 |
| Author: Tom Lane <tgl@sss.pgh.pa.us> |
| Branch: master [3aa021b29] 2023-09-26 21:06:21 -0400 |
| Branch: REL_16_STABLE [e73d6a0df] 2023-09-26 21:06:21 -0400 |
| Branch: REL_15_STABLE [78f17fb97] 2023-09-26 21:06:21 -0400 |
| Branch: REL_14_STABLE [5d60e8ed3] 2023-09-26 21:06:21 -0400 |
| Branch: REL_13_STABLE [53cc19bfa] 2023-09-26 21:06:21 -0400 |
| Branch: REL_12_STABLE [abe423712] 2023-09-26 21:06:21 -0400 |
| Branch: REL_11_STABLE [0e0de20c8] 2023-09-26 21:06:21 -0400 |
| --> |
| <para> |
| Suppress assorted build-time warnings on |
| recent <productname>macOS</productname> (Tom Lane) |
| <ulink url="&commit_baseurl;75c562653">§</ulink> |
| <ulink url="&commit_baseurl;e73d6a0df">§</ulink> |
| </para> |
| |
| <para> |
| <productname>Xcode 15</productname> (released |
| with <productname>macOS Sonoma</productname>) changed the linker's |
| behavior in a way that causes many duplicate-library warnings while |
| building <productname>PostgreSQL</productname>. These were |
| harmless, but they're annoying so avoid citing the same libraries |
| twice. Also remove use of the <option>-multiply_defined |
| suppress</option> linker switch, which apparently has been a no-op |
| for a long time, and is now actively complained of. |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Michael Paquier <michael@paquier.xyz> |
| Branch: master [6fc3a138b] 2023-09-27 14:40:23 +0900 |
| Branch: REL_16_STABLE [641db601b] 2023-09-27 14:41:15 +0900 |
| Branch: REL_15_STABLE [8a9e4e84e] 2023-09-27 14:41:21 +0900 |
| Branch: REL_14_STABLE [e4d7ad30f] 2023-09-27 14:41:23 +0900 |
| Branch: REL_13_STABLE [a64b8b035] 2023-09-27 14:41:26 +0900 |
| --> |
| <para> |
| When building <filename>contrib/unaccent</filename>'s rules file, |
| fall back to using <literal>python</literal> |
| if <literal>--with-python</literal> was not given and make |
| variable <literal>PYTHON</literal> was not set (Japin Li) |
| <ulink url="&commit_baseurl;641db601b">§</ulink> |
| </para> |
| </listitem> |
| |
| <listitem> |
| <!-- |
| Author: Tom Lane <tgl@sss.pgh.pa.us> |
| Branch: master [5fd3e06f6] 2023-10-28 11:54:40 -0400 |
| Branch: REL_16_STABLE [d1537afe3] 2023-10-28 11:54:51 -0400 |
| Branch: REL_15_STABLE [85b98a70b] 2023-10-28 11:54:59 -0400 |
| Branch: REL_14_STABLE [877e7b4b9] 2023-10-28 11:55:06 -0400 |
| Branch: REL_13_STABLE [d94612873] 2023-10-28 11:55:14 -0400 |
| Branch: REL_12_STABLE [7180bb827] 2023-10-28 11:55:22 -0400 |
| Branch: REL_11_STABLE [64fc5e005] 2023-10-28 11:55:30 -0400 |
| --> |
| <para> |
| Remove <literal>PHOT</literal> (Phoenix Islands Time) from the |
| default timezone abbreviations list (Tom Lane) |
| <ulink url="&commit_baseurl;d1537afe3">§</ulink> |
| </para> |
| |
| <para> |
| Presence of this abbreviation in the default list can cause failures |
| on recent Debian and Ubuntu releases, as they no longer install the |
| underlying tzdb entry by default. Since this is a made-up |
| abbreviation for a zone with a total human population of about two |
| dozen, it seems unlikely that anyone will miss it. If someone does, |
| they can put it back via a custom abbreviations file. |
| </para> |
| </listitem> |
| |
| </itemizedlist> |
| |
| </sect2> |
| </sect1> |
| |
| <sect1 id="release-16"> |
| <title>Release 16</title> |
| |
| <formalpara> |
| <title>Release date:</title> |
| <para>2023-09-14</para> |
| </formalpara> |
| |
| <sect2 id="release-16-highlights"> |
| <title>Overview</title> |
| |
| <para> |
| <productname>PostgreSQL</productname> 16 contains many new features |
| and enhancements, including: |
| </para> |
| |
| <itemizedlist> |
| |
| <listitem> |
| <para> |
| Allow parallelization of <literal>FULL</literal> and internal right <literal>OUTER</literal> hash joins |
| </para> |
| </listitem> |
| |
| <listitem> |
| <para> |
| Allow logical replication from standby servers |
| </para> |
| </listitem> |
| |
| <listitem> |
| <para> |
| Allow logical replication subscribers to apply large transactions in parallel |
| </para> |
| </listitem> |
| |
| <listitem> |
| <para> |
| Allow monitoring of <acronym>I/O</acronym> statistics using the new <structname>pg_stat_io</structname> view |
| </para> |
| </listitem> |
| |
| <listitem> |
| <para> |
| Add <acronym>SQL/JSON</acronym> constructors and identity functions |
| </para> |
| </listitem> |
| |
| <listitem> |
| <para> |
| Improve performance of vacuum freezing |
| </para> |
| </listitem> |
| |
| <listitem> |
| <para> |
| Add support for regular expression matching of user and database names in <filename>pg_hba.conf</filename>, and user names in <filename>pg_ident.conf</filename> |
| </para> |
| </listitem> |
| |
| </itemizedlist> |
| |
| <para> |
| The above items and other new features of |
| <productname>PostgreSQL</productname> 16 are explained in more detail |
| in the sections below. |
| </para> |
| |
| </sect2> |
| |
| <sect2 id="release-16-migration"> |
| |
| <title>Migration to Version 16</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 16 contains a number of changes that may affect compatibility |
| with previous releases. Observe the following incompatibilities: |
| </para> |
| |
| <itemizedlist> |
| |
| <!-- |
| Author: Tom Lane <tgl@sss.pgh.pa.us> |
| 2023-01-01 [d747dc85a] In plpgsql, don't preassign portal names to bound cursor |
| --> |
| |
| <listitem> |
| <para> |
| Change assignment rules for <link |
| linkend="plpgsql-open-bound-cursor"><application>PL/pgSQL</application></link> |
| bound cursor variables (Tom Lane) |
| <ulink url="&commit_baseurl;d747dc85a">§</ulink> |
| </para> |
| |
| <para> |
| Previously, the string value of such variables |
| was set to match the variable name during cursor |
| assignment; now it will be assigned during <link |
| linkend="plpgsql-cursor-opening"><command>OPEN</command></link>, |
| and will not match the variable name. To restore the previous |
| behavior, assign the desired portal name to the cursor variable |
| before <command>OPEN</command>. |
| </para> |
| </listitem> |
| |
| <!-- |
| Author: Daniel Gustafsson <dgustafsson@postgresql.org> |
| 2023-02-24 [d95952325] Disallow NULLS NOT DISTINCT indexes for primary keys |
| --> |
| |
| <listitem> |
| <para> |
| Disallow <link linkend="sql-createindex"><literal>NULLS NOT |
| DISTINCT</literal></link> indexes for primary keys (Daniel |
| Gustafsson) |
| <ulink url="&commit_baseurl;d95952325">§</ulink> |
| </para> |
| </listitem> |
| |
| <!-- |
| Author: Michael Paquier <michael@paquier.xyz> |
| 2022-07-19 [2cbc3c17a] Rework logic and simplify syntax of REINDEX DATABASE/SYS |
| Author: Michael Paquier <michael@paquier.xyz> |
| 2022-07-26 [0a5f06b84] Fix a few issues with REINDEX grammar |
| --> |
| |
| <listitem> |
| <para> |
| Change <link linkend="sql-reindex"><command>REINDEX |
| DATABASE</command></link> and <link |
| linkend="app-reindexdb"><application>reindexdb</application></link> |
| to not process indexes on system catalogs (Simon Riggs) |
| <ulink url="&commit_baseurl;2cbc3c17a">§</ulink> |
| <ulink url="&commit_baseurl;0a5f06b84">§</ulink> |
| </para> |
| |
| <para> |
| Processing such indexes is still possible using <command>REINDEX |
| SYSTEM</command> and <link linkend="app-reindexdb"><command>reindexdb |
| --system</command></link>. |
| </para> |
| </listitem> |
| |
| <!-- |
| Author: Tom Lane <tgl@sss.pgh.pa.us> |
| 2023-01-11 [8bf6ec3ba] Improve handling of inherited GENERATED expressions. |
| --> |
| |
| <listitem> |
| <para> |
| Tighten <link |
| linkend="ddl-generated-columns"><literal>GENERATED</literal></link> |
| expression restrictions on inherited and partitioned tables (Amit |
| Langote, Tom Lane) |
| <ulink url="&commit_baseurl;8bf6ec3ba">§</ulink> |
| </para> |
| |
| <para> |
| Columns of parent/partitioned and child/partition tables must all |
| have the same generation status, though now the actual generation |
| expressions can be different. |
| </para> |
| </listitem> |
| |
| <!-- |
| Author: Michael Paquier <michael@paquier.xyz> |
| 2023-03-14 [5c1b66280] Rework design of functions in pg_walinspect |
| --> |
| |
| <listitem> |
| <para> |
| Remove <link |
| linkend="pgwalinspect"><application>pg_walinspect</application></link> |
| functions |
| <function>pg_get_wal_records_info_till_end_of_wal()</function> |
| and <function>pg_get_wal_stats_till_end_of_wal()</function> |
| (Bharath Rupireddy) |
| <ulink url="&commit_baseurl;5c1b66280">§</ulink> |
| </para> |
| </listitem> |
| |
| <!-- |
| Author: David Rowley <drowley@postgresql.org> |
| 2023-02-15 [5352ca22e] Rename force_parallel_mode to debug_parallel_query |
| Author: David Rowley <drowley@postgresql.org> |
| 2023-04-14 [0981846b9] Remove old GUC name mapping for "force_parallel_mode" |
| --> |
| |
| <listitem> |
| <para> |
| Rename server variable |
| <varname>force_parallel_mode</varname> to <link |
| linkend="guc-debug-parallel-query"><varname>debug_parallel_query</varname></link> |
| (David Rowley) |
| <ulink url="&commit_baseurl;5352ca22e">§</ulink> |
| <ulink url="&commit_baseurl;0981846b9">§</ulink> |
| </para> |
| </listitem> |
| |
| <!-- |
| Author: Tom Lane <tgl@sss.pgh.pa.us> |
| 2022-12-02 [b23cd185f] Remove logic for converting a table to a view. |
| --> |
| |
| <listitem> |
| <para> |
| Remove the ability to <link linkend="sql-createview">create |
| views</link> manually with <literal>ON SELECT</literal> rules |
| (Tom Lane) |
| <ulink url="&commit_baseurl;b23cd185f">§</ulink> |
| </para> |
| </listitem> |
| |
| <!-- |
| Author: Andres Freund <andres@anarazel.de> |
| 2023-04-24 [1118cd37e] Remove vacuum_defer_cleanup_age |
| --> |
| |
| <listitem> |
| <para> |
| Remove the server variable |
| <varname>vacuum_defer_cleanup_age</varname> (Andres Freund) |
| <ulink url="&commit_baseurl;1118cd37e">§</ulink> |
| </para> |
| |
| <para> |
| This has been unnecessary since <link |
| linkend="guc-hot-standby-feedback"><varname>hot_standby_feedback</varname></link> |
| and <link linkend="streaming-replication-slots">replication |
| slots</link> were added. |
| </para> |
| </listitem> |
| |
| <!-- |
| Author: Thomas Munro <tmunro@postgresql.org> |
| 2022-11-29 [cd4329d93] Remove promote_trigger_file. |
| --> |
| |
| <listitem> |
| <para> |
| Remove server variable <varname>promote_trigger_file</varname> |
| (Simon Riggs) |
| <ulink url="&commit_baseurl;cd4329d93">§</ulink> |
| </para> |
| |
| <para> |
| This was used to promote a standby to primary, but is now more easily |
| accomplished with <link linkend="app-pg-ctl"><literal>pg_ctl |
| promote</literal></link> or <link |
| linkend="functions-recovery-control-table"><function>pg_promote()</function></link>. |
| </para> |
| </listitem> |
| |
| <!-- |
| Author: Peter Eisentraut <peter@eisentraut.org> |
| 2023-06-07 [b0f6c4371] Remove read-only server settings lc_collate and lc_ctype |
| --> |
| |
| <listitem> |
| <para> |
| Remove read-only server variables <varname>lc_collate</varname> |
| and <varname>lc_ctype</varname> (Peter Eisentraut) |
| <ulink url="&commit_baseurl;b0f6c4371">§</ulink> |
| </para> |
| |
| <para> |
| Collations and locales can vary between databases so having them |
| as read-only server variables was unhelpful. |
| </para> |
| </listitem> |
| |
| <!-- |
| Author: Robert Haas <rhaas@postgresql.org> |
| 2022-08-25 [e3ce2de09] Allow grant-level control of role inheritance behavior. |
| --> |
| |
| <listitem> |
| <para> |
| Role inheritance now controls the default |
| inheritance status of member roles added during <link |
| linkend="sql-grant"><command>GRANT</command></link> (Robert Haas) |
| <ulink url="&commit_baseurl;e3ce2de09">§</ulink> |
| </para> |
| |
| <para> |
| The role's default inheritance behavior can be overridden with the |
| new <command>GRANT ... WITH INHERIT</command> clause. This allows |
| inheritance of some roles and not others because the members' |
| inheritance status is set at <command>GRANT</command> time. |
| Previously the inheritance status of member roles was controlled |
| only by the role's inheritance status, and changes to a role's |
| inheritance status affected all previous and future member roles. |
| </para> |
| </listitem> |
| |
| <!-- |
| Author: Robert Haas <rhaas@postgresql.org> |
| 2023-01-10 [cf5eb37c5] Restrict the privileges of CREATEROLE users. |
| Author: Robert Haas <rhaas@postgresql.org> |
| 2023-01-24 [f1358ca52] Adjust interaction of CREATEROLE with role properties. |
| --> |
| |
| <listitem> |
| <para> |
| Restrict the privileges of <link |
| linkend="sql-createrole"><literal>CREATEROLE</literal></link> |
| and its ability to modify other roles (Robert Haas) |
| <ulink url="&commit_baseurl;cf5eb37c5">§</ulink> |
| <ulink url="&commit_baseurl;f1358ca52">§</ulink> |
| </para> |
| |
| <para> |
| Previously roles with <literal>CREATEROLE</literal> privileges could |
| change many aspects of any non-superuser role. Such changes, |
| including adding members, now require the role requesting |
| the change to have <literal>ADMIN OPTION</literal> permission. |
| For example, they can now change the <literal>CREATEDB</literal>, |
| <literal>REPLICATION</literal>, and <literal>BYPASSRLS</literal> |
| properties only if they also have those permissions. |
| </para> |
| </listitem> |
| |
| <!-- |
| Author: Peter Eisentraut <peter@eisentraut.org> |
| 2023-01-26 [37e267335] Don't install postmaster symlink anymore |
| --> |
| |
| <listitem> |
| <para> |
| Remove symbolic links for the <application>postmaster</application> |
| binary (Peter Eisentraut) |
| <ulink url="&commit_baseurl;37e267335">§</ulink> |
| </para> |
| </listitem> |
| |
| </itemizedlist> |
| |
| </sect2> |
| |
| <sect2 id="release-16-changes"> |
| <title>Changes</title> |
| |
| <para> |
| Below you will find a detailed account of the changes between |
| <productname>PostgreSQL</productname> 16 and the previous major |
| release. |
| </para> |
| |
| <sect3 id="release-16-server"> |
| <title>Server</title> |
| |
| <sect4 id="release-16-optimizer"> |
| <title>Optimizer</title> |
| |
| <itemizedlist> |
| |
| <!-- |
| Author: David Rowley <drowley@postgresql.org> |
| 2022-08-02 [b59242209] Relax overly strict rules in select_outer_pathkeys_for_m |
| Author: David Rowley <drowley@postgresql.org> |
| 2023-01-11 [3c6fc5820] Have the planner consider Incremental Sort for DISTINCT |
| --> |
| |
| <listitem> |
| <para> |
| Allow incremental sorts in more cases, including |
| <literal>DISTINCT</literal> (David Rowley) |
| <ulink url="&commit_baseurl;b59242209">§</ulink> |
| <ulink url="&commit_baseurl;3c6fc5820">§</ulink> |
| </para> |
| </listitem> |
| |
| <!-- |
| Author: David Rowley <drowley@postgresql.org> |
| 2022-08-02 [1349d2790] Improve performance of ORDER BY / DISTINCT aggregates |
| Author: David Rowley <drowley@postgresql.org> |
| 2022-12-20 [3226f4728] Add enable_presorted_aggregate GUC |
| Author: David Rowley <drowley@postgresql.org> |
| 2023-01-17 [da5800d5f] Don't presort ORDER BY/DISTINCT Aggrefs with volatile fu |
| --> |
| |
| <listitem> |
| <para> |
| Add the ability for aggregates having <literal>ORDER BY</literal> |
| or <literal>DISTINCT</literal> to use pre-sorted data (David |
| Rowley) |
| <ulink url="&commit_baseurl;1349d2790">§</ulink> |
| <ulink url="&commit_baseurl;3226f4728">§</ulink> |
| <ulink url="&commit_baseurl;da5800d5f">§</ulink> |
| </para> |
| |
| <para> |
| The new server variable <link |
| linkend="guc-enable-presorted-aggregate"><varname>enable_presorted_aggregate</varname></link> |
| can be used to disable this. |
| </para> |
| </listitem> |
| |
| <!-- |
| Author: Tom Lane <tgl@sss.pgh.pa.us> |
| 2023-03-16 [9bfd2822b] Enable use of Memoize atop an Append that came from UNIO |
| --> |
| |
| <listitem> |
| <para> |
| Allow memoize atop a <literal>UNION ALL</literal> (Richard Guo) |
| <ulink url="&commit_baseurl;9bfd2822b">§</ulink> |
| </para> |
| </listitem> |
| |
| <!-- |
| Author: Tom Lane <tgl@sss.pgh.pa.us> |
| 2023-04-05 [16dc2703c] Support "Right Anti Join" plan shapes. |
| --> |
| |
| <listitem> |
| <para> |
| Allow anti-joins to be performed with the non-nullable input as |
| the inner relation (Richard Guo) |
| <ulink url="&commit_baseurl;16dc2703c">§</ulink> |
| </para> |
| </listitem> |
| |
| <!-- |
| Author: Thomas Munro <tmunro@postgresql.org> |
| 2023-03-31 [11c2d6fdf] Parallel Hash Full Join. |
| --> |
| |
| <listitem> |
| <para> |
| Allow parallelization of <link |
| linkend="queries-join"><literal>FULL</literal></link> and internal |
| right <literal>OUTER</literal> hash joins (Melanie Plageman, |
| Thomas Munro) |
| <ulink url="&commit_baseurl;11c2d6fdf">§</ulink> |
| </para> |
| </listitem> |
| |
| <!-- |
| Author: Alexander Korotkov <akorotkov@postgresql.org> |
| 2023-01-08 [cd9479af2] Improve GIN cost estimation |
| --> |
| |
| <listitem> |
| <para> |
| Improve the accuracy of <link |
| linkend="gin"><literal>GIN</literal></link> index access optimizer |
| costs (Ronan Dunklau) |
| <ulink url="&commit_baseurl;cd9479af2">§</ulink> |
| </para> |
| </listitem> |
| |
| </itemizedlist> |
| |
| </sect4> |
| |
| <sect4 id="release-16-performance"> |
| <title>General Performance</title> |
| |
| <itemizedlist> |
| |
| <!-- |
| Author: Andres Freund <andres@anarazel.de> |
| 2023-04-06 [00d1e02be] hio: Use ExtendBufferedRelBy() to extend tables more eff |
| Author: Andres Freund <andres@anarazel.de> |
| 2023-04-06 [26158b852] Use ExtendBufferedRelTo() in XLogReadBufferExtended() |
| --> |
| |
| <listitem> |
| <para> |
| Allow more efficient addition of heap and index pages (Andres |
| Freund) |
| <ulink url="&commit_baseurl;00d1e02be">§</ulink> |
| <ulink url="&commit_baseurl;26158b852">§</ulink> |
| </para> |
| </listitem> |
| |
| <!-- |
| Author: Peter Geoghegan <pg@bowt.ie> |
| 2022-09-08 [d977ffd92] Instrument freezing in autovacuum log reports. |
| Author: Peter Geoghegan <pg@bowt.ie> |
| 2022-11-15 [9e5405993] Deduplicate freeze plans in freeze WAL records. |
| Author: Peter Geoghegan <pg@bowt.ie> |
| 2022-12-28 [1de58df4f] Add page-level freezing to VACUUM. |
| --> |
| |
| <listitem> |
| <para> |
| During non-freeze operations, perform page <link |
| linkend="vacuum-for-wraparound">freezing</link> where appropriate |
| (Peter Geoghegan) |
| <ulink url="&commit_baseurl;d977ffd92">§</ulink> |
| <ulink url="&commit_baseurl;9e5405993">§</ulink> |
| <ulink url="&commit_baseurl;1de58df4f">§</ulink> |
| </para> |
| |
| <para> |
| This makes full-table freeze vacuums less necessary. |
| </para> |
| </listitem> |
| |
| <!-- |
| Author: David Rowley <drowley@postgresql.org> |
| 2022-12-23 [ed1a88dda] Allow window functions to adjust their frameOptions |
| --> |
| |
| <listitem> |
| <para> |
| Allow window functions to use the faster <link |
| linkend="syntax-window-functions"><literal>ROWS</literal></link> |
| mode internally when <literal>RANGE</literal> mode is active but |
| unnecessary (David Rowley) |
| <ulink url="&commit_baseurl;ed1a88dda">§</ulink> |
| </para> |
| </listitem> |
| |
| <!-- |
| Author: David Rowley <drowley@postgresql.org> |
| 2023-01-27 [456fa635a] Teach planner about more monotonic window functions |
| --> |
| |
| <listitem> |
| <para> |
| Allow optimization of always-increasing window functions <link |
| linkend="functions-window-table"><function>ntile()</function></link>, |
| <function>cume_dist()</function> and |
| <function>percent_rank()</function> (David Rowley) |
| <ulink url="&commit_baseurl;456fa635a">§</ulink> |
| </para> |
| </listitem> |
| |
| <!-- |
| Author: David Rowley <drowley@postgresql.org> |
| 2023-01-23 [16fd03e95] Allow parallel aggregate on string_agg and array_agg |
| --> |
| |
| <listitem> |
| <para> |
| Allow aggregate functions <link |
| linkend="functions-aggregate-table"><function>string_agg()</function></link> |
| and <function>array_agg()</function> to be parallelized (David |
| Rowley) |
| <ulink url="&commit_baseurl;16fd03e95">§</ulink> |
| </para> |
| </listitem> |
| |
| <!-- |
| Author: David Rowley <drowley@postgresql.org> |
| 2022-08-02 [3592e0ff9] Have ExecFindPartition cache the last found partition |
| --> |
| |
| <listitem> |
| <para> |
| Improve performance by caching <link |
| linkend="ddl-partitioning-overview"><literal>RANGE</literal></link> |
| and <literal>LIST</literal> partition lookups (Amit Langote, |
| Hou Zhijie, David Rowley) |
| <ulink url="&commit_baseurl;3592e0ff9">§</ulink> |
| </para> |
| </listitem> |
| |
| <!-- |
| Author: David Rowley <drowley@postgresql.org> |
| 2023-04-07 [1cbbee033] Add VACUUM/ANALYZE BUFFER_USAGE_LIMIT option |
| Author: David Rowley <drowley@postgresql.org> |
| 2023-04-07 [ae78cae3b] Add - -buffer-usage-limit option to vacuumdb |
| Author: Masahiko Sawada <msawada@postgresql.org> |
| 2023-04-28 [b72f564d8] Add unit to vacuum_buffer_usage_limit value in postgresq |
| --> |
| |
| <listitem> |
| <para> |
| Allow control of the shared buffer usage by vacuum and analyze |
| (Melanie Plageman) |
| <ulink url="&commit_baseurl;1cbbee033">§</ulink> |
| <ulink url="&commit_baseurl;ae78cae3b">§</ulink> |
| <ulink url="&commit_baseurl;b72f564d8">§</ulink> |
| </para> |
| |
| <para> |
| The <link |
| linkend="sql-vacuum"><command>VACUUM</command></link>/<link |
| linkend="sql-analyze"><command>ANALYZE</command></link> |
| option is <literal>BUFFER_USAGE_LIMIT</literal>, and the <link |
| linkend="app-vacuumdb"><application>vacuumdb</application></link> |
| option is <option>--buffer-usage-limit</option>. |
| The default value is set by server variable <link |
| linkend="guc-vacuum-buffer-usage-limit"><varname>vacuum_buffer_usage_limit</varname></link>, |
| which also controls autovacuum. |
| </para> |
| </listitem> |
| |
| <!-- |
| Author: Thomas Munro <tmunro@postgresql.org> |
| 2022-07-20 [9430fb407] Add wal_sync_method=fdatasync for Windows. |
| --> |
| |
| <listitem> |
| <para> |
| Support <link |
| linkend="guc-wal-sync-method"><literal>wal_sync_method=fdatasync</literal></link> |
| on <systemitem class="osname">Windows</systemitem> (Thomas Munro) |
| <ulink url="&commit_baseurl;9430fb407">§</ulink> |
| </para> |
| </listitem> |
| |
| <!-- |
| Author: Tomas Vondra <tomas.vondra@postgresql.org> |
| 2023-03-20 [19d8e2308] Ignore BRIN indexes when checking for HOT updates |
| --> |
| |
| <listitem> |
| <para> |
| Allow <link linkend="storage-hot"><acronym>HOT</acronym></link> |
| updates if only <literal>BRIN</literal>-indexed columns are updated |
| (Matthias van de Meent, Josef Simanek, Tomas Vondra) |
| <ulink url="&commit_baseurl;19d8e2308">§</ulink> |
| </para> |
| </listitem> |
| |
| <!-- |
| Author: David Rowley <drowley@postgresql.org> |
| 2023-02-20 [2cb82e2ac] Speedup and increase usability of set proc title functio |
| --> |
| |
| <listitem> |
| <para> |
| Improve the speed of updating the <link |
| linkend="guc-update-process-title">process title</link> (David |
| Rowley) |
| <ulink url="&commit_baseurl;2cb82e2ac">§</ulink> |
| </para> |
| </listitem> |
| |
| <!-- |
| Author: John Naylor <john.naylor@postgresql.org> |
| 2022-08-11 [37a6e5df3] Optimize xid/subxid searches in XidInMVCCSnapshot(). |
| Author: John Naylor <john.naylor@postgresql.org> |
| 2022-08-26 [121d2d3d7] Use SSE2 in is_valid_ascii() where available. |
| Author: John Naylor <john.naylor@postgresql.org> |
| 2022-08-10 [b6ef16756] Introduce optimized routine for linear searches of array |
| Author: John Naylor <john.naylor@postgresql.org> |
| 2022-08-26 [e813e0e16] Add optimized functions for linear search within byte ar |
| --> |
| |
| <listitem> |
| <para> |
| Allow <type>xid</type>/<type>subxid</type> searches and |
| <acronym>ASCII</acronym> string detection to use vector operations |
| (Nathan Bossart, John Naylor) |
| <ulink url="&commit_baseurl;37a6e5df3">§</ulink> |
| <ulink url="&commit_baseurl;121d2d3d7">§</ulink> |
| <ulink url="&commit_baseurl;b6ef16756">§</ulink> |
| <ulink url="&commit_baseurl;e813e0e16">§</ulink> |
| </para> |
| |
| <para> |
| <acronym>ASCII</acronym> detection is particularly useful for |
| <link linkend="sql-copy"><command>COPY FROM</command></link>. |
| Vector operations are also used for some C array searches. |
| </para> |
| |
| </listitem> |
| |
| <!-- |
| Author: David Rowley <drowley@postgresql.org> |
| 2022-08-29 [c6e0fe1f2] Improve performance of and reduce overheads of memory ma |
| --> |
| |
| <listitem> |
| <para> |
| Reduce overhead of memory allocations (Andres Freund, David Rowley) |
| <ulink url="&commit_baseurl;c6e0fe1f2">§</ulink> |
| </para> |
| </listitem> |
| |
| </itemizedlist> |
| |
| </sect4> |
| |
| <sect4 id="release-16-monitoring"> |
| <title>Monitoring</title> |
| |
| <itemizedlist> |
| |
| <!-- |
| Author: Andres Freund <andres@anarazel.de> |
| 2023-02-11 [a9c70b46d] Add pg_stat_io view, providing more detailed IO statisti |
| Author: Andres Freund <andres@anarazel.de> |
| 2023-03-30 [8aaa04b32] Track shared buffer hits in pg_stat_io |
| Author: Andres Freund <andres@anarazel.de> |
| 2023-04-07 [ac8d53dae] Track IO times in pg_stat_io |
| Author: Michael Paquier <michael@paquier.xyz> |
| 2023-04-21 [0ecb87e1f] Remove io prefix from pg_stat_io columns |
| Author: Andres Freund <andres@anarazel.de> |
| 2023-05-17 [093e5c57d] Add writeback to pg_stat_io |
| --> |
| |
| <listitem> |
| <para> |
| Add system view <link |
| linkend="monitoring-pg-stat-io-view"><structname>pg_stat_io</structname></link> |
| view to track <acronym>I/O</acronym> statistics (Melanie Plageman) |
| <ulink url="&commit_baseurl;a9c70b46d">§</ulink> |
| <ulink url="&commit_baseurl;8aaa04b32">§</ulink> |
| <ulink url="&commit_baseurl;ac8d53dae">§</ulink> |
| <ulink url="&commit_baseurl;0ecb87e1f">§</ulink> |
| <ulink url="&commit_baseurl;093e5c57d">§</ulink> |
| </para> |
| </listitem> |
| |
| <!-- |
| Author: Andres Freund <andres@anarazel.de> |
| 2022-10-14 [c03747183] pgstat: Track time of the last scan of a relation |
| --> |
| |
| <listitem> |
| <para> |
| Record statistics on the last sequential and index scans on tables |
| (Dave Page) |
| <ulink url="&commit_baseurl;c03747183">§</ulink> |
| </para> |
| |
| <para> |
| This information appears in <link |
| linkend="pg-stat-all-tables-view"><structname>pg_stat_*_tables</structname></link> |
| and <link |
| linkend="monitoring-pg-stat-all-indexes-view"><structname>pg_stat_*_indexes</structname></link>. |
| </para> |
| </listitem> |
| |
| <!-- |
| Author: Peter Geoghegan <pg@bowt.ie> |
| 2023-03-23 [ae4fdde13] Count updates that move row to a new page. |
| --> |
| |
| <listitem> |
| <para> |
| Record statistics on the occurrence of updated rows moving to |
| new pages (Corey Huinker) |
| <ulink url="&commit_baseurl;ae4fdde13">§</ulink> |
| </para> |
| |
| <para> |
| The <literal>pg_stat_*_tables</literal> column is <link |
| linkend="monitoring-pg-stat-all-tables-view"><structfield>n_tup_newpage_upd</structfield></link>. |
| </para> |
| </listitem> |
| |
| <!-- |
| Author: Amit Kapila <akapila@postgresql.org> |
| 2023-01-10 [f74573969] Fix the display of lock information for specktoken. |
| --> |
| |
| <listitem> |
| <para> |
| Add speculative lock information to the <link |
| linkend="view-pg-locks"><structname>pg_locks</structname></link> |
| system view (Masahiko Sawada, Noriyoshi Shinoda) |
| <ulink url="&commit_baseurl;f74573969">§</ulink> |
| </para> |
| |
| <para> |
| The transaction id is displayed in the |
| <structfield>transactionid</structfield> column and |
| the speculative insertion token is displayed in the |
| <structfield>objid</structfield> column. |
| </para> |
| </listitem> |
| |
| <!-- |
| Author: Peter Eisentraut <peter@eisentraut.org> |
| 2022-07-05 [84ad713cf] Add result_types column to pg_prepared_statements view |
| Author: Peter Eisentraut <peter@eisentraut.org> |
| 2022-07-05 [6ffff0fd2] Fix pg_prepared_statements.result_types for DML statemen |
| --> |
| |
| <listitem> |
| <para> |
| Add the display of prepared statement result types to the <link |
| linkend="view-pg-prepared-statements"><structname>pg_prepared_statements</structname></link> |
| view (Dagfinn Ilmari Mannsåker) |
| <ulink url="&commit_baseurl;84ad713cf">§</ulink> |
| <ulink url="&commit_baseurl;6ffff0fd2">§</ulink> |
| </para> |
| </listitem> |
| |
| <!-- |
| Author: Andres Freund <andres@anarazel.de> |
| 2022-10-06 [e0b014295] Create subscription stats entry at CREATE SUBSCRIPTION t |
| --> |
| |
| <listitem> |
| <para> |
| Create subscription statistics |
| entries at subscription creation time so <link |
| linkend="pg-stat-database-view"><structfield>stats_reset</structfield></link> |
| is accurate (Andres Freund) |
| <ulink url="&commit_baseurl;e0b014295">§</ulink> |
| </para> |
| |
| <para> |
| Previously entries were created only when the first statistics |
| were reported. |
| </para> |
| </listitem> |
| |
| <!-- |
| Author: Andres Freund <andres@anarazel.de> |
| 2023-04-07 [704261ecc] Improve IO accounting for temp relation writes |
| --> |
| |
| <listitem> |
| <para> |
| Correct the <acronym>I/O</acronym> |
| accounting for temp relation writes shown in <link |
| linkend="pg-stat-database-view"><structname>pg_stat_database</structname></link> |
| (Melanie Plageman) |
| <ulink url="&commit_baseurl;704261ecc">§</ulink> |
| </para> |
| </listitem> |
| |
| <!-- |
| Author: Robert Haas <rhaas@postgresql.org> |
| 2022-12-19 [10ea0f924] Expose some information about backend subxact status. |
| --> |
| |
| <listitem> |
| <para> |
| Add function <link |
| linkend="monitoring-stats-backend-funcs-table"><function>pg_stat_get_backend_subxact()</function></link> |
| to report on a session's subtransaction cache (Dilip Kumar) |
| <ulink url="&commit_baseurl;10ea0f924">§</ulink> |
| </para> |
| </listitem> |
| |
| <!-- |
| Author: Tom Lane <tgl@sss.pgh.pa.us> |
| 2022-09-29 [d7e39d72c] Use actual backend IDs in pg_stat_get_backend_idset() an |
| --> |
| |
| <listitem> |
| <para> |
| Have <link |
| linkend="monitoring-stats-backend-funcs-table"><function>pg_stat_get_backend_idset()</function></link>, |
| <function>pg_stat_get_backend_activity()</function>, and related |
| functions use the unchanging backend id (Nathan Bossart) |
| <ulink url="&commit_baseurl;d7e39d72c">§</ulink> |
| </para> |
| |
| <para> |
| Previously the index values might change during the lifetime of |
| the session. |
| </para> |
| </listitem> |
| |
| <!-- |
| Author: Andres Freund <andres@anarazel.de> |
| 2022-08-22 [0c679464a] Add BackendType for standalone backends |
| --> |
| |
| <listitem> |
| <para> |
| Report stand-alone backends with a special backend type (Melanie |
| Plageman) |
| <ulink url="&commit_baseurl;0c679464a">§</ulink> |
| </para> |
| </listitem> |
| |
| <!-- |
| Author: Andres Freund <andres@anarazel.de> |
| 2022-11-21 [92daeca45] Add wait event for pg_usleep() in perform_spin_delay() |
| --> |
| |
| <listitem> |
| <para> |
| Add wait event <link |
| linkend="wait-event-timeout-table"><literal>SpinDelay</literal></link> |
| to report spinlock sleep delays (Andres Freund) |
| <ulink url="&commit_baseurl;92daeca45">§</ulink> |
| </para> |
| </listitem> |
| |
| <!-- |
| Author: Thomas Munro <tmunro@postgresql.org> |
| 2022-07-14 [7bae3bbf6] Create a distinct wait event for POSIX DSM allocation. |
| --> |
| |
| <listitem> |
| <para> |
| Create new wait event <link |
| linkend="wait-event-io-table"><literal>DSMAllocate</literal></link> |
| to indicate waiting for dynamic shared memory allocation (Thomas |
| Munro) |
| <ulink url="&commit_baseurl;7bae3bbf6">§</ulink> |
| </para> |
| |
| <para> |
| Previously this type of wait was reported as |
| <literal>DSMFillZeroWrite</literal>, which was also used by |
| <function>mmap()</function> allocations. |
| </para> |
| </listitem> |
| |
| <!-- |
| Author: Michael Paquier <michael@paquier.xyz> |
| 2022-11-24 [af205152e] Add the database name to the ps display of logical WAL s |
| --> |
| |
| <listitem> |
| <para> |
| Add the database name to the <link |
| linkend="guc-update-process-title">process title</link> of logical |
| <acronym>WAL</acronym> senders (Tatsuhiro Nakamori) |
| <ulink url="&commit_baseurl;af205152e">§</ulink> |
| </para> |
| |
| <para> |
| Physical <acronym>WAL</acronym> senders do not display a database |
| name. |
| </para> |
| </listitem> |
| |
| <!-- |
| Author: Fujii Masao <fujii@postgresql.org> |
| 2022-07-07 [62c46eee2] Add checkpoint and REDO LSN to log_checkpoints message. |
| --> |
| |
| <listitem> |
| <para> |
| Add checkpoint and <literal>REDO LSN</literal> information to <link |
| linkend="guc-log-checkpoints"><varname>log_checkpoints</varname></link> |
| messages (Bharath Rupireddy, Kyotaro Horiguchi) |
| <ulink url="&commit_baseurl;62c46eee2">§</ulink> |
| </para> |
| </listitem> |
| |
| <!-- |
| Author: Peter Eisentraut <peter@eisentraut.org> |
| 2022-07-15 [3a0e38504] Log details for client certificate failures |
| --> |
| |
| <listitem> |
| <para> |
| Provide additional details during client certificate failures |
| (Jacob Champion) |
| <ulink url="&commit_baseurl;3a0e38504">§</ulink> |
| </para> |
| </listitem> |
| |
| </itemizedlist> |
| |
| </sect4> |
| |
| <sect4 id="release-16-privileges"> |
| <title>Privileges</title> |
| |
| <itemizedlist> |
| |
| <!-- |
| Author: Robert Haas <rhaas@postgresql.org> |
| 2023-03-30 [c3afe8cf5] Add new predefined role pg_create_subscription. |
| --> |
| |
| <listitem> |
| <para> |
| Add predefined role <link |
| linkend="predefined-roles"><literal>pg_create_subscription</literal></link> |
| with permission to create subscriptions (Robert Haas) |
| <ulink url="&commit_baseurl;c3afe8cf5">§</ulink> |
| </para> |
| </listitem> |
| |
| <!-- |
| Author: Robert Haas <rhaas@postgresql.org> |
| 2023-03-30 [c3afe8cf5] Add new predefined role pg_create_subscription. |
| Author: Amit Kapila <akapila@postgresql.org> |
| 2023-04-20 [c1cc4e688] Restart the apply worker if the 'password_required' opti |
| Author: Amit Kapila <akapila@postgresql.org> |
| 2023-04-24 [19e65dff3] Display 'password_required' option for \dRs+ command. |
| --> |
| |
| <listitem> |
| <para> |
| Allow subscriptions to not require passwords (Robert Haas) |
| <ulink url="&commit_baseurl;c3afe8cf5">§</ulink> |
| <ulink url="&commit_baseurl;c1cc4e688">§</ulink> |
| <ulink url="&commit_baseurl;19e65dff3">§</ulink> |
| </para> |
| |
| <para> |
| This is accomplished with the option <link |
| linkend="sql-createsubscription"><literal>password_required=false</literal></link>. |
| </para> |
| </listitem> |
| |
| <!-- |
| Author: Jeff Davis <jdavis@postgresql.org> |
| 2023-01-13 [c44f6334c] Simplify permissions for LOCK TABLE. |
| --> |
| |
| <listitem> |
| <para> |
| Simplify permissions for <link linkend="sql-lock"><command>LOCK |
| TABLE</command></link> (Jeff Davis) |
| <ulink url="&commit_baseurl;c44f6334c">§</ulink> |
| </para> |
| |
| <para> |
| Previously a user's ability to perform <command>LOCK |
| TABLE</command> at various lock levels was limited to the |
| lock levels required by the commands they had permission |
| to execute on the table. For example, someone with <link |
| linkend="sql-update"><command>UPDATE</command></link> |
| permission could perform all lock levels except <literal>ACCESS |
| SHARE</literal>, even though it was a lesser lock level. Now users |
| can issue lesser lock levels if they already have permission for |
| greater lock levels. |
| </para> |
| </listitem> |
| |
| <!-- |
| Author: Robert Haas <rhaas@postgresql.org> |
| 2022-08-22 [ce6b672e4] Make role grant system more consistent with other privil |
| --> |
| |
| <listitem> |
| <para> |
| Allow <link linkend="sql-altergroup"><literal>ALTER GROUP group_name |
| ADD USER user_name</literal></link> to be performed with <literal>ADMIN |
| OPTION</literal> (Robert Haas) |
| <ulink url="&commit_baseurl;ce6b672e4">§</ulink> |
| </para> |
| |
| <para> |
| Previously <literal>CREATEROLE</literal> permission was required. |
| </para> |
| </listitem> |
| |
| <!-- |
| Author: Robert Haas <rhaas@postgresql.org> |
| 2022-08-25 [e3ce2de09] Allow grant-level control of role inheritance behavior. |
| --> |
| |
| <listitem> |
| <para> |
| Allow <link linkend="sql-grant"><command>GRANT</command></link> |
| to use <literal>WITH ADMIN TRUE</literal>/<literal>FALSE</literal> |
| syntax (Robert Haas) |
| <ulink url="&commit_baseurl;e3ce2de09">§</ulink> |
| </para> |
| |
| <para> |
| Previously only the <literal>WITH ADMIN OPTION</literal> syntax |
| was supported. |
| </para> |
| </listitem> |
| |
| <!-- |
| Author: Robert Haas <rhaas@postgresql.org> |
| 2023-01-10 [e5b8a4c09] Add new GUC createrole_self_grant. |
| Author: Daniel Gustafsson <dgustafsson@postgresql.org> |
| 2023-02-22 [e00bc6c92] doc: Add default value of createrole_self_grant |
| --> |
| |
| <listitem> |
| <para> |
| Allow roles that create other roles to automatically |
| inherit the new role's rights or the ability to <link |
| linkend="sql-set-role"><command>SET ROLE</command></link> to the |
| new role (Robert Haas, Shi Yu) |
| <ulink url="&commit_baseurl;e5b8a4c09">§</ulink> |
| <ulink url="&commit_baseurl;e00bc6c92">§</ulink> |
| </para> |
| |
| <para> |
| This is controlled by server variable <link |
| linkend="guc-createrole-self-grant"><varname>createrole_self_grant</varname></link>. |
| </para> |
| </listitem> |
| |
| <!-- |
| Author: Robert Haas <rhaas@postgresql.org> |
| 2022-09-19 [48a257d44] Make ALTER DEFAULT PRIVILEGES require privileges, not me |
| --> |
| |
| <listitem> |
| <para> |
| Prevent users from changing the default privileges of non-inherited |
| roles (Robert Haas) |
| <ulink url="&commit_baseurl;48a257d44">§</ulink> |
| </para> |
| |
| <para> |
| This is now only allowed for inherited roles. |
| </para> |
| </listitem> |
| |
| <!-- |
| Author: Robert Haas <rhaas@postgresql.org> |
| 2022-08-22 [ce6b672e4] Make role grant system more consistent with other privil |
| --> |
| |
| <listitem> |
| <para> |
| When granting role membership, require the granted-by role to be |
| a role that has appropriate permissions (Robert Haas) |
| <ulink url="&commit_baseurl;ce6b672e4">§</ulink> |
| </para> |
| |
| <para> |
| This is a requirement even when a non-bootstrap superuser is |
| granting role membership. |
| </para> |
| </listitem> |
| |
| <!-- |
| Author: Robert Haas <rhaas@postgresql.org> |
| 2022-08-22 [ce6b672e4] Make role grant system more consistent with other privil |
| --> |
| |
| <listitem> |
| <para> |
| Allow non-superusers to grant permissions using a granted-by user |
| that is not the current user (Robert Haas) |
| <ulink url="&commit_baseurl;ce6b672e4">§</ulink> |
| </para> |
| |
| <para> |
| The current user still must have sufficient permissions given by |
| the specified granted-by user. |
| </para> |
| </listitem> |
| |
| <!-- |
| Author: Robert Haas <rhaas@postgresql.org> |
| 2022-11-18 [3d14e171e] Add a SET option to the GRANT command. |
| --> |
| |
| <listitem> |
| <para> |
| Add <link linkend="sql-grant"><command>GRANT</command></link> to |
| control permission to use <link linkend="sql-set-role"><command>SET |
| ROLE</command></link> (Robert Haas) |
| <ulink url="&commit_baseurl;3d14e171e">§</ulink> |
| </para> |
| |
| <para> |
| This is controlled by a new <literal>GRANT ... SET</literal> |
| option. |
| </para> |
| </listitem> |
| |
| <!-- |
| Author: Robert Haas <rhaas@postgresql.org> |
| 2022-08-22 [ce6b672e4] Make role grant system more consistent with other privil |
| --> |
| |
| <listitem> |
| <para> |
| Add dependency tracking to roles which have granted privileges |
| (Robert Haas) |
| <ulink url="&commit_baseurl;ce6b672e4">§</ulink> |
| </para> |
| |
| <para> |
| For example, removing <literal>ADMIN OPTION</literal> will fail if |
| there are privileges using that option; <literal>CASCADE</literal> |
| must be used to revoke dependent permissions. |
| </para> |
| </listitem> |
| |
| <!-- |
| Author: Robert Haas <rhaas@postgresql.org> |
| 2022-08-18 [6566133c5] Ensure that pg_auth_members.grantor is always valid. |
| --> |
| |
| <listitem> |
| <para> |
| Add dependency tracking of grantors for <link |
| linkend="sql-grant"><command>GRANT</command></link> records |
| (Robert Haas) |
| <ulink url="&commit_baseurl;6566133c5">§</ulink> |
| </para> |
| |
| <para> |
| This guarantees that <link |
| linkend="catalog-pg-auth-members"><structname>pg_auth_members</structname></link>.<structfield>grantor</structfield> |
| values are always valid. |
| </para> |
| </listitem> |
| |
| <!-- |
| Author: Robert Haas <rhaas@postgresql.org> |
| 2022-08-22 [ce6b672e4] Make role grant system more consistent with other privil |
| Author: Robert Haas <rhaas@postgresql.org> |
| 2022-08-31 [0101f770a] Fix a bug in roles_is_member_of. |
| --> |
| |
| <listitem> |
| <para> |
| Allow multiple role membership records (Robert Haas) |
| <ulink url="&commit_baseurl;ce6b672e4">§</ulink> |
| <ulink url="&commit_baseurl;0101f770a">§</ulink> |
| </para> |
| |
| <para> |
| Previously a new membership grant would remove a previous matching |
| membership grant, even if other aspects of the grant did not match. |
| </para> |
| </listitem> |
| |
| <!-- |
| Author: Robert Haas <rhaas@postgresql.org> |
| 2022-07-26 [e530be2c5] Do not allow removal of superuser privileges from bootst |
| --> |
| |
| <listitem> |
| <para> |
| Prevent removal of superuser privileges for the bootstrap user |
| (Robert Haas) |
| <ulink url="&commit_baseurl;e530be2c5">§</ulink> |
| </para> |
| |
| <para> |
| Restoring such users could lead to errors. |
| </para> |
| </listitem> |
| |
| <!-- |
| Author: Tom Lane <tgl@sss.pgh.pa.us> |
| 2022-07-03 [b762bbde3] Allow makeaclitem() to accept multiple privilege names. |
| --> |
| |
| <listitem> |
| <para> |
| Allow <link |
| linkend="functions-aclitem-fn-table"><function>makeaclitem()</function></link> |
| to accept multiple privilege names (Robins Tharakan) |
| <ulink url="&commit_baseurl;b762bbde3">§</ulink> |
| </para> |
| |
| <para> |
| Previously only a single privilege name, like <link |
| linkend="sql-select"><command>SELECT</command></link>, was |
| accepted. |
| </para> |
| </listitem> |
| |
| </itemizedlist> |
| |
| </sect4> |
| |
| <sect4 id="release-16-server-config"> |
| <title>Server Configuration</title> |
| |
| <itemizedlist> |
| |
| <!-- |
| Author: Stephen Frost <sfrost@snowman.net> |
| 2023-04-13 [6633cfb21] De-Revert "Add support for Kerberos credential delegatio |
| Author: Bruce Momjian <bruce@momjian.us> |
| 2023-05-20 [9c0a0e2ed] rename "gss_accept_deleg" to "gss_accept_delegation". |
| Author: Nathan Bossart <nathan@postgresql.org> |
| 2023-05-20 [f4001a553] Fix remaining references to gss_accept_deleg. |
| Author: Tom Lane <tgl@sss.pgh.pa.us> |
| 2023-05-21 [a2eb99a01] Expand some more uses of "deleg" to "delegation" or "del |
| --> |
| |
| <listitem> |
| <para> |
| Add support for <productname>Kerberos</productname> credential |
| delegation (Stephen Frost) |
| <ulink url="&commit_baseurl;6633cfb21">§</ulink> |
| <ulink url="&commit_baseurl;9c0a0e2ed">§</ulink> |
| <ulink url="&commit_baseurl;f4001a553">§</ulink> |
| <ulink url="&commit_baseurl;a2eb99a01">§</ulink> |
| </para> |
| |
| <para> |
| This is enabled with server variable <link |
| linkend="guc-gss-accept-delegation"><varname>gss_accept_delegation</varname></link> |
| and <application>libpq</application> connection parameter <link |
| linkend="libpq-connect-gssdelegation"><literal>gssdelegation</literal></link>. |
| </para> |
| </listitem> |
| |
| <!-- |
| Author: Daniel Gustafsson <dgustafsson@postgresql.org> |
| 2023-03-27 [b57774300] Make SCRAM iteration count configurable |
| --> |
| |
| <listitem> |
| <para> |
| Allow the <acronym>SCRAM</acronym> iteration |
| count to be set with server variable <link |
| linkend="guc-scram-iterations"><varname>scram_iterations</varname></link> |
| (Daniel Gustafsson) |
| <ulink url="&commit_baseurl;b57774300">§</ulink> |
| </para> |
| </listitem> |
| |
| <!-- |
| Author: Tom Lane <tgl@sss.pgh.pa.us> |
| 2022-10-14 [3057465ac] Replace the sorted array of GUC variables with a hash ta |
| Author: Tom Lane <tgl@sss.pgh.pa.us> |
| 2022-10-14 [f13b2088f] Add auxiliary lists to GUC data structures for better pe |
| --> |
| |
| <listitem> |
| <para> |
| Improve performance of server variable management (Tom Lane) |
| <ulink url="&commit_baseurl;3057465ac">§</ulink> |
| <ulink url="&commit_baseurl;f13b2088f">§</ulink> |
| </para> |
| </listitem> |
| |
| <!-- |
| Author: Tom Lane <tgl@sss.pgh.pa.us> |
| 2022-09-27 [385366426] Introduce GUC_NO_RESET flag. |
| --> |
| |
| <listitem> |
| <para> |
| Tighten restrictions on which server variables can be reset |
| (Masahiko Sawada) |
| <ulink url="&commit_baseurl;385366426">§</ulink> |
| </para> |
| |
| <para> |
| Previously, while certain variables, like <link |
| linkend="guc-default-transaction-isolation"><varname>transaction_isolation</varname></link>, |
| were not affected by <link linkend="sql-reset"><command>RESET |
| ALL</command></link>, they could be individually reset in |
| inappropriate situations. |
| </para> |
| </listitem> |
| |
| <!-- |
| Author: Michael Paquier <michael@paquier.xyz> |
| 2022-08-09 [0b039e3a8] Fix some inconsistencies with GUC categories |
| --> |
| |
| <listitem> |
| <para> |
| Move various <link |
| linkend="config-setting-configuration-file"><filename>postgresql.conf</filename></link> |
| items into new categories (Shinya Kato) |
| <ulink url="&commit_baseurl;0b039e3a8">§</ulink> |
| </para> |
| |
| <para> |
| This also affects the categories displayed in the <link |
| linkend="view-pg-settings"><structname>pg_settings</structname></link> |
| view. |
| </para> |
| </listitem> |
| |
| <!-- |
| Author: Michael Paquier <michael@paquier.xyz> |
| 2022-11-25 [d13b68411] Introduce variables for initial and max nesting depth on |
| --> |
| |
| <listitem> |
| <para> |
| Prevent configuration file recursion beyond 10 levels (Julien |
| Rouhaud) |
| <ulink url="&commit_baseurl;d13b68411">§</ulink> |
| </para> |
| </listitem> |
| |
| <!-- |
| Author: Daniel Gustafsson <dgustafsson@postgresql.org> |
| 2023-04-07 [7d71d3dd0] Refresh cost-based delay params more frequently in autov |
| Author: Daniel Gustafsson <dgustafsson@postgresql.org> |
| 2023-04-20 [a9781ae11] Fix autovacuum cost debug logging |
| --> |
| |
| <listitem> |
| <para> |
| Allow <link linkend="autovacuum">autovacuum</link> to more |
| frequently honor changes to delay settings (Melanie Plageman) |
| <ulink url="&commit_baseurl;7d71d3dd0">§</ulink> |
| <ulink url="&commit_baseurl;a9781ae11">§</ulink> |
| </para> |
| |
| <para> |
| Rather than honor changes only at the start of each relation, |
| honor them at the start of each block. |
| </para> |
| </listitem> |
| |
| <!-- |
| Author: Fujii Masao <fujii@postgresql.org> |
| 2022-07-26 [756e221db] Reduce overhead of renaming archive status files. |
| Author: Fujii Masao <fujii@postgresql.org> |
| 2022-07-26 [3cabe45a8] doc: Add note about re-archiving of same WAL files in do |
| --> |
| |
| <listitem> |
| <para> |
| Remove restrictions that archive files be durably renamed |
| (Nathan Bossart) |
| <ulink url="&commit_baseurl;756e221db">§</ulink> |
| <ulink url="&commit_baseurl;3cabe45a8">§</ulink> |
| </para> |
| |
| <para> |
| The <link |
| linkend="guc-archive-command"><varname>archive_command</varname></link> |
| command is now more likely to be called with already-archived |
| files after a crash. |
| </para> |
| </listitem> |
| |
| <!-- |
| Author: Peter Eisentraut <peter@eisentraut.org> |
| 2022-11-15 [d627ce3b7] Disallow setting archive_library and archive_command at |
| --> |
| |
| <listitem> |
| <para> |
| Prevent <link |
| linkend="guc-archive-library"><varname>archive_library</varname></link> |
| and <link |
| linkend="guc-archive-command"><varname>archive_command</varname></link> |
| from being set at the same time (Nathan Bossart) |
| <ulink url="&commit_baseurl;d627ce3b7">§</ulink> |
| </para> |
| |
| <para> |
| Previously <varname>archive_library</varname> would override |
| <varname>archive_command</varname>. |
| </para> |
| </listitem> |
| |
| <!-- |
| Author: Tom Lane <tgl@sss.pgh.pa.us> |
| 2022-11-21 [51b5834cd] Provide options for postmaster to kill child processes w |
| --> |
| |
| <listitem> |
| <para> |
| Allow the postmaster to terminate children with an abort signal |
| (Tom Lane) |
| <ulink url="&commit_baseurl;51b5834cd">§</ulink> |
| </para> |
| |
| <para> |
| This allows collection of a core dump for a |
| stuck child process. This is controlled by <link |
| linkend="guc-send-abort-for-crash"><varname>send_abort_for_crash</varname></link> |
| and <link |
| linkend="guc-send-abort-for-kill"><varname>send_abort_for_kill</varname></link>. |
| The postmaster's <option>-T</option> switch is now the same as |
| setting <varname>send_abort_for_crash</varname>. |
| </para> |
| </listitem> |
| |
| <!-- |
| Author: Tom Lane <tgl@sss.pgh.pa.us> |
| 2022-11-21 [51b5834cd] Provide options for postmaster to kill child processes w |
| --> |
| |
| <listitem> |
| <para> |
| Remove the non-functional postmaster <option>-n</option> option |
| (Tom Lane) |
| <ulink url="&commit_baseurl;51b5834cd">§</ulink> |
| </para> |
| </listitem> |
| |
| <!-- |
| Author: Robert Haas <rhaas@postgresql.org> |
| 2023-01-20 [6e2775e4d] Add new GUC reserved_connections. |
| --> |
| |
| <listitem> |
| <para> |
| Allow the server to reserve backend slots for roles with <link |
| linkend="predefined-roles"><literal>pg_use_reserved_connections</literal></link> |
| membership (Nathan Bossart) |
| <ulink url="&commit_baseurl;6e2775e4d">§</ulink> |
| </para> |
| |
| <para> |
| The number of reserved slots is set by server variable <link |
| linkend="guc-reserved-connections"><varname>reserved_connections</varname></link>. |
| </para> |
| </listitem> |
| |
| <!-- |
| Author: Michael Paquier <michael@paquier.xyz> |
| 2022-09-17 [fdd8937c0] Fix huge_pages on Windows |
| --> |
| |
| <listitem> |
| <para> |
| Allow <link linkend="guc-huge-pages">huge pages</link> to |
| work on newer versions of <systemitem class="osname">Windows |
| 10</systemitem> (Thomas Munro) |
| <ulink url="&commit_baseurl;fdd8937c0">§</ulink> |
| </para> |
| |
| <para> |
| This adds the special handling required to enable huge pages |
| on newer versions of <systemitem class="osname">Windows |
| 10</systemitem>. |
| </para> |
| </listitem> |
| |
| <!-- |
| Author: Thomas Munro <tmunro@postgresql.org> |
| 2023-04-08 [d4e71df6d] Add io_direct setting (developer-only). |
| Author: Thomas Munro <tmunro@postgresql.org> |
| 2023-05-15 [319bae9a8] Rename io_direct to debug_io_direct. |
| --> |
| |
| <listitem> |
| <para> |
| Add <link |
| linkend="guc-debug-io-direct"><varname>debug_io_direct</varname></link> |
| setting for developer usage (Thomas Munro, Andres Freund, |
| Bharath Rupireddy) |
| <ulink url="&commit_baseurl;d4e71df6d">§</ulink> |
| <ulink url="&commit_baseurl;319bae9a8">§</ulink> |
| </para> |
| |
| <para> |
| While primarily for developers, <link |
| linkend="guc-wal-sync-method"><literal>wal_sync_method=open_sync</literal></link>/<literal>open_datasync</literal> |
| has been modified to not use direct <acronym>I/O</acronym> with |
| <literal>wal_level=minimal</literal>; this is now enabled with |
| <literal>debug_io_direct=wal</literal>. |
| </para> |
| </listitem> |
| |
| <!-- |
| Author: Michael Paquier <michael@paquier.xyz> |
| 2022-12-20 [cca186348] Add pg_dissect_walfile_name() |
| Author: Michael Paquier <michael@paquier.xyz> |
| 2022-12-23 [13e0d7a60] Rename pg_dissect_walfile_name() to pg_split_walfile_nam |
| --> |
| |
| <listitem> |
| <para> |
| Add function <link |
| linkend="functions-admin-backup-table"><function>pg_split_walfile_name()</function></link> |
| to report the segment and timeline values of <acronym>WAL</acronym> |
| file names (Bharath Rupireddy) |
| <ulink url="&commit_baseurl;cca186348">§</ulink> |
| <ulink url="&commit_baseurl;13e0d7a60">§</ulink> |
| </para> |
| </listitem> |
| |
| </itemizedlist> |
| |
| </sect4> |
| |
| <sect4 id="release-16-pg-hba"> |
| <title><link linkend="auth-pg-hba-conf">pg_hba.conf</link></title> |
| |
| <itemizedlist> |
| |
| <!-- |
| Author: Michael Paquier <michael@paquier.xyz> |
| 2022-10-24 [8fea86830] Add support for regexps on database and user entries in |
| --> |
| |
| <listitem> |
| <para> |
| Add support for regular expression matching on database and role |
| entries in <filename>pg_hba.conf</filename> (Bertrand Drouvot) |
| <ulink url="&commit_baseurl;8fea86830">§</ulink> |
| </para> |
| |
| <para> |
| Regular expression patterns are prefixed with a slash. Database |
| and role names that begin with slashes need to be double-quoted |
| if referenced in <filename>pg_hba.conf</filename>. |
| </para> |
| </listitem> |
| |
| <!-- |
| Author: Michael Paquier <michael@paquier.xyz> |
| 2023-01-20 [efb6f4a4f] Support the same patterns for pg-user in pg_ident.conf a |
| --> |
| |
| <listitem> |
| <para> |
| Improve user-column handling of <link |
| linkend="runtime-config-file-locations"><filename>pg_ident.conf</filename></link> |
| to match <filename>pg_hba.conf</filename> (Jelte Fennema) |
| <ulink url="&commit_baseurl;efb6f4a4f">§</ulink> |
| </para> |
| |
| <para> |
| Specifically, add support for <literal>all</literal>, role |
| membership with <literal>+</literal>, and regular expressions |
| with a leading slash. Any user name that matches these patterns |
| must be double-quoted. |
| </para> |
| </listitem> |
| |
| <!-- |
| Author: Michael Paquier <michael@paquier.xyz> |
| 2022-11-24 [a54b658ce] Add support for file inclusions in HBA and ident configu |
| --> |
| |
| <listitem> |
| <para> |
| Allow include files in <filename>pg_hba.conf</filename> and |
| <filename>pg_ident.conf</filename> (Julien Rouhaud) |
| <ulink url="&commit_baseurl;a54b658ce">§</ulink> |
| </para> |
| |
| <para> |
| These are controlled by <literal>include</literal>, |
| <literal>include_if_exists</literal>, and |
| <literal>include_dir</literal>. System views <link |
| linkend="view-pg-hba-file-rules"><structname>pg_hba_file_rules</structname></link> |
| and <link |
| linkend="view-pg-ident-file-mappings"><structname>pg_ident_file_mappings</structname></link> |
| now display the file name. |
| </para> |
| </listitem> |
| |
| <!-- |
| Author: Tom Lane <tgl@sss.pgh.pa.us> |
| 2023-07-27 [de3f0e3fe] Eliminate fixed token-length limit in hba.c. |
| --> |
| |
| <listitem> |
| <para> |
| Allow <filename>pg_hba.conf</filename> tokens to be of unlimited |
| length (Tom Lane) |
| <ulink url="&commit_baseurl;de3f0e3fe">§</ulink> |
| </para> |
| </listitem> |
| |
| <!-- |
| Author: Michael Paquier <michael@paquier.xyz> |
| 2022-10-26 [c591300a8] Add rule_number to pg_hba_file_rules and map_number to p |
| --> |
| |
| <listitem> |
| <para> |
| Add rule and map numbers to the system view <link |
| linkend="view-pg-hba-file-rules"><structname>pg_hba_file_rules</structname></link> |
| (Julien Rouhaud) |
| <ulink url="&commit_baseurl;c591300a8">§</ulink> |
| </para> |
| </listitem> |
| |
| </itemizedlist> |
| |
| </sect4> |
| |
| <sect4 id="release-16-localization"> |
| <title><link linkend="charset">Localization</link></title> |
| |
| <itemizedlist> |
| |
| <!-- |
| Author: Jeff Davis <jdavis@postgresql.org> |
| 2023-03-10 [c45dc7ffb] initdb: derive encoding from locale for ICU; similar to |
| --> |
| |
| <listitem> |
| <para> |
| Determine the default encoding from the locale when using |
| <acronym>ICU</acronym> (Jeff Davis) |
| <ulink url="&commit_baseurl;c45dc7ffb">§</ulink> |
| </para> |
| |
| <para> |
| Previously the default was always <literal>UTF-8</literal>. |
| </para> |
| </listitem> |
| |
| <!-- |
| Author: Jeff Davis <jdavis@postgresql.org> |
| Date: Fri Jun 16 10:27:32 2023 -0700 |
| --> |
| |
| <listitem> |
| <para> |
| Have <link linkend="sql-createdatabase"><command>CREATE |
| DATABASE</command></link> and <link |
| linkend="sql-createcollation"><command>CREATE |
| COLLATION</command></link>'s <literal>LOCALE</literal> options, and |
| <link linkend="app-initdb"><application>initdb</application></link> |
| and <link |
| linkend="app-createdb"><application>createdb</application></link> |
| <option>--locale</option> options, control |
| non-<application>libc</application> collation providers (Jeff |
| Davis) |
| </para> |
| |
| <para> |
| Previously they only controlled <application>libc</application> |
| providers. |
| </para> |
| </listitem> |
| |
| <!-- |
| Author: Peter Eisentraut <peter@eisentraut.org> |
| 2023-03-10 [0d21d4b9b] Add standard collation UNICODE |
| --> |
| |
| <listitem> |
| <para> |
| Add predefined collations <literal>unicode</literal> and |
| <literal>ucs_basic</literal> (Peter Eisentraut) |
| <ulink url="&commit_baseurl;0d21d4b9b">§</ulink> |
| </para> |
| |
| <para> |
| This only works if <acronym>ICU</acronym> support is enabled. |
| </para> |
| </listitem> |
| |
| <!-- |
| Author: Peter Eisentraut <peter@eisentraut.org> |
| 2023-03-08 [30a53b792] Allow tailoring of ICU locales with custom rules |
| --> |
| |
| <listitem> |
| <para> |
| Allow custom <acronym>ICU</acronym> collation rules to be created |
| (Peter Eisentraut) |
| <ulink url="&commit_baseurl;30a53b792">§</ulink> |
| </para> |
| |
| <para> |
| This is done using <link |
| linkend="sql-createcollation"><command>CREATE |
| COLLATION</command></link>'s new <literal>RULES</literal> |
| clause, as well as new options for <link |
| linkend="sql-createdatabase"><command>CREATE |
| DATABASE</command></link>, <link |
| linkend="app-createdb"><application>createdb</application></link>, |
| and <link |
| linkend="app-initdb"><application>initdb</application></link>. |
| </para> |
| </listitem> |
| |
| <!-- |
| Author: Peter Eisentraut <peter@eisentraut.org> |
| 2023-01-03 [bf03cfd16] Windows support in pg_import_system_collations |
| --> |
| |
| <listitem> |
| <para> |
| Allow <systemitem class="osname">Windows</systemitem> to import |
| system locales automatically (Juan José Santamaría Flecha) |
| <ulink url="&commit_baseurl;bf03cfd16">§</ulink> |
| </para> |
| |
| <para> |
| Previously, only <acronym>ICU</acronym> locales could be imported |
| on <systemitem class="osname">Windows</systemitem>. |
| </para> |
| </listitem> |
| |
| </itemizedlist> |
| |
| </sect4> |
| |
| </sect3> |
| |
| <sect3 id="release-16-logical"> |
| <title><link linkend="logical-replication">Logical Replication</link></title> |
| |
| <itemizedlist> |
| |
| <!-- |
| Author: Andres Freund <andres@anarazel.de> |
| 2023-04-08 [0fdab27ad] Allow logical decoding on standbys |
| Author: Andres Freund <andres@anarazel.de> |
| 2023-04-07 [be87200ef] Support invalidating replication slots due to horizon an |
| Author: Andres Freund <andres@anarazel.de> |
| 2023-04-08 [26669757b] Handle logical slot conflicts on standby |
| --> |
| |
| <listitem> |
| <para> |
| Allow <link linkend="logicaldecoding">logical decoding</link> |
| on standbys (Bertrand Drouvot, Andres Freund, Amit Khandekar) |
| <ulink url="&commit_baseurl;0fdab27ad">§</ulink> |
| <ulink url="&commit_baseurl;be87200ef">§</ulink> |
| <ulink url="&commit_baseurl;26669757b">§</ulink> |
| </para> |
| |
| <para> |
| Snapshot <acronym>WAL</acronym> records are |
| required for logical slot creation but cannot be |
| created on standbys. To avoid delays, the new function <link |
| linkend="functions-snapshot-synchronization-table"><function>pg_log_standby_snapshot()</function></link> |
| allows creation of such records. |
| </para> |
| </listitem> |
| |
| <!-- |
| Author: Amit Kapila <akapila@postgresql.org> |
| 2022-12-26 [5de94a041] Add 'logical_decoding_mode' GUC. |
| Author: Amit Kapila <akapila@postgresql.org> |
| 2023-01-30 [1e8b61735] Rename GUC logical_decoding_mode to logical_replication_ |
| Author: Amit Kapila <akapila@postgresql.org> |
| 2023-02-02 [9f2213a7c] Allow the logical_replication_mode to be used on the sub |
| --> |
| |
| <listitem> |
| <para> |
| Add server variable to control how logical decoding publishers |
| transfer changes and how subscribers apply them (Shi Yu) |
| <ulink url="&commit_baseurl;5de94a041">§</ulink> |
| <ulink url="&commit_baseurl;1e8b61735">§</ulink> |
| <ulink url="&commit_baseurl;9f2213a7c">§</ulink> |
| </para> |
| |
| <para> |
| The variable is <link |
| linkend="guc-debug-logical-replication-streaming"><varname>debug_logical_replication_streaming</varname></link>. |
| </para> |
| </listitem> |
| |
| <!-- |
| Author: Amit Kapila <akapila@postgresql.org> |
| 2023-03-23 [ecb696527] Allow logical replication to copy tables in binary forma |
| --> |
| |
| <listitem> |
| <para> |
| Allow logical replication initial table synchronization to copy |
| rows in binary format (Melih Mutlu) |
| <ulink url="&commit_baseurl;ecb696527">§</ulink> |
| </para> |
| |
| <para> |
| This is only possible for subscriptions marked as binary. |
| </para> |
| </listitem> |
| |
| <!-- |
| Author: Amit Kapila <akapila@postgresql.org> |
| 2023-01-09 [216a78482] Perform apply of large transactions by parallel workers. |
| Author: Amit Kapila <akapila@postgresql.org> |
| 2023-01-10 [cd06ccd78] Document the newly added wait events added by commit 216 |
| Author: Amit Kapila <akapila@postgresql.org> |
| 2023-02-16 [fce003cfd] Add a new wait state and use it when sending data in the |
| --> |
| |
| <listitem> |
| <para> |
| Allow parallel application of logical replication (Hou Zhijie, |
| Wang Wei, Amit Kapila) |
| <ulink url="&commit_baseurl;216a78482">§</ulink> |
| <ulink url="&commit_baseurl;cd06ccd78">§</ulink> |
| <ulink url="&commit_baseurl;fce003cfd">§</ulink> |
| </para> |
| |
| <para> |
| The <link linkend="sql-createsubscription"><command>CREATE |
| SUBSCRIPTION</command></link> <option>STREAMING</option> |
| option now supports <literal>parallel</literal> to enable |
| application of large transactions by parallel workers. The number |
| of parallel workers is controlled by the new server variable <link |
| linkend="guc-max-parallel-apply-workers-per-subscription"><varname>max_parallel_apply_workers_per_subscription</varname></link>. |
| Wait events <link |
| linkend="wait-event-activity-table"><literal>LogicalParallelApplyMain</literal></link>, |
| <literal>LogicalParallelApplyStateChange</literal>, and |
| <literal>LogicalApplySendData</literal> were also added. Column |
| <structfield>leader_pid</structfield> was added to system view <link |
| linkend="monitoring-pg-stat-subscription"><structname>pg_stat_subscription</structname></link> |
| to track parallel activity. |
| </para> |
| </listitem> |
| |
| <!-- |
| Author: Amit Kapila <akapila@postgresql.org> |
| 2023-03-15 [89e46da5e] Allow the use of indexes other than PK and REPLICA IDENT |
| --> |
| |
| <listitem> |
| <para> |
| Improve performance for <link |
| linkend="logical-replication-architecture">logical replication |
| apply</link> without a primary key (Onder Kalaci, Amit Kapila) |
| <ulink url="&commit_baseurl;89e46da5e">§</ulink> |
| </para> |
| |
| <para> |
| Specifically, <literal>REPLICA IDENTITY FULL</literal> can now |
| use btree indexes rather than sequentially scanning the table to |
| find matches. |
| </para> |
| </listitem> |
| |
| <!-- |
| Author: Amit Kapila <akapila@postgresql.org> |
| 2022-07-21 [366283961] Allow users to skip logical replication of data having o |
| Author: Amit Kapila <akapila@postgresql.org> |
| 2022-09-08 [875693019] Raise a warning if there is a possibility of data from m |
| --> |
| |
| <listitem> |
| <para> |
| Allow logical replication subscribers to process only changes that |
| have no origin (Vignesh C, Amit Kapila) |
| <ulink url="&commit_baseurl;366283961">§</ulink> |
| <ulink url="&commit_baseurl;875693019">§</ulink> |
| </para> |
| |
| <para> |
| This can be used to avoid replication loops. This is controlled |
| by the new <literal>CREATE SUBSCRIPTION ... ORIGIN</literal> option. |
| </para> |
| </listitem> |
| |
| <!-- |
| Author: Robert Haas <rhaas@postgresql.org> |
| 2023-04-04 [1e10d49b6] Perform logical replication actions as the table owner. |
| Author: Robert Haas <rhaas@postgresql.org> |
| 2023-04-04 [482675987] Add a run_as_owner option to subscriptions. |
| --> |
| |
| <listitem> |
| <para> |
| Perform logical replication <link |
| linkend="sql-select"><command>SELECT</command></link> and |
| <acronym>DML</acronym> actions as the table owner (Robert Haas) |
| <ulink url="&commit_baseurl;1e10d49b6">§</ulink> |
| <ulink url="&commit_baseurl;482675987">§</ulink> |
| </para> |
| |
| <para> |
| This improves security and now requires subscription |
| owners to be either superusers or to have <link |
| linkend="sql-set-role"><command>SET ROLE</command></link> |
| permission on all roles owning tables in the replication set. |
| The previous behavior of performing all operations as the |
| subscription owner can be enabled with the subscription <link |
| linkend="sql-createsubscription"><option>run_as_owner</option></link> |
| option. |
| </para> |
| </listitem> |
| |
| <!-- |
| Author: Tom Lane <tgl@sss.pgh.pa.us> |
| 2023-01-22 [5a3a95385] Track logrep apply workers' last start times to avoid us |
| --> |
| |
| <listitem> |
| <para> |
| Have <link |
| linkend="guc-wal-retrieve-retry-interval"><varname>wal_retrieve_retry_interval</varname></link> |
| operate on a per-subscription basis (Nathan Bossart) |
| <ulink url="&commit_baseurl;5a3a95385">§</ulink> |
| </para> |
| |
| <para> |
| Previously the retry time was applied |
| globally. This also adds wait events <link |
| linkend="wait-event-lwlock-table">><literal>LogicalRepLauncherDSA</literal></link> |
| and <literal>LogicalRepLauncherHash</literal>. |
| </para> |
| </listitem> |
| |
| </itemizedlist> |
| |
| </sect3> |
| |
| <sect3 id="release-16-utility"> |
| <title>Utility Commands</title> |
| |
| <itemizedlist> |
| |
| <!-- |
| Author: Tom Lane <tgl@sss.pgh.pa.us> |
| 2023-03-24 [3c05284d8] Invent GENERIC_PLAN option for EXPLAIN. |
| --> |
| |
| <listitem> |
| <para> |
| Add <link linkend="sql-explain"><command>EXPLAIN</command></link> |
| option <literal>GENERIC_PLAN</literal> to display the generic plan |
| for a parameterized query (Laurenz Albe) |
| <ulink url="&commit_baseurl;3c05284d8">§</ulink> |
| </para> |
| </listitem> |
| |
| <!-- |
| Author: Andrew Dunstan <andrew@dunslane.net> |
| 2023-03-13 [9f8377f7a] Add a DEFAULT option to COPY FROM |
| --> |
| |
| <listitem> |
| <para> |
| Allow a <link linkend="sql-copy"><command>COPY FROM</command></link> |
| value to map to a column's <literal>DEFAULT</literal> (Israel |
| Barth Rubio) |
| <ulink url="&commit_baseurl;9f8377f7a">§</ulink> |
| </para> |
| </listitem> |
| |
| <!-- |
| Author: Etsuro Fujita <efujita@postgresql.org> |
| 2022-10-13 [97da48246] Allow batch insertion during COPY into a foreign table. |
| --> |
| |
| <listitem> |
| <para> |
| Allow <link linkend="sql-copy"><command>COPY</command></link> |
| into foreign tables to add rows in batches (Andrey Lepikhov, |
| Etsuro Fujita) |
| <ulink url="&commit_baseurl;97da48246">§</ulink> |
| </para> |
| |
| <para> |
| This is controlled by the <link |
| linkend="postgres-fdw"><application>postgres_fdw</application></link> |
| option <link |
| linkend="postgres-fdw-options-cost-estimation"><option>batch_size</option></link>. |
| </para> |
| </listitem> |
| |
| <!-- |
| Author: Peter Eisentraut <peter@eisentraut.org> |
| 2022-07-13 [784cedda0] Allow specifying STORAGE attribute for a new table |
| Author: Tom Lane <tgl@sss.pgh.pa.us> |
| 2022-11-10 [b9424d014] Support writing "CREATE/ALTER TABLE ... SET STORAGE DEFA |
| --> |
| |
| <listitem> |
| <para> |
| Allow the <literal>STORAGE</literal> type to be specified by <link |
| linkend="sql-createtable"><command>CREATE TABLE</command></link> |
| (Teodor Sigaev, Aleksander Alekseev) |
| <ulink url="&commit_baseurl;784cedda0">§</ulink> |
| <ulink url="&commit_baseurl;b9424d014">§</ulink> |
| </para> |
| |
| <para> |
| Previously only <link linkend="sql-altertable"><command>ALTER |
| TABLE</command></link> could control this. |
| </para> |
| </listitem> |
| |
| <!-- |
| Author: Fujii Masao <fujii@postgresql.org> |
| 2022-07-12 [3b00a944a] Support TRUNCATE triggers on foreign tables. |
| --> |
| |
| <listitem> |
| <para> |
| Allow <link linkend="sql-createtrigger">truncate triggers</link> |
| on foreign tables (Yugo Nagata) |
| <ulink url="&commit_baseurl;3b00a944a">§</ulink> |
| </para> |
| </listitem> |
| |
| <!-- |
| Author: Michael Paquier <michael@paquier.xyz> |
| 2023-03-06 [4211fbd84] Add PROCESS_MAIN to VACUUM |
| --> |
| |
| <listitem> |
| <para> |
| Allow <link |
| linkend="sql-vacuum"><command>VACUUM</command></link> and <link |
| linkend="app-vacuumdb"><application>vacuumdb</application></link> |
| to only process <link |
| linkend="storage-toast"><literal>TOAST</literal></link> tables |
| (Nathan Bossart) |
| <ulink url="&commit_baseurl;4211fbd84">§</ulink> |
| </para> |
| |
| <para> |
| This is accomplished by having <link |
| linkend="sql-vacuum"><command>VACUUM</command></link> |
| turn off <literal>PROCESS_MAIN</literal> or by <link |
| linkend="app-vacuumdb"><application>vacuumdb</application></link> |
| using the <option>--no-process-main</option> option. |
| </para> |
| </listitem> |
| |
| <!-- |
| Author: Tom Lane <tgl@sss.pgh.pa.us> |
| 2023-01-06 [a46a7011b] Add options to control whether VACUUM runs vac_update_da |
| --> |
| |
| <listitem> |
| <para> |
| Add <link linkend="sql-vacuum"><command>VACUUM</command></link> |
| options to skip or update all <link |
| linkend="vacuum-for-wraparound">frozen</link> statistics (Tom Lane, |
| Nathan Bossart) |
| <ulink url="&commit_baseurl;a46a7011b">§</ulink> |
| </para> |
| |
| <para> |
| The options are <literal>SKIP_DATABASE_STATS</literal> and |
| <literal>ONLY_DATABASE_STATS</literal>. |
| </para> |
| </listitem> |
| |
| <!-- |
| Author: Michael Paquier <michael@paquier.xyz> |
| 2022-07-19 [2cbc3c17a] Rework logic and simplify syntax of REINDEX DATABASE/SYS |
| Author: Michael Paquier <michael@paquier.xyz> |
| 2022-07-26 [0a5f06b84] Fix a few issues with REINDEX grammar |
| --> |
| |
| <listitem> |
| <para> |
| Change <link linkend="sql-reindex"><command>REINDEX |
| DATABASE</command></link> and <link |
| linkend="sql-reindex"><command>REINDEX SYSTEM</command></link> |
| to no longer require an argument (Simon Riggs) |
| <ulink url="&commit_baseurl;2cbc3c17a">§</ulink> |
| <ulink url="&commit_baseurl;0a5f06b84">§</ulink> |
| </para> |
| |
| <para> |
| Previously the database name had to be specified. |
| </para> |
| </listitem> |
| |
| <!-- |
| Author: Dean Rasheed <dean.a.rasheed@gmail.com> |
| 2022-07-21 [624aa2a13] Make the name optional in CREATE STATISTICS. |
| --> |
| |
| <listitem> |
| <para> |
| Allow <link linkend="sql-createstatistics"><command>CREATE |
| STATISTICS</command></link> to generate a statistics name if none |
| is specified (Simon Riggs) |
| <ulink url="&commit_baseurl;624aa2a13">§</ulink> |
| </para> |
| </listitem> |
| |
| </itemizedlist> |
| |
| </sect3> |
| |
| <sect3 id="release-16-datatypes"> |
| <title>Data Types</title> |
| |
| <itemizedlist> |
| |
| <!-- |
| Author: Peter Eisentraut <peter@eisentraut.org> |
| 2022-12-14 [6fcda9aba] Non-decimal integer literals |
| --> |
| |
| <listitem> |
| <para> |
| Allow non-decimal <link linkend="sql-syntax-bit-strings">integer |
| literals</link> (Peter Eisentraut) |
| <ulink url="&commit_baseurl;6fcda9aba">§</ulink> |
| </para> |
| |
| <para> |
| For example, <literal>0x42F</literal>, <literal>0o273</literal>, |
| and <literal>0b100101</literal>. |
| </para> |
| </listitem> |
| |
| <!-- |
| Author: Dean Rasheed <dean.a.rasheed@gmail.com> |
| 2023-01-23 [6dfacbf72] Add non-decimal integer support to type numeric. |
| --> |
| |
| <listitem> |
| <para> |
| Allow <link linkend="datatype-numeric"><type>NUMERIC</type></link> |
| to process hexadecimal, octal, and binary integers of any size |
| (Dean Rasheed) |
| <ulink url="&commit_baseurl;6dfacbf72">§</ulink> |
| </para> |
| |
| <para> |
| Previously only unquoted eight-byte integers were supported with |
| these non-decimal bases. |
| </para> |
| </listitem> |
| |
| <!-- |
| Author: Dean Rasheed <dean.a.rasheed@gmail.com> |
| 2023-02-04 [faff8f8e4] Allow underscores in integer and numeric constants. |
| --> |
| |
| <listitem> |
| <para> |
| Allow underscores in integer and numeric <link |
| linkend="sql-syntax-bit-strings">constants</link> (Peter Eisentraut, |
| Dean Rasheed) |
| <ulink url="&commit_baseurl;faff8f8e4">§</ulink> |
| </para> |
| |
| <para> |
| This can improve readability for long strings of digits. |
| </para> |
| </listitem> |
| |
| <!-- |
| Author: Tom Lane <tgl@sss.pgh.pa.us> |
| 2023-01-01 [2ceea5adb] Accept "+infinity" in date and timestamp[tz] input. |
| --> |
| |
| <listitem> |
| <para> |
| Accept the spelling <literal>+infinity</literal> in datetime input |
| (Vik Fearing) |
| <ulink url="&commit_baseurl;2ceea5adb">§</ulink> |
| </para> |
| </listitem> |
| |
| <!-- |
| Author: Tom Lane <tgl@sss.pgh.pa.us> |
| 2023-03-09 [bcc704b52] Reject combining "epoch" and "infinity" with other datet |
| --> |
| |
| <listitem> |
| <para> |
| Prevent the specification of <literal>epoch</literal> and |
| <literal>infinity</literal> together with other fields in datetime |
| strings (Joseph Koshakow) |
| <ulink url="&commit_baseurl;bcc704b52">§</ulink> |
| </para> |
| </listitem> |
| |
| <!-- |
| Author: Tom Lane <tgl@sss.pgh.pa.us> |
| 2023-03-16 [5b3c59535] Tighten error checks in datetime input, and remove bogus |
| --> |
| |
| <listitem> |
| <para> |
| Remove undocumented support for date input in the form |
| <literal>Y<replaceable>year</replaceable>M<replaceable>month</replaceable>D<replaceable>day</replaceable></literal> |
| (Joseph Koshakow) |
| <ulink url="&commit_baseurl;5b3c59535">§</ulink> |
| </para> |
| </listitem> |
| |
| <!-- |
| Author: Tom Lane <tgl@sss.pgh.pa.us> |
| 2022-12-09 [1939d2628] Add test scaffolding for soft error reporting from input |
| Author: Michael Paquier <michael@paquier.xyz> |
| 2023-02-28 [b8da37b3a] Rework pg_input_error_message(), now renamed pg_input_er |
| --> |
| |
| <listitem> |
| <para> |
| Add functions <link |
| linkend="functions-info-validity-table"><function>pg_input_is_valid()</function></link> |
| and <function>pg_input_error_info()</function> to check for type |
| conversion errors (Tom Lane) |
| <ulink url="&commit_baseurl;1939d2628">§</ulink> |
| <ulink url="&commit_baseurl;b8da37b3a">§</ulink> |
| </para> |
| </listitem> |
| |
| </itemizedlist> |
| |
| </sect3> |
| |
| <sect3 id="release-16-general"> |
| <title>General Queries</title> |
| |
| <itemizedlist> |
| |
| <!-- |
| Author: Dean Rasheed <dean.a.rasheed@gmail.com> |
| 2022-07-20 [bcedd8f5f] Make subquery aliases optional in the FROM clause. |
| --> |
| |
| <listitem> |
| <para> |
| Allow subqueries in the <literal>FROM</literal> clause to omit |
| aliases (Dean Rasheed) |
| <ulink url="&commit_baseurl;bcedd8f5f">§</ulink> |
| </para> |
| </listitem> |
| |
| <!-- |
| Author: Peter Eisentraut <peter@eisentraut.org> |
| 2023-03-05 [102a5c164] SQL JSON path enhanced numeric literals |
| --> |
| |
| <listitem> |
| <para> |
| Add support for enhanced numeric literals in |
| <acronym>SQL/JSON</acronym> paths (Peter Eisentraut) |
| <ulink url="&commit_baseurl;102a5c164">§</ulink> |
| </para> |
| |
| <para> |
| For example, allow hexadecimal, octal, and binary integers and |
| underscores between digits. |
| </para> |
| </listitem> |
| |
| </itemizedlist> |
| |
| </sect3> |
| |
| <sect3 id="release-16-functions"> |
| <title>Functions</title> |
| |
| <itemizedlist> |
| |
| <!-- |
| Author: Alvaro Herrera <alvherre@alvh.no-ip.org> |
| 2023-03-29 [7081ac46a] SQL/JSON: add standard JSON constructor functions |
| --> |
| |
| <listitem> |
| <para> |
| Add <acronym>SQL/JSON</acronym> constructors (Nikita Glukhov, |
| Teodor Sigaev, Oleg Bartunov, Alexander Korotkov, Amit Langote) |
| <ulink url="&commit_baseurl;7081ac46a">§</ulink> |
| </para> |
| |
| <para> |
| The new functions <link |
| linkend="functions-json-creation-table"><function>JSON_ARRAY()</function></link>, |
| <link |
| linkend="functions-aggregate-table"><function>JSON_ARRAYAGG()</function></link>, |
| <function>JSON_OBJECT()</function>, and |
| <function>JSON_OBJECTAGG()</function> are part of the |
| <acronym>SQL</acronym> standard. |
| </para> |
| </listitem> |
| |
| <!-- |
| Author: Alvaro Herrera <alvherre@alvh.no-ip.org> |
| 2023-03-31 [6ee30209a] SQL/JSON: support the IS JSON predicate |
| --> |
| |
| <listitem> |
| <para> |
| Add <acronym>SQL/JSON</acronym> object checks (Nikita Glukhov, |
| Teodor Sigaev, Oleg Bartunov, Alexander Korotkov, Amit Langote, |
| Andrew Dunstan) |
| <ulink url="&commit_baseurl;6ee30209a">§</ulink> |
| </para> |
| |
| <para> |
| The <link linkend="functions-sqljson-misc"><literal>IS |
| JSON</literal></link> checks include checks for values, arrays, |
| objects, scalars, and unique keys. |
| </para> |
| </listitem> |
| |
| <!-- |
| Author: John Naylor <john.naylor@postgresql.org> |
| 2022-09-02 [0a8de93a4] Speed up lexing of long JSON strings |
| --> |
| |
| <listitem> |
| <para> |
| Allow <acronym>JSON</acronym> string parsing to use vector |
| operations (John Naylor) |
| <ulink url="&commit_baseurl;0a8de93a4">§</ulink> |
| </para> |
| </listitem> |
| |
| <!-- |
| Author: Tom Lane <tgl@sss.pgh.pa.us> |
| 2023-01-19 [5a617d75d] Fix ts_headline() to handle ORs and phrase queries more |
| --> |
| |
| <listitem> |
| <para> |
| Improve the handling of full text highlighting function <link |
| linkend="textsearch-functions-table"><function>ts_headline()</function></link> |
| for <literal>OR</literal> and <literal>NOT</literal> expressions |
| (Tom Lane) |
| <ulink url="&commit_baseurl;5a617d75d">§</ulink> |
| </para> |
| </listitem> |
| |
| <!-- |
| Author: Tom Lane <tgl@sss.pgh.pa.us> |
| 2023-03-18 [75bd846b6] Add functions to do timestamptz arithmetic in a non-defa |
| --> |
| |
| <listitem> |
| <para> |
| Add functions to add, subtract, and generate |
| <type>timestamptz</type> values in a specified time zone (Przemyslaw |
| Sztoch, Gurjeet Singh) |
| <ulink url="&commit_baseurl;75bd846b6">§</ulink> |
| </para> |
| |
| <para> |
| The functions are <link |
| linkend="functions-datetime-table"><function>date_add()</function></link>, |
| <function>date_subtract()</function>, and <link |
| linkend="functions-srf-series"><function>generate_series()</function></link>. |
| </para> |
| </listitem> |
| |
| <!-- |
| Author: Tom Lane <tgl@sss.pgh.pa.us> |
| 2022-11-12 [533e02e92] Fix volatility marking of timestamptz_trunc_zone. |
| --> |
| |
| <listitem> |
| <para> |
| Change <link |
| linkend="functions-datetime-table"><function>date_trunc(unit, |
| timestamptz, time_zone)</function></link> to be an immutable |
| function (Przemyslaw Sztoch) |
| <ulink url="&commit_baseurl;533e02e92">§</ulink> |
| </para> |
| |
| <para> |
| This allows the creation of expression indexes using this function. |
| </para> |
| </listitem> |
| |
| <!-- |
| Author: Michael Paquier <michael@paquier.xyz> |
| 2022-09-29 [0823d061b] Introduce SYSTEM_USER |
| --> |
| |
| <listitem> |
| <para> |
| Add server variable <link |
| linkend="functions-info-session-table"><literal>SYSTEM_USER</literal></link> |
| (Bertrand Drouvot) |
| <ulink url="&commit_baseurl;0823d061b">§</ulink> |
| </para> |
| |
| <para> |
| This reports the authentication method and its authenticated user. |
| </para> |
| </listitem> |
| |
| <!-- |
| Author: Tom Lane <tgl@sss.pgh.pa.us> |
| 2023-04-07 [888f2ea0a] Add array_sample() and array_shuffle() functions. |
| --> |
| |
| <listitem> |
| <para> |
| Add functions <link |
| linkend="array-functions-table"><function>array_sample()</function></link> |
| and <function>array_shuffle()</function> (Martin Kalcher) |
| <ulink url="&commit_baseurl;888f2ea0a">§</ulink> |
| </para> |
| </listitem> |
| |
| <!-- |
| Author: Peter Eisentraut <peter@eisentraut.org> |
| 2023-02-22 [2ddab010c] Implement ANY_VALUE aggregate |
| --> |
| |
| <listitem> |
| <para> |
| Add aggregate function <link |
| linkend="functions-aggregate-table"><function>ANY_VALUE()</function></link> |
| which returns any value from a set (Vik Fearing) |
| <ulink url="&commit_baseurl;2ddab010c">§</ulink> |
| </para> |
| </listitem> |
| |
| <!-- |
| Author: Tom Lane <tgl@sss.pgh.pa.us> |
| 2023-01-09 [38d81760c] Invent random_normal() to provide normally-distributed r |
| --> |
| |
| <listitem> |
| <para> |
| Add function <link |
| linkend="functions-math-random-table"><function>random_normal()</function></link> |
| to supply normally-distributed random numbers (Paul Ramsey) |
| <ulink url="&commit_baseurl;38d81760c">§</ulink> |
| </para> |
| </listitem> |
| |
| <!-- |
| Author: Dean Rasheed <dean.a.rasheed@gmail.com> |
| 2023-03-14 [d5d574146] Add support for the error functions erf() and erfc(). |
| --> |
| |
| <listitem> |
| <para> |
| Add error function <link |
| linkend="functions-math-func-table"><function>erf()</function></link> |
| and its complement <function>erfc()</function> (Dean Rasheed) |
| <ulink url="&commit_baseurl;d5d574146">§</ulink> |
| </para> |
| </listitem> |
| |
| <!-- |
| Author: Dean Rasheed <dean.a.rasheed@gmail.com> |
| 2022-10-20 [40c7fcbbe] Improve the accuracy of numeric power() for integer expo |
| --> |
| |
| <listitem> |
| <para> |
| Improve the accuracy of numeric <link |
| linkend="functions-math-func-table"><function>power()</function></link> |
| for integer exponents (Dean Rasheed) |
| <ulink url="&commit_baseurl;40c7fcbbe">§</ulink> |
| </para> |
| </listitem> |
| |
| <!-- |
| Author: Tom Lane <tgl@sss.pgh.pa.us> |
| 2023-03-15 [483bdb2af] Support [NO] INDENT option in XMLSERIALIZE(). |
| --> |
| |
| <listitem> |
| <para> |
| Add <link |
| linkend="datatype-xml-creating"><function>XMLSERIALIZE()</function></link> |
| option <literal>INDENT</literal> to pretty-print its output |
| (Jim Jones) |
| <ulink url="&commit_baseurl;483bdb2af">§</ulink> |
| </para> |
| </listitem> |
| |
| <!-- |
| Author: Jeff Davis <jdavis@postgresql.org> |
| 2022-10-31 [10932ed5e] Enable pg_collation_actual_version() to work on the defa |
| --> |
| |
| <listitem> |
| <para> |
| Change <link |
| linkend="functions-admin-collation"><function>pg_collation_actual_version()</function></link> |
| to return a reasonable value for the default collation (Jeff Davis) |
| <ulink url="&commit_baseurl;10932ed5e">§</ulink> |
| </para> |
| |
| <para> |
| Previously it returned <literal>NULL</literal>. |
| </para> |
| </listitem> |
| |
| <!-- |
| Author: Tom Lane <tgl@sss.pgh.pa.us> |
| 2022-07-29 [283129e32] Support pg_read_[binary_]file (filename, missing_ok). |
| --> |
| |
| <listitem> |
| <para> |
| Allow <link |
| linkend="functions-admin-genfile-table"><function>pg_read_file()</function></link> |
| and <function>pg_read_binary_file()</function> to ignore missing |
| files (Kyotaro Horiguchi) |
| <ulink url="&commit_baseurl;283129e32">§</ulink> |
| </para> |
| </listitem> |
| |
| <!-- |
| Author: Peter Eisentraut <peter@eisentraut.org> |
| 2023-03-07 [ce1215d9b] Add support for unit "B" to pg_size_bytes() |
| --> |
| |
| <listitem> |
| <para> |
| Add byte specification (<literal>B</literal>) to <link |
| linkend="functions-admin-dbsize"><function>pg_size_bytes()</function></link> |
| (Peter Eisentraut) |
| <ulink url="&commit_baseurl;ce1215d9b">§</ulink> |
| </para> |
| </listitem> |
| |
| <!-- |
| Author: Tom Lane <tgl@sss.pgh.pa.us> |
| 2022-12-27 [3ea7329c9] Simplify the implementations of the to_reg* functions. |
| --> |
| |
| <listitem> |
| <para> |
| Allow <link |
| linkend="functions-info-catalog-table"><function>to_reg</function></link>* |
| functions to accept numeric <acronym>OID</acronym>s as input |
| (Tom Lane) |
| <ulink url="&commit_baseurl;3ea7329c9">§</ulink> |
| </para> |
| </listitem> |
| |
| </itemizedlist> |
| |
| </sect3> |
| |
| <sect3 id="release-16-plpgsql"> |
| <title><link linkend="plpgsql">PL/pgSQL</link></title> |
| |
| <itemizedlist> |
| |
| <!-- |
| Author: Tom Lane <tgl@sss.pgh.pa.us> |
| 2023-04-04 [d3d53f955] Add a way to get the current function's OID in pl/pgsql. |
| --> |
| |
| <listitem> |
| <para> |
| Add the ability to get the current function's <acronym>OID</acronym> |
| in <application>PL/pgSQL</application> (Pavel Stehule) |
| <ulink url="&commit_baseurl;d3d53f955">§</ulink> |
| </para> |
| |
| <para> |
| This is accomplished with <link |
| linkend="plpgsql-statements-diagnostics"><command>GET DIAGNOSTICS |
| variable = PG_ROUTINE_OID</command></link>. |
| </para> |
| </listitem> |
| |
| </itemizedlist> |
| |
| </sect3> |
| |
| <sect3 id="release-16-libpq"> |
| <title><link linkend="libpq">libpq</link></title> |
| |
| <itemizedlist> |
| |
| <!-- |
| Author: Michael Paquier <michael@paquier.xyz> |
| 2023-03-14 [3a465cc67] libpq: Add support for require_auth to control authorize |
| --> |
| |
| <listitem> |
| <para> |
| Add <application>libpq</application> connection option <link |
| linkend="libpq-connect-require-auth"><option>require_auth</option></link> |
| to specify a list of acceptable authentication methods (Jacob |
| Champion) |
| <ulink url="&commit_baseurl;3a465cc67">§</ulink> |
| </para> |
| |
| <para> |
| This can also be used to disallow certain authentication methods. |
| </para> |
| </listitem> |
| |
| <!-- |
| Author: Daniel Gustafsson <dgustafsson@postgresql.org> |
| 2023-03-29 [7f5b19817] Support connection load balancing in libpq |
| Author: Fujii Masao <fujii@postgresql.org> |
| 2023-04-21 [0a16512d4] doc: Add documentation for PGLOADBALANCEHOSTS environmen |
| --> |
| |
| <listitem> |
| <para> |
| Allow multiple <application>libpq</application>-specified hosts |
| to be randomly selected (Jelte Fennema) |
| <ulink url="&commit_baseurl;7f5b19817">§</ulink> |
| <ulink url="&commit_baseurl;0a16512d4">§</ulink> |
| </para> |
| |
| <para> |
| This is enabled with <link |
| linkend="libpq-connect-load-balance-hosts"><literal>load_balance_hosts=random</literal></link> |
| and can be used for load balancing. |
| </para> |
| </listitem> |
| |
| <!-- |
| Author: Michael Paquier <michael@paquier.xyz> |
| 2023-03-24 [36f40ce2d] libpq: Add sslcertmode option to control client certific |
| --> |
| |
| <listitem> |
| <para> |
| Add <application>libpq</application> option <link |
| linkend="libpq-connect-sslcertmode"><option>sslcertmode</option></link> |
| to control transmission of the client certificate (Jacob Champion) |
| <ulink url="&commit_baseurl;36f40ce2d">§</ulink> |
| </para> |
| |
| <para> |
| The option values are <literal>disable</literal>, |
| <literal>allow</literal>, and <literal>require</literal>. |
| </para> |
| </listitem> |
| |
| <!-- |
| Author: Daniel Gustafsson <dgustafsson@postgresql.org> |
| 2023-04-05 [8eda73146] Allow to use system CA pool for certificate verification |
| --> |
| |
| <listitem> |
| <para> |
| Allow <application>libpq</application> to use the system certificate |
| pool for certificate verification (Jacob Champion, Thomas Habets) |
| <ulink url="&commit_baseurl;8eda73146">§</ulink> |
| </para> |
| |
| <para> |
| This is enabled with <link |
| linkend="libpq-connect-sslrootcert"><literal>sslrootcert=system</literal></link>, |
| which also enables <link |
| linkend="libpq-connect-sslmode"><literal>sslmode=verify-full</literal></link>. |
| </para> |
| </listitem> |
| |
| </itemizedlist> |
| |
| </sect3> |
| |
| <sect3 id="release-16-client-apps"> |
| <title>Client Applications</title> |
| |
| <itemizedlist> |
| |
| <!-- |
| Author: Tom Lane <tgl@sss.pgh.pa.us> |
| 2022-07-12 [83f1c7b74] Fix ECPG's handling of type names that match SQL keyword |
| --> |
| |
| <listitem> |
| <para> |
| Allow <link linkend="ecpg"><command>ECPG</command></link> |
| variable declarations to use typedef names that match unreserved |
| <acronym>SQL</acronym> keywords (Tom Lane) |
| <ulink url="&commit_baseurl;83f1c7b74">§</ulink> |
| </para> |
| |
| <para> |
| This change does prevent keywords which match C typedef names from |
| being processed as keywords in later <command>EXEC SQL</command> |
| blocks. |
| </para> |
| </listitem> |
| |
| </itemizedlist> |
| |
| <sect4 id="release-16-psql"> |
| <title><xref linkend="app-psql"/></title> |
| |
| <itemizedlist> |
| |
| <!-- |
| Author: Andrew Dunstan <andrew@dunslane.net> |
| 2022-07-25 [a45388d6e] Add xheader_width pset option to psql |
| --> |
| |
| <listitem> |
| <para> |
| Allow <application>psql</application> to control the maximum |
| width of header lines in expanded format (Platon Pronko) |
| <ulink url="&commit_baseurl;a45388d6e">§</ulink> |
| </para> |
| |
| <para> |
| This is controlled by <link |
| linkend="app-psql-meta-command-pset-xheader-width"><option>xheader_width</option></link>. |
| </para> |
| </listitem> |
| |
| <!-- |
| Author: Dean Rasheed <dean.a.rasheed@gmail.com> |
| 2023-01-07 [d913928c9] psql: Add support for \dpS and \zS. |
| Author: Tom Lane <tgl@sss.pgh.pa.us> |
| 2023-07-19 [d65ddaca9] Add psql \drg command to display role |
| --> |
| |
| <listitem> |
| <para> |
| Add <application>psql</application> command <link |
| linkend="app-psql-meta-command-drg"><command>\drg</command></link> |
| to show role membership details (Pavel Luzanov) |
| <ulink url="&commit_baseurl;d913928c9">§</ulink> |
| <ulink url="&commit_baseurl;d65ddaca9">§</ulink> |
| </para> |
| |
| <para> |
| The <literal>Member of</literal> output column has been removed |
| from <command>\du</command> and <command>\dg</command> because |
| this new command displays this information in more detail. |
| </para> |
| </listitem> |
| |
| <!-- |
| Author: Dean Rasheed <dean.a.rasheed@gmail.com> |
| 2023-01-07 [d913928c9] psql: Add support for \dpS and \zS. |
| Author: Tom Lane <tgl@sss.pgh.pa.us> |
| 2023-07-19 [d65ddaca9] Add psql \drg command to display role |
| --> |
| |
| <listitem> |
| <para> |
| Allow <application>psql</application>'s access privilege commands |
| to show system objects (Nathan Bossart) |
| <ulink url="&commit_baseurl;d913928c9">§</ulink> |
| <ulink url="&commit_baseurl;d65ddaca9">§</ulink> |
| </para> |
| |
| <para> |
| The options are <link |
| linkend="app-psql-meta-command-dp-lc"><command>\dpS</command></link> |
| and <link |
| linkend="app-psql-meta-command-z"><command>\zS</command></link>. |
| </para> |
| </listitem> |
| |
| <!-- |
| Author: Michael Paquier <michael@paquier.xyz> |
| 2022-11-08 [bd95816f7] psql: Add information in \d+ about foreign partitions an |
| --> |
| |
| <listitem> |
| <para> |
| Add <literal>FOREIGN</literal> designation |
| to <application>psql</application> <link |
| linkend="app-psql-meta-command-d"><command>\d+</command></link> |
| for foreign table children and partitions (Ian Lawrence Barwick) |
| <ulink url="&commit_baseurl;bd95816f7">§</ulink> |
| </para> |
| </listitem> |
| |
| <!-- |
| Author: Tom Lane <tgl@sss.pgh.pa.us> |
| 2023-03-02 [3dfae91f7] Show "internal name" not "source code" in psql's \df+ co |
| --> |
| |
| <listitem> |
| <para> |
| Prevent <link |
| linkend="app-psql-meta-command-df-uc"><command>\df+</command></link> |
| from showing function source code (Isaac Morland) |
| <ulink url="&commit_baseurl;3dfae91f7">§</ulink> |
| </para> |
| |
| <para> |
| Function bodies are more easily viewed with <link |
| linkend="app-psql-meta-command-sf"><command>\sf</command></link>. |
| </para> |
| </listitem> |
| |
| <!-- |
| Author: Peter Eisentraut <peter@eisentraut.org> |
| 2022-11-15 [5b66de343] psql: Add command to use extended query protocol |
| --> |
| |
| <listitem> |
| <para> |
| Allow <application>psql</application> to submit queries using |
| the extended query protocol (Peter Eisentraut) |
| <ulink url="&commit_baseurl;5b66de343">§</ulink> |
| </para> |
| |
| <para> |
| Passing arguments to such queries is done |
| using the new <application>psql</application> <link |
| linkend="app-psql-meta-command-bind"><command>\bind</command></link> |
| command. |
| </para> |
| </listitem> |
| |
| <!-- |
| Author: Tom Lane <tgl@sss.pgh.pa.us> |
| 2023-04-06 [00beecfe8] psql: add an optional execution-count limit to \watch. |
| --> |
| |
| <listitem> |
| <para> |
| Allow <application>psql</application> <link |
| linkend="app-psql-meta-command-watch"><command>\watch</command></link> |
| to limit the number of executions (Andrey Borodin) |
| <ulink url="&commit_baseurl;00beecfe8">§</ulink> |
| </para> |
| |
| <para> |
| The <command>\watch</command> options can now be named when |
| specified. |
| </para> |
| </listitem> |
| |
| <!-- |
| Author: Michael Paquier <michael@paquier.xyz> |
| 2023-03-16 [6f9ee74d4] Improve handling of psql \watch's interval argument |
| --> |
| |
| <listitem> |
| <para> |
| Detect invalid values for <application>psql</application> <link |
| linkend="app-psql-meta-command-watch"><command>\watch</command></link>, |
| and allow zero to specify no delay (Andrey Borodin) |
| <ulink url="&commit_baseurl;6f9ee74d4">§</ulink> |
| </para> |
| </listitem> |
| |
| <!-- |
| Author: Tom Lane <tgl@sss.pgh.pa.us> |
| 2023-03-21 [b0d8f2d98] Add SHELL_ERROR and SHELL_EXIT_CODE magic variables to p |
| Author: Tom Lane <tgl@sss.pgh.pa.us> |
| 2023-04-06 [31ae2aa9d] psql: set SHELL_ERROR and SHELL_EXIT_CODE in more places |
| --> |
| |
| <listitem> |
| <para> |
| Allow <application>psql</application> scripts to obtain the exit |
| status of shell commands and queries |
| (Corey Huinker, Tom Lane) |
| <ulink url="&commit_baseurl;b0d8f2d98">§</ulink> |
| <ulink url="&commit_baseurl;31ae2aa9d">§</ulink> |
| </para> |
| |
| <para> |
| The new <application>psql</application> control variables are <link |
| linkend="app-psql-variables-shell-error"><literal>SHELL_ERROR</literal></link> |
| and <link |
| linkend="app-psql-variables-shell-exit-code"><literal>SHELL_EXIT_CODE</literal></link>. |
| </para> |
| </listitem> |
| |
| <!-- |
| Author: Michael Paquier <michael@paquier.xyz> |
| 2022-08-15 [f6c750d31] Improve tab completion of ALTER TYPE in psql |
| Author: Michael Paquier <michael@paquier.xyz> |
| 2022-09-06 [4cbe57974] Add psql tab compression for SET COMPRESSION with ALTER |
| Author: Michael Paquier <michael@paquier.xyz> |
| 2022-09-10 [6afcab6ac] Add psql tab compression for ALTER TABLE .. { OF | NOT O |
| Author: Michael Paquier <michael@paquier.xyz> |
| 2022-10-05 [9aa58d48f] Add a few new patterns to the tab completion of psql |
| Author: Michael Paquier <michael@paquier.xyz> |
| 2022-10-24 [3cf2f7af7] Improve tab completion for ALTER STATISTICS <name> SET i |
| Author: Peter Eisentraut <peter@eisentraut.org> |
| 2022-11-01 [2ea5de296] psql: Improve tab completion for ALTER TABLE on identity |
| Author: Michael Paquier <michael@paquier.xyz> |
| 2022-11-18 [07f7237c2] psql: Improve tab completion for GRANT/REVOKE |
| Author: Michael Paquier <michael@paquier.xyz> |
| 2022-12-12 [9d0cf5749] Add support for GRANT SET in psql tab completion |
| Author: Dean Rasheed <dean.a.rasheed@gmail.com> |
| 2023-01-06 [a3bc631ea] Improve tab completion for ALTER FUNCTION/PROCEDURE/ROUT |
| Author: Michael Paquier <michael@paquier.xyz> |
| 2023-01-12 [2ff5ca86e] Add support for tab completion after ALTER EXTENSION ADD |
| Author: Tom Lane <tgl@sss.pgh.pa.us> |
| 2023-04-19 [9e1e9d656] Add missed case for tab completion of GRANT/REVOKE MAINT |
| Author: Amit Kapila <akapila@postgresql.org> |
| 2023-04-07 [96c498d2f] Add tab-completion for newly added SUBSCRIPTION options. |
| --> |
| |
| <listitem> |
| <para> |
| Various <application>psql</application> tab completion improvements |
| (Vignesh C, Aleksander Alekseev, Dagfinn Ilmari Mannsåker, |
| Shi Yu, Michael Paquier, Ken Kato, Peter Smith) |
| <ulink url="&commit_baseurl;f6c750d31">§</ulink> |
| <ulink url="&commit_baseurl;4cbe57974">§</ulink> |
| <ulink url="&commit_baseurl;6afcab6ac">§</ulink> |
| <ulink url="&commit_baseurl;9aa58d48f">§</ulink> |
| <ulink url="&commit_baseurl;3cf2f7af7">§</ulink> |
| <ulink url="&commit_baseurl;2ea5de296">§</ulink> |
| <ulink url="&commit_baseurl;07f7237c2">§</ulink> |
| <ulink url="&commit_baseurl;9d0cf5749">§</ulink> |
| <ulink url="&commit_baseurl;a3bc631ea">§</ulink> |
| <ulink url="&commit_baseurl;2ff5ca86e">§</ulink> |
| <ulink url="&commit_baseurl;9e1e9d656">§</ulink> |
| <ulink url="&commit_baseurl;96c498d2f">§</ulink> |
| </para> |
| </listitem> |
| |
| </itemizedlist> |
| |
| </sect4> |
| |
| <sect4 id="release-16-pgdump"> |
| <title><link linkend="app-pgdump"><application>pg_dump</application></link></title> |
| |
| <itemizedlist> |
| |
| <!-- |
| Author: Tom Lane <tgl@sss.pgh.pa.us> |
| 2023-03-14 [a563c24c9] Allow pg_dump to include/exclude child tables automatica |
| --> |
| |
| <listitem> |
| <para> |
| Add <application>pg_dump</application> control of dumping child |
| tables and partitions (Gilles Darold) |
| <ulink url="&commit_baseurl;a563c24c9">§</ulink> |
| </para> |
| |
| <para> |
| The new options are <option>--table-and-children</option>, |
| <option>--exclude-table-and-children</option>, and |
| <option>--exclude-table-data-and-children</option>. |
| </para> |
| </listitem> |
| |
| <!-- |
| Author: Tomas Vondra <tomas.vondra@postgresql.org> |
| 2023-02-23 [0da243fed] Add LZ4 compression to pg_dump |
| Author: Tomas Vondra <tomas.vondra@postgresql.org> |
| 2023-04-01 [0070b66fe] pg_dump: Use only LZ4 frame format for compression |
| Author: Tomas Vondra <tomas.vondra@postgresql.org> |
| 2023-04-05 [84adc8e20] pg_dump: Add support for zstd compression--> |
| |
| <listitem> |
| <para> |
| Add <application>LZ4</application> and |
| <application>Zstandard</application> compression to |
| <application>pg_dump</application> (Georgios Kokolatos, Justin |
| Pryzby) |
| </para> |
| </listitem> |
| |
| <!-- |
| Author: Tomas Vondra <tomas.vondra@postgresql.org> |
| 2023-04-06 [2820adf77] Support long distance matching for zstd compression |
| --> |
| |
| <listitem> |
| <para> |
| Allow <application>pg_dump</application> and <link |
| linkend="app-pgbasebackup"><application>pg_basebackup</application></link> |
| to use <literal>long</literal> mode for compression (Justin Pryzby) |
| <ulink url="&commit_baseurl;0da243fed">§</ulink> |
| <ulink url="&commit_baseurl;0070b66fe">§</ulink> |
| <ulink url="&commit_baseurl;84adc8e20">§</ulink> |
| <ulink url="&commit_baseurl;2820adf77">§</ulink> |
| </para> |
| </listitem> |
| |
| <!-- |
| Author: Michael Paquier <michael@paquier.xyz> |
| 2022-12-02 [5e73a6048] Switch pg_dump to use compression specifications |
| --> |
| |
| <listitem> |
| <para> |
| Improve <application>pg_dump</application> to accept a more |
| consistent compression syntax (Georgios Kokolatos) |
| <ulink url="&commit_baseurl;5e73a6048">§</ulink> |
| </para> |
| |
| <para> |
| Options like <option>--compress=gzip:5</option>. |
| </para> |
| </listitem> |
| |
| </itemizedlist> |
| |
| </sect4> |
| |
| </sect3> |
| |
| <sect3 id="release-16-server-apps"> |
| <title>Server Applications</title> |
| |
| <itemizedlist> |
| |
| <!-- |
| Author: Tom Lane <tgl@sss.pgh.pa.us> 2023-03-22 |
| [3e51b278d] Add "-c name=value" switch to initdb. |
| --> |
| |
| <listitem> |
| <para> |
| Add <link |
| linkend="app-initdb"><application>initdb</application></link> |
| option to set server variables for the duration of |
| <application>initdb</application> and all future server starts |
| (Tom Lane) |
| <ulink url="&commit_baseurl;3e51b278d">§</ulink> |
| </para> |
| |
| <para> |
| The option is <option>-c name=value</option>. |
| </para> |
| </listitem> |
| |
| <!-- |
| Author: Michael Paquier <michael@paquier.xyz> |
| 2022-07-13 [08951a7c9] createuser: Add support for more clause types through ne |
| Author: Nathan Bossart <nathan@postgresql.org> |
| 2023-05-21 [2dcd1578c] Rename some createuser options. |
| --> |
| |
| <listitem> |
| <para> |
| Add options to <link |
| linkend="app-createuser"><application>createuser</application></link> |
| to control more user options (Shinya Kato) |
| <ulink url="&commit_baseurl;08951a7c9">§</ulink> |
| <ulink url="&commit_baseurl;2dcd1578c">§</ulink> |
| </para> |
| |
| <para> |
| Specifically, the new options control the valid-until date, |
| bypassing of row-level security, and role membership. |
| </para> |
| </listitem> |
| |
| <!-- |
| Author: Nathan Bossart <nathan@postgresql.org> |
| 2023-05-21 [2dcd1578c] Rename some createuser options. |
| Author: Nathan Bossart <nathan@postgresql.org> |
| 2023-05-23 [381d19b3e] Document deprecated createuser option. |
| --> |
| |
| <listitem> |
| <para> |
| Deprecate <link |
| linkend="app-createuser"><application>createuser</application></link> |
| option <option>--role</option> (Nathan Bossart) |
| <ulink url="&commit_baseurl;2dcd1578c">§</ulink> |
| <ulink url="&commit_baseurl;381d19b3e">§</ulink> |
| </para> |
| |
| <para> |
| This option could be easily confused with new |
| <application>createuser</application> role membership options, |
| so option <option>--member-of</option> has been added with the |
| same functionality. The <option>--role</option> option can still |
| be used. |
| </para> |
| </listitem> |
| |
| <!-- |
| Author: Andrew Dunstan <andrew@dunslane.net> |
| 2022-07-31 [7781f4e3e] Add - -schema and - -exclude-schema options to vacuumdb. |
| --> |
| |
| <listitem> |
| <para> |
| Allow control of <link |
| linkend="app-vacuumdb"><application>vacuumdb</application></link> |
| schema processing (Gilles Darold) |
| <ulink url="&commit_baseurl;7781f4e3e">§</ulink> |
| </para> |
| |
| <para> |
| These are controlled by options <option>--schema</option> and |
| <option>--exclude-schema</option>. |
| </para> |
| </listitem> |
| |
| <!-- |
| Author: Tom Lane <tgl@sss.pgh.pa.us> |
| 2023-01-06 [a46a7011b] Add options to control whether VACUUM runs vac_update_da |
| --> |
| |
| <listitem> |
| <para> |
| Use new <link linkend="sql-vacuum"><command>VACUUM</command></link> |
| options to improve the performance of <link |
| linkend="app-vacuumdb"><application>vacuumdb</application></link> |
| (Tom Lane, Nathan Bossart) |
| <ulink url="&commit_baseurl;a46a7011b">§</ulink> |
| </para> |
| </listitem> |
| |
| <!-- |
| Author: Jeff Davis <jdavis@postgresql.org> |
| 2023-03-09 [9637badd9] pg_upgrade: copy locale and encoding information to new |
| --> |
| |
| <listitem> |
| <para> |
| Have <link |
| linkend="pgupgrade"><application>pg_upgrade</application></link> |
| set the new cluster's locale and encoding (Jeff Davis) |
| <ulink url="&commit_baseurl;9637badd9">§</ulink> |
| </para> |
| |
| <para> |
| This removes the requirement that the new cluster be created with |
| the same locale and encoding settings. |
| </para> |
| </listitem> |
| |
| <!-- |
| Author: Peter Eisentraut <peter@eisentraut.org> |
| 2022-12-16 [746915c68] pg_upgrade: Add - -copy option |
| --> |
| |
| <listitem> |
| <para> |
| Add <link |
| linkend="pgupgrade"><application>pg_upgrade</application></link> |
| option to specify the default transfer mode (Peter Eisentraut) |
| <ulink url="&commit_baseurl;746915c68">§</ulink> |
| </para> |
| |
| <para> |
| The option is <option>--copy</option>. |
| </para> |
| </listitem> |
| |
| <!-- |
| Author: Michael Paquier <michael@paquier.xyz> |
| 2022-11-30 [d18655cc0] Refactor code parsing compression option values (-Z/- -co |
| --> |
| |
| <listitem> |
| <para> |
| Improve <link |
| linkend="app-pgbasebackup"><application>pg_basebackup</application></link> |
| to accept numeric compression options (Georgios Kokolatos, |
| Michael Paquier) |
| <ulink url="&commit_baseurl;d18655cc0">§</ulink> |
| </para> |
| |
| <para> |
| Options like <option>--compress=server-5</option> are now supported. |
| </para> |
| </listitem> |
| |
| <!-- |
| Author: Robert Haas <rhaas@postgresql.org> |
| 2023-04-18 [363e8f911] Fix pg_basebackup with in-place tablespaces some more. |
| --> |
| |
| <listitem> |
| <para> |
| Fix <link |
| linkend="app-pgbasebackup"><application>pg_basebackup</application></link> |
| to handle tablespaces stored in the <envar>PGDATA</envar> directory |
| (Robert Haas) |
| <ulink url="&commit_baseurl;363e8f911">§</ulink> |
| </para> |
| </listitem> |
| |
| <!-- |
| Author: Michael Paquier <michael@paquier.xyz> |
| 2022-12-27 [d497093cb] pg_waldump: Add - -save-fullpage=PATH to save full page i |
| --> |
| |
| <listitem> |
| <para> |
| Add <link |
| linkend="pgwaldump"><application>pg_waldump</application></link> |
| option <option>--save-fullpage</option> to dump full page images |
| (David Christensen) |
| <ulink url="&commit_baseurl;d497093cb">§</ulink> |
| </para> |
| </listitem> |
| |
| <!-- |
| Author: Peter Eisentraut <peter@eisentraut.org> |
| 2023-03-21 [4c8044c04] pg_waldump: Allow hexadecimal values for -t/- -timeline o |
| --> |
| |
| <listitem> |
| <para> |
| Allow <link |
| linkend="pgwaldump"><application>pg_waldump</application></link> |
| options <option>-t</option>/<option>--timeline</option> to accept |
| hexadecimal values (Peter Eisentraut) |
| <ulink url="&commit_baseurl;4c8044c04">§</ulink> |
| </para> |
| </listitem> |
| |
| <!-- |
| Author: Michael Paquier <michael@paquier.xyz> |
| 2023-02-06 [d07c2948b] Add support for progress reporting to pg_verifybackup |
| --> |
| |
| <listitem> |
| <para> |
| Add support for progress reporting to <link |
| linkend="app-pgverifybackup"><application>pg_verifybackup</application></link> |
| (Masahiko Sawada) |
| <ulink url="&commit_baseurl;d07c2948b">§</ulink> |
| </para> |
| </listitem> |
| |
| <!-- |
| Author: Heikki Linnakangas <heikki.linnakangas@iki.fi> |
| 2023-02-23 [009eeee74] pg_rewind: Fix determining TLI when server was just prom |
| Author: Heikki Linnakangas <heikki.linnakangas@iki.fi> |
| 2023-02-27 [0a0500207] pg_rewind: Remove notice in docs about running CHECKPOIN |
| --> |
| |
| <listitem> |
| <para> |
| Allow <link |
| linkend="app-pgrewind"><application>pg_rewind</application></link> |
| to properly track timeline changes (Heikki Linnakangas) |
| <ulink url="&commit_baseurl;009eeee74">§</ulink> |
| <ulink url="&commit_baseurl;0a0500207">§</ulink> |
| </para> |
| |
| <para> |
| Previously if <application>pg_rewind</application> was run after |
| a timeline switch but before a checkpoint was issued, it might |
| incorrectly determine that a rewind was unnecessary. |
| </para> |
| </listitem> |
| |
| <!-- |
| Author: Daniel Gustafsson <dgustafsson@postgresql.org> |
| 2022-09-14 [8b60db774] Handle SIGTERM in pg_receivewal and pg_recvlogical |
| --> |
| |
| <listitem> |
| <para> |
| Have <link |
| linkend="app-pgreceivewal"><application>pg_receivewal</application></link> |
| and <link |
| linkend="app-pgrecvlogical"><application>pg_recvlogical</application></link> |
| cleanly exit on <literal>SIGTERM</literal> (Christoph Berg) |
| <ulink url="&commit_baseurl;8b60db774">§</ulink> |
| </para> |
| |
| <para> |
| This signal is often used by <application>systemd</application>. |
| </para> |
| </listitem> |
| |
| </itemizedlist> |
| |
| </sect3> |
| |
| <sect3 id="release-16-source-code"> |
| <title>Source Code</title> |
| |
| <itemizedlist> |
| |
| <!-- |
| Author: Jeff Davis <jdavis@postgresql.org> |
| 2023-04-18 [fcb21b3ac] Build ICU support by default. |
| --> |
| |
| <listitem> |
| <para> |
| Build <acronym>ICU</acronym> support by default (Jeff Davis) |
| <ulink url="&commit_baseurl;fcb21b3ac">§</ulink> |
| </para> |
| |
| <para> |
| This removes <link linkend="installation">build |
| flag</link> <option>--with-icu</option> and adds flag |
| <option>--without-icu</option>. |
| </para> |
| </listitem> |
| |
| <!-- |
| Author: John Naylor <john.naylor@postgresql.org> |
| 2022-08-04 [56f2c7b58] Support SSE2 intrinsics where available |
| --> |
| |
| <listitem> |
| <para> |
| Add support for SSE2 (Streaming <acronym>SIMD</acronym> Extensions |
| 2) vector operations on x86-64 architectures (John Naylor) |
| <ulink url="&commit_baseurl;56f2c7b58">§</ulink> |
| </para> |
| </listitem> |
| |
| <!-- |
| Author: John Naylor <john.naylor@postgresql.org> |
| 2022-08-29 [82739d4a8] Use ARM Advanced SIMD (NEON) intrinsics where available |
| --> |
| |
| <listitem> |
| <para> |
| Add support for Advanced <acronym>SIMD</acronym> (Single |
| Instruction Multiple Data) (<acronym>NEON</acronym>) instructions |
| on <acronym>ARM</acronym> architectures (Nathan Bossart) |
| <ulink url="&commit_baseurl;82739d4a8">§</ulink> |
| </para> |
| </listitem> |
| |
| <!-- |
| Author: Michael Paquier <michael@paquier.xyz> |
| 2022-08-28 [36389a060] Enable RandomizedBaseAddress (ASLR) on Windows with MSVC |
| --> |
| |
| <listitem> |
| <para> |
| Have <systemitem class="osname">Windows</systemitem> |
| binaries built with <productname>MSVC</productname> use |
| <literal>RandomizedBaseAddress</literal> (<acronym>ASLR</acronym>) |
| (Michael Paquier) |
| <ulink url="&commit_baseurl;36389a060">§</ulink> |
| </para> |
| |
| <para> |
| This was already enabled on <productname>MinGW</productname> builds. |
| </para> |
| </listitem> |
| |
| <!-- |
| Author: Andres Freund <andres@anarazel.de> |
| 2022-07-17 [089480c07] Default to hidden visibility for extension libraries whe |
| Author: Andres Freund <andres@anarazel.de> |
| 2022-07-17 [8cf64d35e] Mark all symbols exported from extension libraries PGDLL |
| --> |
| |
| <listitem> |
| <para> |
| Prevent extension libraries from exporting their symbols by default |
| (Andres Freund, Tom Lane) |
| <ulink url="&commit_baseurl;089480c07">§</ulink> |
| <ulink url="&commit_baseurl;8cf64d35e">§</ulink> |
| </para> |
| |
| <para> |
| Functions that need to be called from the core backend |
| or other extensions must now be explicitly marked |
| <literal>PGDLLEXPORT</literal>. |
| </para> |
| </listitem> |
| |
| <!-- |
| Author: Michael Paquier <michael@paquier.xyz> |
| 2022-07-07 [495ed0ef2] Make Windows 10 the minimal runtime requirement for WIN3 |
| --> |
| |
| <listitem> |
| <para> |
| Require <systemitem class="osname">Windows 10</systemitem> or |
| newer versions (Michael Paquier, Juan José Santamaría Flecha) |
| <ulink url="&commit_baseurl;495ed0ef2">§</ulink> |
| </para> |
| |
| <para> |
| Previously <systemitem class="osname">Windows Vista</systemitem> and |
| <systemitem class="osname">Windows XP</systemitem> were supported. |
| </para> |
| </listitem> |
| |
| <!-- |
| Author: John Naylor <john.naylor@postgresql.org> |
| 2022-09-14 [4c1532763] Bump minimum Perl version to 5.14 |
| --> |
| |
| <listitem> |
| <para> |
| Require <productname>Perl</productname> version 5.14 or later |
| (John Naylor) |
| <ulink url="&commit_baseurl;4c1532763">§</ulink> |
| </para> |
| </listitem> |
| |
| <!-- |
| Author: John Naylor <john.naylor@postgresql.org> |
| 2022-09-09 [b086a47a2] Bump minimum version of Bison to 2.3 |
| --> |
| |
| <listitem> |
| <para> |
| Require <productname>Bison</productname> version 2.3 or later |
| (John Naylor) |
| <ulink url="&commit_baseurl;b086a47a2">§</ulink> |
| </para> |
| </listitem> |
| |
| <!-- |
| Author: John Naylor <john.naylor@postgresql.org> |
| 2022-09-09 [8b878bffa] Bump minimum version of Flex to 2.5.35 |
| --> |
| |
| <listitem> |
| <para> |
| Require <productname>Flex</productname> version 2.5.35 or later |
| (John Naylor) |
| <ulink url="&commit_baseurl;8b878bffa">§</ulink> |
| </para> |
| </listitem> |
| |
| <!-- |
| Author: Stephen Frost <sfrost@snowman.net> |
| 2023-04-13 [f7431bca8] Explicitly require MIT Kerberos for GSSAPI |
| --> |
| |
| <listitem> |
| <para> |
| Require <acronym>MIT</acronym> Kerberos for |
| <acronym>GSSAPI</acronym> support (Stephen Frost) |
| <ulink url="&commit_baseurl;f7431bca8">§</ulink> |
| </para> |
| </listitem> |
| |
| <!-- |
| Author: Michael Paquier <michael@paquier.xyz> |
| 2022-07-14 [6203583b7] Remove support for Visual Studio 2013 |
| --> |
| |
| <listitem> |
| <para> |
| Remove support for <productname>Visual Studio 2013</productname> |
| (Michael Paquier) |
| <ulink url="&commit_baseurl;6203583b7">§</ulink> |
| </para> |
| </listitem> |
| |
| <!-- |
| Author: Thomas Munro <tmunro@postgresql.org> |
| 2022-07-08 [9db300ce6] Remove HP-UX port. |
| --> |
| |
| <listitem> |
| <para> |
| Remove support for <systemitem class="osname">HP-UX</systemitem> |
| (Thomas Munro) |
| <ulink url="&commit_baseurl;9db300ce6">§</ulink> |
| </para> |
| </listitem> |
| |
| <!-- |
| Author: Thomas Munro <tmunro@postgresql.org> |
| 2022-07-08 [0ad5b48e5] Remove HP/Intel Itanium support. |
| --> |
| |
| <listitem> |
| <para> |
| Remove support for <productname>HP/Intel Itanium</productname> |
| (Thomas Munro) |
| <ulink url="&commit_baseurl;0ad5b48e5">§</ulink> |
| </para> |
| </listitem> |
| |
| <!-- |
| Author: Thomas Munro <tmunro@postgresql.org> |
| 2022-07-12 [718aa43a4] Further tidy-up for old CPU architectures. |
| Author: Thomas Munro <tmunro@postgresql.org> |
| 2022-07-12 [14168d3c6] Doc: Acknowledge historically supported CPUs and OSes. |
| --> |
| |
| <listitem> |
| <para> |
| Remove support for <productname>M68K</productname>, |
| <productname>M88K</productname>, <productname>M32R</productname>, |
| and <productname>SuperH</productname> <acronym>CPU</acronym> |
| architectures (Thomas Munro) |
| <ulink url="&commit_baseurl;718aa43a4">§</ulink> |
| <ulink url="&commit_baseurl;14168d3c6">§</ulink> |
| </para> |
| </listitem> |
| |
| <!-- |
| Author: Michael Paquier <michael@paquier.xyz> |
| 2023-03-17 [98ae2c84a] libpq: Remove code for SCM credential authentication |
| --> |
| |
| <listitem> |
| <para> |
| Remove <link linkend="libpq"><application>libpq</application></link> |
| support for <acronym>SCM</acronym> credential authentication |
| (Michael Paquier) |
| <ulink url="&commit_baseurl;98ae2c84a">§</ulink> |
| </para> |
| |
| <para> |
| Backend support for this authentication method was removed in |
| <productname>PostgreSQL</productname> 9.1. |
| </para> |
| </listitem> |
| |
| <!-- |
| Author: Andres Freund <andres@anarazel.de> |
| 2022-09-21 [e6927270c] meson: Add initial version of meson based build system |
| --> |
| |
| <listitem> |
| <para> |
| Add <link |
| linkend="install-meson"><application>meson</application></link> |
| build system (Andres Freund, Nazir Bilal Yavuz, Peter Eisentraut) |
| <ulink url="&commit_baseurl;e6927270c">§</ulink> |
| </para> |
| |
| <para> |
| This eventually will replace the <productname>Autoconf</productname> |
| and <systemitem class="osname">Windows</systemitem>-based |
| <productname>MSVC</productname> build systems. |
| </para> |
| </listitem> |
| |
| <!-- |
| Author: Peter Eisentraut <peter@eisentraut.org> |
| 2022-10-20 [c8e4030d1] Make finding openssl program a configure or meson option |
| --> |
| |
| <listitem> |
| <para> |
| Allow control of the location of the |
| <application>openssl</application> binary used by the build system |
| (Peter Eisentraut) |
| <ulink url="&commit_baseurl;c8e4030d1">§</ulink> |
| </para> |
| |
| <para> |
| Make finding <application>openssl</application> |
| program a <application>configure</application> or |
| <application>meson</application> option |
| </para> |
| </listitem> |
| |
| <!-- |
| Author: Andres Freund <andres@anarazel.de> |
| 2022-12-07 [d3b111e32] Add option to specify segment size in blocks |
| --> |
| |
| <listitem> |
| <para> |
| Add build option to allow testing of small table segment sizes |
| (Andres Freund) |
| <ulink url="&commit_baseurl;d3b111e32">§</ulink> |
| </para> |
| |
| <para> |
| The build options are <link |
| linkend="configure-option-with-segsize"><option>--with-segsize-blocks</option></link> |
| and <option>-Dsegsize_blocks</option>. |
| </para> |
| </listitem> |
| |
| <!-- |
| Author: Andrew Dunstan <andrew@dunslane.net> |
| 2023-01-23 [b90f0b574] Add non-destructive modes to pgindent |
| Author: Tom Lane <tgl@sss.pgh.pa.us> |
| 2023-01-23 [62e1e28bf] Fix pgindent - -show-diff option. |
| Author: Andrew Dunstan <andrew@dunslane.net> |
| 2023-01-24 [124937163] Improve exclude pattern file processing in pgindent |
| Author: Andrew Dunstan <andrew@dunslane.net> |
| 2023-01-27 [a1c4cd6f2] Allow multiple - -excludes options in pgindent |
| Author: Andrew Dunstan <andrew@dunslane.net> |
| 2023-02-08 [068a243b7] pgindent: more ways to find files to indent |
| Author: Andrew Dunstan <andrew@dunslane.net> |
| 2023-02-12 [dab07e8c6] pgindent: filter files for the - -commit option |
| Author: Andrew Dunstan <andrew@dunslane.net> |
| 2023-02-13 [b16259b3c] Remove obsolete pgindent options - -code-base and - -build |
| --> |
| |
| <listitem> |
| <para> |
| Add <link |
| linkend="source"><application>pgindent</application></link> options |
| (Andrew Dunstan) |
| <ulink url="&commit_baseurl;b90f0b574">§</ulink> |
| <ulink url="&commit_baseurl;62e1e28bf">§</ulink> |
| <ulink url="&commit_baseurl;124937163">§</ulink> |
| <ulink url="&commit_baseurl;a1c4cd6f2">§</ulink> |
| <ulink url="&commit_baseurl;068a243b7">§</ulink> |
| <ulink url="&commit_baseurl;dab07e8c6">§</ulink> |
| <ulink url="&commit_baseurl;b16259b3c">§</ulink> |
| </para> |
| |
| <para> |
| The new options are <option>--show-diff</option>, |
| <option>--silent-diff</option>, <option>--commit</option>, |
| and <option>--help</option>, and allow multiple |
| <option>--exclude</option> options. Also require the typedef file |
| to be explicitly specified. Options <option>--code-base</option> |
| and <option>--build</option> were also removed. |
| </para> |
| </listitem> |
| |
| <!-- |
| Author: Tom Lane <tgl@sss.pgh.pa.us> |
| 2023-02-12 [4e831f4ce] Import pg_bsd_indent sources. |
| --> |
| |
| <listitem> |
| <para> |
| Add <link |
| linkend="source"><application>pg_bsd_indent</application></link> |
| source code to the main tree (Tom Lane) |
| <ulink url="&commit_baseurl;4e831f4ce">§</ulink> |
| </para> |
| </listitem> |
| |
| <!-- |
| Author: Tatsuo Ishii <ishii@postgresql.org> |
| 2022-10-19 [d1e2a380c] Enhance make_ctags and make_etags. |
| --> |
| |
| <listitem> |
| <para> |
| Improve <application>make_ctags</application> and |
| <application>make_etags</application> (Yugo Nagata) |
| <ulink url="&commit_baseurl;d1e2a380c">§</ulink> |
| </para> |
| </listitem> |
| |
| <!-- |
| Author: Peter Eisentraut <peter@eisentraut.org> |
| 2023-03-28 [90189eefc] Save a few bytes in pg_attribute |
| --> |
| |
| <listitem> |
| <para> |
| Adjust <link |
| linkend="catalog-pg-attribute"><structname>pg_attribute</structname></link> |
| columns for efficiency (Peter Eisentraut) |
| <ulink url="&commit_baseurl;90189eefc">§</ulink> |
| </para> |
| </listitem> |
| |
| </itemizedlist> |
| |
| </sect3> |
| |
| <sect3 id="release-16-modules"> |
| <title>Additional Modules</title> |
| |
| <itemizedlist> |
| |
| <!-- |
| Author: Tom Lane <tgl@sss.pgh.pa.us> |
| 2022-09-02 [ff720a597] Fix planner to consider matches to boolean columns in ex |
| --> |
| |
| <listitem> |
| <para> |
| Improve use of extension-based indexes on boolean columns (Zongliang |
| Quan, Tom Lane) |
| <ulink url="&commit_baseurl;ff720a597">§</ulink> |
| </para> |
| </listitem> |
| |
| <!-- |
| Author: Tom Lane <tgl@sss.pgh.pa.us> |
| 2023-04-07 [a290378a3] Add support for Daitch-Mokotoff Soundex in contrib/fuzzy |
| --> |
| |
| <listitem> |
| <para> |
| Add support for Daitch-Mokotoff Soundex to <link |
| linkend="fuzzystrmatch"><application>fuzzystrmatch</application></link> |
| (Dag Lem) |
| <ulink url="&commit_baseurl;a290378a3">§</ulink> |
| </para> |
| </listitem> |
| |
| <!-- |
| Author: Michael Paquier <michael@paquier.xyz> |
| 2022-07-06 [d4bfe4128] autho_explain: Add GUC to log query parameters |
| --> |
| |
| <listitem> |
| <para> |
| Allow <link |
| linkend="auto-explain"><application>auto_explain</application></link> |
| to log values passed to parameterized statements (Dagfinn Ilmari |
| Mannsåker) |
| <ulink url="&commit_baseurl;d4bfe4128">§</ulink> |
| </para> |
| |
| <para> |
| This affects queries using server-side <link |
| linkend="sql-prepare"><command>PREPARE</command></link>/<link |
| linkend="sql-execute"><command>EXECUTE</command></link> |
| and client-side parse/bind. Logging is controlled by <link |
| linkend="auto-explain-configuration-parameters-log-parameter-max-length"><literal>auto_explain.log_parameter_max_length</literal></link>; |
| by default query parameters will be logged with no length |
| restriction. |
| </para> |
| </listitem> |
| |
| <!-- |
| Author: Michael Paquier <michael@paquier.xyz> |
| 2023-01-26 [9d2d9728b] Make auto_explain print the query identifier in verbose |
| --> |
| |
| <listitem> |
| <para> |
| Have <link |
| linkend="auto-explain"><application>auto_explain</application></link>'s |
| <option>log_verbose</option> mode honor the value of <link |
| linkend="guc-compute-query-id"><varname>compute_query_id</varname></link> |
| (Atsushi Torikoshi) |
| <ulink url="&commit_baseurl;9d2d9728b">§</ulink> |
| </para> |
| |
| <para> |
| Previously even if |
| <varname>compute_query_id</varname> was enabled, <link |
| linkend="auto-explain-configuration-parameters-log-verbose"><option>log_verbose</option></link> |
| was not showing the query identifier. |
| </para> |
| </listitem> |
| |
| <!-- |
| Author: Andrew Dunstan <andrew@dunslane.net> |
| 2023-01-06 [b1665bf01] Allow hyphens in ltree labels |
| --> |
| |
| <listitem> |
| <para> |
| Change the maximum length of <link |
| linkend="ltree"><application>ltree</application></link> labels |
| from 256 to 1000 and allow hyphens (Garen Torikian) |
| <ulink url="&commit_baseurl;b1665bf01">§</ulink> |
| </para> |
| </listitem> |
| |
| <!-- |
| Author: Michael Paquier <michael@paquier.xyz> |
| 2023-03-08 [daa8365a9] Reflect normalization of query strings for utilities in |
| --> |
| |
| <listitem> |
| <para> |
| Have <link |
| linkend="pgstatstatements"><structname>pg_stat_statements</structname></link> |
| normalize constants used in utility commands (Michael Paquier) |
| <ulink url="&commit_baseurl;daa8365a9">§</ulink> |
| </para> |
| |
| <para> |
| Previously constants appeared instead of placeholders, e.g., |
| <literal>$1</literal>. |
| </para> |
| </listitem> |
| |
| <!-- |
| Author: Michael Paquier <michael@paquier.xyz> |
| 2023-01-23 [c31cf1c03] pg_walinspect: Add pg_get_wal_fpi_info() |
| Author: Michael Paquier <michael@paquier.xyz> |
| 2023-03-10 [9ecb134a9] pg_walinspect: pg_get_wal_fpi_info() -> pg_get_wal_block |
| Author: Peter Geoghegan <pg@bowt.ie> |
| 2023-03-30 [122376f02] Show record information in pg_get_wal_block_info. |
| Author: Peter Geoghegan <pg@bowt.ie> |
| 2023-03-31 [df4f3ab51] Add show_data option to pg_get_wal_block_info. |
| --> |
| |
| <listitem> |
| <para> |
| Add <link |
| linkend="pgwalinspect"><application>pg_walinspect</application></link> |
| function <link |
| linkend="pgwalinspect-funcs-pg-get-wal-block-info"><function>pg_get_wal_block_info()</function></link> |
| to report <acronym>WAL</acronym> block information (Michael Paquier, |
| Melanie Plageman, Bharath Rupireddy) |
| <ulink url="&commit_baseurl;c31cf1c03">§</ulink> |
| <ulink url="&commit_baseurl;9ecb134a9">§</ulink> |
| <ulink url="&commit_baseurl;122376f02">§</ulink> |
| <ulink url="&commit_baseurl;df4f3ab51">§</ulink> |
| </para> |
| </listitem> |
| |
| <!-- |
| Author: Michael Paquier <michael@paquier.xyz> |
| 2023-03-14 [5c1b66280] Rework design of functions in pg_walinspect |
| --> |
| |
| <listitem> |
| <para> |
| Change how <link |
| linkend="pgwalinspect"><application>pg_walinspect</application></link> |
| functions <link |
| linkend="pgwalinspect-funcs-pg-get-wal-records-info"><function>pg_get_wal_records_info()</function></link> |
| and <link |
| linkend="pgwalinspect-funcs-pg-get-wal-stats"><function>pg_get_wal_stats()</function></link> |
| interpret ending <acronym>LSN</acronym>s (Bharath Rupireddy) |
| <ulink url="&commit_baseurl;5c1b66280">§</ulink> |
| </para> |
| |
| <para> |
| Previously ending <acronym>LSN</acronym>s which represent |
| nonexistent <acronym>WAL</acronym> locations would generate |
| an error, while they will now be interpreted as the end of the |
| <acronym>WAL</acronym>. |
| </para> |
| </listitem> |
| |
| <!-- |
| Author: Peter Geoghegan <pg@bowt.ie> |
| 2023-04-07 [7d8219a44] Show more detail in heapam rmgr descriptions. |
| Author: Peter Geoghegan <pg@bowt.ie> |
| 2023-04-07 [1c453cfd8] Show more detail in nbtree rmgr descriptions. |
| Author: Peter Geoghegan <pg@bowt.ie> |
| 2023-04-11 [96149a180] Fix Heap rmgr's desc output for infobits arrays. |
| Author: Peter Geoghegan <pg@bowt.ie> |
| 2023-04-19 [50547a3fa] Fix wal_consistency_checking enhanced desc output. |
| --> |
| |
| <listitem> |
| <para> |
| Add detailed descriptions of <acronym>WAL</acronym> records in <link |
| linkend="pgwalinspect"><application>pg_walinspect</application></link> |
| and <link |
| linkend="pgwaldump"><application>pg_waldump</application></link> |
| (Melanie Plageman, Peter Geoghegan) |
| <ulink url="&commit_baseurl;7d8219a44">§</ulink> |
| <ulink url="&commit_baseurl;1c453cfd8">§</ulink> |
| <ulink url="&commit_baseurl;96149a180">§</ulink> |
| <ulink url="&commit_baseurl;50547a3fa">§</ulink> |
| </para> |
| </listitem> |
| |
| <!-- |
| Author: Tom Lane <tgl@sss.pgh.pa.us> |
| 2023-01-02 [1fd3dd204] Add bt_multi_page_stats() function to contrib/pageinspec |
| --> |
| |
| <listitem> |
| <para> |
| Add <link |
| linkend="pageinspect"><application>pageinspect</application></link> |
| function <link |
| linkend="pageinspect-b-tree-funcs"><function>bt_multi_page_stats()</function></link> |
| to report statistics on multiple pages (Hamid Akhtar) |
| <ulink url="&commit_baseurl;1fd3dd204">§</ulink> |
| </para> |
| |
| <para> |
| This is similar to <function>bt_page_stats()</function> except it |
| can report on a range of pages. |
| </para> |
| </listitem> |
| |
| <!-- |
| Author: Tom Lane <tgl@sss.pgh.pa.us> |
| 2023-01-02 [1fd3dd204] Add bt_multi_page_stats() function to contrib/pageinspec |
| --> |
| |
| <listitem> |
| <para> |
| Add empty range output column to <link |
| linkend="pageinspect"><application>pageinspect</application></link> |
| function <link |
| linkend="pageinspect-brin-funcs"><function>brin_page_items()</function></link> |
| (Tomas Vondra) |
| <ulink url="&commit_baseurl;1fd3dd204">§</ulink> |
| </para> |
| </listitem> |
| |
| <!-- |
| Author: Michael Paquier <michael@paquier.xyz> |
| 2023-02-17 [35739b87d] Redesign archive modules |
| --> |
| |
| <listitem> |
| <para> |
| Redesign archive modules to be more flexible (Nathan Bossart) |
| <ulink url="&commit_baseurl;35739b87d">§</ulink> |
| </para> |
| |
| <para> |
| Initialization changes will require modules written for older |
| versions of Postgres to be updated. |
| </para> |
| </listitem> |
| |
| <!-- |
| Author: Michael Paquier <michael@paquier.xyz> |
| 2023-04-06 [1d477a907] Fix row tracking in pg_stat_statements with extended que |
| --> |
| |
| <listitem> |
| <para> |
| Correct inaccurate <link |
| linkend="pgstatstatements"><application>pg_stat_statements</application></link> |
| row tracking extended query protocol statements (Sami Imseih) |
| <ulink url="&commit_baseurl;1d477a907">§</ulink> |
| </para> |
| </listitem> |
| |
| <!-- |
| Author: Tom Lane <tgl@sss.pgh.pa.us> |
| 2023-04-07 [f3fa31327] Add pg_buffercache_usage_counts() to contrib/pg_bufferca |
| --> |
| |
| <listitem> |
| <para> |
| Add <link |
| linkend="pgbuffercache"><application>pg_buffercache</application></link> |
| function <function>pg_buffercache_usage_counts()</function> to |
| report usage totals (Nathan Bossart) |
| <ulink url="&commit_baseurl;f3fa31327">§</ulink> |
| </para> |
| </listitem> |
| |
| <!-- |
| Author: Andres Freund <andres@anarazel.de> |
| 2022-10-13 [2589434ae] pg_buffercache: Add pg_buffercache_summary() |
| --> |
| |
| <listitem> |
| <para> |
| Add <link |
| linkend="pgbuffercache"><application>pg_buffercache</application></link> |
| function <function>pg_buffercache_summary()</function> to report |
| summarized buffer statistics (Melih Mutlu) |
| <ulink url="&commit_baseurl;2589434ae">§</ulink> |
| </para> |
| </listitem> |
| |
| <!-- |
| Author: Tom Lane <tgl@sss.pgh.pa.us> |
| 2023-03-20 [72a5b1fc8] Add @extschema:name@ and no_relocate options to extensio |
| --> |
| |
| <listitem> |
| <para> |
| Allow the schemas of required extensions to be |
| referenced in extension scripts using the new syntax |
| <literal>@extschema:referenced_extension_name@</literal> |
| (Regina Obe) |
| <ulink url="&commit_baseurl;72a5b1fc8">§</ulink> |
| </para> |
| </listitem> |
| |
| <!-- |
| Author: Tom Lane <tgl@sss.pgh.pa.us> |
| 2023-03-20 [72a5b1fc8] Add @extschema:name@ and no_relocate options to extensio |
| --> |
| |
| <listitem> |
| <para> |
| Allow required extensions to |
| be marked as non-relocatable using <link |
| linkend="extend-extensions-files-no-relocate"><literal>no_relocate</literal></link> |
| (Regina Obe) |
| <ulink url="&commit_baseurl;72a5b1fc8">§</ulink> |
| </para> |
| |
| <para> |
| This allows <literal>@extschema:referenced_extension_name@</literal> |
| to be treated as a constant for the lifetime of the extension. |
| </para> |
| </listitem> |
| |
| </itemizedlist> |
| |
| <sect4 id="release-16-pgfdw"> |
| <title><link linkend="postgres-fdw"><application>postgres_fdw</application></link></title> |
| |
| <itemizedlist> |
| |
| <!-- |
| Author: Etsuro Fujita <efujita@postgresql.org> |
| 2023-04-06 [983ec2300] postgres_fdw: Add support for parallel abort. |
| --> |
| |
| <listitem> |
| <para> |
| Allow <application>postgres_fdw</application> to do aborts in |
| parallel (Etsuro Fujita) |
| <ulink url="&commit_baseurl;983ec2300">§</ulink> |
| </para> |
| |
| <para> |
| This is enabled with |
| <application>postgres_fdw</application> option <link |
| linkend="postgres-fdw-options-transaction-management"><option>parallel_abort</option></link>. |
| </para> |
| </listitem> |
| |
| <!-- |
| Author: Tomas Vondra <tomas.vondra@postgresql.org> |
| 2022-12-30 [8ad51b5f4] Sample postgres_fdw tables remotely during ANALYZE |
| --> |
| |
| <listitem> |
| <para> |
| Make <link linkend="sql-analyze"><command>ANALYZE</command></link> |
| on foreign <application>postgres_fdw</application> tables more |
| efficient (Tomas Vondra) |
| <ulink url="&commit_baseurl;8ad51b5f4">§</ulink> |
| </para> |
| |
| <para> |
| The <application>postgres_fdw</application> option <link |
| linkend="postgres-fdw-options-cost-estimation"><option>analyze_sampling</option></link> |
| controls the sampling method. |
| </para> |
| </listitem> |
| |
| <!-- |
| Author: Tom Lane <tgl@sss.pgh.pa.us> |
| 2022-07-17 [31e5b5029] postgres_fdw: be more wary about shippability of reg* co |
| --> |
| |
| <listitem> |
| <para> |
| Restrict shipment of <link |
| linkend="datatype-oid"><type>reg</type></link>* type constants |
| in <application>postgres_fdw</application> to those referencing |
| built-in objects or extensions marked as shippable (Tom Lane) |
| <ulink url="&commit_baseurl;31e5b5029">§</ulink> |
| </para> |
| </listitem> |
| |
| <!-- |
| Author: Andres Freund <andres@anarazel.de> |
| 2023-01-23 [e4602483e] dblink, postgres_fdw: Handle interrupts during connectio |
| --> |
| |
| <listitem> |
| <para> |
| Have <application>postgres_fdw</application> and <link |
| linkend="dblink"><application>dblink</application></link> handle |
| interrupts during connection establishment (Andres Freund) |
| <ulink url="&commit_baseurl;e4602483e">§</ulink> |
| </para> |
| </listitem> |
| |
| </itemizedlist> |
| |
| </sect4> |
| |
| </sect3> |
| |
| </sect2> |
| |
| <sect2 id="release-16-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 Mackler</member> |
| <member>Adrian Klaver</member> |
| <member>Ahsan Hadi</member> |
| <member>Ajin Cherian</member> |
| <member>Ajit Awekar</member> |
| <member>Alan Hodgson</member> |
| <member>Aleksander Alekseev</member> |
| <member>Alex Denman</member> |
| <member>Alex Kozhemyakin</member> |
| <member>Alexander Korolev</member> |
| <member>Alexander Korotkov</member> |
| <member>Alexander Lakhin</member> |
| <member>Alexander Pyhalov</member> |
| <member>Alexey Borzov</member> |
| <member>Alexey Ermakov</member> |
| <member>Alexey Makhmutov</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>Anban Company</member> |
| <member>Andreas Dijkman</member> |
| <member>Andreas Karlsson</member> |
| <member>Andreas Scherbaum</member> |
| <member>Andrei Zubkov</member> |
| <member>Andres Freund</member> |
| <member>Andrew Alsup</member> |
| <member>Andrew Bille</member> |
| <member>Andrew Dunstan</member> |
| <member>Andrew Gierth</member> |
| <member>Andrew Kesper</member> |
| <member>Andrey Borodin</member> |
| <member>Andrey Lepikhov</member> |
| <member>Andrey Sokolov</member> |
| <member>Ankit Kumar Pandey</member> |
| <member>Ante Kresic</member> |
| <member>Anton Melnikov</member> |
| <member>Anton Sidyakin</member> |
| <member>Anton Voloshin</member> |
| <member>Antonin Houska</member> |
| <member>Arne Roland</member> |
| <member>Artem Anisimov</member> |
| <member>Arthur Zakirov</member> |
| <member>Ashutosh Bapat</member> |
| <member>Ashutosh Sharma</member> |
| <member>Asim Praveen</member> |
| <member>Atsushi Torikoshi</member> |
| <member>Ayaki Tachikake</member> |
| <member>Balazs Szilfai</member> |
| <member>Benoit Lobréau</member> |
| <member>Bernd Helmle</member> |
| <member>Bertrand Drouvot</member> |
| <member>Bharath Rupireddy</member> |
| <member>Bilva Sanaba</member> |
| <member>Bob Krier</member> |
| <member>Boris Zentner</member> |
| <member>Brad Nicholson</member> |
| <member>Brar Piening</member> |
| <member>Bruce Momjian</member> |
| <member>Bruno da Silva</member> |
| <member>Carl Sopchak</member> |
| <member>Cary Huang</member> |
| <member>Changhong Fei</member> |
| <member>Chris Travers</member> |
| <member>Christoph Berg</member> |
| <member>Christophe Pettus</member> |
| <member>Corey Huinker</member> |
| <member>Craig Ringer</member> |
| <member>Curt Kolovson</member> |
| <member>Dag Lem</member> |
| <member>Dagfinn Ilmari Mannsåker</member> |
| <member>Daniel Gustafsson</member> |
| <member>Daniel Vérité</member> |
| <member>Daniel Watzinger</member> |
| <member>Daniel Westermann</member> |
| <member>Daniele Varrazzo</member> |
| <member>Daniil Anisimov</member> |
| <member>Danny Shemesh</member> |
| <member>Dave Page</member> |
| <member>David Christensen</member> |
| <member>David G. Johnston</member> |
| <member>David Geier</member> |
| <member>David Gilman</member> |
| <member>David Kimura</member> |
| <member>David Rowley</member> |
| <member>David Steele</member> |
| <member>David Turon</member> |
| <member>David Zhang</member> |
| <member>Davinder Singh</member> |
| <member>Dean Rasheed</member> |
| <member>Denis Laxalde</member> |
| <member>Dilip Kumar</member> |
| <member>Dimos Stamatakis</member> |
| <member>Dmitriy Kuzmin</member> |
| <member>Dmitry Astapov</member> |
| <member>Dmitry Dolgov</member> |
| <member>Dmitry Koval</member> |
| <member>Dong Wook Lee</member> |
| <member>Dongming Liu</member> |
| <member>Drew DeVault</member> |
| <member>Duncan Sands</member> |
| <member>Ed Maste</member> |
| <member>Egor Chindyaskin</member> |
| <member>Ekaterina Kiryanova</member> |
| <member>Elena Indrupskaya</member> |
| <member>Emmanuel Quincerot</member> |
| <member>Eric Mutta</member> |
| <member>Erik Rijkers</member> |
| <member>Erki Eessaar</member> |
| <member>Erwin Brandstetter</member> |
| <member>Etsuro Fujita</member> |
| <member>Eugeny Zhuzhnev</member> |
| <member>Euler Taveira</member> |
| <member>Evan Jones</member> |
| <member>Evgeny Morozov</member> |
| <member>Fabrízio de Royes Mello</member> |
| <member>Farias de Oliveira</member> |
| <member>Florin Irion</member> |
| <member>Franz-Josef Färber</member> |
| <member>Garen Torikian</member> |
| <member>Georgios Kokolatos</member> |
| <member>Gilles Darold</member> |
| <member>Greg Stark</member> |
| <member>Guillaume Lelarge</member> |
| <member>Gunnar Bluth</member> |
| <member>Gunnar Morling</member> |
| <member>Gurjeet Singh</member> |
| <member>Haiyang Wang</member> |
| <member>Haiying Tang</member> |
| <member>Hamid Akhtar</member> |
| <member>Hans Buschmann</member> |
| <member>Hao Wu</member> |
| <member>Hayato Kuroda</member> |
| <member>Heath Lord</member> |
| <member>Heikki Linnakangas</member> |
| <member>Himanshu Upadhyaya</member> |
| <member>Hisahiro Kauchi</member> |
| <member>Hongyu Song</member> |
| <member>Hubert Lubaczewski</member> |
| <member>Hung Nguyen</member> |
| <member>Ian Barwick</member> |
| <member>Ibrar Ahmed</member> |
| <member>Ilya Gladyshev</member> |
| <member>Ilya Nenashev</member> |
| <member>Isaac Morland</member> |
| <member>Israel Barth Rubio</member> |
| <member>Jacob Champion</member> |
| <member>Jacob Speidel</member> |
| <member>Jaime Casanova</member> |
| <member>Jakub Wartak</member> |
| <member>James Coleman</member> |
| <member>James Inform</member> |
| <member>James Vanns</member> |
| <member>Jan Wieck</member> |
| <member>Japin Li</member> |
| <member>Jeevan Ladhe</member> |
| <member>Jeff Davis</member> |
| <member>Jeff Janes</member> |
| <member>Jehan-Guillaume de Rorthais</member> |
| <member>Jelte Fennema</member> |
| <member>Jian He</member> |
| <member>Jim Jones</member> |
| <member>Jinbao Chen</member> |
| <member>Joe Conway</member> |
| <member>Joel Jacobson</member> |
| <member>John Naylor</member> |
| <member>Jonathan Katz</member> |
| <member>Josef Simanek</member> |
| <member>Joseph Koshakow</member> |
| <member>Juan José Santamaría Flecha</member> |
| <member>Julien Rouhaud</member> |
| <member>Julien Roze</member> |
| <member>Junwang Zhao</member> |
| <member>Justin Pryzby</member> |
| <member>Justin Zhang</member> |
| <member>Karina Litskevich</member> |
| <member>Karl O. Pinc</member> |
| <member>Keisuke Kuroda</member> |
| <member>Ken Kato</member> |
| <member>Kevin McKibbin</member> |
| <member>Kieran McCusker</member> |
| <member>Kirk Wolak</member> |
| <member>Konstantin Knizhnik</member> |
| <member>Koshi Shibagaki</member> |
| <member>Kotaro Kawamoto</member> |
| <member>Kui Liu</member> |
| <member>Kyotaro Horiguchi</member> |
| <member>Lakshmi Narayanan Sreethar</member> |
| <member>Laurence Parry</member> |
| <member>Laurenz Albe</member> |
| <member>Luca Ferrari</member> |
| <member>Lukas Fittl</member> |
| <member>Maciek Sakrejda</member> |
| <member>Magnus Hagander</member> |
| <member>Maja Zaloznik</member> |
| <member>Marcel Hofstetter</member> |
| <member>Marina Polyakova</member> |
| <member>Mark Dilger</member> |
| <member>Marko Tiikkaja</member> |
| <member>Markus Winand</member> |
| <member>Martijn van Oosterhout</member> |
| <member>Martin Jurca</member> |
| <member>Martin Kalcher</member> |
| <member>Mary Xu</member> |
| <member>Masahiko Sawada</member> |
| <member>Masahiro Ikeda</member> |
| <member>Masao Fujii</member> |
| <member>Mason Sharp</member> |
| <member>Matheus Alcantara</member> |
| <member>Mats Kindahl</member> |
| <member>Matthias van de Meent</member> |
| <member>Matthijs van der Vleuten</member> |
| <member>Maxim Orlov</member> |
| <member>Maxim Yablokov</member> |
| <member>Mehmet Emin Karakas</member> |
| <member>Melanie Plageman</member> |
| <member>Melih Mutlu</member> |
| <member>Micah Gates</member> |
| <member>Michael Banck</member> |
| <member>Michael Paquier</member> |
| <member>Michail Nikolaev</member> |
| <member>Michel Pelletier</member> |
| <member>Mike Oh</member> |
| <member>Mikhail Gribkov</member> |
| <member>Mingli Zhang</member> |
| <member>Miroslav Bendik</member> |
| <member>Mitsuru Hinata</member> |
| <member>Myo Wai Thant</member> |
| <member>Naeem Akhter</member> |
| <member>Naoki Okano</member> |
| <member>Nathan Bossart</member> |
| <member>Nazir Bilal Yavuz</member> |
| <member>Neha Sharma</member> |
| <member>Nick Babadzhanian</member> |
| <member>Nicola Contu</member> |
| <member>Nikhil Shetty</member> |
| <member>Nikita Glukhov</member> |
| <member>Nikolay Samokhvalov</member> |
| <member>Nikolay Shaplov</member> |
| <member>Nishant Sharma</member> |
| <member>Nitin Jadhav</member> |
| <member>Noah Misch</member> |
| <member>Noboru Saito</member> |
| <member>Noriyoshi Shinoda</member> |
| <member>Nuko Yokohama</member> |
| <member>Oleg Bartunov</member> |
| <member>Oleg Tselebrovskiy</member> |
| <member>Olly Betts</member> |
| <member>Onder Kalaci</member> |
| <member>Onur Tirtir</member> |
| <member>Pablo Federico</member> |
| <member>Palle Girgensohn</member> |
| <member>Paul Guo</member> |
| <member>Paul Jungwirth</member> |
| <member>Paul Ramsey</member> |
| <member>Pavel Borisov</member> |
| <member>Pavel Kulakov</member> |
| <member>Pavel Luzanov</member> |
| <member>Pavel Stehule</member> |
| <member>Peifeng Qiu</member> |
| <member>Peter Eisentraut</member> |
| <member>Peter Geoghegan</member> |
| <member>Peter Smith</member> |
| <member>Phil Florent</member> |
| <member>Philippe Godfrin</member> |
| <member>Platon Pronko</member> |
| <member>Przemyslaw Sztoch</member> |
| <member>Rachel Heaton</member> |
| <member>Ranier Vilela</member> |
| <member>Regina Obe</member> |
| <member>Reid Thompson</member> |
| <member>Reiner Peterke</member> |
| <member>Richard Guo</member> |
| <member>Riivo Kolka</member> |
| <member>Rishu Bagga</member> |
| <member>Robert Haas</member> |
| <member>Robert Sjöblom</member> |
| <member>Robert Treat</member> |
| <member>Roberto Mello</member> |
| <member>Robins Tharakan</member> |
| <member>Roman Zharkov</member> |
| <member>Ronan Dunklau</member> |
| <member>Rushabh Lathia</member> |
| <member>Ryo Matsumura</member> |
| <member>Samay Sharma</member> |
| <member>Sami Imseih</member> |
| <member>Sandeep Thakkar</member> |
| <member>Sandro Santilli</member> |
| <member>Sebastien Flaesch</member> |
| <member>Sébastien Lardière</member> |
| <member>Sehrope Sarkuni</member> |
| <member>Sergey Belyashov</member> |
| <member>Sergey Pankov</member> |
| <member>Sergey Shinderuk</member> |
| <member>Shi Yu</member> |
| <member>Shinya Kato</member> |
| <member>Sho Kato</member> |
| <member>Shruthi Gowda</member> |
| <member>Shveta Mallik</member> |
| <member>Simon Riggs</member> |
| <member>Sindy Senorita</member> |
| <member>Sirisha Chamarthi</member> |
| <member>Sravan Kumar</member> |
| <member>Stéphane Tachoires</member> |
| <member>Stephen Frost</member> |
| <member>Steve Chavez</member> |
| <member>Stone Tickle</member> |
| <member>Sven Klemm</member> |
| <member>Takamichi Osumi</member> |
| <member>Takeshi Ideriha</member> |
| <member>Tatsuhiro Nakamori</member> |
| <member>Tatsuo Ishii</member> |
| <member>Teja Mupparti</member> |
| <member>Tender Wang</member> |
| <member>Teodor Sigaev</member> |
| <member>Thiago Nunes</member> |
| <member>Thom Brown</member> |
| <member>Thomas Habets</member> |
| <member>Thomas Mc Kay</member> |
| <member>Thomas Munro</member> |
| <member>Tim Carey-Smith</member> |
| <member>Tim Field</member> |
| <member>Timo Stolz</member> |
| <member>Tom Lane</member> |
| <member>Tomas Vondra</member> |
| <member>Tor Erik Linnerud</member> |
| <member>Torsten Förtsch</member> |
| <member>Tristan Partin</member> |
| <member>Troy Frericks</member> |
| <member>Tushar Ahuja</member> |
| <member>Valerie Woolard</member> |
| <member>Vibhor Kumar</member> |
| <member>Victor Spirin</member> |
| <member>Victoria Shepard</member> |
| <member>Vignesh C</member> |
| <member>Vik Fearing</member> |
| <member>Vitaly Burovoy</member> |
| <member>Vitaly Davydov</member> |
| <member>Wang Wei</member> |
| <member>Wenjing Zeng</member> |
| <member>Whale Song</member> |
| <member>Will Mortensen</member> |
| <member>Wolfgang Walther</member> |
| <member>Xin Wen</member> |
| <member>Xing Guo</member> |
| <member>Xingwang Xu</member> |
| <member>XueJing Zhao</member> |
| <member>Yanliang Lei</member> |
| <member>Youmiu Mo</member> |
| <member>Yugo Nagata</member> |
| <member>Yura Sokolov</member> |
| <member>Yuta Katsuragi</member> |
| <member>Zhen Mingyang</member> |
| <member>Zheng Li</member> |
| <member>Zhihong Yu</member> |
| <member>Zhijie Hou</member> |
| <member>Zongliang Quan</member> |
| <member>Zuming Jiang</member> |
| </simplelist> |
| </sect2> |
| |
| </sect1> |