postgres.git / summary / log / commit / refs
commit 7889889e4ea81e4e93a7b3e0d138f831e9dbd48b
Author: Tom Lane <tgl@sss.pgh.pa.us>
Date: Fri Nov 07 19:56:36 2025 +0000
First released in: 18.1
First-draft release notes for 18.1.
As usual, the release notes for other branches will be made by cutting
these down, but put them up for community review first.
Also as usual for a .1 release, there are some entries here that
are not really relevant for v18 because they already appeared in 18.0.
Those'll be removed later.
doc/src/sgml/release-18.sgml | 1714 ++++++++++++++++++++++++++++++++++++++++++
1 file changed, 1714 insertions(+)
diff --git a/doc/src/sgml/release-18.sgml b/doc/src/sgml/release-18.sgml
index 8811a6a1f33..1a567225831 100644
--- a/doc/src/sgml/release-18.sgml
+++ b/doc/src/sgml/release-18.sgml
@@ -1,6 +1,1720 @@
<!-- doc/src/sgml/release-18.sgml -->
<!-- See header comment in release.sgml about typical markup -->
+ <sect1 id="release-18-1">
+ <title>Release 18.1</title>
+
+ <formalpara>
+ <title>Release date:</title>
+ <para>2025-11-13</para>
+ </formalpara>
+
+ <para>
+ This release contains a variety of fixes from 18.0.
+ For information about new features in major release 18, see
+ <xref linkend="release-18"/>.
+ </para>
+
+ <sect2 id="release-18-1-migration">
+ <title>Migration to Version 18.1</title>
+
+ <para>
+ A dump/restore is not required for those running 18.X.
+ </para>
+ </sect2>
+
+ <sect2 id="release-18-1-changes">
+ <title>Changes</title>
+
+ <itemizedlist>
+
+ <listitem>
+<!--
+Author: Amit Langote <amitlan@postgresql.org>
+Branch: master [ef5e60a9d] 2025-10-09 01:07:59 -0400
+Branch: REL_18_STABLE [dc9125111] 2025-10-09 01:07:52 -0400
+Branch: REL_17_STABLE [09f86a42f] 2025-10-09 01:07:36 -0400
+Author: Peter Eisentraut <peter@eisentraut.org>
+Branch: master [c09a06918] 2025-11-04 12:25:04 +0100
+Branch: REL_18_STABLE [1baae827e] 2025-11-04 12:25:14 +0100
+Branch: REL_17_STABLE [1e6dfdaa0] 2025-11-04 12:25:20 +0100
+-->
+ <para>
+ Prevent <quote>unrecognized node type</quote> errors when a SQL/JSON
+ function such as <function>JSON_VALUE</function> has
+ a <literal>DEFAULT</literal> clause containing
+ a <literal>COLLATE</literal> expression (Jian He)
+ <ulink url="&commit_baseurl;dc9125111">§</ulink>
+ <ulink url="&commit_baseurl;1baae827e">§</ulink>
+ </para>
+ </listitem>
+
+ <listitem>
+<!--
+Author: Richard Guo <rguo@postgresql.org>
+Branch: master [b63a82245] 2025-09-16 18:42:20 +0900
+Branch: REL_18_STABLE Release: REL_18_0 [d29a3f4b4] 2025-09-16 18:43:57 +0900
+Branch: REL_17_STABLE [d719e2ecb] 2025-09-16 18:45:26 +0900
+Branch: REL_16_STABLE [62397bb18] 2025-09-16 18:46:39 +0900
+-->
+ <para>
+ Correctly treat JSON constructor expressions, such
+ as <function>JSON_OBJECT()</function>, as non-strict (Tender Wang,
+ Richard Guo)
+ <ulink url="&commit_baseurl;d29a3f4b4">§</ulink>
+ </para>
+
+ <para>
+ In some cases these expressions can yield a non-null result despite
+ having one or more null inputs, making them non-strict. The planner
+ incorrectly classified them as strict and could perform incorrect
+ query transformations as a result.
+ </para>
+ </listitem>
+
+ <listitem>
+<!--
+Author: Tom Lane <tgl@sss.pgh.pa.us>
+Branch: master [cdf7feb96] 2025-09-13 16:55:51 -0400
+Branch: REL_18_STABLE Release: REL_18_0 [802308693] 2025-09-13 16:55:51 -0400
+Branch: REL_17_STABLE [e09adb5b9] 2025-09-13 16:55:51 -0400
+Branch: REL_16_STABLE [281ad4ed1] 2025-09-13 16:55:51 -0400
+Branch: REL_15_STABLE [9fd531534] 2025-09-13 16:55:51 -0400
+Branch: REL_14_STABLE [f75ff1b14] 2025-09-13 16:55:51 -0400
+Branch: REL_13_STABLE [308773617] 2025-09-13 16:55:51 -0400
+-->
+ <para>
+ Further fix processing of character classes within <literal>SIMILAR
+ TO</literal> regular expressions (Laurenz Albe)
+ <ulink url="&commit_baseurl;802308693">§</ulink>
+ </para>
+
+ <para>
+ The previous fix for translating <literal>SIMILAR TO</literal>
+ pattern matching expressions to POSIX-style regular expressions
+ broke a corner case that formerly worked: if there is an escape
+ character right after the opening bracket and then a closing bracket
+ right after the escape sequence (for
+ example <literal>[\w]</literal>), the closing bracket was no longer
+ seen as terminating the character class.
+ </para>
+ </listitem>
+
+ <listitem>
+<!--
+Author: Tom Lane <tgl@sss.pgh.pa.us>
+Branch: master [b0cc0a71e] 2025-09-17 16:32:57 -0400
+Branch: REL_18_STABLE Release: REL_18_0 [4eab45649] 2025-09-17 16:32:57 -0400
+Branch: REL_17_STABLE [e830896c1] 2025-09-17 16:32:57 -0400
+Branch: REL_16_STABLE [7df74e635] 2025-09-17 16:32:57 -0400
+Branch: REL_15_STABLE [afd18f276] 2025-09-17 16:32:57 -0400
+Branch: REL_14_STABLE [31bf09632] 2025-09-17 16:32:57 -0400
+Branch: REL_13_STABLE [b649ef244] 2025-09-17 16:32:57 -0400
+-->
+ <para>
+ Fix parsing of aggregate functions whose arguments contain a
+ sub-select with a <literal>FROM</literal> reference to a CTE outside
+ the aggregate function (Tom Lane)
+ <ulink url="&commit_baseurl;4eab45649">§</ulink>
+ </para>
+
+ <para>
+ Such a CTE reference must act like a outer-level column reference
+ when determining the aggregate's semantic level; but it was not
+ being accounted for, leading to obscure planner or executor errors.
+ </para>
+ </listitem>
+
+ <listitem>
+<!--
+Author: Richard Guo <rguo@postgresql.org>
+Branch: master [18d261409] 2025-10-21 12:35:36 +0900
+Branch: REL_18_STABLE [40c242830] 2025-10-21 12:38:16 +0900
+Branch: REL_18_STABLE [ee49f2cf4] 2025-10-21 14:12:13 +0900
+-->
+ <para>
+ Avoid incorrect optimization of
+ variable-free <literal>HAVING</literal> clauses with grouping sets
+ (Richard Guo)
+ <ulink url="&commit_baseurl;40c242830">§</ulink>
+ <ulink url="&commit_baseurl;ee49f2cf4">§</ulink>
+ </para>
+ </listitem>
+
+ <listitem>
+<!--
+Author: Richard Guo <rguo@postgresql.org>
+Branch: master [257ee7834] 2025-10-30 11:58:45 +0900
+Branch: REL_18_STABLE [ef6168baf] 2025-10-30 12:03:15 +0900
+-->
+ <para>
+ Do not use parallelism in hash right semi joins (Richard Guo)
+ <ulink url="&commit_baseurl;ef6168baf">§</ulink>
+ </para>
+
+ <para>
+ The case does not work reliably due to a race condition in updating
+ the join's shared hash table.
+ </para>
+ </listitem>
+
+ <listitem>
+<!--
+Author: Richard Guo <rguo@postgresql.org>
+Branch: master [c1777f2d6] 2025-11-05 18:09:21 +0900
+Branch: REL_18_STABLE [500f64636] 2025-11-05 18:15:02 +0900
+-->
+ <para>
+ Avoid possible division-by-zero when creating ordered-append plans
+ (Richard Guo)
+ <ulink url="&commit_baseurl;500f64636">§</ulink>
+ </para>
+
+ <para>
+ This mistake could result in incorrect selection of the cheapest
+ path, or in an assertion failure in debug builds.
+ </para>
+ </listitem>
+
+ <listitem>
+<!--
+Author: Richard Guo <rguo@postgresql.org>
+Branch: master [aba8f61c3] 2025-09-03 16:00:38 +0900
+Branch: REL_18_STABLE Release: REL_18_0 [ab4a35b4e] 2025-09-03 16:03:43 +0900
+Branch: REL_17_STABLE [f34202f51] 2025-09-03 16:05:49 +0900
+Branch: REL_16_STABLE [79ade5873] 2025-09-03 16:09:23 +0900
+Branch: REL_15_STABLE [53e35fb56] 2025-09-03 16:13:33 +0900
+Branch: REL_14_STABLE [160ef51c8] 2025-09-03 16:16:36 +0900
+Branch: REL_13_STABLE [8c02d92c6] 2025-09-03 16:19:06 +0900
+-->
+ <para>
+ Fix <quote>no relation entry for relid</quote> errors in corner
+ cases while estimating SubPlan costs (Richard Guo)
+ <ulink url="&commit_baseurl;ab4a35b4e">§</ulink>
+ </para>
+ </listitem>
+
+ <listitem>
+<!--
+Author: David Rowley <drowley@postgresql.org>
+Branch: master [da9f9f75e] 2025-08-30 00:50:50 +1200
+Branch: REL_18_STABLE Release: REL_18_0 [4aea55891] 2025-08-30 00:51:39 +1200
+Branch: REL_17_STABLE [ed394c4bd] 2025-08-30 00:52:22 +1200
+Branch: REL_16_STABLE [f0fe1da50] 2025-08-30 00:52:49 +1200
+Branch: REL_15_STABLE [8286bce0a] 2025-08-30 00:53:17 +1200
+-->
+ <para>
+ Avoid unlikely use-after-free in planner's expansion of partitioned
+ tables (Bernd Reiß)
+ <ulink url="&commit_baseurl;4aea55891">§</ulink>
+ </para>
+
+ <para>
+ There was a hazard only when the last live partition was
+ concurrently dropped.
+ </para>
+ </listitem>
+
+ <listitem>
+<!--
+Author: Peter Eisentraut <peter@eisentraut.org>
+Branch: master [35e53b684] 2025-10-28 10:07:29 +0100
+Branch: REL_18_STABLE [74197bdc8] 2025-10-28 10:11:35 +0100
+-->
+ <para>
+ Fix planner failure with index types that can do ordered access but
+ not index-only scans (Maxime Schoemans)
+ <ulink url="&commit_baseurl;74197bdc8">§</ulink>
+ </para>
+
+ <para>
+ This oversight resulted in errors like <quote>no data returned for
+ index-only scan</quote>. The case does not arise with any in-core
+ index type, but some extensions encountered the problem.
+ </para>
+ </listitem>
+
+ <listitem>
+<!--
+Author: Peter Geoghegan <pg@bowt.ie>
+Branch: master [843e50208] 2025-10-10 14:52:25 -0400
+Branch: REL_18_STABLE [61de81a49] 2025-10-10 14:52:23 -0400
+Branch: REL_17_STABLE [ae15cebc2] 2025-10-10 14:52:21 -0400
+Branch: REL_16_STABLE [c160fd469] 2025-10-10 14:52:19 -0400
+Branch: REL_15_STABLE [ca0c93908] 2025-10-10 14:52:17 -0400
+Branch: REL_14_STABLE [314004021] 2025-10-10 14:52:14 -0400
+Branch: REL_13_STABLE [af302ff6b] 2025-10-10 14:52:12 -0400
+-->
+ <para>
+ Remove faulty assertion in btree index cleanup (Peter Geoghegan)
+ <ulink url="&commit_baseurl;61de81a49">§</ulink>
+ </para>
+ </listitem>
+
+ <listitem>
+<!--
+Author: Tomas Vondra <tomas.vondra@postgresql.org>
+Branch: master [c98dffcb7] 2025-11-04 18:51:17 +0100
+Branch: REL_18_STABLE [a26b753a0] 2025-11-04 18:47:14 +0100
+-->
+ <para>
+ Avoid possible out-of-memory or <quote>invalid memory alloc request
+ size</quote> failures during parallel GIN index build (Tomas Vondra)
+ <ulink url="&commit_baseurl;a26b753a0">§</ulink>
+ </para>
+ </listitem>
+
+ <listitem>
+<!--
+Author: Tom Lane <tgl@sss.pgh.pa.us>
+Branch: master [327b7324d] 2025-08-26 12:08:57 -0400
+Branch: REL_18_STABLE Release: REL_18_0 [3a7a3eaaf] 2025-08-26 12:08:57 -0400
+Branch: REL_17_STABLE [456c6a05d] 2025-08-26 12:08:57 -0400
+Branch: REL_16_STABLE [d532069c3] 2025-08-26 12:08:57 -0400
+Branch: REL_15_STABLE [34249b3b5] 2025-08-26 12:08:57 -0400
+Branch: REL_14_STABLE [4a593043e] 2025-08-26 12:08:57 -0400
+Branch: REL_13_STABLE [3e0f5f00b] 2025-08-26 12:08:57 -0400
+-->
+ <para>
+ Fix possible infinite loop in GIN index scans with multiple scan
+ conditions (Tom Lane)
+ <ulink url="&commit_baseurl;3a7a3eaaf">§</ulink>
+ </para>
+
+ <para>
+ GIN can handle scan conditions that can reject non-matching entries
+ but are not useful for searching for relevant entries, for example
+ a <type>tsquery</type> clause like <literal>!term</literal>. But
+ such a condition must not be first in the array of scan conditions.
+ The code failed to ensure that in all cases, with the result that a
+ query having a mix of such conditions with normal conditions might
+ work or not depending on the order in which the conditions were
+ given in the query.
+ </para>
+ </listitem>
+
+ <listitem>
+<!--
+Author: Tom Lane <tgl@sss.pgh.pa.us>
+Branch: master [b55068236] 2025-08-26 11:38:41 -0400
+Branch: REL_18_STABLE Release: REL_18_0 [44c2e5b76] 2025-08-26 11:38:41 -0400
+Branch: REL_17_STABLE [d17abaea8] 2025-08-26 11:38:41 -0400
+Branch: REL_16_STABLE [25eadfd0f] 2025-08-26 11:38:41 -0400
+Branch: REL_15_STABLE [a9c1b9c1c] 2025-08-26 11:38:41 -0400
+Branch: REL_14_STABLE [a7da746c1] 2025-08-26 11:38:41 -0400
+Branch: REL_13_STABLE [b2d71c455] 2025-08-26 11:38:41 -0400
+-->
+ <para>
+ Ensure that GIN index scans can be canceled (Tom Lane)
+ <ulink url="&commit_baseurl;44c2e5b76">§</ulink>
+ </para>
+
+ <para>
+ Some code paths were capable of running for a long time without
+ checking for interrupts.
+ </para>
+ </listitem>
+
+ <listitem>
+<!--
+Author: Álvaro Herrera <alvherre@kurilemu.de>
+Branch: master [a95e3d84c] 2025-11-04 13:23:26 +0100
+Branch: REL_18_STABLE [419ffde23] 2025-11-04 13:23:26 +0100
+Branch: REL_17_STABLE [f4b68b033] 2025-11-04 13:23:26 +0100
+Branch: REL_16_STABLE [6ef33c805] 2025-11-04 13:23:26 +0100
+Branch: REL_15_STABLE [23ddadf68] 2025-11-04 13:23:26 +0100
+Branch: REL_14_STABLE [f0ad41716] 2025-11-04 13:23:26 +0100
+Branch: REL_13_STABLE [3c7b47974] 2025-11-04 13:23:26 +0100
+Branch: master [0a3d27bfe] 2025-11-04 20:31:43 +0100
+Branch: REL_18_STABLE [8733f0b54] 2025-11-04 20:31:43 +0100
+Branch: REL_17_STABLE [3b5007347] 2025-11-04 20:31:43 +0100
+Branch: REL_16_STABLE [20442cf50] 2025-11-04 20:31:43 +0100
+Branch: REL_15_STABLE [bcfbd3f74] 2025-11-04 20:31:43 +0100
+Branch: REL_14_STABLE [65b0d1f74] 2025-11-04 20:31:43 +0100
+Branch: REL_13_STABLE [ef81697fe] 2025-11-04 20:31:43 +0100
+-->
+ <para>
+ Ensure that BRIN autosummarization provides a snapshot for index
+ expressions that need one (Álvaro Herrera)
+ <ulink url="&commit_baseurl;419ffde23">§</ulink>
+ <ulink url="&commit_baseurl;8733f0b54">§</ulink>
+ </para>
+
+ <para>
+ Previously, autosummarization would fail for such indexes, and then
+ leave placeholder index tuples behind, causing the index to bloat
+ over time.
+ </para>
+ </listitem>
+
+ <listitem>
+<!--
+Author: David Rowley <drowley@postgresql.org>
+Branch: master [9fd29d7ff] 2025-10-21 20:46:14 +1300
+Branch: REL_18_STABLE [715983a81] 2025-10-21 20:46:49 +1300
+Branch: REL_17_STABLE [c4f5a59ab] 2025-10-21 20:47:10 +1300
+Branch: REL_16_STABLE [ef915bf93] 2025-10-21 20:47:35 +1300
+Branch: REL_15_STABLE [810aaf7f2] 2025-10-21 20:48:06 +1300
+Branch: REL_14_STABLE [eea24eb0a] 2025-10-21 20:48:34 +1300
+Branch: REL_13_STABLE [c28f8ca29] 2025-10-21 20:49:00 +1300
+-->
+ <para>
+ Fix integer-overflow hazard in BRIN index scans when the table
+ contains close to 2<superscript>32</superscript> pages (Sunil S)
+ <ulink url="&commit_baseurl;715983a81">§</ulink>
+ </para>
+
+ <para>
+ This oversight could result in an infinite loop or scanning of
+ unneeded table pages.
+ </para>
+ </listitem>
+
+ <listitem>
+<!--
+Author: David Rowley <drowley@postgresql.org>
+Branch: master [6911f8037] 2025-10-23 13:11:02 +1300
+Branch: REL_18_STABLE [ceb51d09b] 2025-10-23 13:12:03 +1300
+Branch: REL_17_STABLE [10945148e] 2025-10-23 13:12:49 +1300
+Branch: REL_16_STABLE [3398b0d02] 2025-10-23 13:13:19 +1300
+Branch: REL_15_STABLE [b8ecfbe5a] 2025-10-23 13:13:44 +1300
+Branch: REL_14_STABLE [e4316ec4d] 2025-10-23 13:14:08 +1300
+Branch: REL_13_STABLE [4afab175b] 2025-10-23 13:14:33 +1300
+-->
+ <para>
+ Fix incorrect zero-extension of stored values in JIT-generated tuple
+ deforming code (David Rowley)
+ <ulink url="&commit_baseurl;ceb51d09b">§</ulink>
+ </para>
+
+ <para>
+ When not using JIT, the equivalent code does sign-extension not
+ zero-extension, leading to a different Datum representation of small
+ integer data types. This inconsistency was masked in most cases,
+ but it is known to lead to <quote>could not find memoization table
+ entry</quote> errors when using Memoize plan nodes, and there might
+ be other symptoms.
+ </para>
+ </listitem>
+
+ <listitem>
+<!--
+Author: David Rowley <drowley@postgresql.org>
+Branch: master [5c0a20003] 2025-10-18 16:07:04 +1300
+Branch: REL_18_STABLE [0b6a02f03] 2025-10-18 16:07:41 +1300
+-->
+ <para>
+ Fix rare crash when processing hashed <literal>GROUPING
+ SETS</literal> queries (David Rowley)
+ <ulink url="&commit_baseurl;0b6a02f03">§</ulink>
+ </para>
+ </listitem>
+
+ <listitem>
+<!--
+Author: Tomas Vondra <tomas.vondra@postgresql.org>
+Branch: master [b85c4700f] 2025-10-17 22:21:50 +0200
+Branch: REL_18_STABLE [aa151022e] 2025-10-17 22:27:49 +0200
+-->
+ <para>
+ Repair faulty hash-table-size-choosing logic in hash joins
+ (Tomas Vondra)
+ <ulink url="&commit_baseurl;aa151022e">§</ulink>
+ </para>
+
+ <para>
+ Hash joins sometimes used more memory than intended, or failed to
+ divide it in an efficient way.
+ </para>
+ </listitem>
+
+ <listitem>
+<!--
+Author: Nathan Bossart <nathan@postgresql.org>
+Branch: master [688dc6299] 2025-10-15 12:47:33 -0500
+Branch: REL_18_STABLE [c8af5019b] 2025-10-15 12:47:33 -0500
+Branch: REL_18_STABLE [15d7dded0] 2025-10-15 13:14:00 -0500
+-->
+ <para>
+ Improve relation lookup logic in statistics manipulation functions
+ (Nathan Bossart)
+ <ulink url="&commit_baseurl;c8af5019b">§</ulink>
+ <ulink url="&commit_baseurl;15d7dded0">§</ulink>
+ </para>
+
+ <para>
+ Fix <function>pg_restore_relation_stats()</function>,
+ <function>pg_clear_relation_stats()</function>,
+ <function>pg_restore_attribute_stats()</function>, and
+ <function>pg_clear_attribute_stats()</function> to check
+ privileges before acquiring lock on the target relation
+ rather than after.
+ </para>
+ </listitem>
+
+ <listitem>
+<!--
+Author: David Rowley <drowley@postgresql.org>
+Branch: master [39dcfda2d] 2025-10-26 10:59:50 +1300
+Branch: REL_18_STABLE [a2387c32f] 2025-10-26 11:01:32 +1300
+Branch: REL_17_STABLE [0d3074615] 2025-10-26 11:01:53 +1300
+Branch: REL_16_STABLE [a546964db] 2025-10-26 11:02:15 +1300
+Branch: REL_15_STABLE [2992b9a07] 2025-10-26 11:02:36 +1300
+-->
+ <para>
+ Fix incorrect logic for caching result-relation information for
+ triggers (David Rowley, Amit Langote)
+ <ulink url="&commit_baseurl;a2387c32f">§</ulink>
+ </para>
+
+ <para>
+ In cases where partitions' column sets aren't physically identical
+ to their parent partitioned tables' column sets, this oversight
+ could lead to crashes.
+ </para>
+ </listitem>
+
+ <listitem>
+<!--
+Author: David Rowley <drowley@postgresql.org>
+Branch: master [ac06ea8f7] 2025-09-17 12:19:15 +1200
+Branch: REL_18_STABLE Release: REL_18_0 [78e6047dc] 2025-09-17 12:19:51 +1200
+Branch: REL_17_STABLE [0fb06e893] 2025-09-17 12:20:19 +1200
+Branch: REL_16_STABLE [ba0203880] 2025-09-17 12:20:44 +1200
+Branch: REL_15_STABLE [f00ad440a] 2025-09-17 12:21:08 +1200
+Branch: REL_14_STABLE [f78a69034] 2025-09-17 12:21:29 +1200
+Branch: master [dee21ea6d] 2025-09-17 11:48:55 +1200
+Branch: REL_18_STABLE Release: REL_18_0 [bae6c74ba] 2025-09-17 11:49:26 +1200
+Branch: REL_17_STABLE [3d939a9b1] 2025-09-17 11:49:49 +1200
+Branch: REL_16_STABLE [d6539f88b] 2025-09-17 11:50:12 +1200
+Branch: REL_15_STABLE [005770203] 2025-09-17 11:50:35 +1200
+Branch: REL_14_STABLE [2eb7ea97d] 2025-09-17 11:50:58 +1200
+Branch: REL_13_STABLE [940f3cd5d] 2025-09-17 11:51:21 +1200
+-->
+ <para>
+ Add missing EvalPlanQual rechecks for TID Scan and TID Range Scan
+ plan nodes (Sophie Alpert, David Rowley)
+ <ulink url="&commit_baseurl;78e6047dc">§</ulink>
+ <ulink url="&commit_baseurl;bae6c74ba">§</ulink>
+ </para>
+
+ <para>
+ This omission led to possibly not rechecking a condition
+ on <structfield>ctid</structfield> during concurrent-update
+ situations, causing the update's behavior to vary depending on which
+ plan type had been selected.
+ </para>
+ </listitem>
+
+ <listitem>
+<!--
+Author: Amit Langote <amitlan@postgresql.org>
+Branch: master [905e932f0] 2025-10-16 14:01:44 +0900
+Branch: REL_18_STABLE [1296dcf18] 2025-10-16 14:01:50 +0900
+-->
+ <para>
+ Fix crash during EvalPlanQual rechecks on partitioned tables (David
+ Rowley, Amit Langote)
+ <ulink url="&commit_baseurl;1296dcf18">§</ulink>
+ </para>
+ </listitem>
+
+ <listitem>
+<!--
+Author: Etsuro Fujita <efujita@postgresql.org>
+Branch: master [12609fbac] 2025-10-15 17:15:00 +0900
+Branch: REL_18_STABLE [b14144325] 2025-10-15 17:15:01 +0900
+Branch: REL_17_STABLE [2bb84ea7e] 2025-10-15 17:15:02 +0900
+Branch: REL_16_STABLE [5a9af4868] 2025-10-15 17:15:03 +0900
+Branch: REL_15_STABLE [4a08603a2] 2025-10-15 17:15:04 +0900
+Branch: REL_14_STABLE [24e74b962] 2025-10-15 17:15:05 +0900
+Branch: REL_13_STABLE [12b0c0e51] 2025-10-15 17:15:05 +0900
+-->
+ <para>
+ Fix EvalPlanQual handling of foreign or custom joins that do not
+ have an alternative local-join plan prepared for EPQ (Masahiko
+ Sawada, Etsuro Fujita)
+ <ulink url="&commit_baseurl;b14144325">§</ulink>
+ </para>
+
+ <para>
+ In such cases the foreign or custom access method should be invoked
+ normally, but that did not happen, typically leading to a crash.
+ </para>
+ </listitem>
+
+ <listitem>
+<!--
+Author: Álvaro Herrera <alvherre@kurilemu.de>
+Branch: master [3231fd045] 2025-10-11 20:30:12 +0200
+Branch: REL_18_STABLE [08c037dff] 2025-10-11 20:30:12 +0200
+Branch: REL_17_STABLE [ea06f97ee] 2025-10-11 20:30:12 +0200
+Branch: REL_16_STABLE [b835759ec] 2025-10-11 20:30:12 +0200
+Branch: REL_15_STABLE [bdae98495] 2025-10-11 20:30:12 +0200
+Branch: REL_14_STABLE [b753be38a] 2025-10-11 20:30:12 +0200
+-->
+ <para>
+ Avoid duplicating hash partition constraints during <literal>DETACH
+ CONCURRENTLY</literal> (Haiyang Li)
+ <ulink url="&commit_baseurl;08c037dff">§</ulink>
+ </para>
+
+ <para>
+ <command>ALTER TABLE DETACH PARTITION CONCURRENTLY</command> was
+ written to add a copy of the partitioning constraint to the
+ now-detached partition. This was misguided, partially because
+ non-concurrent <literal>DETACH</literal> doesn't do that, but mostly
+ because in the case of hash partitioning the constraint expression
+ contains references to the parent table's OID. That causes problems
+ during dump/restore, or if the parent table is dropped
+ after <literal>DETACH</literal>. In v19 and later, we'll no longer
+ create any such copied constraints at all. In released branches, to
+ minimize the risk of unforeseen consequences, only skip adding a
+ copied constraint if it is for hash partitioning.
+ </para>
+ </listitem>
+
+ <listitem>
+<!--
+Author: Peter Eisentraut <peter@eisentraut.org>
+Branch: master [040cc5f3c] 2025-11-04 14:46:58 +0100
+Branch: REL_18_STABLE [ba99c9491] 2025-11-04 14:47:15 +0100
+Branch: REL_17_STABLE [0b44f2443] 2025-11-04 15:18:09 +0100
+Branch: REL_16_STABLE [7180d56c5] 2025-11-04 15:22:17 +0100
+Branch: REL_15_STABLE [643a5e96c] 2025-11-04 15:28:46 +0100
+Branch: REL_14_STABLE [04345d7a4] 2025-11-04 15:37:08 +0100
+Branch: REL_13_STABLE [7f239c72a] 2025-11-04 15:37:19 +0100
+-->
+ <para>
+ Disallow generated columns in partition keys
+ (Jian He, Ashutosh Bapat)
+ <ulink url="&commit_baseurl;ba99c9491">§</ulink>
+ </para>
+
+ <para>
+ This was already not allowed, but the check missed some cases, such
+ as where the column reference is implicit in a whole-row reference.
+ </para>
+ </listitem>
+
+ <listitem>
+<!--
+Author: Peter Eisentraut <peter@eisentraut.org>
+Branch: master [aa606b931] 2025-11-06 13:54:42 +0100
+Branch: REL_18_STABLE [0f9e0068b] 2025-11-06 13:55:08 +0100
+Branch: REL_17_STABLE [07f787e57] 2025-11-06 14:01:42 +0100
+Branch: REL_16_STABLE [26958f4d9] 2025-11-06 14:01:57 +0100
+Branch: REL_15_STABLE [8278737bf] 2025-11-06 14:02:03 +0100
+Branch: REL_14_STABLE [ccfe28eb4] 2025-11-06 14:02:09 +0100
+Branch: REL_13_STABLE [3717849e6] 2025-11-06 14:02:13 +0100
+-->
+ <para>
+ Disallow generated columns in <literal>COPY ... FROM
+ ... WHERE</literal> clauses (Peter Eisentraut, Jian He)
+ <ulink url="&commit_baseurl;0f9e0068b">§</ulink>
+ </para>
+
+ <para>
+ Previously, incorrect behavior or an obscure error message resulted
+ from attempting to reference such a column, since generated columns
+ have not yet been computed at the point
+ where <literal>WHERE</literal> filtering is done.
+ </para>
+ </listitem>
+
+ <listitem>
+<!--
+Author: Álvaro Herrera <alvherre@kurilemu.de>
+Branch: master [cf8be0225] 2025-11-03 15:58:19 +0100
+Branch: REL_18_STABLE [d9ffc2729] 2025-11-03 15:58:19 +0100
+-->
+ <para>
+ Prevent setting a column as identity if it has a not-null constraint
+ but the constraint is marked as invalid (Jian He)
+ <ulink url="&commit_baseurl;d9ffc2729">§</ulink>
+ </para>
+
+ <para>
+ Identity columns must be not-null, but the check for that missed
+ this edge case.
+ </para>
+ </listitem>
+
+ <listitem>
+<!--
+Author: John Naylor <john.naylor@postgresql.org>
+Branch: master [54ab74865] 2025-10-03 16:05:02 +0700
+Branch: REL_18_STABLE [76613b539] 2025-10-03 16:07:42 +0700
+Branch: REL_17_STABLE [3549ffb6a] 2025-10-03 16:07:34 +0700
+-->
+ <para>
+ Avoid potential use-after-free in parallel vacuum (Kevin Oommen
+ Anish)
+ <ulink url="&commit_baseurl;76613b539">§</ulink>
+ </para>
+
+ <para>
+ This bug seems to have no consequences in standard builds, but it's
+ theoretically a hazard.
+ </para>
+ </listitem>
+
+ <listitem>
+<!--
+Author: Noah Misch <noah@leadboat.com>
+Branch: master [a95393ecd] 2025-09-29 11:15:44 -0700
+Branch: REL_18_STABLE [d024160ff] 2025-09-29 11:15:47 -0700
+Branch: REL_17_STABLE [6778fbca6] 2025-09-29 11:15:48 -0700
+Branch: REL_16_STABLE [ab16418ee] 2025-09-29 11:15:48 -0700
+Branch: REL_15_STABLE [d202ec1fb] 2025-09-29 11:15:48 -0700
+Branch: REL_14_STABLE [5816baa9b] 2025-09-29 11:15:49 -0700
+Branch: REL_13_STABLE [afb2cce74] 2025-09-29 11:15:49 -0700
+-->
+ <para>
+ Fix visibility checking for statistics objects
+ in <literal>pg_temp</literal> (Noah Misch)
+ <ulink url="&commit_baseurl;d024160ff">§</ulink>
+ </para>
+
+ <para>
+ A statistics object located in a temporary schema cannot be named
+ without schema qualification,
+ but <function>pg_statistics_obj_is_visible()</function> missed that
+ memo and could return <quote>true</quote> regardless. In turn,
+ functions such as <function>pg_describe_object()</function> could
+ fail to schema-qualify the object's name as expected.
+ </para>
+ </listitem>
+
+ <listitem>
+<!--
+Author: Tom Lane <tgl@sss.pgh.pa.us>
+Branch: master [a0b99fc12] 2025-09-11 17:11:57 -0400
+Branch: REL_18_STABLE Release: REL_18_0 [3c02c4652] 2025-09-11 17:11:54 -0400
+Branch: REL_17_STABLE [c0c8ee23c] 2025-09-11 17:11:54 -0400
+Branch: REL_16_STABLE [8856f1acc] 2025-09-11 17:11:54 -0400
+Branch: REL_15_STABLE [451373dc5] 2025-09-11 17:11:54 -0400
+Branch: master [f14ea34d6] 2025-09-12 17:43:17 -0400
+Branch: REL_18_STABLE Release: REL_18_0 [ef81db969] 2025-09-12 17:43:18 -0400
+Branch: REL_17_STABLE [a220e40d1] 2025-09-12 17:43:15 -0400
+Branch: REL_16_STABLE [f6c8e7824] 2025-09-12 17:43:15 -0400
+Branch: REL_15_STABLE [33e49ee01] 2025-09-12 17:43:15 -0400
+-->
+ <para>
+ Fix <function>pg_event_trigger_dropped_objects()</function>'s
+ reporting of temporary status (Antoine Violin, Tom Lane)
+ <ulink url="&commit_baseurl;3c02c4652">§</ulink>
+ <ulink url="&commit_baseurl;ef81db969">§</ulink>
+ </para>
+
+ <para>
+ If a dropped column default, trigger, or RLS policy belongs to a
+ temporary table, report it with <literal>is_temporary</literal>
+ true.
+ </para>
+ </listitem>
+
+ <listitem>
+<!--
+Author: Tom Lane <tgl@sss.pgh.pa.us>
+Branch: master [abdeacdb0] 2025-09-10 16:05:03 -0400
+Branch: REL_18_STABLE Release: REL_18_0 [bc865ff6d] 2025-09-10 16:05:03 -0400
+Branch: REL_17_STABLE [862980f92] 2025-09-10 16:05:03 -0400
+Branch: REL_16_STABLE [e1da9c072] 2025-09-10 16:05:03 -0400
+Branch: REL_15_STABLE [5ac973892] 2025-09-10 16:05:03 -0400
+Branch: REL_14_STABLE [5eab9b0a4] 2025-09-10 16:05:03 -0400
+Branch: REL_13_STABLE [8b6c29afd] 2025-09-10 16:05:03 -0400
+-->
+ <para>
+ Fix memory leakage in hashed subplans (Haiyang Li)
+ <ulink url="&commit_baseurl;bc865ff6d">§</ulink>
+ </para>
+
+ <para>
+ Any memory consumed by the hash functions used for hashing tuples
+ constituted a query-lifespan memory leak. One way that could happen
+ is if the values being hashed require de-toasting.
+ </para>
+ </listitem>
+
+ <listitem>
+<!--
+Author: Michael Paquier <michael@paquier.xyz>
+Branch: master [8c8f7b199] 2025-09-10 07:23:05 +0900
+Branch: REL_18_STABLE Release: REL_18_0 [039301b3f] 2025-09-10 07:23:22 +0900
+Branch: REL_17_STABLE [e2dd7b2ac] 2025-09-10 07:23:24 +0900
+-->
+ <para>
+ Avoid leaking <structname>SMgrRelation</structname> objects in the
+ startup process (Jingtang Zhang)
+ <ulink url="&commit_baseurl;039301b3f">§</ulink>
+ </para>
+
+ <para>
+ In a long-running standby server, the hashtable holding these
+ objects could bloat substantially, because there was no mechanism
+ for freeing no-longer-interesting entries.
+ </para>
+ </listitem>
+
+ <listitem>
+<!--
+Author: Álvaro Herrera <alvherre@kurilemu.de>
+Branch: master [ff47f9c16] 2025-10-11 16:39:22 +0200
+Branch: REL_18_STABLE [33e7b4a7c] 2025-10-11 16:39:22 +0200
+Branch: REL_17_STABLE [f9993ac64] 2025-10-11 16:39:22 +0200
+Branch: REL_16_STABLE [c72b5c536] 2025-10-11 16:39:22 +0200
+Branch: REL_15_STABLE [23b316c36] 2025-10-11 16:39:22 +0200
+-->
+ <para>
+ Fix minor memory leak during WAL replay of database creation
+ (Nathan Bossart)
+ <ulink url="&commit_baseurl;33e7b4a7c">§</ulink>
+ </para>
+ </listitem>
+
+ <listitem>
+<!--
+Author: Michael Paquier <michael@paquier.xyz>
+Branch: master [8191e0c16] 2025-09-08 15:52:23 +0900
+Branch: REL_18_STABLE Release: REL_18_0 [f256a7bba] 2025-09-08 15:52:48 +0900
+Branch: REL_17_STABLE [3e6dfcfb0] 2025-09-08 15:52:51 +0900
+Branch: REL_16_STABLE [12f57681c] 2025-09-08 15:52:53 +0900
+Branch: REL_15_STABLE [1852ec5db] 2025-09-08 15:52:56 +0900
+-->
+ <para>
+ Fix corruption of the shared statistics table after out-of-memory
+ failures (Mikhail Kot)
+ <ulink url="&commit_baseurl;f256a7bba">§</ulink>
+ </para>
+
+ <para>
+ Previously, an out-of-memory failure partway through creating a new
+ hash table entry left a broken entry behind, potentially causing
+ errors in other sessions later.
+ </para>
+ </listitem>
+
+ <listitem>
+<!--
+Author: Dean Rasheed <dean.a.rasheed@gmail.com>
+Branch: master [6ede13d1b] 2025-09-05 08:18:18 +0100
+Branch: REL_18_STABLE Release: REL_18_0 [c70b6db34] 2025-09-05 08:21:35 +0100
+Branch: REL_17_STABLE [6195afbe5] 2025-09-05 08:22:38 +0100
+Branch: REL_16_STABLE [21a61b87f] 2025-09-05 08:23:57 +0100
+Branch: REL_15_STABLE [f871fbae9] 2025-09-05 08:25:03 +0100
+-->
+ <para>
+ Fix concurrent update issue in <command>MERGE</command>
+ (Yugo Nagata)
+ <ulink url="&commit_baseurl;c70b6db34">§</ulink>
+ </para>
+
+ <para>
+ When executing a <literal>MERGE UPDATE</literal> action, if there is
+ more than one concurrent update of the target row, the
+ lock-and-retry code would sometimes incorrectly identify the latest
+ version of the target tuple, leading to incorrect results.
+ </para>
+ </listitem>
+
+ <listitem>
+<!--
+Author: Dean Rasheed <dean.a.rasheed@gmail.com>
+Branch: master [fc6600fc1] 2025-09-04 11:45:44 +0100
+Branch: REL_18_STABLE Release: REL_18_0 [311340f17] 2025-09-04 11:47:15 +0100
+Branch: REL_17_STABLE [76f45be93] 2025-09-04 11:48:02 +0100
+Branch: REL_16_STABLE [421d7a157] 2025-09-04 11:48:51 +0100
+Branch: REL_15_STABLE [5481cc332] 2025-09-04 11:50:59 +0100
+Branch: master [5386bfb9c] 2025-09-04 11:27:53 +0100
+Branch: REL_18_STABLE Release: REL_18_0 [344662848] 2025-09-04 11:32:00 +0100
+Branch: REL_17_STABLE [0b934d399] 2025-09-04 11:33:00 +0100
+Branch: REL_16_STABLE [0c4d5a45d] 2025-09-04 11:34:25 +0100
+Branch: REL_15_STABLE [451b22efd] 2025-09-04 11:35:19 +0100
+Branch: REL_14_STABLE [5fd569ef2] 2025-09-04 11:36:25 +0100
+Branch: REL_13_STABLE [0610b843c] 2025-09-04 11:37:46 +0100
+Branch: REL_17_STABLE [57dfb64ec] 2025-09-04 16:01:18 +0100
+Branch: REL_16_STABLE [d37694b97] 2025-09-04 16:00:01 +0100
+Branch: REL_15_STABLE [a4624929d] 2025-09-04 15:59:02 +0100
+Branch: REL_14_STABLE [ea65c8823] 2025-09-04 15:57:18 +0100
+Branch: REL_13_STABLE [dbef9cbaa] 2025-09-04 15:55:59 +0100
+-->
+ <para>
+ Add missing replica identity checks in <command>MERGE</command> and
+ <command>INSERT ... ON CONFLICT DO UPDATE</command>
+ (Zhijie Hou)
+ <ulink url="&commit_baseurl;311340f17">§</ulink>
+ <ulink url="&commit_baseurl;344662848">§</ulink>
+ </para>
+
+ <para>
+ If <command>MERGE</command> may require update or delete actions,
+ and the target table publishes updates or deletes, insist that it
+ have a <literal>REPLICA IDENTITY</literal> defined. Failing to
+ require this can silently break replication.
+ Likewise, <command>INSERT</command> with
+ an <literal>UPDATE</literal> option must require <literal>REPLICA
+ IDENTITY</literal> if the target table publishes either inserts or
+ updates.
+ </para>
+ </listitem>
+
+ <listitem>
+<!--
+Author: Amit Kapila <akapila@postgresql.org>
+Branch: master [aa21e4922] 2025-08-19 05:33:17 +0000
+Branch: REL_18_STABLE Release: REL_18_0 [a5d4c0415] 2025-08-19 05:18:24 +0000
+Branch: REL_17_STABLE [288a817bc] 2025-08-19 05:06:37 +0000
+Branch: REL_16_STABLE [7ece76129] 2025-08-19 04:54:19 +0000
+Branch: REL_15_STABLE [e41137155] 2025-08-19 04:41:14 +0000
+Branch: REL_14_STABLE [ef7750274] 2025-08-19 04:28:19 +0000
+Branch: REL_13_STABLE [0a98f24a6] 2025-08-19 04:17:03 +0000
+-->
+ <para>
+ Avoid deadlock during <command>DROP SUBSCRIPTION</command> when
+ publisher is on the same server as subscriber (Dilip Kumar)
+ <ulink url="&commit_baseurl;a5d4c0415">§</ulink>
+ </para>
+ </listitem>
+
+ <listitem>
+<!--
+Author: Fujii Masao <fujii@postgresql.org>
+Branch: master [883a95646] 2025-10-22 11:27:15 +0900
+Branch: REL_18_STABLE [9670032cc] 2025-10-22 11:28:48 +0900
+Branch: REL_17_STABLE [62d5ee75b] 2025-10-22 11:28:57 +0900
+Branch: REL_16_STABLE [2e55cf4ef] 2025-10-22 11:29:02 +0900
+Branch: REL_15_STABLE [59b215f72] 2025-10-22 11:29:07 +0900
+Branch: REL_14_STABLE [a7ab6ce6a] 2025-10-22 11:29:13 +0900
+Branch: REL_13_STABLE [7d7ebdb80] 2025-10-22 11:29:18 +0900
+-->
+ <para>
+ Fix incorrect reporting of replication lag
+ in <structname>pg_stat_replication</structname> view (Fujii Masao)
+ <ulink url="&commit_baseurl;9670032cc">§</ulink>
+ </para>
+
+ <para>
+ If any standby server's replay LSN stopped advancing,
+ the <structfield>write_lag</structfield>
+ and <structfield>flush_lag</structfield> columns would eventually
+ stop updating.
+ </para>
+ </listitem>
+
+ <listitem>
+<!--
+Author: Fujii Masao <fujii@postgresql.org>
+Branch: master [f33e60a53] 2025-10-22 20:09:43 +0900
+Branch: REL_18_STABLE [6ff7ba9fe] 2025-10-22 20:10:58 +0900
+Branch: REL_17_STABLE [1db2870bb] 2025-10-22 20:11:47 +0900
+Branch: REL_16_STABLE [4fd916eab] 2025-10-22 20:12:36 +0900
+Branch: REL_15_STABLE [caf529aba] 2025-10-22 20:13:15 +0900
+Branch: REL_14_STABLE [f106f53df] 2025-10-22 20:14:02 +0900
+Branch: REL_13_STABLE [b00a16bae] 2025-10-22 20:14:07 +0900
+-->
+ <para>
+ Avoid duplicative log messages about
+ invalid <varname>primary_slot_name</varname> settings (Fujii Masao)
+ <ulink url="&commit_baseurl;6ff7ba9fe">§</ulink>
+ </para>
+ </listitem>
+
+ <listitem>
+<!--
+Author: Amit Kapila <akapila@postgresql.org>
+Branch: master [e0dc4bbfb] 2025-10-27 06:48:32 +0000
+Branch: REL_18_STABLE [b45a8d7d8] 2025-10-27 06:37:35 +0000
+Branch: REL_17_STABLE [0024f5a10] 2025-10-27 06:34:29 +0000
+-->
+ <para>
+ Avoid failures when <varname>synchronized_standby_slots</varname>
+ references nonexistent replication slots (Shlok Kyal)
+ <ulink url="&commit_baseurl;b45a8d7d8">§</ulink>
+ </para>
+ </listitem>
+
+ <listitem>
+<!--
+Author: Michael Paquier <michael@paquier.xyz>
+Branch: master [912af1c7e] 2025-10-10 09:23:59 +0900
+Branch: REL_18_STABLE [9a6ea00ac] 2025-10-10 09:24:48 +0900
+Branch: REL_17_STABLE [42348839d] 2025-10-10 09:24:50 +0900
+Branch: REL_16_STABLE [bfdd1a12d] 2025-10-10 09:24:53 +0900
+Branch: REL_15_STABLE [0adf424b4] 2025-10-10 09:24:54 +0900
+Branch: REL_14_STABLE [f57f2760e] 2025-10-10 09:24:57 +0900
+Branch: REL_13_STABLE [c878d9808] 2025-10-10 09:24:59 +0900
+-->
+ <para>
+ Remove the unfinished slot state file after failing to write a
+ replication slot's state to disk (Michael Paquier)
+ <ulink url="&commit_baseurl;9a6ea00ac">§</ulink>
+ </para>
+
+ <para>
+ Previously, a failure such as out-of-disk-space resulted in leaving
+ a temporary <filename>state.tmp</filename> file behind. That's
+ problematic because it would block all subsequent attempts to
+ write the state, requiring manual intervention to clean up.
+ </para>
+ </listitem>
+
+ <listitem>
+<!--
+Author: Amit Kapila <akapila@postgresql.org>
+Branch: master [e41d954da] 2025-09-24 04:11:53 +0000
+Branch: REL_18_STABLE [37fc5de43] 2025-09-24 04:00:15 +0000
+Branch: REL_17_STABLE [2f6e1a490] 2025-09-24 03:49:02 +0000
+Branch: REL_16_STABLE [a54c7a113] 2025-09-24 03:38:27 +0000
+-->
+ <para>
+ Fix mishandling of lock timeout signals in parallel apply workers
+ for logical replication (Hayato Kuroda)
+ <ulink url="&commit_baseurl;37fc5de43">§</ulink>
+ </para>
+
+ <para>
+ The same signal number was being used for both worker shutdown and
+ lock timeout, leading to confusion.
+ </para>
+ </listitem>
+
+ <listitem>
+<!--
+Author: Michael Paquier <michael@paquier.xyz>
+Branch: master [17b2d5ec7] 2025-11-04 10:47:38 +0900
+Branch: REL_18_STABLE [a14201073] 2025-11-04 10:52:33 +0900
+Branch: REL_17_STABLE [e7340b484] 2025-11-04 10:52:35 +0900
+Branch: REL_16_STABLE [9b6109607] 2025-11-04 10:52:38 +0900
+Branch: REL_15_STABLE [da5ea6c70] 2025-11-04 10:52:41 +0900
+Branch: REL_14_STABLE [a1b8b3b2e] 2025-11-04 10:52:42 +0900
+Branch: REL_13_STABLE [25b484080] 2025-11-04 10:52:44 +0900
+-->
+ <para>
+ Avoid unwanted WAL receiver shutdown when switching from streaming
+ to archive WAL source (Xuneng Zhou)
+ <ulink url="&commit_baseurl;a14201073">§</ulink>
+ </para>
+
+ <para>
+ During a timeline change, a standby server's WAL receiver should
+ remain alive, waiting for a new WAL streaming start point. Instead
+ it was repeatedly shutting down and immediately getting restarted,
+ which could confuse status monitoring code.
+ </para>
+ </listitem>
+
+ <listitem>
+<!--
+Author: Michael Paquier <michael@paquier.xyz>
+Branch: master [ef03ea01f] 2025-08-22 09:03:59 +0900
+Branch: REL_18_STABLE Release: REL_18_0 [86831952a] 2025-08-22 09:06:34 +0900
+Branch: REL_17_STABLE [dcdc95cb4] 2025-08-22 09:06:36 +0900
+Branch: REL_16_STABLE [ab874faaa] 2025-08-22 09:06:37 +0900
+Branch: REL_15_STABLE [ec471008c] 2025-08-22 09:06:38 +0900
+Branch: REL_14_STABLE [222130edd] 2025-08-22 09:06:40 +0900
+Branch: REL_13_STABLE [30b32b08c] 2025-08-22 09:06:42 +0900
+-->
+ <para>
+ Avoid failures in logical replication due to chance collisions of
+ file numbers between regular and temporary tables (Vignesh C)
+ <ulink url="&commit_baseurl;86831952a">§</ulink>
+ </para>
+
+ <para>
+ This low-probability problem manifested as transient errors
+ like <quote>unexpected duplicate for
+ tablespace <replaceable>X</replaceable>,
+ relfilenode <replaceable>Y</replaceable></quote>.
+ <filename>contrib/autoprewarm</filename> was also affected.
+ A side-effect of the fix is that the SQL
+ function <function>pg_filenode_relation()</function> will now ignore
+ temporary tables.
+ </para>
+ </listitem>
+
+ <listitem>
+<!--
+Author: Masahiko Sawada <msawada@postgresql.org>
+Branch: master [b46efe904] 2025-10-09 10:59:27 -0700
+Branch: REL_18_STABLE [32b95fc71] 2025-10-09 10:59:29 -0700
+Branch: REL_17_STABLE [a61592253] 2025-10-09 10:59:31 -0700
+Branch: REL_16_STABLE [b07682bce] 2025-10-09 10:59:34 -0700
+Branch: REL_15_STABLE [c40761759] 2025-10-09 10:59:36 -0700
+-->
+ <para>
+ Fix use-after-free issue in the relation synchronization cache
+ maintained by the <application>pgoutput</application> logical
+ decoding plugin (Vignesh C, Masahiko Sawada)
+ <ulink url="&commit_baseurl;32b95fc71">§</ulink>
+ </para>
+
+ <para>
+ An error during logical decoding could result in crashes in
+ subsequent logical decoding attempts in the same session.
+ The case is only reachable when <application>pgoutput</application>
+ is invoked via SQL functions.
+ </para>
+ </listitem>
+
+ <listitem>
+<!--
+Author: Michael Paquier <michael@paquier.xyz>
+Branch: master [d43209468] 2025-10-30 13:13:28 +0900
+Branch: REL_18_STABLE [bf3dba508] 2025-10-30 13:13:31 +0900
+Branch: REL_17_STABLE [f3fb6bc9f] 2025-10-30 13:13:34 +0900
+Branch: REL_16_STABLE [e3714dc05] 2025-10-30 13:13:37 +0900
+-->
+ <para>
+ Avoid unnecessary invalidation of logical replication slots
+ (Bertrand Drouvot)
+ <ulink url="&commit_baseurl;bf3dba508">§</ulink>
+ </para>
+ </listitem>
+
+ <listitem>
+<!--
+Author: Michael Paquier <michael@paquier.xyz>
+Branch: master [1f2e51e3c] 2025-08-20 15:00:04 +0900
+Branch: REL_18_STABLE Release: REL_18_0 [ea1c6b0b0] 2025-08-20 15:00:08 +0900
+Branch: REL_17_STABLE [07a302387] 2025-08-20 15:00:10 +0900
+Branch: REL_16_STABLE [fea1cc3f7] 2025-08-20 15:00:13 +0900
+Branch: REL_15_STABLE [818be9b73] 2025-08-20 15:00:14 +0900
+Branch: REL_14_STABLE [32d388d00] 2025-08-20 15:00:16 +0900
+Branch: REL_13_STABLE [8ed079cad] 2025-08-20 15:00:17 +0900
+-->
+ <para>
+ Avoid assertion failure when trying to release a replication slot in
+ single-user mode (Hayato Kuroda)
+ <ulink url="&commit_baseurl;ea1c6b0b0">§</ulink>
+ </para>
+ </listitem>
+
+ <listitem>
+<!--
+Author: Jeff Davis <jdavis@postgresql.org>
+Branch: master [d115de9d8] 2025-11-04 16:48:16 -0800
+Branch: REL_18_STABLE [3ebea75f9] 2025-11-04 16:49:00 -0800
+-->
+ <para>
+ Re-establish special case for <literal>C</literal> collation in
+ locale setup (Jeff Davis)
+ <ulink url="&commit_baseurl;3ebea75f9">§</ulink>
+ </para>
+
+ <para>
+ This fixes a regression in access to shared catalogs early in
+ backend startup, before a database has been selected. It is not
+ known to be a problem for any
+ core <productname>PostgreSQL</productname> code, but some extensions
+ were broken.
+ </para>
+ </listitem>
+
+ <listitem>
+<!--
+Author: Tom Lane <tgl@sss.pgh.pa.us>
+Branch: master [03bf7a12c] 2025-10-13 17:56:45 -0400
+Branch: REL_18_STABLE [b48ae226e] 2025-10-13 17:56:45 -0400
+Branch: REL_17_STABLE [4c53519e1] 2025-10-13 17:56:45 -0400
+Branch: REL_16_STABLE [9883e3cd1] 2025-10-13 17:56:45 -0400
+Branch: REL_15_STABLE [f91666c83] 2025-10-13 17:56:45 -0400
+Branch: REL_14_STABLE [e91eb4ad6] 2025-10-13 17:56:45 -0400
+Branch: REL_13_STABLE [75a555d61] 2025-10-13 17:56:45 -0400
+-->
+ <para>
+ Fix incorrect printing of messages about failures in checking
+ whether the user has Windows administrator privilege (Bryan Green)
+ <ulink url="&commit_baseurl;b48ae226e">§</ulink>
+ </para>
+
+ <para>
+ This code would have crashed or at least printed garbage.
+ No such cases have been reported though, indicating that failure of
+ these system calls is extremely rare.
+ </para>
+ </listitem>
+
+ <listitem>
+<!--
+Author: Tom Lane <tgl@sss.pgh.pa.us>
+Branch: master [21fddb3d7] 2025-08-13 12:00:03 -0400
+Branch: REL_18_STABLE Release: REL_18_0 [787cd2b7d] 2025-08-13 11:59:47 -0400
+Branch: REL_17_STABLE [ab92f0e7f] 2025-08-13 11:59:47 -0400
+Branch: REL_16_STABLE [e67d5f7ba] 2025-08-13 11:59:47 -0400
+Branch: REL_15_STABLE [f4c088344] 2025-08-13 11:59:47 -0400
+Branch: REL_14_STABLE [b3d6e8b63] 2025-08-13 11:59:47 -0400
+Branch: REL_13_STABLE [e3b3fa863] 2025-08-13 11:59:47 -0400
+-->
+ <para>
+ Avoid startup failure on macOS and BSD platforms when there is a
+ collision with a pre-existing semaphore set (Tom Lane)
+ <ulink url="&commit_baseurl;787cd2b7d">§</ulink>
+ </para>
+
+ <para>
+ If the pre-existing set has fewer semaphores than we asked for,
+ these platforms return <systemitem>EINVAL</systemitem>
+ not <systemitem>EEXIST</systemitem> as our code expected, resulting
+ in failure to start the database.
+ </para>
+ </listitem>
+
+ <listitem>
+<!--
+Author: Tom Lane <tgl@sss.pgh.pa.us>
+Branch: master [d4baa327a] 2025-11-05 11:09:45 -0500
+Branch: REL_18_STABLE [6d8acb777] 2025-11-05 11:09:30 -0500
+Branch: REL_17_STABLE [a9515f294] 2025-11-05 11:09:30 -0500
+Branch: REL_16_STABLE [c775bf048] 2025-11-05 11:09:30 -0500
+-->
+ <para>
+ Avoid crash when attempting to
+ test <productname>PostgreSQL</productname> with certain libsanitizer
+ options (Emmanuel Sibi, Jacob Champion)
+ <ulink url="&commit_baseurl;6d8acb777">§</ulink>
+ </para>
+ </listitem>
+
+ <listitem>
+<!--
+Author: David Rowley <drowley@postgresql.org>
+Branch: master [50eb4e118] 2025-10-30 14:48:10 +1300
+Branch: REL_18_STABLE [af3a79e08] 2025-10-30 14:49:07 +1300
+Branch: REL_17_STABLE [bd6f986c9] 2025-10-30 14:49:42 +1300
+Branch: REL_16_STABLE [cdc04a6c3] 2025-10-30 14:50:05 +1300
+Branch: REL_15_STABLE [f3420e006] 2025-10-30 14:50:26 +1300
+Branch: REL_14_STABLE [86bd9497f] 2025-10-30 14:50:46 +1300
+Branch: REL_13_STABLE [7b955c227] 2025-10-30 14:51:08 +1300
+-->
+ <para>
+ Fix false memory-context-checking warnings in debug builds
+ on 64-bit Windows (David Rowley)
+ <ulink url="&commit_baseurl;af3a79e08">§</ulink>
+ </para>
+ </listitem>
+
+ <listitem>
+<!--
+Author: Tom Lane <tgl@sss.pgh.pa.us>
+Branch: master [7504d2be9] 2025-09-27 14:29:41 -0400
+Branch: REL_18_STABLE [78a284b0b] 2025-09-27 14:29:41 -0400
+Branch: REL_17_STABLE [3fc9aa5b0] 2025-09-27 14:29:41 -0400
+Branch: REL_16_STABLE [b7f6798c0] 2025-09-27 14:29:41 -0400
+Branch: REL_15_STABLE [9ca79896a] 2025-09-27 14:29:41 -0400
+Branch: REL_14_STABLE [0be39b4b1] 2025-09-27 14:29:41 -0400
+-->
+ <para>
+ Correctly handle <literal>GROUP BY DISTINCT</literal> in PL/pgSQL
+ assignment statements (Tom Lane)
+ <ulink url="&commit_baseurl;78a284b0b">§</ulink>
+ </para>
+
+ <para>
+ The parser failed to record the <literal>DISTINCT</literal> option
+ in this context, so that the command would act as if it were
+ plain <literal>GROUP BY</literal>.
+ </para>
+ </listitem>
+
+ <listitem>
+<!--
+Author: Tom Lane <tgl@sss.pgh.pa.us>
+Branch: master [798b19d27] 2025-10-23 11:47:46 -0400
+Branch: REL_18_STABLE [447a794f6] 2025-10-23 11:47:46 -0400
+Branch: REL_17_STABLE [fbc41a145] 2025-10-23 11:47:46 -0400
+Branch: REL_16_STABLE [cbfd4d0f8] 2025-10-23 11:47:46 -0400
+Branch: REL_15_STABLE [4cde73259] 2025-10-23 11:47:46 -0400
+Branch: REL_14_STABLE [7fb8c9240] 2025-10-23 11:47:46 -0400
+Branch: REL_13_STABLE [d90c92d1c] 2025-10-23 11:47:46 -0400
+-->
+ <para>
+ Avoid leaking memory when handling a SQL error within PL/Python
+ (Tom Lane)
+ <ulink url="&commit_baseurl;447a794f6">§</ulink>
+ </para>
+
+ <para>
+ This fixes a session-lifespan memory leak introduced in our previous
+ minor releases.
+ </para>
+ </listitem>
+
+ <listitem>
+<!--
+Author: Michael Paquier <michael@paquier.xyz>
+Branch: master [db9405493] 2025-09-03 12:54:23 +0900
+Branch: REL_18_STABLE Release: REL_18_0 [ae53537e2] 2025-09-03 12:54:27 +0900
+Branch: REL_17_STABLE [0fedb3a27] 2025-09-03 12:54:29 +0900
+Branch: REL_16_STABLE [701a0bd56] 2025-09-03 12:54:31 +0900
+Branch: REL_15_STABLE [0b274c475] 2025-09-03 12:54:32 +0900
+Branch: REL_14_STABLE [0cc540f0d] 2025-09-03 12:54:34 +0900
+-->
+ <para>
+ Fix <application>libpq</application>'s trace output of characters
+ with the high bit set (Ran Benita)
+ <ulink url="&commit_baseurl;ae53537e2">§</ulink>
+ </para>
+
+ <para>
+ On platforms where <type>char</type> is considered signed, the
+ output included unsightly <literal>\xffffff</literal> decoration.
+ </para>
+ </listitem>
+
+ <listitem>
+<!--
+Author: Tom Lane <tgl@sss.pgh.pa.us>
+Branch: master [ea78bd6d5] 2025-10-05 16:27:47 -0400
+Branch: REL_18_STABLE [d83879a32] 2025-10-05 16:27:47 -0400
+Branch: REL_17_STABLE [1c4671f7b] 2025-10-05 16:27:47 -0400
+Branch: REL_16_STABLE [46c4478db] 2025-10-05 16:27:47 -0400
+Branch: REL_15_STABLE [771b106d1] 2025-10-05 16:27:47 -0400
+Branch: REL_14_STABLE [f46d77377] 2025-10-05 16:27:47 -0400
+Branch: REL_13_STABLE [fc287cf3c] 2025-10-05 16:27:47 -0400
+-->
+ <para>
+ Fix <application>libpq</application>'s handling of socket-related
+ errors on Windows within its GSSAPI logic (Ning Wu, Tom Lane)
+ <ulink url="&commit_baseurl;d83879a32">§</ulink>
+ </para>
+
+ <para>
+ The code for encrypting/decrypting transmitted data using GSSAPI did
+ not correctly recognize error conditions on the connection socket,
+ since Windows reports those differently than other platforms. This
+ led to failure to make such connections on Windows.
+ </para>
+ </listitem>
+
+ <listitem>
+<!--
+Author: Álvaro Herrera <alvherre@kurilemu.de>
+Branch: master [615ff828e] 2025-10-18 18:18:19 +0200
+Branch: REL_18_STABLE [0fe07fa11] 2025-10-18 18:18:19 +0200
+Branch: REL_17_STABLE [c945b06d5] 2025-10-18 18:18:19 +0200
+-->
+ <para>
+ Fix dumping of non-inherited not-null constraints on inherited table
+ columns (Dilip Kumar)
+ <ulink url="&commit_baseurl;0fe07fa11">§</ulink>
+ </para>
+
+ <para>
+ <application>pg_dump</application> failed to preserve such
+ constraints when dumping from a pre-v18 server.
+ </para>
+ </listitem>
+
+ <listitem>
+<!--
+Author: Fujii Masao <fujii@postgresql.org>
+Branch: master [8e5b92928] 2025-09-16 16:44:58 +0900
+Branch: REL_18_STABLE Release: REL_18_0 [176002c5b] 2025-09-16 16:46:28 +0900
+Branch: REL_17_STABLE [968141898] 2025-09-16 16:46:36 +0900
+Branch: REL_16_STABLE [20b23784f] 2025-09-16 16:46:43 +0900
+Branch: REL_15_STABLE [165b07efe] 2025-09-16 16:46:51 +0900
+Branch: REL_14_STABLE [295c0a644] 2025-09-16 16:46:58 +0900
+Branch: REL_13_STABLE [dff7591a7] 2025-09-16 16:47:05 +0900
+-->
+ <para>
+ In <application>pg_dump</application>, dump security labels on
+ subscriptions and event triggers (Jian He, Fujii Masao)
+ <ulink url="&commit_baseurl;176002c5b">§</ulink>
+ </para>
+
+ <para>
+ Labels on these types of objects were previously missed.
+ </para>
+ </listitem>
+
+ <listitem>
+<!--
+Author: Noah Misch <noah@leadboat.com>
+Branch: master [b61a5c4be] 2025-08-22 20:50:28 -0700
+Branch: REL_18_STABLE Release: REL_18_0 [7652142f4] 2025-08-22 20:50:31 -0700
+Branch: REL_17_STABLE [e8d22095e] 2025-08-22 20:50:32 -0700
+Branch: REL_16_STABLE [e68fa9a83] 2025-08-22 20:50:32 -0700
+Branch: REL_15_STABLE [fbf967e99] 2025-08-22 20:50:32 -0700
+Branch: REL_14_STABLE [4948bb9df] 2025-08-22 20:50:33 -0700
+Branch: REL_13_STABLE [05341b2e9] 2025-08-22 20:50:33 -0700
+Branch: master [ad4412480] 2025-08-23 16:46:20 -0700
+Branch: REL_18_STABLE Release: REL_18_0 [c6dca7c3d] 2025-08-23 16:46:24 -0700
+Branch: REL_17_STABLE [49a09c6c5] 2025-08-23 16:46:24 -0700
+Branch: REL_16_STABLE [412d29fd2] 2025-08-23 16:46:24 -0700
+Branch: REL_15_STABLE [090c9c960] 2025-08-23 16:46:25 -0700
+Branch: REL_14_STABLE [22c6a44f0] 2025-08-23 16:46:25 -0700
+Branch: REL_13_STABLE [fb75e1ef7] 2025-08-23 16:46:26 -0700
+Author: Álvaro Herrera <alvherre@kurilemu.de>
+Branch: master [4921a5972] 2025-10-18 17:50:10 +0200
+Branch: REL_18_STABLE [162e70ea0] 2025-10-18 17:50:10 +0200
+Branch: REL_17_STABLE [7419c99a2] 2025-10-18 17:50:10 +0200
+Branch: REL_16_STABLE [06c1ee6b7] 2025-10-18 17:50:10 +0200
+Branch: REL_15_STABLE [4cc3b4445] 2025-10-18 17:50:10 +0200
+Branch: REL_14_STABLE [6062c3db3] 2025-10-18 17:50:10 +0200
+Branch: REL_13_STABLE [d20df9590] 2025-10-18 17:50:10 +0200
+-->
+ <para>
+ Fix <application>pg_dump</application>'s sorting of default ACLs and
+ foreign key constraints (Kirill Reshke, Álvaro Herrera)
+ <ulink url="&commit_baseurl;7652142f4">§</ulink>
+ <ulink url="&commit_baseurl;c6dca7c3d">§</ulink>
+ <ulink url="&commit_baseurl;162e70ea0">§</ulink>
+ </para>
+
+ <para>
+ Ensure consistent ordering of these database object types, as was
+ already done for other object types.
+ </para>
+ </listitem>
+
+ <listitem>
+<!--
+Author: Noah Misch <noah@leadboat.com>
+Branch: master [c044b50d1] 2025-09-16 09:40:44 -0700
+Branch: REL_18_STABLE Release: REL_18_0 [4ad846445] 2025-09-16 09:40:48 -0700
+Branch: REL_17_STABLE [e127764b6] 2025-09-16 09:40:48 -0700
+Branch: REL_16_STABLE [3cf328eca] 2025-09-16 09:40:48 -0700
+Branch: REL_15_STABLE [0773f3a87] 2025-09-16 09:40:49 -0700
+Branch: REL_14_STABLE [85d6ed31f] 2025-09-16 09:40:49 -0700
+Branch: REL_13_STABLE [a685c057a] 2025-09-16 09:40:50 -0700
+-->
+ <para>
+ In <application>pg_dump</application>, label comments for
+ separately-dumped domain constraints with the proper dependency
+ (Noah Misch)
+ <ulink url="&commit_baseurl;4ad846445">§</ulink>
+ </para>
+
+ <para>
+ This error could lead to
+ parallel <application>pg_restore</application> attempting to create
+ the comment before the constraint itself has been restored.
+ </para>
+ </listitem>
+
+ <listitem>
+<!--
+Author: Fujii Masao <fujii@postgresql.org>
+Branch: master [b54e8dbfe] 2025-09-16 10:35:12 +0900
+Branch: REL_18_STABLE Release: REL_18_0 [77d2b155c] 2025-09-16 10:36:20 +0900
+Branch: REL_17_STABLE [f7f9c5d65] 2025-09-16 10:36:54 +0900
+Branch: REL_16_STABLE [97527a5e6] 2025-09-16 10:37:38 +0900
+Branch: REL_15_STABLE [c8ed16050] 2025-09-16 10:38:09 +0900
+Branch: REL_14_STABLE [db900ec35] 2025-09-16 10:38:40 +0900
+Branch: REL_13_STABLE [8fbd1f8ea] 2025-09-16 10:39:13 +0900
+Branch: master [45f50c995] 2025-09-18 11:09:15 +0900
+Branch: REL_18_STABLE Release: REL_18_0 [7aecc00b3] 2025-09-18 11:10:12 +0900
+Branch: REL_17_STABLE [dc8aa2f58] 2025-09-18 11:10:18 +0900
+Branch: REL_16_STABLE [0870397cc] 2025-09-18 11:10:24 +0900
+Branch: REL_15_STABLE [5f42008f9] 2025-09-18 11:10:30 +0900
+Branch: REL_14_STABLE [bc476f8b8] 2025-09-18 11:10:37 +0900
+Branch: REL_13_STABLE [a4dbb11bb] 2025-09-18 11:10:43 +0900
+-->
+ <para>
+ In <application>pg_restore</application>, skip comments and security
+ labels for publications and subscriptions that are not being
+ restored (Jian He, Fujii Masao)
+ <ulink url="&commit_baseurl;77d2b155c">§</ulink>
+ <ulink url="&commit_baseurl;7aecc00b3">§</ulink>
+ </para>
+
+ <para>
+ Do not emit <command>COMMENT</command> or <command>SECURITY
+ LABEL</command> commands for these objects
+ when <option>--no-publications</option>
+ or <option>--no-subscriptions</option> is specified.
+ </para>
+ </listitem>
+
+ <listitem>
+<!--
+Author: Daniel Gustafsson <dgustafsson@postgresql.org>
+Branch: master [e686010c5] 2025-08-29 19:28:46 +0200
+Branch: REL_18_STABLE Release: REL_18_0 [8980c724b] 2025-08-29 19:28:46 +0200
+Branch: REL_17_STABLE [92268b35d] 2025-08-29 19:28:46 +0200
+Branch: REL_16_STABLE [ec017a305] 2025-08-29 19:28:46 +0200
+Author: Tom Lane <tgl@sss.pgh.pa.us>
+Branch: master [a239c4a0c] 2025-10-13 12:44:20 -0400
+Branch: REL_18_STABLE [6a4009747] 2025-10-13 12:44:20 -0400
+Branch: REL_17_STABLE [bf18e9bd7] 2025-10-13 12:44:20 -0400
+Branch: REL_16_STABLE [1518b7d76] 2025-10-13 12:44:20 -0400
+Branch: master [277dec651] 2025-10-19 14:36:58 -0400
+Branch: REL_18_STABLE [aa1fcd087] 2025-10-19 14:36:58 -0400
+Branch: REL_17_STABLE [2efca1633] 2025-10-19 14:36:58 -0400
+Branch: REL_16_STABLE [c865f5b9f] 2025-10-19 14:36:58 -0400
+Branch: REL_15_STABLE [8b9924bce] 2025-10-19 14:36:58 -0400
+Branch: REL_14_STABLE [40dc710a6] 2025-10-19 14:36:58 -0400
+Branch: REL_13_STABLE [33276cd02] 2025-10-19 14:36:58 -0400
+-->
+ <para>
+ Fix assorted errors in the data compression logic
+ in <application>pg_dump</application>
+ and <application>pg_restore</application>
+ (Daniel Gustafsson, Tom Lane)
+ <ulink url="&commit_baseurl;8980c724b">§</ulink>
+ <ulink url="&commit_baseurl;6a4009747">§</ulink>
+ <ulink url="&commit_baseurl;aa1fcd087">§</ulink>
+ </para>
+
+ <para>
+ Error checking was missing or incorrect in several places, and there
+ were also portability issues that would manifest on big-endian
+ hardware. These problems had been missed because this code is only
+ used to read compressed TOC files within directory-format
+ dumps. <application>pg_dump</application> never produces such a
+ dump; the case can be reached only by manually compressing the TOC
+ file after the fact, which is a supported thing to do but very
+ uncommon.
+ </para>
+ </listitem>
+
+ <listitem>
+<!--
+Author: Michael Paquier <michael@paquier.xyz>
+Branch: master [902c08887] 2025-10-03 14:03:55 +0900
+Branch: REL_18_STABLE [c00637b5f] 2025-10-03 14:04:00 +0900
+Branch: REL_17_STABLE [de6de069d] 2025-10-03 14:04:01 +0900
+Branch: REL_16_STABLE [640590bb4] 2025-10-03 14:04:03 +0900
+Branch: REL_15_STABLE [b5cefc197] 2025-10-03 14:04:05 +0900
+Branch: REL_14_STABLE [9b3beb7c6] 2025-10-03 14:04:06 +0900
+Branch: REL_13_STABLE [f1a2f3a0c] 2025-10-03 14:04:08 +0900
+-->
+ <para>
+ Fix <application>pgbench</application> to error out cleanly if
+ a <literal>COPY</literal> operation is started (Anthonin Bonnefoy)
+ <ulink url="&commit_baseurl;c00637b5f">§</ulink>
+ </para>
+
+ <para>
+ <application>pgbench</application> doesn't intend to support this
+ case, but previously it went into an infinite loop.
+ </para>
+ </listitem>
+
+ <listitem>
+<!--
+Author: Fujii Masao <fujii@postgresql.org>
+Branch: master [19d4f9ffc] 2025-09-30 23:52:28 +0900
+Branch: REL_18_STABLE [29aabbc43] 2025-09-30 23:53:32 +0900
+Branch: REL_17_STABLE [a912118c6] 2025-09-30 23:53:46 +0900
+Branch: REL_16_STABLE [36c4d30c8] 2025-09-30 23:53:53 +0900
+Branch: REL_15_STABLE [bdccb6302] 2025-09-30 23:54:01 +0900
+Branch: REL_14_STABLE [cb21e1f92] 2025-09-30 23:55:02 +0900
+Branch: REL_13_STABLE [7d7e81d1e] 2025-09-30 23:55:33 +0900
+-->
+ <para>
+ Fix <application>pgbench</application>'s reporting of multiple
+ errors (Yugo Nagata)
+ <ulink url="&commit_baseurl;29aabbc43">§</ulink>
+ </para>
+
+ <para>
+ In cases where two successive <function>PQgetResult</function> calls
+ both fail, <application>pgbench</application> might report the wrong
+ error message.
+ </para>
+ </listitem>
+
+ <listitem>
+<!--
+Author: Fujii Masao <fujii@postgresql.org>
+Branch: master [8bb174295] 2025-09-26 21:23:43 +0900
+Branch: REL_18_STABLE [c736808e0] 2025-09-26 21:24:59 +0900
+Branch: REL_17_STABLE [f39d9164b] 2025-09-26 21:25:05 +0900
+Branch: REL_16_STABLE [8b2e290bd] 2025-09-26 21:25:11 +0900
+Branch: REL_15_STABLE [704f51771] 2025-09-26 21:25:17 +0900
+-->
+ <para>
+ In <application>pgbench</application>, fix faulty assertion about
+ errors in pipeline mode (Yugo Nagata)
+ <ulink url="&commit_baseurl;c736808e0">§</ulink>
+ </para>
+ </listitem>
+
+ <listitem>
+<!--
+Author: Tom Lane <tgl@sss.pgh.pa.us>
+Branch: master [9224c3025] 2025-10-22 13:38:40 -0400
+Branch: REL_18_STABLE [e2072b47b] 2025-10-22 13:38:37 -0400
+Branch: REL_17_STABLE [4eb6992af] 2025-10-22 13:38:37 -0400
+-->
+ <para>
+ Fix per-file memory leakage
+ in <application>pg_combinebackup</application> (Tom Lane)
+ <ulink url="&commit_baseurl;e2072b47b">§</ulink>
+ </para>
+ </listitem>
+
+ <listitem>
+<!--
+Author: Masahiko Sawada <msawada@postgresql.org>
+Branch: master [8ae0f6a0c] 2025-11-04 15:47:25 -0800
+Branch: REL_18_STABLE [71aa2e114] 2025-11-04 15:47:22 -0800
+Branch: master [eab9e4e27] 2025-08-19 12:11:42 -0700
+Branch: REL_18_STABLE Release: REL_18_0 [0beb7e933] 2025-08-19 12:11:39 -0700
+Branch: REL_17_STABLE [b6090ed96] 2025-08-19 12:11:37 -0700
+Branch: REL_16_STABLE [815fcfb20] 2025-08-19 12:11:34 -0700
+Branch: REL_15_STABLE [eb9ee4d18] 2025-08-19 12:11:32 -0700
+Branch: REL_14_STABLE [79643105a] 2025-08-19 12:11:29 -0700
+Branch: REL_13_STABLE [7d8d36289] 2025-08-19 12:11:25 -0700
+-->
+ <para>
+ Ensure that <filename>contrib/pg_buffercache</filename> functions
+ can be canceled (Satyanarayana Narlapuram, Yuhang Qiu)
+ <ulink url="&commit_baseurl;71aa2e114">§</ulink>
+ <ulink url="&commit_baseurl;0beb7e933">§</ulink>
+ </para>
+
+ <para>
+ Some code paths were capable of running for a long time without
+ checking for interrupts.
+ </para>
+ </listitem>
+
+ <listitem>
+<!--
+Author: Nathan Bossart <nathan@postgresql.org>
+Branch: master [208927e65] 2025-10-17 11:36:50 -0500
+Branch: REL_18_STABLE [3ccf8e9ac] 2025-10-17 11:36:50 -0500
+Branch: REL_17_STABLE [a0551bc57] 2025-10-17 11:36:50 -0500
+Branch: REL_16_STABLE [fae0ce5e3] 2025-10-17 11:36:50 -0500
+Branch: REL_15_STABLE [6c03ae8d6] 2025-10-17 11:36:50 -0500
+Branch: REL_14_STABLE [f146eb45c] 2025-10-17 11:36:50 -0500
+Branch: REL_13_STABLE [19a64f567] 2025-10-17 11:36:50 -0500
+Author: Tom Lane <tgl@sss.pgh.pa.us>
+Branch: master [da44d71e7] 2025-10-18 18:36:21 -0400
+Branch: REL_18_STABLE [c29d32d27] 2025-10-18 18:36:21 -0400
+Branch: REL_17_STABLE [d4e8c37cc] 2025-10-18 18:36:21 -0400
+Branch: REL_16_STABLE [c26a8eaf6] 2025-10-18 18:36:21 -0400
+-->
+ <para>
+ Fix <filename>contrib/pg_prewarm</filename>'s privilege checks for
+ indexes (Ayush Vatsa, Nathan Bossart)
+ <ulink url="&commit_baseurl;3ccf8e9ac">§</ulink>
+ <ulink url="&commit_baseurl;c29d32d27">§</ulink>
+ </para>
+
+ <para>
+ <function>pg_prewarm()</function> requires <literal>SELECT</literal>
+ privilege on relations to be prewarmed. However, since indexes have
+ no SQL privileges of their own, this resulted in non-superusers
+ being unable to prewarm indexes. Instead, check
+ for <literal>SELECT</literal> privilege on the index's table.
+ </para>
+ </listitem>
+
+ <listitem>
+<!--
+Author: Álvaro Herrera <alvherre@kurilemu.de>
+Branch: master [16edc1b94] 2025-10-29 12:35:02 +0100
+Branch: REL_18_STABLE [b1635c166] 2025-10-29 12:35:02 +0100
+-->
+ <para>
+ In <filename>contrib/pg_stat_statements</filename>, avoid
+ crash when two or more constants are marked as having the same
+ location in the SQL statement text (Sami Imseih, Dmitry Dolgov)
+ <ulink url="&commit_baseurl;b1635c166">§</ulink>
+ </para>
+ </listitem>
+
+ <listitem>
+<!--
+Author: Michael Paquier <michael@paquier.xyz>
+Branch: master [684a745f5] 2025-10-02 11:07:30 +0900
+Branch: REL_18_STABLE [fc295beb7] 2025-10-02 11:09:10 +0900
+Branch: REL_17_STABLE [036decbba] 2025-10-02 11:09:12 +0900
+Branch: REL_16_STABLE [c0f9fe877] 2025-10-02 11:09:13 +0900
+Branch: REL_15_STABLE [49b5f0b53] 2025-10-02 11:09:15 +0900
+Branch: REL_14_STABLE [ee2dbcad0] 2025-10-02 11:09:17 +0900
+Branch: REL_13_STABLE [c207bf473] 2025-10-02 11:09:19 +0900
+-->
+ <para>
+ Make <filename>contrib/pgstattuple</filename> more robust about
+ empty or invalid index pages (Nitin Motiani)
+ <ulink url="&commit_baseurl;fc295beb7">§</ulink>
+ </para>
+
+ <para>
+ Count all-zero pages as free space, and ignore pages that are
+ invalid according to a check of the page's special-space size.
+ The code for btree indexes already counted all-zero pages as free,
+ but the hash and gist code would error out, which has been found to
+ be much less user-friendly. Similarly, make all three cases agree
+ on ignoring corrupted pages rather than throwing errors.
+ </para>
+ </listitem>
+
+ <listitem>
+<!--
+Author: Peter Eisentraut <peter@eisentraut.org>
+Branch: master [282d0bdee] 2025-09-15 08:31:11 +0200
+Branch: REL_18_STABLE Release: REL_18_0 [c11ac811a] 2025-09-15 08:31:36 +0200
+Branch: REL_17_STABLE [755f01ad7] 2025-09-15 08:31:47 +0200
+Branch: REL_16_STABLE [2670881af] 2025-09-15 08:31:53 +0200
+Branch: REL_15_STABLE [72a24bebc] 2025-09-15 08:31:59 +0200
+Branch: REL_14_STABLE [fbfc36e94] 2025-09-15 08:32:08 +0200
+Branch: REL_13_STABLE [59d6e843e] 2025-09-15 08:32:14 +0200
+-->
+ <para>
+ Fix building with LLVM version 21 and later (Holger Hoffstätte)
+ <ulink url="&commit_baseurl;c11ac811a">§</ulink>
+ </para>
+ </listitem>
+
+ <listitem>
+<!--
+Author: Nathan Bossart <nathan@postgresql.org>
+Branch: master [9016fa7e3] 2025-09-10 11:21:12 -0500
+Branch: REL_18_STABLE Release: REL_18_0 [87ea6e9b6] 2025-09-10 11:21:12 -0500
+Branch: REL_17_STABLE [15f9eeef6] 2025-09-10 11:21:12 -0500
+Branch: REL_16_STABLE [509c77929] 2025-09-10 11:21:12 -0500
+Author: Jeff Davis <jdavis@postgresql.org>
+Branch: master [9af672bcb] 2025-09-08 12:29:42 -0700
+Branch: REL_18_STABLE Release: REL_18_0 [a7024398b] 2025-09-09 16:04:04 -0700
+Branch: REL_17_STABLE [e25453a36] 2025-09-09 16:04:23 -0700
+Branch: REL_16_STABLE [2de24ca6c] 2025-09-09 16:06:30 -0700
+-->
+ <para>
+ When building with meson, apply the same special optimization flags
+ for <filename>numeric.c</filename>
+ and <filename>checksum.c</filename> as the makefile build does
+ (Nathan Bossart, Jeff Davis)
+ <ulink url="&commit_baseurl;87ea6e9b6">§</ulink>
+ <ulink url="&commit_baseurl;a7024398b">§</ulink>
+ </para>
+
+ <para>
+ Use <option>-ftree-vectorize</option> for both files, as well
+ as <option>-funroll-loops</option>
+ for <filename>checksum.c</filename>, to match what the makefiles
+ have long done.
+ </para>
+ </listitem>
+
+ <listitem>
+<!--
+Author: Álvaro Herrera <alvherre@kurilemu.de>
+Branch: master [6ad9378c9] 2025-10-16 20:21:05 +0200
+Branch: REL_18_STABLE [6aa04a60c] 2025-10-16 20:21:05 +0200
+Branch: REL_17_STABLE [a8933194e] 2025-10-16 20:21:05 +0200
+Branch: REL_16_STABLE [a506b0c0a] 2025-10-16 20:21:05 +0200
+Branch: REL_15_STABLE [33202cba8] 2025-10-16 20:21:05 +0200
+Branch: REL_14_STABLE [56cd332f8] 2025-10-16 20:21:05 +0200
+Branch: REL_13_STABLE [f768f5a7d] 2025-10-16 20:21:05 +0200
+-->
+ <para>
+ Fix PGXS build infrastructure to support building
+ NLS <filename>po</filename> files for extensions (Ryo Matsumura)
+ <ulink url="&commit_baseurl;6aa04a60c">§</ulink>
+ </para>
+ </listitem>
+
+ </itemizedlist>
+
+ </sect2>
+ </sect1>
+
<sect1 id="release-18">
<title>Release 18</title>
[parent: ac72a905d068]