mirror of
https://github.com/postgres/postgres.git
synced 2026-04-26 00:31:07 -04:00
11931 lines
421 KiB
Text
11931 lines
421 KiB
Text
<!-- doc/src/sgml/release-17.sgml -->
|
|
<!-- See header comment in release.sgml about typical markup -->
|
|
|
|
<sect1 id="release-17-7">
|
|
<title>Release 17.7</title>
|
|
|
|
<formalpara>
|
|
<title>Release date:</title>
|
|
<para>2025-11-13</para>
|
|
</formalpara>
|
|
|
|
<para>
|
|
This release contains a variety of fixes from 17.6.
|
|
For information about new features in major release 17, see
|
|
<xref linkend="release-17"/>.
|
|
</para>
|
|
|
|
<sect2 id="release-17-7-migration">
|
|
<title>Migration to Version 17.7</title>
|
|
|
|
<para>
|
|
A dump/restore is not required for those running 17.X.
|
|
</para>
|
|
|
|
<para>
|
|
However, if you are upgrading from a version earlier than 17.6,
|
|
see <xref linkend="release-17-6"/>.
|
|
</para>
|
|
</sect2>
|
|
|
|
<sect2 id="release-17-7-changes">
|
|
<title>Changes</title>
|
|
|
|
<itemizedlist>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Nathan Bossart <nathan@postgresql.org>
|
|
Branch: master [5e4fcbe53] 2025-11-10 09:00:00 -0600
|
|
Branch: REL_18_STABLE [00eb646ea] 2025-11-10 09:00:00 -0600
|
|
Branch: REL_17_STABLE [e2fb3dfa8] 2025-11-10 09:00:00 -0600
|
|
Branch: REL_16_STABLE [d20abb587] 2025-11-10 09:00:00 -0600
|
|
Branch: REL_15_STABLE [2393d374a] 2025-11-10 09:00:00 -0600
|
|
Branch: REL_14_STABLE [95cce5669] 2025-11-10 09:00:00 -0600
|
|
Branch: REL_13_STABLE [8a2530ebc] 2025-11-10 09:00:00 -0600
|
|
-->
|
|
<para>
|
|
Check for <literal>CREATE</literal> privileges on the schema
|
|
in <command>CREATE STATISTICS</command> (Jelte Fennema-Nio)
|
|
<ulink url="&commit_baseurl;e2fb3dfa8">§</ulink>
|
|
</para>
|
|
|
|
<para>
|
|
This omission allowed table owners to create statistics in any
|
|
schema, potentially leading to unexpected naming conflicts.
|
|
</para>
|
|
|
|
<para>
|
|
The <productname>PostgreSQL</productname> Project thanks
|
|
Jelte Fennema-Nio for reporting this problem.
|
|
(CVE-2025-12817)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Jacob Champion <jchampion@postgresql.org>
|
|
Branch: master [600086f47] 2025-11-10 06:20:33 -0800
|
|
Branch: REL_18_STABLE [7eb8fcad8] 2025-11-10 06:03:01 -0800
|
|
Branch: REL_17_STABLE [f5999f018] 2025-11-10 06:03:03 -0800
|
|
Branch: REL_16_STABLE [585fd9b3c] 2025-11-10 06:03:04 -0800
|
|
Branch: REL_15_STABLE [91421565f] 2025-11-10 06:03:05 -0800
|
|
Branch: REL_14_STABLE [96d2c7e96] 2025-11-10 06:03:05 -0800
|
|
Branch: REL_13_STABLE [d6f0c0d6d] 2025-11-10 06:03:06 -0800
|
|
-->
|
|
<para>
|
|
Avoid integer overflow in allocation-size calculations
|
|
within <application>libpq</application> (Jacob Champion)
|
|
<ulink url="&commit_baseurl;f5999f018">§</ulink>
|
|
</para>
|
|
|
|
<para>
|
|
Several places in <application>libpq</application> were not
|
|
sufficiently careful about computing the required size of a memory
|
|
allocation. Sufficiently large inputs could cause integer overflow,
|
|
resulting in an undersized buffer, which would then lead to writing
|
|
past the end of the buffer.
|
|
</para>
|
|
|
|
<para>
|
|
The <productname>PostgreSQL</productname> Project thanks Aleksey
|
|
Solovev of Positive Technologies for reporting this problem.
|
|
(CVE-2025-12818)
|
|
</para>
|
|
</listitem>
|
|
|
|
<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;09f86a42f">§</ulink>
|
|
<ulink url="&commit_baseurl;1e6dfdaa0">§</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;d719e2ecb">§</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;e09adb5b9">§</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;e830896c1">§</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 [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;f34202f51">§</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;ed394c4bd">§</ulink>
|
|
</para>
|
|
|
|
<para>
|
|
There was a hazard only when the last live partition was
|
|
concurrently dropped.
|
|
</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;ae15cebc2">§</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;456c6a05d">§</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;d17abaea8">§</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;f4b68b033">§</ulink>
|
|
<ulink url="&commit_baseurl;3b5007347">§</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;c4f5a59ab">§</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;10945148e">§</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 [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;0d3074615">§</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;0fb06e893">§</ulink>
|
|
<ulink url="&commit_baseurl;3d939a9b1">§</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: 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;2bb84ea7e">§</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;ea06f97ee">§</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;0b44f2443">§</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;07f787e57">§</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: 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;3549ffb6a">§</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;6778fbca6">§</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;c0c8ee23c">§</ulink>
|
|
<ulink url="&commit_baseurl;a220e40d1">§</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;862980f92">§</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;e2dd7b2ac">§</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;f9993ac64">§</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;3e6dfcfb0">§</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;6195afbe5">§</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;76f45be93">§</ulink>
|
|
<ulink url="&commit_baseurl;0b934d399">§</ulink>
|
|
<ulink url="&commit_baseurl;57dfb64ec">§</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;288a817bc">§</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;62d5ee75b">§</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;1db2870bb">§</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;0024f5a10">§</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;42348839d">§</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;2f6e1a490">§</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;e7340b484">§</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;dcdc95cb4">§</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;a61592253">§</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;f3fb6bc9f">§</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;07a302387">§</ulink>
|
|
</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;4c53519e1">§</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;ab92f0e7f">§</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;a9515f294">§</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;bd6f986c9">§</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;3fc9aa5b0">§</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;fbc41a145">§</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;0fedb3a27">§</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;1c4671f7b">§</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;c945b06d5">§</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;968141898">§</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;e8d22095e">§</ulink>
|
|
<ulink url="&commit_baseurl;49a09c6c5">§</ulink>
|
|
<ulink url="&commit_baseurl;7419c99a2">§</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;e127764b6">§</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;f7f9c5d65">§</ulink>
|
|
<ulink url="&commit_baseurl;dc8aa2f58">§</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;92268b35d">§</ulink>
|
|
<ulink url="&commit_baseurl;bf18e9bd7">§</ulink>
|
|
<ulink url="&commit_baseurl;2efca1633">§</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;de6de069d">§</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;a912118c6">§</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;f39d9164b">§</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;4eb6992af">§</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;b6090ed96">§</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;a0551bc57">§</ulink>
|
|
<ulink url="&commit_baseurl;d4e8c37cc">§</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: 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;036decbba">§</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: Thomas Munro <tmunro@postgresql.org>
|
|
Branch: master [c5d34f4a5] 2025-11-08 12:26:43 +1300
|
|
Branch: REL_18_STABLE [f8ccab0e9] 2025-11-08 12:28:15 +1300
|
|
Branch: REL_17_STABLE [03d9140cb] 2025-11-08 12:28:52 +1300
|
|
Branch: REL_16_STABLE [2f76ffe5e] 2025-11-08 12:29:15 +1300
|
|
Branch: REL_15_STABLE [1c7cba4c5] 2025-11-08 12:30:08 +1300
|
|
Branch: REL_14_STABLE [d8ba910b0] 2025-11-08 12:32:42 +1300
|
|
Branch: REL_13_STABLE [77b5b2c6f] 2025-11-08 12:33:01 +1300
|
|
-->
|
|
<para>
|
|
Harden our read and write barrier macros to satisfy Clang
|
|
(Thomas Munro)
|
|
<ulink url="&commit_baseurl;03d9140cb">§</ulink>
|
|
</para>
|
|
|
|
<para>
|
|
We supposed that <function>__atomic_thread_fence()</function> is a
|
|
sufficient barrier to prevent the C compiler from re-ordering memory
|
|
accesses around it, but it appears that that's not true for Clang,
|
|
allowing it to generate incorrect code for at least RISC-V, MIPS,
|
|
and LoongArch machines. Add explicit compiler barriers to fix that.
|
|
</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;755f01ad7">§</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;15f9eeef6">§</ulink>
|
|
<ulink url="&commit_baseurl;e25453a36">§</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;a8933194e">§</ulink>
|
|
</para>
|
|
</listitem>
|
|
|
|
</itemizedlist>
|
|
|
|
</sect2>
|
|
</sect1>
|
|
|
|
<sect1 id="release-17-6">
|
|
<title>Release 17.6</title>
|
|
|
|
<formalpara>
|
|
<title>Release date:</title>
|
|
<para>2025-08-14</para>
|
|
</formalpara>
|
|
|
|
<para>
|
|
This release contains a variety of fixes from 17.5.
|
|
For information about new features in major release 17, see
|
|
<xref linkend="release-17"/>.
|
|
</para>
|
|
|
|
<sect2 id="release-17-6-migration">
|
|
<title>Migration to Version 17.6</title>
|
|
|
|
<para>
|
|
A dump/restore is not required for those running 17.X.
|
|
</para>
|
|
|
|
<para>
|
|
However, if you have any
|
|
BRIN <literal>numeric_minmax_multi_ops</literal> indexes, it is
|
|
advisable to reindex them after updating. See the fourth changelog
|
|
entry below.
|
|
</para>
|
|
|
|
<para>
|
|
Also, if you are upgrading from a version earlier than 17.5,
|
|
see <xref linkend="release-17-5"/>.
|
|
</para>
|
|
</sect2>
|
|
|
|
<sect2 id="release-17-6-changes">
|
|
<title>Changes</title>
|
|
|
|
<itemizedlist>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Dean Rasheed <dean.a.rasheed@gmail.com>
|
|
Branch: master [22424953c] 2025-08-11 09:03:11 +0100
|
|
Branch: REL_18_STABLE [64f77c6a6] 2025-08-11 09:07:36 +0100
|
|
Branch: REL_17_STABLE [a85eddab2] 2025-08-11 09:09:12 +0100
|
|
Branch: REL_16_STABLE [7e86da539] 2025-08-11 09:10:17 +0100
|
|
Branch: REL_15_STABLE [415badc13] 2025-08-11 09:11:02 +0100
|
|
Branch: REL_14_STABLE [afe38fb6a] 2025-08-11 09:12:09 +0100
|
|
Branch: REL_13_STABLE [533211ded] 2025-08-11 09:13:20 +0100
|
|
-->
|
|
<para>
|
|
Tighten security checks in planner estimation functions
|
|
(Dean Rasheed)
|
|
<ulink url="&commit_baseurl;a85eddab2">§</ulink>
|
|
</para>
|
|
|
|
<para>
|
|
The fix for CVE-2017-7484, plus followup fixes, intended to prevent
|
|
leaky functions from being applied to statistics data for columns
|
|
that the calling user does not have permission to read. Two gaps in
|
|
that protection have been found. One gap applies to partitioning
|
|
and inheritance hierarchies where RLS policies on the tables should
|
|
restrict access to statistics data, but did not.
|
|
</para>
|
|
|
|
<para>
|
|
The other gap applies to cases where the query accesses a table via
|
|
a view, and the view owner has permissions to read the underlying
|
|
table but the calling user does not have permissions on the view.
|
|
The view owner's permissions satisfied the security checks, and the
|
|
leaky function would get applied to the underlying table's
|
|
statistics before we check the calling user's permissions on the
|
|
view. This has been fixed by making security checks on views occur
|
|
at the start of planning. That might cause permissions failures to
|
|
occur earlier than before.
|
|
</para>
|
|
|
|
<para>
|
|
The <productname>PostgreSQL</productname> Project thanks
|
|
Dean Rasheed for reporting this problem.
|
|
(CVE-2025-8713)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Nathan Bossart <nathan@postgresql.org>
|
|
Branch: master [71ea0d679] 2025-08-11 09:00:00 -0500
|
|
Branch: REL_18_STABLE [67a2fbb8f] 2025-08-11 09:00:00 -0500
|
|
Branch: REL_17_STABLE [575f54d4c] 2025-08-11 09:00:00 -0500
|
|
Branch: REL_16_STABLE [7ad8e7909] 2025-08-11 09:00:00 -0500
|
|
Branch: REL_15_STABLE [424040506] 2025-08-11 09:00:00 -0500
|
|
Branch: REL_14_STABLE [e4998d089] 2025-08-11 09:00:00 -0500
|
|
Branch: REL_13_STABLE [c204bd39f] 2025-08-11 09:00:00 -0500
|
|
Branch: REL_14_STABLE [8967c33c6] 2025-08-11 12:37:00 -0500
|
|
Branch: REL_13_STABLE [27d3dee68] 2025-08-11 12:37:00 -0500
|
|
-->
|
|
<para>
|
|
Prevent <application>pg_dump</application> scripts from being used
|
|
to attack the user running the restore (Nathan Bossart)
|
|
<ulink url="&commit_baseurl;575f54d4c">§</ulink>
|
|
</para>
|
|
|
|
<para>
|
|
Since dump/restore operations typically involve running SQL commands
|
|
as superuser, the target database installation must trust the source
|
|
server. However, it does not follow that the operating system user
|
|
who executes <application>psql</application> to perform the restore
|
|
should have to trust the source server. The risk here is that an
|
|
attacker who has gained superuser-level control over the source
|
|
server might be able to cause it to emit text that would be
|
|
interpreted as <application>psql</application> meta-commands.
|
|
That would provide shell-level access to the restoring user's own
|
|
account, independently of access to the target database.
|
|
</para>
|
|
|
|
<para>
|
|
To provide a positive guarantee that this can't happen,
|
|
extend <application>psql</application> with
|
|
a <command>\restrict</command> command that prevents execution of
|
|
further meta-commands, and teach <application>pg_dump</application>
|
|
to issue that before any data coming from the source server.
|
|
</para>
|
|
|
|
<para>
|
|
The PostgreSQL Project thanks Martin Rakhmanov, Matthieu Denais, and
|
|
RyotaK for reporting this problem.
|
|
(CVE-2025-8714)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Noah Misch <noah@leadboat.com>
|
|
Branch: master [70693c645] 2025-08-11 06:18:59 -0700
|
|
Branch: REL_18_STABLE [13a67ce60] 2025-08-11 06:19:03 -0700
|
|
Branch: REL_17_STABLE [9b92f115b] 2025-08-11 06:19:03 -0700
|
|
Branch: REL_16_STABLE [850caae60] 2025-08-11 06:19:03 -0700
|
|
Branch: REL_15_STABLE [9751f934a] 2025-08-11 06:19:04 -0700
|
|
Branch: REL_14_STABLE [0f5838438] 2025-08-11 06:19:04 -0700
|
|
Branch: REL_13_STABLE [2179e6005] 2025-08-11 06:19:05 -0700
|
|
-->
|
|
<para>
|
|
Convert newlines to spaces in names included in comments
|
|
in <application>pg_dump</application> output
|
|
(Noah Misch)
|
|
<ulink url="&commit_baseurl;9b92f115b">§</ulink>
|
|
</para>
|
|
|
|
<para>
|
|
Object names containing newlines offered the ability to inject
|
|
arbitrary SQL commands into the output script. (Without the
|
|
preceding fix, injection of <application>psql</application>
|
|
meta-commands would also be possible this way.)
|
|
CVE-2012-0868 fixed this class of problem at the time, but later
|
|
work reintroduced several cases.
|
|
</para>
|
|
|
|
<para>
|
|
The <productname>PostgreSQL</productname> Project thanks
|
|
Noah Misch for reporting this problem.
|
|
(CVE-2025-8715)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
Branch: master [80c758a2e] 2025-08-05 16:51:10 -0400
|
|
Branch: REL_18_STABLE [9b681e239] 2025-08-05 16:51:10 -0400
|
|
Branch: REL_17_STABLE [0b0d3c19b] 2025-08-05 16:51:10 -0400
|
|
Branch: REL_16_STABLE [b9279058a] 2025-08-05 16:51:10 -0400
|
|
Branch: REL_15_STABLE [835c9374d] 2025-08-05 16:51:10 -0400
|
|
Branch: REL_14_STABLE [5b0c8e328] 2025-08-05 16:51:10 -0400
|
|
-->
|
|
<para>
|
|
Fix incorrect distance calculation in
|
|
BRIN <literal>numeric_minmax_multi_ops</literal> support function
|
|
(Peter Eisentraut, Tom Lane)
|
|
<ulink url="&commit_baseurl;0b0d3c19b">§</ulink>
|
|
</para>
|
|
|
|
<para>
|
|
The results were sometimes wrong on 64-bit platforms, and wildly
|
|
wrong on 32-bit platforms. This did not produce obvious failures
|
|
because the logic is only used to choose how to merge values into
|
|
ranges; at worst the index would become inefficient and bloated.
|
|
Nonetheless it's recommended to reindex any BRIN indexes that use
|
|
the <literal>numeric_minmax_multi_ops</literal> operator class.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
Branch: master [71c0921b6] 2025-07-28 16:50:41 -0400
|
|
Branch: REL_18_STABLE [637ead2e1] 2025-07-28 16:50:41 -0400
|
|
Branch: REL_17_STABLE [fd4ad33fe] 2025-07-28 16:50:41 -0400
|
|
Branch: REL_16_STABLE [6d5e493b4] 2025-07-28 16:50:42 -0400
|
|
Branch: REL_15_STABLE [0ffbd345e] 2025-07-28 16:50:42 -0400
|
|
Branch: REL_14_STABLE [0395464af] 2025-07-28 16:50:42 -0400
|
|
Branch: REL_13_STABLE [589d6e640] 2025-07-28 16:50:42 -0400
|
|
Branch: master [902f92221] 2025-07-29 12:47:38 -0400
|
|
Branch: REL_18_STABLE [d5f014d89] 2025-07-29 12:47:19 -0400
|
|
Branch: REL_17_STABLE [7571e0f6e] 2025-07-29 12:47:19 -0400
|
|
Branch: REL_16_STABLE [762c6d8d2] 2025-07-29 12:47:19 -0400
|
|
Branch: REL_15_STABLE [0928e18eb] 2025-07-29 12:47:20 -0400
|
|
Branch: REL_14_STABLE [cdcdabce5] 2025-07-29 12:47:20 -0400
|
|
Branch: REL_13_STABLE [0ae824704] 2025-07-29 12:47:20 -0400
|
|
-->
|
|
<para>
|
|
Avoid regression in the size of XML input that we will accept
|
|
(Michael Paquier, Erik Wienhold)
|
|
<ulink url="&commit_baseurl;fd4ad33fe">§</ulink>
|
|
<ulink url="&commit_baseurl;7571e0f6e">§</ulink>
|
|
</para>
|
|
|
|
<para>
|
|
Our workaround for a bug in early 2.13.x releases
|
|
of <application>libxml2</application> made use of a code path that
|
|
rejects text chunks exceeding 10MB, whereas the previous coding did
|
|
not. Those early releases are presumably extinct in the wild by
|
|
now, so revert to the previous coding.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Dean Rasheed <dean.a.rasheed@gmail.com>
|
|
Branch: master [5022ff250] 2025-07-18 09:55:43 +0100
|
|
Branch: REL_18_STABLE [27c7c1136] 2025-07-18 09:59:40 +0100
|
|
Branch: REL_17_STABLE [91ad1bdef] 2025-07-18 10:01:31 +0100
|
|
-->
|
|
<para>
|
|
Fix <command>MERGE</command> problems with concurrent updates
|
|
(Dean Rasheed)
|
|
<ulink url="&commit_baseurl;91ad1bdef">§</ulink>
|
|
</para>
|
|
|
|
<para>
|
|
If a <command>MERGE</command>
|
|
inside a CTE attempts an update or delete on a table with
|
|
<literal>BEFORE ROW</literal> triggers, and a
|
|
concurrent <command>UPDATE</command> or <command>DELETE</command>
|
|
changes the target row, the <command>MERGE</command> command would
|
|
fail (crashing in the case of an update action, and potentially
|
|
executing the wrong action in the case of a delete action).
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Dean Rasheed <dean.a.rasheed@gmail.com>
|
|
Branch: master Release: REL_18_BR [b006bcd53] 2025-05-31 12:12:58 +0100
|
|
Branch: REL_17_STABLE [ab52f6b5b] 2025-05-31 12:17:30 +0100
|
|
Branch: REL_16_STABLE [3611794af] 2025-05-31 12:19:37 +0100
|
|
Branch: REL_15_STABLE [d6a3f3272] 2025-05-31 12:21:02 +0100
|
|
-->
|
|
<para>
|
|
Fix <command>MERGE</command> into a plain-inheritance parent table
|
|
(Dean Rasheed)
|
|
<ulink url="&commit_baseurl;ab52f6b5b">§</ulink>
|
|
</para>
|
|
|
|
<para>
|
|
Insertions into such a target table could crash or produce incorrect
|
|
query results due to failing to handle <literal>WITH CHECK
|
|
OPTION</literal> and <literal>RETURNING</literal> actions.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Etsuro Fujita <efujita@postgresql.org>
|
|
Branch: master [9e63f83a7] 2025-08-08 17:35:00 +0900
|
|
Branch: REL_18_STABLE [bba6a6faf] 2025-08-08 17:35:00 +0900
|
|
Branch: REL_17_STABLE [e028ce911] 2025-08-08 17:35:01 +0900
|
|
Branch: REL_16_STABLE [3863c6fb6] 2025-08-08 17:35:02 +0900
|
|
Branch: REL_15_STABLE [f39a7f32a] 2025-08-08 17:35:02 +0900
|
|
Branch: REL_14_STABLE [73eb6afa1] 2025-08-08 17:35:03 +0900
|
|
Branch: REL_13_STABLE [afdb4cde1] 2025-08-08 17:35:04 +0900
|
|
-->
|
|
<para>
|
|
Allow tables with statement-level triggers to become partitions or
|
|
inheritance children (Etsuro Fujita)
|
|
<ulink url="&commit_baseurl;e028ce911">§</ulink>
|
|
</para>
|
|
|
|
<para>
|
|
We do not allow partitions or inheritance child tables to have
|
|
row-level triggers with transition tables, because an operation on
|
|
the whole inheritance tree would need to maintain a separate
|
|
transition table for each such child table. But that problem does
|
|
not apply for statement-level triggers, because only the parent's
|
|
statement-level triggers will be fired. The code that checks
|
|
whether an existing table can become a partition or inheritance
|
|
child nonetheless rejected both kinds of trigger.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Etsuro Fujita <efujita@postgresql.org>
|
|
Branch: master [62a1211d3] 2025-08-08 10:50:00 +0900
|
|
Branch: REL_18_STABLE [ce8817022] 2025-08-08 10:50:01 +0900
|
|
Branch: REL_17_STABLE [9048a83c7] 2025-08-08 10:50:02 +0900
|
|
Branch: REL_16_STABLE [9cca445df] 2025-08-08 10:50:02 +0900
|
|
Branch: REL_15_STABLE [d642d2306] 2025-08-08 10:50:03 +0900
|
|
Branch: REL_14_STABLE [e94fc1a8a] 2025-08-08 10:50:04 +0900
|
|
Branch: REL_13_STABLE [b6641f7b0] 2025-08-08 10:50:05 +0900
|
|
-->
|
|
<para>
|
|
Disallow collecting transition tuples from child foreign tables
|
|
(Etsuro Fujita)
|
|
<ulink url="&commit_baseurl;9048a83c7">§</ulink>
|
|
</para>
|
|
|
|
<para>
|
|
We do not support triggers with transition tables on foreign tables.
|
|
However, the case of a partition or inheritance child that is a
|
|
foreign table was overlooked. If the parent has such a trigger,
|
|
incorrect transition tuples were collected from the foreign child.
|
|
Instead throw an error, reporting that the case is not supported.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Nathan Bossart <nathan@postgresql.org>
|
|
Branch: master [9eb6068fb] 2025-08-01 16:52:11 -0500
|
|
Branch: REL_18_STABLE [7b9674a8b] 2025-08-01 16:52:11 -0500
|
|
Branch: REL_17_STABLE [39ff05636] 2025-08-01 16:52:11 -0500
|
|
Branch: REL_16_STABLE [b998ce327] 2025-08-01 16:52:11 -0500
|
|
Branch: REL_15_STABLE [f79ca73d7] 2025-08-01 16:52:11 -0500
|
|
-->
|
|
<para>
|
|
Allow resetting unknown custom parameters with reserved prefixes
|
|
(Nathan Bossart)
|
|
<ulink url="&commit_baseurl;39ff05636">§</ulink>
|
|
</para>
|
|
|
|
<para>
|
|
Previously, if a parameter setting had been stored
|
|
using <command>ALTER DATABASE/ROLE/SYSTEM</command>, the stored
|
|
setting could not be removed if the parameter was unknown but had a
|
|
reserved prefix. This case could arise if an extension used to have
|
|
a parameter, but that parameter had been removed in an upgrade.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Amit Kapila <akapila@postgresql.org>
|
|
Branch: master [2ab2d6f97] 2025-08-01 07:58:48 +0000
|
|
Branch: REL_18_STABLE [d9f01a287] 2025-08-01 07:46:22 +0000
|
|
Branch: REL_17_STABLE [8c298324a] 2025-08-01 06:53:16 +0000
|
|
Branch: REL_16_STABLE [adfd80219] 2025-08-01 06:40:06 +0000
|
|
Branch: REL_15_STABLE [434d2d147] 2025-08-01 07:23:37 +0000
|
|
Branch: REL_14_STABLE [41fb3f51c] 2025-08-01 07:16:30 +0000
|
|
-->
|
|
<para>
|
|
Fix a potential deadlock during <command>ALTER SUBSCRIPTION ... DROP
|
|
PUBLICATION</command> (Ajin Cherian)
|
|
<ulink url="&commit_baseurl;8c298324a">§</ulink>
|
|
</para>
|
|
|
|
<para>
|
|
Ensure that server processes acquire catalog locks in a consistent
|
|
order during replication origin drops.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
Branch: master Release: REL_18_BR [5861b1f34] 2025-06-20 13:41:11 -0400
|
|
Branch: REL_17_STABLE [fdd826922] 2025-06-20 13:41:11 -0400
|
|
Branch: REL_16_STABLE [1e24ea160] 2025-06-20 13:41:11 -0400
|
|
Branch: REL_15_STABLE [75b8982ea] 2025-06-20 13:41:11 -0400
|
|
Branch: REL_14_STABLE [27af8b9be] 2025-06-20 13:41:11 -0400
|
|
Branch: REL_13_STABLE [4b66cb188] 2025-06-20 13:41:11 -0400
|
|
-->
|
|
<para>
|
|
Shorten the race condition window for creating indexes with
|
|
conflicting names (Tom Lane)
|
|
<ulink url="&commit_baseurl;fdd826922">§</ulink>
|
|
</para>
|
|
|
|
<para>
|
|
When choosing an auto-generated name for an index, avoid conflicting
|
|
with not-yet-committed <structname>pg_class</structname> rows as
|
|
well as fully-valid ones. This avoids possibly choosing the same
|
|
name as some concurrent <command>CREATE INDEX</command> did,
|
|
when that command is still in process of filling its index, or is
|
|
done but is part of a not-yet-committed transaction. There's still
|
|
a window for trouble, but it's only as long as the time needed to
|
|
validate a new index's parameters and insert
|
|
its <structname>pg_class</structname> row.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Michael Paquier <michael@paquier.xyz>
|
|
Branch: master Release: REL_18_BR [661643ded] 2025-06-25 10:03:46 +0900
|
|
Branch: REL_17_STABLE [2e0b5d252] 2025-06-25 10:03:50 +0900
|
|
Branch: REL_16_STABLE [d187cabdd] 2025-06-25 10:03:52 +0900
|
|
Branch: REL_15_STABLE [354944663] 2025-06-25 10:03:53 +0900
|
|
Branch: REL_14_STABLE [c079ba3fc] 2025-06-25 10:03:54 +0900
|
|
Branch: REL_13_STABLE [65c3223f9] 2025-06-25 10:03:56 +0900
|
|
-->
|
|
<para>
|
|
Prevent usage of incorrect <command>VACUUM</command> options in some
|
|
cases where multiple tables are vacuumed in a single command (Nathan
|
|
Bossart, Michael Paquier)
|
|
<ulink url="&commit_baseurl;2e0b5d252">§</ulink>
|
|
</para>
|
|
|
|
<para>
|
|
The <literal>TRUNCATE</literal> and <literal>INDEX_CLEANUP</literal>
|
|
options of one table could be applied to others.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Masahiko Sawada <msawada@postgresql.org>
|
|
Branch: master [3811ca360] 2025-07-01 23:25:20 -0700
|
|
Branch: REL_18_STABLE [7c6ededac] 2025-07-01 23:25:17 -0700
|
|
Branch: REL_17_STABLE [792238c8b] 2025-07-01 23:25:15 -0700
|
|
-->
|
|
<para>
|
|
Ensure that the table's free-space map is updated in a timely way
|
|
when vacuuming a table that has no indexes (Masahiko Sawada)
|
|
<ulink url="&commit_baseurl;792238c8b">§</ulink>
|
|
</para>
|
|
|
|
<para>
|
|
A previous optimization caused FSM vacuuming to sometimes be skipped
|
|
for such tables.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Michael Paquier <michael@paquier.xyz>
|
|
Branch: master Release: REL_18_BR [d46911e58] 2025-05-28 08:58:40 +0900
|
|
Branch: REL_17_STABLE [e3ffc3e91] 2025-05-28 08:59:22 +0900
|
|
Branch: REL_16_STABLE [e9e535d61] 2025-05-28 08:59:24 +0900
|
|
Branch: REL_15_STABLE [b3e99115e] 2025-05-28 08:59:25 +0900
|
|
Branch: REL_14_STABLE [1fe15d25e] 2025-05-28 08:59:27 +0900
|
|
Branch: REL_13_STABLE [9481d1614] 2025-05-28 08:59:28 +0900
|
|
Branch: master Release: REL_18_BR [4fbb46f61] 2025-05-28 09:43:31 +0900
|
|
Branch: REL_17_STABLE [a3c6d92f3] 2025-05-28 09:43:45 +0900
|
|
Branch: REL_16_STABLE [52d08620e] 2025-05-28 09:43:46 +0900
|
|
Branch: REL_15_STABLE [4dc642e75] 2025-05-28 09:43:48 +0900
|
|
Branch: REL_14_STABLE [0c09922c0] 2025-05-28 09:43:50 +0900
|
|
Branch: REL_13_STABLE [31ee5ec69] 2025-05-28 09:43:51 +0900
|
|
-->
|
|
<para>
|
|
Fix processing of character classes within <literal>SIMILAR
|
|
TO</literal> regular expressions (Laurenz Albe)
|
|
<ulink url="&commit_baseurl;e3ffc3e91">§</ulink>
|
|
<ulink url="&commit_baseurl;a3c6d92f3">§</ulink>
|
|
</para>
|
|
|
|
<para>
|
|
The code that translates <literal>SIMILAR TO</literal> pattern
|
|
matching expressions to POSIX-style regular expressions did not
|
|
consider that square brackets can be nested. For example, in a
|
|
pattern like <literal>[[:alpha:]%_]</literal>, the code treated
|
|
the <literal>%</literal> and <literal>_</literal> characters as
|
|
metacharacters when they should be literals.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
|
|
Branch: master Release: REL_18_BR [29f7ce6fe] 2025-05-19 18:50:26 +0300
|
|
Branch: REL_17_STABLE [54c05292b] 2025-05-19 18:50:47 +0300
|
|
Branch: REL_16_STABLE [92a9ba3b9] 2025-05-19 18:50:50 +0300
|
|
Branch: REL_15_STABLE [72fe74ca5] 2025-05-19 18:50:52 +0300
|
|
Branch: REL_14_STABLE [0420b24fe] 2025-05-19 18:50:54 +0300
|
|
Branch: REL_13_STABLE [7ee00918f] 2025-05-19 18:49:34 +0300
|
|
Branch: master Release: REL_18_BR [cbf53e2b8] 2025-05-20 10:39:14 +0300
|
|
Branch: REL_17_STABLE [a4da7b0cf] 2025-05-20 10:41:20 +0300
|
|
Branch: REL_16_STABLE [558ea446a] 2025-05-20 10:41:50 +0300
|
|
-->
|
|
<para>
|
|
When deparsing queries, always add parentheses around the expression
|
|
in <literal>FETCH FIRST <replaceable>expression</replaceable> ROWS
|
|
WITH TIES</literal> clauses (Heikki Linnakangas)
|
|
<ulink url="&commit_baseurl;54c05292b">§</ulink>
|
|
<ulink url="&commit_baseurl;a4da7b0cf">§</ulink>
|
|
</para>
|
|
|
|
<para>
|
|
This avoids some cases where the deparsed result wasn't
|
|
syntactically valid.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Alexander Korotkov <akorotkov@postgresql.org>
|
|
Branch: REL_18_STABLE [bae507821] 2025-07-27 15:10:02 +0300
|
|
Branch: REL_17_STABLE [13559de95] 2025-07-27 15:10:24 +0300
|
|
Branch: REL_16_STABLE [f0cdc2afd] 2025-07-27 15:10:29 +0300
|
|
Branch: REL_15_STABLE [b248a3ba4] 2025-07-27 15:10:29 +0300
|
|
Branch: REL_14_STABLE [50026136c] 2025-07-27 15:10:31 +0300
|
|
Branch: REL_13_STABLE [f32a47161] 2025-07-27 15:10:32 +0300
|
|
Branch: master [466c5435f] 2025-08-07 14:29:02 +0300
|
|
Branch: REL_18_STABLE [5cfbff48a] 2025-08-07 14:31:18 +0300
|
|
Branch: REL_17_STABLE [605890034] 2025-08-07 14:59:54 +0300
|
|
Branch: REL_16_STABLE [2ac50f118] 2025-08-07 14:31:23 +0300
|
|
Branch: REL_15_STABLE [73f897ba5] 2025-08-07 14:31:24 +0300
|
|
Branch: REL_14_STABLE [c5d66fc12] 2025-08-07 14:31:25 +0300
|
|
Branch: REL_13_STABLE [7f872ae70] 2025-08-07 14:31:26 +0300
|
|
-->
|
|
<para>
|
|
Limit the checkpointer process's fsync request queue size (Alexander
|
|
Korotkov, Xuneng Zhou)
|
|
<ulink url="&commit_baseurl;13559de95">§</ulink>
|
|
<ulink url="&commit_baseurl;605890034">§</ulink>
|
|
</para>
|
|
|
|
<para>
|
|
With very large <varname>shared_buffers</varname> settings, it was
|
|
possible for the checkpointer to attempt to allocate more than 1GB
|
|
for fsync requests, leading to failure and an infinite loop. Clamp
|
|
the queue size to prevent this scenario.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Alexander Korotkov <akorotkov@postgresql.org>
|
|
Branch: master [d3917d8f1] 2025-07-19 13:45:51 +0300
|
|
Branch: REL_18_STABLE [5449d5b7a] 2025-07-19 13:44:30 +0300
|
|
Branch: REL_17_STABLE [c9f4e7520] 2025-07-20 01:29:14 +0300
|
|
Branch: REL_16_STABLE [b485e1c89] 2025-07-19 13:46:02 +0300
|
|
Branch: REL_15_STABLE [9f270f48f] 2025-07-19 13:46:03 +0300
|
|
Branch: REL_14_STABLE [bedfdb85b] 2025-07-19 14:13:41 +0300
|
|
Branch: REL_13_STABLE [762f352ca] 2025-07-19 14:13:58 +0300
|
|
-->
|
|
<para>
|
|
Avoid infinite wait in logical decoding when reading a
|
|
partially-written WAL record (Vignesh C)
|
|
<ulink url="&commit_baseurl;c9f4e7520">§</ulink>
|
|
</para>
|
|
|
|
<para>
|
|
If the server crashes after writing the first part of a WAL record
|
|
that would span multiple pages, subsequent logical decoding of the
|
|
WAL stream would wait for data to arrive on the next WAL page.
|
|
That might never happen if the server is now idle.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Michael Paquier <michael@paquier.xyz>
|
|
Branch: master [a493e741d] 2025-07-17 09:30:26 +0900
|
|
Branch: REL_18_STABLE [4fcbe06aa] 2025-07-17 09:32:49 +0900
|
|
Branch: REL_17_STABLE [b3abec0ad] 2025-07-17 09:32:55 +0900
|
|
-->
|
|
<para>
|
|
Fix inconsistent spelling of LWLock names
|
|
for <literal>MultiXactOffsetSLRU</literal>
|
|
and <literal>MultiXactMemberSLRU</literal> (Bertrand Drouvot)
|
|
<ulink url="&commit_baseurl;b3abec0ad">§</ulink>
|
|
</para>
|
|
|
|
<para>
|
|
This resulted in different wait-event names being displayed
|
|
in <structname>pg_wait_events</structname>
|
|
and <structname>pg_stat_activity</structname>, potentially breaking
|
|
monitoring queries that join those views.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
Branch: master [64840e462] 2025-07-11 18:50:13 -0400
|
|
Branch: REL_18_STABLE [ccacaf4fa] 2025-07-11 18:50:13 -0400
|
|
Branch: REL_17_STABLE [50959f96e] 2025-07-11 18:50:13 -0400
|
|
Branch: REL_16_STABLE [53a936b61] 2025-07-11 18:50:13 -0400
|
|
Branch: REL_15_STABLE [de73cb3ed] 2025-07-11 18:50:13 -0400
|
|
Branch: REL_14_STABLE [ac8cdb249] 2025-07-11 18:50:13 -0400
|
|
Branch: REL_13_STABLE [093d3d745] 2025-07-11 18:50:13 -0400
|
|
-->
|
|
<para>
|
|
Fix inconsistent quoting of role names in ACL strings (Tom Lane)
|
|
<ulink url="&commit_baseurl;50959f96e">§</ulink>
|
|
</para>
|
|
|
|
<para>
|
|
The previous quoting rule was locale-sensitive, which could lead to
|
|
portability problems when transferring <type>aclitem</type> values
|
|
across installations. (<application>pg_dump</application> does not
|
|
do that, but other tools might.) To ensure consistency, always quote
|
|
non-ASCII characters in <type>aclitem</type> output; but to preserve
|
|
backward compatibility, never require that they be quoted
|
|
during <type>aclitem</type> input.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
Branch: master Release: REL_18_BR [aa87f69c0] 2025-06-02 15:22:44 -0400
|
|
Branch: REL_17_STABLE [d4046125d] 2025-06-02 15:22:44 -0400
|
|
Branch: REL_16_STABLE [ab758ec4d] 2025-06-02 15:22:44 -0400
|
|
Branch: REL_15_STABLE [e76097124] 2025-06-02 15:22:44 -0400
|
|
Branch: REL_14_STABLE [eb4234647] 2025-06-02 15:22:45 -0400
|
|
Branch: REL_13_STABLE [cd31eaaeb] 2025-06-02 15:22:45 -0400
|
|
-->
|
|
<para>
|
|
Reject equal signs (<literal>=</literal>) in the names of relation
|
|
options and foreign-data options (Tom Lane)
|
|
<ulink url="&commit_baseurl;d4046125d">§</ulink>
|
|
</para>
|
|
|
|
<para>
|
|
There's no evident use-case for option names like this, and allowing
|
|
them creates ambiguity in the stored representation.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Michael Paquier <michael@paquier.xyz>
|
|
Branch: master [3369a3b49] 2025-07-02 13:48:36 +0900
|
|
Branch: REL_18_STABLE [d09d13793] 2025-07-02 13:48:41 +0900
|
|
Branch: REL_17_STABLE [074003431] 2025-07-02 13:48:43 +0900
|
|
Branch: REL_16_STABLE [5c639523f] 2025-07-02 13:48:45 +0900
|
|
Branch: REL_15_STABLE [d44efe87e] 2025-07-02 13:48:48 +0900
|
|
-->
|
|
<para>
|
|
Fix potentially-incorrect decompression of LZ4-compressed archive
|
|
data (Mikhail Gribkov)
|
|
<ulink url="&commit_baseurl;074003431">§</ulink>
|
|
</para>
|
|
|
|
<para>
|
|
This error seems to manifest only with not-very-compressible input
|
|
data, which may explain why it escaped detection.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Peter Geoghegan <pg@bowt.ie>
|
|
Branch: master Release: REL_18_BR [7c319f549] 2025-06-11 09:17:35 -0400
|
|
Branch: REL_17_STABLE [40aa5ddea] 2025-06-11 09:17:33 -0400
|
|
Branch: REL_16_STABLE [c7f25feb3] 2025-06-11 09:17:31 -0400
|
|
Branch: REL_15_STABLE [d2ec67109] 2025-06-11 09:17:29 -0400
|
|
Branch: REL_14_STABLE [7c7c0a77d] 2025-06-11 09:17:27 -0400
|
|
Branch: REL_13_STABLE [38c8d2987] 2025-06-11 09:17:25 -0400
|
|
-->
|
|
<para>
|
|
Avoid a rare scenario where a btree index scan could mark the wrong
|
|
index entries as dead (Peter Geoghegan)
|
|
<ulink url="&commit_baseurl;40aa5ddea">§</ulink>
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Masahiko Sawada <msawada@postgresql.org>
|
|
Branch: master Release: REL_18_BR [d87d07b7a] 2025-06-16 17:36:01 -0700
|
|
Branch: REL_17_STABLE [45c357e0e] 2025-06-16 17:35:58 -0700
|
|
Branch: REL_16_STABLE [b2ae07720] 2025-06-16 17:35:55 -0700
|
|
Branch: REL_15_STABLE [fc0fb77c5] 2025-06-16 17:35:53 -0700
|
|
Branch: REL_14_STABLE [983b36362] 2025-06-16 17:35:50 -0700
|
|
Branch: REL_13_STABLE [1230be12f] 2025-06-16 17:35:48 -0700
|
|
Branch: REL_13_STABLE [87819f766] 2025-06-24 07:07:40 -0700
|
|
-->
|
|
<para>
|
|
Avoid re-distributing cache invalidation messages from other
|
|
transactions during logical replication (vignesh C)
|
|
<ulink url="&commit_baseurl;45c357e0e">§</ulink>
|
|
</para>
|
|
|
|
<para>
|
|
Our previous round of minor releases included a bug fix to ensure
|
|
that replication receiver processes would respond to cross-process
|
|
cache invalidation messages, preventing them from using stale
|
|
catalog data while performing replication updates. However, the fix
|
|
unintentionally made them also redistribute those messages again,
|
|
leading to an exponential increase in the number of invalidation
|
|
messages, which would often end in a memory allocation failure.
|
|
Fix by not redistributing received messages.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Fujii Masao <fujii@postgresql.org>
|
|
Branch: master [4614d53d4] 2025-08-04 20:51:42 +0900
|
|
Branch: REL_18_STABLE [2d81a246f] 2025-08-04 20:52:59 +0900
|
|
Branch: REL_17_STABLE [f71fa981c] 2025-08-04 20:53:07 +0900
|
|
-->
|
|
<para>
|
|
Avoid unexpected server shutdown when replication slot
|
|
synchronization is misconfigured (Fujii Masao)
|
|
<ulink url="&commit_baseurl;f71fa981c">§</ulink>
|
|
</para>
|
|
|
|
<para>
|
|
The postmaster process would report an error (and then stop)
|
|
if <varname>sync_replication_slots</varname> was set
|
|
to <literal>true</literal> while <varname>wal_level</varname> was
|
|
less than <literal>logical</literal>. The desired behavior is just
|
|
that slot synchronization should be disabled, so reduce this error
|
|
message's level to avoid postmaster shutdown.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Alexander Korotkov <akorotkov@postgresql.org>
|
|
Branch: REL_17_STABLE [2090edc6f] 2025-06-14 03:52:45 +0300
|
|
Branch: REL_16_STABLE [cea8f2c3e] 2025-06-14 03:53:18 +0300
|
|
Branch: REL_15_STABLE [dd9bc1a17] 2025-06-14 04:15:04 +0300
|
|
Branch: REL_14_STABLE [e2832bd96] 2025-06-14 04:15:24 +0300
|
|
Branch: REL_13_STABLE [dd3df0b85] 2025-06-14 04:15:29 +0300
|
|
-->
|
|
<para>
|
|
Avoid premature removal of old WAL during checkpoints (Vitaly Davydov)
|
|
<ulink url="&commit_baseurl;2090edc6f">§</ulink>
|
|
</para>
|
|
|
|
<para>
|
|
If a replication slot's restart point is advanced while a checkpoint
|
|
is in progress, no-longer-needed WAL segments could get removed too
|
|
soon, leading to recovery failure if the database crashes
|
|
immediately afterwards. Fix by keeping them for one additional
|
|
checkpoint cycle.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Amit Kapila <akapila@postgresql.org>
|
|
Branch: master Release: REL_18_BR [ad5eaf390] 2025-05-19 12:13:06 +0530
|
|
Branch: REL_17_STABLE [7318f241d] 2025-05-19 11:55:55 +0530
|
|
Branch: REL_16_STABLE [c0f51fde5] 2025-05-19 11:41:22 +0530
|
|
Branch: REL_15_STABLE [9d1a62359] 2025-05-19 11:28:19 +0530
|
|
Branch: REL_14_STABLE [e68459489] 2025-05-19 11:15:09 +0530
|
|
Branch: REL_13_STABLE [e323d9df0] 2025-05-19 11:04:39 +0530
|
|
-->
|
|
<para>
|
|
Never move a replication slot's confirmed-flush position backwards
|
|
(Shveta Malik)
|
|
<ulink url="&commit_baseurl;7318f241d">§</ulink>
|
|
</para>
|
|
|
|
<para>
|
|
In some cases a replication client could acknowledge an LSN that's
|
|
past what it has stored persistently, and then perhaps send an older
|
|
LSN after a restart. We consider this not-a-bug so long as the
|
|
client did not have anything it needed to do for the WAL between the
|
|
two points. However, we should not re-send that WAL for fear of
|
|
data duplication, so make sure we always believe the latest
|
|
confirmed LSN for a given slot.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
Branch: master Release: REL_18_BR [fd519419c] 2025-06-24 14:14:07 -0400
|
|
Branch: REL_17_STABLE [9f33300e6] 2025-06-24 14:14:04 -0400
|
|
Branch: REL_16_STABLE [87c8ed3db] 2025-06-24 14:14:04 -0400
|
|
-->
|
|
<para>
|
|
Prevent excessive delays before launching new logical replication
|
|
workers (Tom Lane)
|
|
<ulink url="&commit_baseurl;9f33300e6">§</ulink>
|
|
</para>
|
|
|
|
<para>
|
|
In some cases the logical replication launcher could sleep
|
|
considerably longer than the
|
|
configured <varname>wal_retrieve_retry_interval</varname> before
|
|
launching a new worker.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Michael Paquier <michael@paquier.xyz>
|
|
Branch: master [3b3fa9490] 2025-08-02 17:08:45 +0900
|
|
Branch: REL_18_STABLE [11de339aa] 2025-08-02 17:08:48 +0900
|
|
Branch: REL_17_STABLE [9e0b4b1ab] 2025-08-02 17:08:50 +0900
|
|
Branch: REL_16_STABLE [ec96e8812] 2025-08-02 17:08:52 +0900
|
|
-->
|
|
<para>
|
|
Fix use-after-free during logical replication of <command>INSERT
|
|
... ON CONFLICT</command> (Ethan Mertz, Michael Paquier)
|
|
<ulink url="&commit_baseurl;9e0b4b1ab">§</ulink>
|
|
</para>
|
|
|
|
<para>
|
|
This could result in incorrect progress reporting, or with very bad
|
|
luck it could result in a crash of the WAL sender process.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Fujii Masao <fujii@postgresql.org>
|
|
Branch: master Release: REL_18_BR [961553daf] 2025-05-31 00:08:40 +0900
|
|
Branch: REL_17_STABLE [24c5ad5be] 2025-05-31 00:14:07 +0900
|
|
Branch: REL_16_STABLE [63fa7caa9] 2025-05-31 00:14:14 +0900
|
|
Branch: REL_15_STABLE [405cca9da] 2025-05-31 00:14:22 +0900
|
|
Branch: REL_14_STABLE [9130d8eee] 2025-05-31 00:14:29 +0900
|
|
Branch: REL_13_STABLE [706344f06] 2025-05-31 00:14:35 +0900
|
|
-->
|
|
<para>
|
|
Allow waiting for a transaction on a standby server to be
|
|
interrupted (Kevin K Biju)
|
|
<ulink url="&commit_baseurl;24c5ad5be">§</ulink>
|
|
</para>
|
|
|
|
<para>
|
|
Creation of a replication slot on a standby server may require waiting
|
|
for some active transaction(s) to finish on the primary and then be
|
|
replayed on the standby. Since that could be an indefinite wait,
|
|
it's desirable to allow the operation to be cancelled, but there was
|
|
no check for query cancel in the loop.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Michael Paquier <michael@paquier.xyz>
|
|
Branch: master Release: REL_18_BR [5231ed826] 2025-06-02 12:03:59 +0900
|
|
Branch: REL_17_STABLE [87be749c7] 2025-06-02 12:04:04 +0900
|
|
Branch: REL_16_STABLE [5e6d561bc] 2025-06-02 12:04:08 +0900
|
|
-->
|
|
<para>
|
|
Do not let cascading logical WAL senders try to send data that's
|
|
beyond what has been replayed on their standby server (Alexey
|
|
Makhmutov)
|
|
<ulink url="&commit_baseurl;87be749c7">§</ulink>
|
|
</para>
|
|
|
|
<para>
|
|
This avoids a situation where such WAL senders could get stuck at
|
|
standby server shutdown, waiting for replay work that will not
|
|
happen because the server's startup process is already shut down.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
Branch: master Release: REL_18_BR [02502c1bc] 2025-05-23 14:43:43 -0400
|
|
Branch: REL_17_STABLE [cd3064f98] 2025-05-23 14:43:43 -0400
|
|
Branch: REL_16_STABLE [e087b5b79] 2025-05-23 14:43:44 -0400
|
|
Branch: REL_15_STABLE [13d21b48a] 2025-05-23 14:43:44 -0400
|
|
-->
|
|
<para>
|
|
Fix per-relation memory leakage in autovacuum (Tom Lane)
|
|
<ulink url="&commit_baseurl;cd3064f98">§</ulink>
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
Branch: master [e03c95287] 2025-07-08 12:50:33 -0400
|
|
Branch: REL_18_STABLE [075554ec6] 2025-07-08 12:50:19 -0400
|
|
Branch: REL_17_STABLE [95cf1a181] 2025-07-08 12:50:19 -0400
|
|
Branch: REL_16_STABLE [abb517d61] 2025-07-08 12:50:19 -0400
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
Branch: master Release: REL_18_BR [f24605e2d] 2025-05-22 13:52:46 -0400
|
|
Branch: REL_17_STABLE [20bae0690] 2025-05-22 13:52:46 -0400
|
|
Branch: REL_16_STABLE [ee58de100] 2025-05-22 13:52:46 -0400
|
|
-->
|
|
<para>
|
|
Fix session-lifespan memory leaks
|
|
in <function>XMLSERIALIZE(... INDENT)</function>
|
|
(Dmitry Kovalenko, Tom Lane)
|
|
<ulink url="&commit_baseurl;95cf1a181">§</ulink>
|
|
<ulink url="&commit_baseurl;20bae0690">§</ulink>
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
Branch: master Release: REL_18_BR [d4a7e4e17] 2025-05-10 20:22:39 -0400
|
|
Branch: REL_17_STABLE [a05cf22e0] 2025-05-10 20:22:39 -0400
|
|
-->
|
|
<para>
|
|
Fix possible crash after out-of-memory when allocating large chunks
|
|
with the <quote>bump</quote> allocator (Tom Lane)
|
|
<ulink url="&commit_baseurl;a05cf22e0">§</ulink>
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Nathan Bossart <nathan@postgresql.org>
|
|
Branch: master Release: REL_18_BR [706054b11] 2025-05-30 15:17:28 -0500
|
|
Branch: REL_17_STABLE [fe8ea7a2a] 2025-05-30 15:17:28 -0500
|
|
Branch: REL_16_STABLE [24135398f] 2025-05-30 15:17:28 -0500
|
|
Branch: REL_15_STABLE [ddfcfb7ce] 2025-05-30 15:17:28 -0500
|
|
Branch: REL_14_STABLE [b65be6ef0] 2025-05-30 15:17:28 -0500
|
|
Branch: REL_13_STABLE [b7ba2c030] 2025-05-30 15:17:28 -0500
|
|
-->
|
|
<para>
|
|
Fix some places that might try to fetch toasted fields of system
|
|
catalogs without any snapshot (Nathan Bossart)
|
|
<ulink url="&commit_baseurl;fe8ea7a2a">§</ulink>
|
|
</para>
|
|
|
|
<para>
|
|
This could result in an assertion failure or <quote>cannot fetch
|
|
toast data without an active snapshot</quote> error.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
Branch: master Release: REL_18_BR [8319e5cb5] 2025-06-29 13:56:03 -0400
|
|
Branch: REL_17_STABLE [bbfcbc4cd] 2025-06-29 13:56:03 -0400
|
|
Branch: REL_16_STABLE [c15798cf9] 2025-06-29 13:56:03 -0400
|
|
Branch: REL_15_STABLE [614ffb26d] 2025-06-29 13:56:03 -0400
|
|
Branch: REL_14_STABLE [25cab4473] 2025-06-29 13:56:03 -0400
|
|
Branch: REL_13_STABLE [13f1e9f26] 2025-06-29 13:56:03 -0400
|
|
Branch: master [a10f21e6c] 2025-07-03 13:46:07 -0400
|
|
Branch: REL_18_STABLE [3d7a96871] 2025-07-03 13:46:07 -0400
|
|
Branch: REL_17_STABLE [6d4395b40] 2025-07-03 13:46:07 -0400
|
|
Branch: REL_16_STABLE [d36980b71] 2025-07-03 13:46:07 -0400
|
|
Branch: REL_15_STABLE [e6dd6e6ee] 2025-07-03 13:46:07 -0400
|
|
Branch: REL_14_STABLE [e902f8181] 2025-07-03 13:46:07 -0400
|
|
Branch: REL_13_STABLE [f9ba071cc] 2025-07-03 13:46:07 -0400
|
|
-->
|
|
<para>
|
|
Avoid assertion failure during cross-table constraint updates
|
|
(Tom Lane, Jian He)
|
|
<ulink url="&commit_baseurl;bbfcbc4cd">§</ulink>
|
|
<ulink url="&commit_baseurl;6d4395b40">§</ulink>
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Álvaro Herrera <alvherre@kurilemu.de>
|
|
Branch: master [b8926a5b4] 2025-07-17 17:40:22 +0200
|
|
Branch: REL_18_STABLE [e0d3f3cfb] 2025-07-17 17:40:22 +0200
|
|
Branch: REL_17_STABLE [0c466f5e0] 2025-07-17 17:40:22 +0200
|
|
Branch: REL_16_STABLE [4871c1e9c] 2025-07-17 17:40:22 +0200
|
|
Branch: REL_15_STABLE [c2720ac60] 2025-07-17 17:40:22 +0200
|
|
Branch: REL_14_STABLE [b9a896828] 2025-07-17 17:40:22 +0200
|
|
Branch: REL_13_STABLE [43cd85962] 2025-07-17 17:40:22 +0200
|
|
-->
|
|
<para>
|
|
Remove faulty assertion that a command tag must have been determined
|
|
by the end of <function>PortalRunMulti()</function> (Álvaro Herrera)
|
|
<ulink url="&commit_baseurl;0c466f5e0">§</ulink>
|
|
</para>
|
|
|
|
<para>
|
|
This failed in edge cases such as an empty prepared statement.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Richard Guo <rguo@postgresql.org>
|
|
Branch: master Release: REL_18_BR [fe29b2a1d] 2025-05-15 17:09:04 +0900
|
|
Branch: REL_17_STABLE [2f48b4f07] 2025-05-15 17:10:45 +0900
|
|
Branch: REL_16_STABLE [d3716d4b1] 2025-05-15 17:21:15 +0900
|
|
Branch: REL_15_STABLE [666103090] 2025-05-15 17:26:13 +0900
|
|
-->
|
|
<para>
|
|
Fix assertion failure in <literal>XMLTABLE</literal> parsing
|
|
(Richard Guo)
|
|
<ulink url="&commit_baseurl;2f48b4f07">§</ulink>
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
Branch: master [87b05fdc7] 2025-07-07 14:33:20 -0400
|
|
Branch: REL_18_STABLE [440c5ee20] 2025-07-07 14:33:34 -0400
|
|
Branch: REL_17_STABLE [a553a2289] 2025-07-07 14:33:47 -0400
|
|
Branch: REL_16_STABLE [3bbc1c4a7] 2025-07-07 14:33:56 -0400
|
|
Branch: REL_15_STABLE [c65c36ab5] 2025-07-07 14:34:04 -0400
|
|
Branch: REL_14_STABLE [602c91cf2] 2025-07-07 14:34:12 -0400
|
|
Branch: REL_13_STABLE [ae693c0bf] 2025-07-07 14:34:19 -0400
|
|
-->
|
|
<para>
|
|
Restore the ability to run PL/pgSQL expressions in parallel
|
|
(Dipesh Dhameliya)
|
|
<ulink url="&commit_baseurl;a553a2289">§</ulink>
|
|
</para>
|
|
|
|
<para>
|
|
PL/pgSQL's notion of an <quote>expression</quote> is very broad,
|
|
encompassing any SQL <command>SELECT</command> query that returns a
|
|
single column and no more than one row. So there are cases, for
|
|
example evaluation of an aggregate function, where the query
|
|
involves significant work and it'd be useful to run it with parallel
|
|
workers. This used to be possible, but a previous bug fix
|
|
unintentionally disabled it.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
Branch: master Release: REL_18_BR [c6f7f11d8] 2025-06-01 14:48:35 -0400
|
|
Branch: REL_17_STABLE [7559a16e2] 2025-06-01 14:48:35 -0400
|
|
Branch: REL_16_STABLE [5c7fd5976] 2025-06-01 14:48:35 -0400
|
|
Branch: REL_15_STABLE [b56a92651] 2025-06-01 14:48:35 -0400
|
|
Branch: REL_14_STABLE [31a3a15fa] 2025-06-01 14:48:35 -0400
|
|
Branch: REL_13_STABLE [1c78d5553] 2025-06-01 14:48:35 -0400
|
|
Branch: master Release: REL_18_BR [4672b6223] 2025-06-01 14:55:24 -0400
|
|
Branch: REL_17_STABLE [6f724fcf8] 2025-06-01 14:55:24 -0400
|
|
Branch: REL_16_STABLE [ecc8fd2b7] 2025-06-01 14:55:24 -0400
|
|
Branch: REL_15_STABLE [b898bb2a7] 2025-06-01 14:55:24 -0400
|
|
Branch: REL_14_STABLE [d4556f592] 2025-06-01 14:55:24 -0400
|
|
Branch: REL_13_STABLE [93aca1246] 2025-06-01 14:55:24 -0400
|
|
-->
|
|
<para>
|
|
Fix edge-case resource leaks in PL/Python error reporting (Tom Lane)
|
|
<ulink url="&commit_baseurl;7559a16e2">§</ulink>
|
|
<ulink url="&commit_baseurl;6f724fcf8">§</ulink>
|
|
</para>
|
|
|
|
<para>
|
|
An out-of-memory failure while reporting an error from Python could
|
|
result in failure to drop reference counts on Python objects,
|
|
leading to session-lifespan memory leakage.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
Branch: master [fe05430ac] 2025-07-02 15:48:02 -0400
|
|
Branch: REL_18_STABLE [5d0800000] 2025-07-02 15:48:03 -0400
|
|
Branch: REL_17_STABLE [445bd37b1] 2025-07-02 15:47:59 -0400
|
|
-->
|
|
<para>
|
|
Fix <application>libpq</application>'s
|
|
<function>PQcancelCreate()</function> function for the case where
|
|
the server's address was specified using <literal>hostaddr</literal>
|
|
(Sergei Kornilov)
|
|
<ulink url="&commit_baseurl;445bd37b1">§</ulink>
|
|
</para>
|
|
|
|
<para>
|
|
<application>libpq</application> would crash if the resulting cancel
|
|
object was actually used.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
Branch: master [daf9bdc47] 2025-07-17 12:46:57 -0400
|
|
Branch: REL_18_STABLE [bfa9b25c9] 2025-07-17 12:46:57 -0400
|
|
Branch: REL_17_STABLE [3f10d2b66] 2025-07-17 12:46:58 -0400
|
|
Branch: REL_16_STABLE [009c20a3d] 2025-07-17 12:46:58 -0400
|
|
Branch: REL_15_STABLE [a372a64db] 2025-07-17 12:46:58 -0400
|
|
Branch: REL_14_STABLE [d5cba7746] 2025-07-17 12:46:59 -0400
|
|
Branch: REL_13_STABLE [9dcd1aa81] 2025-07-17 12:46:59 -0400
|
|
-->
|
|
<para>
|
|
Fix <application>libpq</application>'s <function>PQport()</function>
|
|
function to never return NULL unless the passed connection is NULL
|
|
(Daniele Varrazzo)
|
|
<ulink url="&commit_baseurl;3f10d2b66">§</ulink>
|
|
</para>
|
|
|
|
<para>
|
|
This is the documented behavior, but
|
|
recent <application>libpq</application> versions would return NULL
|
|
in some cases where the user had not provided a port specification.
|
|
Revert to our historical behavior of returning an empty string in
|
|
such cases. (v18 and later will return the compiled-in default port
|
|
number, typically <literal>"5432"</literal>, instead.)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
Branch: master Release: REL_18_BR [d98cefe11] 2025-05-30 12:55:15 -0400
|
|
Branch: REL_17_STABLE [8b0aa7a6b] 2025-05-30 12:55:15 -0400
|
|
Branch: REL_16_STABLE [ca70ee6ed] 2025-05-30 12:55:15 -0400
|
|
Branch: REL_15_STABLE [39b1d1907] 2025-05-30 12:55:15 -0400
|
|
Branch: REL_14_STABLE [a7da7914c] 2025-05-30 12:55:15 -0400
|
|
Branch: REL_13_STABLE [c81cdffa1] 2025-05-30 12:55:15 -0400
|
|
-->
|
|
<para>
|
|
Avoid failure when GSSAPI authentication requires packets larger
|
|
than 16kB (Jacob Champion, Tom Lane)
|
|
<ulink url="&commit_baseurl;8b0aa7a6b">§</ulink>
|
|
</para>
|
|
|
|
<para>
|
|
Larger authentication packets are needed for Active Directory users
|
|
who belong to many AD groups. This limitation manifested in
|
|
connection failures with unintelligible error messages,
|
|
typically <quote>GSSAPI context establishment error: The routine
|
|
must be called again to complete its function: Unknown
|
|
error</quote>.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
Branch: master Release: REL_18_BR [137935bd1] 2025-06-10 18:39:34 -0400
|
|
Branch: REL_17_STABLE [30e0d9ee9] 2025-06-10 18:39:34 -0400
|
|
Branch: REL_16_STABLE [3f37400cf] 2025-06-10 18:39:34 -0400
|
|
Branch: REL_15_STABLE [6a4d93eda] 2025-06-10 18:39:34 -0400
|
|
Branch: REL_14_STABLE [0703c9385] 2025-06-10 18:39:34 -0400
|
|
Branch: REL_13_STABLE [f09fea386] 2025-06-10 18:39:34 -0400
|
|
-->
|
|
<para>
|
|
Fix timing-dependent failures in SSL and GSSAPI data transmission
|
|
(Tom Lane)
|
|
<ulink url="&commit_baseurl;30e0d9ee9">§</ulink>
|
|
</para>
|
|
|
|
<para>
|
|
When using SSL or GSSAPI encryption in non-blocking
|
|
mode, <application>libpq</application> sometimes failed
|
|
with <quote>SSL error: bad length</quote> or <quote>GSSAPI caller
|
|
failed to retransmit all data needing to be retried</quote>.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Michael Paquier <michael@paquier.xyz>
|
|
Branch: master [1b8bbee05] 2025-07-22 14:00:00 +0900
|
|
Branch: REL_18_STABLE [0ded7615d] 2025-07-22 14:00:04 +0900
|
|
Branch: REL_17_STABLE [2805e1c1e] 2025-07-22 14:00:05 +0900
|
|
Branch: REL_16_STABLE [313d3102f] 2025-07-22 14:00:07 +0900
|
|
Branch: REL_15_STABLE [0123922f8] 2025-07-22 14:00:08 +0900
|
|
Branch: REL_14_STABLE [408fe659a] 2025-07-22 14:00:10 +0900
|
|
Branch: REL_13_STABLE [c934d5673] 2025-07-22 14:00:12 +0900
|
|
-->
|
|
<para>
|
|
Avoid null-pointer dereference during connection lookup
|
|
in <application>ecpg</application> applications (Aleksander
|
|
Alekseev)
|
|
<ulink url="&commit_baseurl;2805e1c1e">§</ulink>
|
|
</para>
|
|
|
|
<para>
|
|
The case could occur only if the application has some connections
|
|
that are named and some that are not.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Masahiko Sawada <msawada@postgresql.org>
|
|
Branch: master [f5a987c0e] 2025-07-09 05:45:34 -0700
|
|
Branch: REL_18_STABLE [765a4c94c] 2025-07-09 05:45:31 -0700
|
|
Branch: REL_17_STABLE [c1c6169eb] 2025-07-09 05:45:28 -0700
|
|
Branch: REL_16_STABLE [d69836b13] 2025-07-09 05:45:26 -0700
|
|
Branch: REL_15_STABLE [e3584e457] 2025-07-09 05:45:23 -0700
|
|
Branch: REL_14_STABLE [0514616f0] 2025-07-09 05:45:20 -0700
|
|
-->
|
|
<para>
|
|
Improve <application>psql</application>'s tab completion
|
|
for <command>COPY</command> and <command>\copy</command> options
|
|
(Atsushi Torikoshi)
|
|
<ulink url="&commit_baseurl;c1c6169eb">§</ulink>
|
|
</para>
|
|
|
|
<para>
|
|
The same completions were offered for both <command>COPY
|
|
FROM</command> and <command>COPY TO</command>, although some options
|
|
are only valid for one case or the other. Distinguish these cases
|
|
to provide more accurate suggestions.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Fujii Masao <fujii@postgresql.org>
|
|
Branch: master [12efa4897] 2025-08-03 10:49:03 +0900
|
|
Branch: REL_18_STABLE [fee46ab4f] 2025-08-03 10:49:54 +0900
|
|
Branch: REL_17_STABLE [398e07162] 2025-08-03 10:50:01 +0900
|
|
Branch: REL_16_STABLE [1d3ded521] 2025-08-03 10:50:22 +0900
|
|
Branch: REL_15_STABLE [6914a330f] 2025-08-03 10:50:59 +0900
|
|
-->
|
|
<para>
|
|
Avoid assertion failure in <application>pgbench</application> when
|
|
multiple pipeline sync messages are received (Fujii Masao)
|
|
<ulink url="&commit_baseurl;398e07162">§</ulink>
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Amit Kapila <akapila@postgresql.org>
|
|
Branch: master [e1c365483] 2025-07-24 09:05:32 +0000
|
|
Branch: REL_18_STABLE [33f74b806] 2025-07-24 08:50:40 +0000
|
|
Branch: REL_17_STABLE [967309116] 2025-07-24 08:38:01 +0000
|
|
-->
|
|
<para>
|
|
Fix duplicate transaction replay when initializing a subscription
|
|
with <application>pg_createsubscriber</application> (Shlok Kyal)
|
|
<ulink url="&commit_baseurl;967309116">§</ulink>
|
|
</para>
|
|
|
|
<para>
|
|
It was possible for the last transaction processed during subscriber
|
|
recovery to be sent again once normal replication begins.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Álvaro Herrera <alvherre@kurilemu.de>
|
|
Branch: master [da71717f0] 2025-07-21 11:34:10 +0200
|
|
Branch: REL_18_STABLE [f9545e95c] 2025-07-21 11:34:10 +0200
|
|
Branch: REL_17_STABLE [6b755d8d7] 2025-07-21 11:34:10 +0200
|
|
-->
|
|
<para>
|
|
Ensure that <application>pg_dump</application> dumps comments on
|
|
not-null constraints on domain types (Jian He, Álvaro Herrera)
|
|
<ulink url="&commit_baseurl;6b755d8d7">§</ulink>
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Álvaro Herrera <alvherre@kurilemu.de>
|
|
Branch: master [0858f0f96] 2025-07-16 19:22:53 +0200
|
|
Branch: REL_18_STABLE [dca0e9693] 2025-07-16 19:22:53 +0200
|
|
Branch: REL_17_STABLE [d07bc7c2b] 2025-07-16 19:22:53 +0200
|
|
Branch: REL_16_STABLE [cef998ef8] 2025-07-16 19:22:53 +0200
|
|
Branch: REL_15_STABLE [5a261c135] 2025-07-16 19:22:53 +0200
|
|
Branch: REL_14_STABLE [e04aca1c4] 2025-07-16 19:22:53 +0200
|
|
Branch: REL_13_STABLE [57949cea5] 2025-07-16 19:22:53 +0200
|
|
-->
|
|
<para>
|
|
Ensure that <application>pg_dump</application> dumps comments on
|
|
domain constraints in a valid order (Jian He)
|
|
<ulink url="&commit_baseurl;d07bc7c2b">§</ulink>
|
|
</para>
|
|
|
|
<para>
|
|
In some cases the comment command could appear before creation of
|
|
the constraint.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Noah Misch <noah@leadboat.com>
|
|
Branch: master [0decd5e89] 2025-07-31 06:37:56 -0700
|
|
Branch: REL_18_STABLE [c0ae03384] 2025-07-31 06:37:59 -0700
|
|
Branch: REL_17_STABLE [1ca1889ea] 2025-07-31 06:38:00 -0700
|
|
Branch: REL_16_STABLE [0ac1581c3] 2025-07-31 06:38:00 -0700
|
|
Branch: REL_15_STABLE [22f126da6] 2025-07-31 06:38:01 -0700
|
|
Branch: REL_14_STABLE [7ee7c1cd3] 2025-07-31 06:38:02 -0700
|
|
Branch: REL_13_STABLE [04bc2c42f] 2025-07-31 06:38:03 -0700
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
Branch: master Release: REL_18_BR [350e6b8ea] 2024-11-04 13:31:12 -0500
|
|
Branch: REL_17_STABLE [5dd4957b2] 2025-07-31 06:38:00 -0700
|
|
Branch: REL_16_STABLE [9affed263] 2025-07-31 06:38:00 -0700
|
|
Branch: REL_15_STABLE [e99010cbd] 2025-07-31 06:38:01 -0700
|
|
Branch: REL_14_STABLE [25388fb2c] 2025-07-31 06:38:02 -0700
|
|
Branch: REL_13_STABLE [cc9a62c51] 2025-07-31 06:38:03 -0700
|
|
Author: Noah Misch <noah@leadboat.com>
|
|
Branch: REL_18_STABLE [0d2734eac] 2025-08-10 13:05:13 -0700
|
|
Branch: REL_17_STABLE [28e7252e4] 2025-08-10 13:05:16 -0700
|
|
Branch: REL_16_STABLE [216683296] 2025-08-10 13:05:16 -0700
|
|
Branch: REL_15_STABLE [70637d7ae] 2025-08-10 13:05:17 -0700
|
|
Branch: REL_14_STABLE [7846f4709] 2025-08-10 13:05:17 -0700
|
|
Branch: REL_13_STABLE [bc05590c7] 2025-08-10 13:05:17 -0700
|
|
-->
|
|
<para>
|
|
Ensure stable sort ordering in <application>pg_dump</application>
|
|
for all types of database objects (Noah Misch, Andreas Karlsson)
|
|
<ulink url="&commit_baseurl;1ca1889ea">§</ulink>
|
|
<ulink url="&commit_baseurl;5dd4957b2">§</ulink>
|
|
<ulink url="&commit_baseurl;28e7252e4">§</ulink>
|
|
</para>
|
|
|
|
<para>
|
|
<application>pg_dump</application> sorts objects by their logical
|
|
names before performing dependency-driven reordering. This sort did
|
|
not account for the full unique key identifying certain object types
|
|
such as rules and constraints, and thus it could produce dissimilar
|
|
sort orders for logically-identical databases. That made it
|
|
difficult to compare databases by
|
|
diff'ing <application>pg_dump</application> output, so improve the
|
|
logic to ensure stable sort ordering in all cases.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Fujii Masao <fujii@postgresql.org>
|
|
Branch: master [85ccd7e30] 2025-08-08 14:36:39 +0900
|
|
Branch: REL_18_STABLE [e3764229e] 2025-08-08 14:37:32 +0900
|
|
Branch: REL_17_STABLE [7dafc4a41] 2025-08-08 14:37:41 +0900
|
|
-->
|
|
<para>
|
|
Fix incorrect parsing of object types
|
|
in <application>pg_dump</application> filter files (Fujii Masao)
|
|
<ulink url="&commit_baseurl;7dafc4a41">§</ulink>
|
|
</para>
|
|
|
|
<para>
|
|
Treat keywords as extending to the next whitespace, rather than
|
|
stopping at the first non-alphanumeric character as before.
|
|
This makes no difference for valid keywords, but it allows some
|
|
error cases to be recognized properly. For
|
|
example, <literal>table-data</literal> will now be rejected, whereas
|
|
previously it was misinterpreted as <literal>table</literal>.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
Branch: master Release: REL_18_BR [166b4f456] 2025-06-08 17:06:39 -0400
|
|
Branch: REL_17_STABLE [839802792] 2025-06-08 17:06:39 -0400
|
|
-->
|
|
<para>
|
|
<application>pg_restore</application> failed to restore large
|
|
objects (BLOBs) from directory-format dumps made
|
|
by <application>pg_dump</application> versions
|
|
before <productname>PostgreSQL</productname> v12 (Pavel Stehule)
|
|
<ulink url="&commit_baseurl;839802792">§</ulink>
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Álvaro Herrera <alvherre@kurilemu.de>
|
|
Branch: master [f295494d3] 2025-07-04 18:05:43 +0200
|
|
Branch: REL_18_STABLE [07da2985d] 2025-07-04 18:05:43 +0200
|
|
Branch: REL_17_STABLE [b8b2e6052] 2025-07-04 18:05:43 +0200
|
|
Branch: REL_16_STABLE [f63e408e8] 2025-07-04 18:05:43 +0200
|
|
Branch: REL_15_STABLE [0f4958685] 2025-07-04 18:05:43 +0200
|
|
Branch: REL_14_STABLE [ea3386cc7] 2025-07-04 18:05:43 +0200
|
|
Branch: REL_13_STABLE [b0f0e2221] 2025-07-04 18:05:43 +0200
|
|
Branch: master [144ad723a] 2025-07-04 21:30:05 +0200
|
|
Branch: REL_18_STABLE [1e007722f] 2025-07-04 21:30:05 +0200
|
|
Branch: REL_17_STABLE [bcb8d47cd] 2025-07-04 21:30:05 +0200
|
|
Branch: REL_16_STABLE [f943e2339] 2025-07-04 21:30:05 +0200
|
|
Branch: REL_15_STABLE [bd48455d8] 2025-07-04 21:30:05 +0200
|
|
Branch: REL_14_STABLE [94dc2b37b] 2025-07-04 21:30:05 +0200
|
|
Branch: REL_13_STABLE [708469281] 2025-07-04 21:30:05 +0200
|
|
Author: Peter Eisentraut <peter@eisentraut.org>
|
|
Branch: master [1beda2c3c] 2025-08-07 11:48:43 +0200
|
|
Branch: REL_18_STABLE [1084e76f3] 2025-08-07 11:59:14 +0200
|
|
Branch: REL_17_STABLE [930e1faec] 2025-08-07 11:59:20 +0200
|
|
Branch: REL_16_STABLE [05b367bea] 2025-08-07 11:59:26 +0200
|
|
Branch: REL_15_STABLE [63c79a6fc] 2025-08-07 11:59:32 +0200
|
|
Branch: REL_14_STABLE [a00eb374c] 2025-08-07 11:59:38 +0200
|
|
Branch: REL_13_STABLE [160131033] 2025-08-07 11:59:42 +0200
|
|
Author: Peter Eisentraut <peter@eisentraut.org>
|
|
Branch: REL_15_STABLE [22d783350] 2025-08-08 00:18:19 +0200
|
|
Branch: REL_14_STABLE [f9f6595e3] 2025-08-08 00:18:15 +0200
|
|
Branch: REL_13_STABLE [7406a7d82] 2025-08-08 00:18:11 +0200
|
|
Author: Peter Eisentraut <peter@eisentraut.org>
|
|
Branch: REL_16_STABLE [06f444816] 2025-08-08 00:27:14 +0200
|
|
Branch: REL_15_STABLE [a8b31b160] 2025-08-08 00:28:58 +0200
|
|
Branch: REL_14_STABLE [ed2bb0cdd] 2025-08-08 00:29:31 +0200
|
|
Branch: REL_13_STABLE [de7fd83cd] 2025-08-08 00:29:34 +0200
|
|
Author: Peter Eisentraut <peter@eisentraut.org>
|
|
Branch: REL_15_STABLE [18d2d8ae4] 2025-08-08 08:47:10 +0200
|
|
Branch: REL_14_STABLE [bef2c2a4e] 2025-08-08 08:48:28 +0200
|
|
Branch: REL_13_STABLE [095e83d09] 2025-08-08 08:48:36 +0200
|
|
-->
|
|
<para>
|
|
In <application>pg_upgrade</application>, check for inconsistent
|
|
inherited not-null constraints (Ali Akbar)
|
|
<ulink url="&commit_baseurl;b8b2e6052">§</ulink>
|
|
<ulink url="&commit_baseurl;bcb8d47cd">§</ulink>
|
|
<ulink url="&commit_baseurl;930e1faec">§</ulink>
|
|
</para>
|
|
|
|
<para>
|
|
<productname>PostgreSQL</productname> versions before 18 allow an
|
|
inherited column not-null constraint to be dropped. However, this
|
|
results in a schema that cannot be restored, leading to failure
|
|
in <application>pg_upgrade</application>. Detect such cases
|
|
during <application>pg_upgrade</application>'s preflight checks to
|
|
allow users to fix them before initiating the upgrade.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Amit Kapila <akapila@postgresql.org>
|
|
Branch: master [72e6c08fe] 2025-07-11 10:46:43 +0530
|
|
Branch: REL_18_STABLE [f36e57745] 2025-07-11 10:28:29 +0530
|
|
Branch: REL_17_STABLE [24f6c1bd4] 2025-07-11 09:53:34 +0530
|
|
-->
|
|
<para>
|
|
Don't require that the target installation
|
|
have <varname>max_slot_wal_keep_size</varname> set to its default
|
|
during <application>pg_upgrade</application> (Dilip Kumar)
|
|
<ulink url="&commit_baseurl;24f6c1bd4">§</ulink>
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Michael Paquier <michael@paquier.xyz>
|
|
Branch: master [5a6c39b6d] 2025-07-04 15:09:24 +0900
|
|
Branch: REL_18_STABLE [29a4b63c6] 2025-07-04 15:10:17 +0900
|
|
Branch: REL_17_STABLE [ae20c105f] 2025-07-04 15:10:19 +0900
|
|
Branch: REL_16_STABLE [7e7059abf] 2025-07-04 15:10:21 +0900
|
|
Branch: REL_15_STABLE [dcbbd4331] 2025-07-04 15:10:22 +0900
|
|
Branch: REL_14_STABLE [b61ddcaf4] 2025-07-04 15:10:24 +0900
|
|
Branch: REL_13_STABLE [8bca4476f] 2025-07-04 15:10:25 +0900
|
|
-->
|
|
<para>
|
|
Avoid assertion failure if <varname>track_commit_timestamp</varname>
|
|
is enabled during <application>initdb</application> (Hayato Kuroda,
|
|
Andy Fan)
|
|
<ulink url="&commit_baseurl;ae20c105f">§</ulink>
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Fujii Masao <fujii@postgresql.org>
|
|
Branch: master Release: REL_18_BR [0bd762e81] 2025-05-21 11:55:14 +0900
|
|
Branch: REL_17_STABLE [11efaaffa] 2025-05-21 11:56:24 +0900
|
|
Branch: REL_16_STABLE [0d2063585] 2025-05-21 11:56:32 +0900
|
|
Branch: REL_15_STABLE [0e0174b49] 2025-05-21 11:56:39 +0900
|
|
-->
|
|
<para>
|
|
Fix <application>pg_waldump</application> to show information about
|
|
dropped statistics in <literal>PREPARE TRANSACTION</literal> WAL
|
|
records (Daniil Davydov)
|
|
<ulink url="&commit_baseurl;11efaaffa">§</ulink>
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
Branch: master Release: REL_18_BR [470273da0] 2025-05-29 10:39:55 -0400
|
|
Branch: REL_17_STABLE [e20b3256a] 2025-05-29 10:39:55 -0400
|
|
Branch: REL_16_STABLE [8eef55db1] 2025-05-29 10:39:55 -0400
|
|
Branch: REL_15_STABLE [09c9ae8f6] 2025-05-29 10:39:55 -0400
|
|
Branch: REL_14_STABLE [2cd2222ca] 2025-05-29 10:39:55 -0400
|
|
Branch: REL_13_STABLE [e7d3d4ed4] 2025-05-29 10:39:55 -0400
|
|
-->
|
|
<para>
|
|
Avoid possible leak of the open connection
|
|
during <filename>contrib/dblink</filename> connection establishment
|
|
(Tom Lane)
|
|
<ulink url="&commit_baseurl;e20b3256a">§</ulink>
|
|
</para>
|
|
|
|
<para>
|
|
In the rare scenario where we hit out-of-memory while inserting the
|
|
new connection object into dblink's hashtable, the open connection
|
|
would be leaked until end of session, leaving an idle session
|
|
sitting on the remote server.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Robert Haas <rhaas@postgresql.org>
|
|
Branch: master Release: REL_18_BR [016e407f4] 2025-06-06 08:18:27 -0400
|
|
Branch: REL_17_STABLE [e4b8f925a] 2025-06-06 08:18:26 -0400
|
|
Branch: REL_16_STABLE [169429264] 2025-06-06 08:18:23 -0400
|
|
Branch: REL_15_STABLE [d59ff3be2] 2025-06-06 08:18:22 -0400
|
|
Branch: REL_14_STABLE [a4b9707c4] 2025-06-06 08:18:20 -0400
|
|
Branch: REL_13_STABLE [4adbaa36c] 2025-06-06 08:18:15 -0400
|
|
-->
|
|
<para>
|
|
Make <filename>contrib/pg_prewarm</filename> cope with very
|
|
large <varname>shared_buffers</varname> settings (Daria Shanina)
|
|
<ulink url="&commit_baseurl;e4b8f925a">§</ulink>
|
|
</para>
|
|
|
|
<para>
|
|
Autoprewarm failed with a memory allocation error
|
|
if <varname>shared_buffers</varname> was larger than about 50
|
|
million buffers (400GB).
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Fujii Masao <fujii@postgresql.org>
|
|
Branch: master Release: REL_18_BR [3c4d7557e] 2025-05-29 17:50:32 +0900
|
|
Branch: REL_17_STABLE [b64c585fd] 2025-05-29 17:52:42 +0900
|
|
-->
|
|
<para>
|
|
Prevent assertion failure
|
|
in <filename>contrib/pg_prewarm</filename> (Masahiro Ikeda)
|
|
<ulink url="&commit_baseurl;b64c585fd">§</ulink>
|
|
</para>
|
|
|
|
<para>
|
|
Applying <function>pg_prewarm()</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: Michael Paquier <michael@paquier.xyz>
|
|
Branch: master Release: REL_18_BR [35a428f30] 2025-05-29 11:26:03 +0900
|
|
Branch: REL_17_STABLE [290e8ab32] 2025-05-29 11:26:23 +0900
|
|
Branch: REL_16_STABLE [7e8b44f4e] 2025-05-29 11:26:27 +0900
|
|
Branch: REL_15_STABLE [130300a15] 2025-05-29 11:26:29 +0900
|
|
Branch: REL_14_STABLE [8a1459f62] 2025-05-29 11:26:31 +0900
|
|
Branch: REL_13_STABLE [3c03b8cd7] 2025-05-29 11:26:34 +0900
|
|
-->
|
|
<para>
|
|
In <filename>contrib/pg_stat_statements</filename>, avoid leaving
|
|
gaps in the set of parameter numbers used in a normalized query
|
|
(Sami Imseih)
|
|
<ulink url="&commit_baseurl;290e8ab32">§</ulink>
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
Branch: master Release: REL_18_BR [232d8caea] 2025-05-30 13:45:41 -0400
|
|
Branch: REL_17_STABLE [9339c85af] 2025-05-30 13:45:41 -0400
|
|
Branch: REL_16_STABLE [2b92dc4ee] 2025-05-30 13:45:41 -0400
|
|
Branch: REL_15_STABLE [3c31594f5] 2025-05-30 13:45:41 -0400
|
|
Branch: REL_14_STABLE [4a07c0961] 2025-05-30 13:45:41 -0400
|
|
Branch: REL_13_STABLE [271cb7eaa] 2025-05-30 13:45:41 -0400
|
|
-->
|
|
<para>
|
|
Fix memory leakage in <filename>contrib/postgres_fdw</filename>'s
|
|
DirectModify methods (Tom Lane)
|
|
<ulink url="&commit_baseurl;9339c85af">§</ulink>
|
|
</para>
|
|
|
|
<para>
|
|
The <structname>PGresult</structname> holding the results of the
|
|
remote modify command would be leaked for the rest of the session if
|
|
the query fails between invocations of the DirectModify methods,
|
|
which could happen when there's <literal>RETURNING</literal> data to
|
|
process.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
Branch: master [4300d8b6a] 2025-07-29 15:17:40 -0400
|
|
Branch: REL_18_STABLE [8e5e3ff55] 2025-07-29 15:17:40 -0400
|
|
Branch: REL_17_STABLE [a644f5fc6] 2025-07-29 15:17:41 -0400
|
|
Branch: REL_16_STABLE [bbc20c8a9] 2025-07-29 15:17:41 -0400
|
|
Branch: REL_15_STABLE [19857437b] 2025-07-29 15:17:41 -0400
|
|
Branch: REL_14_STABLE [2dee95bd0] 2025-07-29 15:17:41 -0400
|
|
Branch: REL_13_STABLE [c5bd803e5] 2025-07-29 15:17:41 -0400
|
|
-->
|
|
<para>
|
|
Ensure that directories listed
|
|
in <application>configure</application>'s
|
|
<option>--with-includes</option>
|
|
and <option>--with-libraries</option> options are searched before
|
|
system-supplied directories (Tom Lane)
|
|
<ulink url="&commit_baseurl;a644f5fc6">§</ulink>
|
|
</para>
|
|
|
|
<para>
|
|
A common reason for using these options is to allow a user-built
|
|
version of some library to override the system-supplied version.
|
|
However, that failed to work in some environments because of
|
|
careless ordering of switches in the commands issued by the makefiles.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Michael Paquier <michael@paquier.xyz>
|
|
Branch: master [1a5212775] 2025-07-30 11:55:42 +0900
|
|
Branch: REL_18_STABLE [cd2d52cc6] 2025-07-30 11:55:46 +0900
|
|
Branch: REL_17_STABLE [8de56323c] 2025-07-30 11:55:47 +0900
|
|
Branch: REL_16_STABLE [c1984be23] 2025-07-30 11:55:49 +0900
|
|
Branch: REL_15_STABLE [d6ffc43f9] 2025-07-30 11:55:51 +0900
|
|
Branch: REL_14_STABLE [60953d4cb] 2025-07-30 11:55:53 +0900
|
|
Branch: REL_13_STABLE [612f5b806] 2025-07-30 11:55:54 +0900
|
|
-->
|
|
<para>
|
|
Fix <application>configure</application>'s checks
|
|
for <function>__cpuid()</function>
|
|
and <function>__cpuidex()</function> (Lukas Fittl, Michael Paquier)
|
|
<ulink url="&commit_baseurl;8de56323c">§</ulink>
|
|
</para>
|
|
|
|
<para>
|
|
<application>configure</application> failed to detect these
|
|
Windows-specific functions, so that they would not be used,
|
|
leading to slower-than-necessary CRC computations since the
|
|
availability of hardware instructions could not be verified.
|
|
The practical impact of this error was limited, because production
|
|
builds for Windows typically do not use the Autoconf toolchain.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
Branch: master [e6dfd068e] 2025-07-23 15:44:29 -0400
|
|
Branch: REL_18_STABLE [3d039b53a] 2025-07-23 15:44:29 -0400
|
|
Branch: REL_17_STABLE [635a85627] 2025-07-23 15:44:29 -0400
|
|
Branch: REL_16_STABLE [e4d585455] 2025-07-23 15:44:29 -0400
|
|
Branch: REL_15_STABLE [b252ce311] 2025-07-23 15:44:29 -0400
|
|
Branch: REL_14_STABLE [868b39a54] 2025-07-23 15:44:29 -0400
|
|
Branch: REL_13_STABLE [1ccb3851d] 2025-07-23 15:44:29 -0400
|
|
-->
|
|
<para>
|
|
Fix build failure with <option>--with-pam</option> option on
|
|
Solaris-based platforms (Tom Lane)
|
|
<ulink url="&commit_baseurl;635a85627">§</ulink>
|
|
</para>
|
|
|
|
<para>
|
|
Solaris is inconsistent with other Unix platforms about the API for
|
|
PAM authentication. This manifested as an <quote>inconsistent
|
|
pointer</quote> compiler warning, which we never did anything about.
|
|
But as of GCC 14 it's an error not warning by default, so fix it.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
Branch: master [1fd772d19] 2025-07-01 12:40:35 -0400
|
|
Branch: REL_18_STABLE [581305a46] 2025-07-01 12:40:35 -0400
|
|
Branch: REL_17_STABLE [0991249d7] 2025-07-01 12:40:35 -0400
|
|
Branch: REL_16_STABLE [d25d392e8] 2025-07-01 12:40:35 -0400
|
|
Branch: master [29213636e] 2025-07-01 12:08:20 -0400
|
|
Branch: REL_18_STABLE [45c527662] 2025-07-01 12:08:20 -0400
|
|
Branch: REL_17_STABLE [29c54ea7b] 2025-07-01 12:08:20 -0400
|
|
Branch: REL_16_STABLE [3a2617e4f] 2025-07-01 12:08:20 -0400
|
|
Branch: REL_15_STABLE [0fb496c70] 2025-07-01 12:08:57 -0400
|
|
Branch: REL_14_STABLE [71d71ac4d] 2025-07-01 12:08:57 -0400
|
|
Branch: REL_13_STABLE [d0a695cf4] 2025-07-01 12:08:58 -0400
|
|
-->
|
|
<para>
|
|
Make our code portable to GNU Hurd (Michael Banck, Christoph Berg,
|
|
Samuel Thibault)
|
|
<ulink url="&commit_baseurl;0991249d7">§</ulink>
|
|
<ulink url="&commit_baseurl;29c54ea7b">§</ulink>
|
|
</para>
|
|
|
|
<para>
|
|
Fix assumptions about <literal>IOV_MAX</literal>
|
|
and <literal>O_RDONLY</literal> that don't hold on Hurd.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
Branch: master Release: REL_18_BR [12eee85e5] 2025-05-18 12:45:55 -0400
|
|
Branch: REL_17_STABLE [5355a2400] 2025-05-18 12:45:55 -0400
|
|
Branch: REL_16_STABLE [253cf661c] 2025-05-18 12:45:55 -0400
|
|
Branch: REL_16_STABLE [4b53cb493] 2025-05-20 10:55:05 -0400
|
|
Branch: REL_15_STABLE [00652b3c9] 2025-05-18 12:45:55 -0400
|
|
Branch: REL_14_STABLE [a1e0e7076] 2025-05-18 12:45:55 -0400
|
|
Branch: REL_13_STABLE [9bc2d37cc] 2025-05-18 12:45:55 -0400
|
|
-->
|
|
<para>
|
|
Make our usage of <function>memset_s()</function> conform strictly
|
|
to the C11 standard (Tom Lane)
|
|
<ulink url="&commit_baseurl;5355a2400">§</ulink>
|
|
</para>
|
|
|
|
<para>
|
|
This avoids compile failures on some platforms.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Peter Eisentraut <peter@eisentraut.org>
|
|
Branch: master Release: REL_18_BR [2c0d8b950] 2025-06-22 14:13:46 +0200
|
|
Branch: REL_17_STABLE [2499c3490] 2025-06-22 14:15:35 +0200
|
|
Branch: REL_16_STABLE [629cc1623] 2025-06-22 14:15:40 +0200
|
|
-->
|
|
<para>
|
|
Silence compatibility warning when using Meson to build with MSVC
|
|
(Peter Eisentraut)
|
|
<ulink url="&commit_baseurl;2499c3490">§</ulink>
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
Branch: master [aad1617b7] 2025-07-15 18:11:18 -0400
|
|
Branch: REL_18_STABLE [0b6dfce0c] 2025-07-15 18:11:18 -0400
|
|
Branch: REL_17_STABLE [5a2139a90] 2025-07-15 18:11:18 -0400
|
|
Branch: REL_16_STABLE [5db55e13f] 2025-07-15 18:11:18 -0400
|
|
Branch: REL_15_STABLE [f32e45641] 2025-07-15 18:11:18 -0400
|
|
Branch: REL_14_STABLE [8254b7e33] 2025-07-15 18:11:18 -0400
|
|
Branch: REL_13_STABLE [6c93bf735] 2025-07-15 18:11:18 -0400
|
|
-->
|
|
<para>
|
|
Prevent uninitialized-value compiler warnings in JSONB comparison
|
|
code (Tom Lane)
|
|
<ulink url="&commit_baseurl;5a2139a90">§</ulink>
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Michael Paquier <michael@paquier.xyz>
|
|
Branch: master [8aa54aa7e] 2025-07-07 08:53:57 +0900
|
|
Branch: REL_18_STABLE [8d1071e7d] 2025-07-07 08:54:30 +0900
|
|
Branch: REL_17_STABLE [c911e7802] 2025-07-07 08:54:37 +0900
|
|
Branch: REL_16_STABLE [d24a96ce2] 2025-07-07 08:54:39 +0900
|
|
Branch: REL_15_STABLE [75c1eb60b] 2025-07-07 08:54:41 +0900
|
|
Branch: REL_14_STABLE [ac166b19a] 2025-07-07 08:54:43 +0900
|
|
Branch: REL_13_STABLE [e688cfc2b] 2025-07-07 08:54:44 +0900
|
|
-->
|
|
<para>
|
|
Avoid deprecation warnings when building
|
|
with <application>libxml2</application> 2.14 and later
|
|
(Michael Paquier)
|
|
<ulink url="&commit_baseurl;c911e7802">§</ulink>
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: John Naylor <john.naylor@postgresql.org>
|
|
Branch: master [ed26c4e25] 2025-07-09 14:20:22 +0700
|
|
Branch: master [90bfae9f9] 2025-08-07 17:10:52 +0700
|
|
Branch: REL_18_STABLE [dd2926207] 2025-08-07 17:12:44 +0700
|
|
Branch: REL_17_STABLE [21ae8fc5f] 2025-08-07 17:13:55 +0700
|
|
Branch: REL_16_STABLE [aae9aad19] 2025-08-07 17:14:39 +0700
|
|
Branch: REL_15_STABLE [baacfb9e6] 2025-08-07 17:15:09 +0700
|
|
Branch: REL_14_STABLE [a4f891b96] 2025-08-07 17:16:00 +0700
|
|
Branch: REL_13_STABLE [9560c1ec1] 2025-08-07 17:16:33 +0700
|
|
-->
|
|
<para>
|
|
Avoid problems when compiling <filename>pg_locale.h</filename> under
|
|
C++ (John Naylor)
|
|
<ulink url="&commit_baseurl;21ae8fc5f">§</ulink>
|
|
</para>
|
|
|
|
<para>
|
|
<productname>PostgreSQL</productname> header files generally need to
|
|
be wrapped in <literal>extern "C" { ... }</literal> in order to be
|
|
included in extensions written in C++. This failed
|
|
for <filename>pg_locale.h</filename> because of its use
|
|
of <application>libicu</application> headers, but we can work around
|
|
that by suppressing C++-only declarations in those headers. C++
|
|
extensions that want to use <application>libicu</application>'s C++
|
|
APIs can do so by including the <application>libicu</application>
|
|
headers ahead of <filename>pg_locale.h</filename>.
|
|
</para>
|
|
</listitem>
|
|
|
|
</itemizedlist>
|
|
|
|
</sect2>
|
|
</sect1>
|
|
|
|
<sect1 id="release-17-5">
|
|
<title>Release 17.5</title>
|
|
|
|
<formalpara>
|
|
<title>Release date:</title>
|
|
<para>2025-05-08</para>
|
|
</formalpara>
|
|
|
|
<para>
|
|
This release contains a variety of fixes from 17.4.
|
|
For information about new features in major release 17, see
|
|
<xref linkend="release-17"/>.
|
|
</para>
|
|
|
|
<sect2 id="release-17-5-migration">
|
|
<title>Migration to Version 17.5</title>
|
|
|
|
<para>
|
|
A dump/restore is not required for those running 17.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 17.1,
|
|
see <xref linkend="release-17-1"/>.
|
|
</para>
|
|
</sect2>
|
|
|
|
<sect2 id="release-17-5-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;ec5f89e8a">§</ulink>
|
|
<ulink url="&commit_baseurl;617d34908">§</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;f51ae3187">§</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;cb0ad70b8">§</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;ca0830e5a">§</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;25303678a">§</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;3c39c000c">§</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;5e7be43f4">§</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: Amit Langote <amitlan@postgresql.org>
|
|
Branch: master [d4f79865d] 2025-03-13 09:56:36 +0900
|
|
Branch: REL_17_STABLE [8b2392ae3] 2025-03-13 09:56:49 +0900
|
|
-->
|
|
<para>
|
|
Fix misprocessing of casts within the keys of JSON constructor
|
|
expressions (Amit Langote)
|
|
<ulink url="&commit_baseurl;8b2392ae3">§</ulink>
|
|
</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;43847dd5e">§</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;c826cd1b1">§</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;99c01aadf">§</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;d6dd2a02b">§</ulink>
|
|
<ulink url="&commit_baseurl;0941aadcd">§</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;5e6e97fbf">§</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;4e026be5f">§</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;d0a049987">§</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;2e0f93d7c">§</ulink>
|
|
<ulink url="&commit_baseurl;310907aaf">§</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;065ce49a1">§</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: Richard Guo <rguo@postgresql.org>
|
|
Branch: master [716a051aa] 2025-03-04 16:11:03 +0900
|
|
Branch: REL_17_STABLE [bc5a08af3] 2025-03-04 16:17:19 +0900
|
|
-->
|
|
<para>
|
|
Fix erroneous deductions from column <literal>NOT NULL</literal>
|
|
constraints in the presence of outer joins (Richard Guo)
|
|
<ulink url="&commit_baseurl;bc5a08af3">§</ulink>
|
|
</para>
|
|
|
|
<para>
|
|
In some cases the planner would discard an <literal>IS NOT
|
|
NULL</literal> query condition, even though the condition applies
|
|
after an outer join and thus is not redundant.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Bruce Momjian <bruce@momjian.us>
|
|
Branch: master [46b4ba533] 2025-04-07 21:33:42 -0400
|
|
Branch: REL_17_STABLE [b8b1e87b7] 2025-04-07 21:33:41 -0400
|
|
-->
|
|
<para>
|
|
Avoid incorrect optimizations based on <literal>IS [NOT]
|
|
NULL</literal> tests that are applied to composite values
|
|
(Bruce Momjian)
|
|
<ulink url="&commit_baseurl;b8b1e87b7">§</ulink>
|
|
</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;5672a8399">§</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: Tomas Vondra <tomas.vondra@postgresql.org>
|
|
Branch: master [9ba7bcc89] 2025-02-19 23:53:37 +0100
|
|
Branch: REL_17_STABLE [587b6aa3f] 2025-02-19 23:54:18 +0100
|
|
-->
|
|
<para>
|
|
Fix incorrect table size estimate with low fill factor (Tomas Vondra)
|
|
<ulink url="&commit_baseurl;587b6aa3f">§</ulink>
|
|
</para>
|
|
|
|
<para>
|
|
When the planner estimates the number of rows in a
|
|
never-yet-analyzed table, it uses the table's fillfactor setting in
|
|
the estimation, but it neglected to clamp the result to at least one
|
|
row per page. A low fillfactor could thus result in an unreasonably
|
|
small estimate.
|
|
</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;78cb2466f">§</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;9094eb25b">§</ulink>
|
|
<ulink url="&commit_baseurl;8c153fcfa">§</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;ade976f8b">§</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;e731e9d5e">§</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;5cbbe70a9">§</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;3339847cc">§</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: Thomas Munro <tmunro@postgresql.org>
|
|
Branch: master [75da2bece] 2025-03-13 15:43:34 +1300
|
|
Branch: REL_17_STABLE [e27346807] 2025-03-13 15:48:02 +1300
|
|
-->
|
|
<para>
|
|
Cope with possible intra-query changes
|
|
of <varname>io_combine_limit</varname> (Thomas Munro)
|
|
<ulink url="&commit_baseurl;e27346807">§</ulink>
|
|
</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;34fbfe1f5">§</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;717e8a1e5">§</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;d69c78108">§</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;8afec4ef6">§</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;7edd2cbc5">§</ulink>
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Richard Guo <rguo@postgresql.org>
|
|
Branch: master [c39392eba] 2025-02-19 10:02:32 +0900
|
|
Branch: REL_17_STABLE [727bc6ac3] 2025-02-19 10:04:44 +0900
|
|
-->
|
|
<para>
|
|
Fix over-enthusiastic freeing of SpecialJoinInfo structs during
|
|
planning (Richard Guo)
|
|
<ulink url="&commit_baseurl;727bc6ac3">§</ulink>
|
|
</para>
|
|
|
|
<para>
|
|
This led to crashes during planning if partitionwise joining is
|
|
enabled.
|
|
</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;a4309e85f">§</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;174952ece">§</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;36148b22e">§</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;cadaf0ac4">§</ulink>
|
|
<ulink url="&commit_baseurl;d96206f25">§</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;05676d87e">§</ulink>
|
|
</para>
|
|
|
|
<para>
|
|
This mistake could allow duplicate data to be applied.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
Branch: master [9ff68679b] 2025-02-19 16:35:15 -0500
|
|
Branch: REL_17_STABLE [788baa9a2] 2025-02-19 16:35:15 -0500
|
|
-->
|
|
<para>
|
|
Fix crash in logical replication if the subscriber's partitioned
|
|
table has a BRIN index (Tom Lane)
|
|
<ulink url="&commit_baseurl;788baa9a2">§</ulink>
|
|
</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;c1dd3a944">§</ulink>
|
|
<ulink url="&commit_baseurl;f1ef111a0">§</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;0ae1245e0">§</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;29cce279b">§</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: Andres Freund <andres@anarazel.de>
|
|
Branch: master [499faf906] 2025-03-18 14:04:44 -0400
|
|
Branch: REL_17_STABLE [ee578921b] 2025-03-18 13:44:10 -0400
|
|
-->
|
|
<para>
|
|
Fix order of operations in <function>smgropen()</function>
|
|
(Andres Freund)
|
|
<ulink url="&commit_baseurl;ee578921b">§</ulink>
|
|
</para>
|
|
|
|
<para>
|
|
Ensure that the SMgrRelation object is fully initialized before
|
|
calling the smgr_open callback, so that it can be cleaned up
|
|
properly if the callback fails.
|
|
</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;4b6331e0f">§</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;6526d0794">§</ulink>
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Masahiko Sawada <msawada@postgresql.org>
|
|
Branch: master [f4290f20d] 2025-03-18 16:37:02 -0700
|
|
Branch: REL_17_STABLE [a38dce3c4] 2025-03-18 16:36:59 -0700
|
|
-->
|
|
<para>
|
|
Avoid assertion failure in parallel vacuum
|
|
when <varname>maintenance_work_mem</varname> has a very small value
|
|
(Masahiko Sawada)
|
|
<ulink url="&commit_baseurl;a38dce3c4">§</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;302ce5bd9">§</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;1353b1161">§</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;3424c1075">§</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;16eff4261">§</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;ee78823ff">§</ulink>
|
|
<ulink url="&commit_baseurl;0851b6573">§</ulink>
|
|
<ulink url="&commit_baseurl;f903d4da9">§</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: Alexander Korotkov <akorotkov@postgresql.org>
|
|
Branch: master [682c5be25] 2025-03-16 13:29:15 +0200
|
|
Branch: REL_17_STABLE [09ef2f8df] 2025-03-16 13:29:20 +0200
|
|
-->
|
|
<para>
|
|
Fix <application>reindexdb</application>'s scheduling of parallel
|
|
reindex operations (Alexander Korotkov)
|
|
<ulink url="&commit_baseurl;09ef2f8df">§</ulink>
|
|
</para>
|
|
|
|
<para>
|
|
The original coding failed to achieve the expected amount of
|
|
parallelism.
|
|
</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;ecb8e5641">§</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;51d038da8">§</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: Alexander Korotkov <akorotkov@postgresql.org>
|
|
Branch: master [023fb5127] 2025-03-25 05:49:47 +0200
|
|
Branch: REL_17_STABLE [729fe699e] 2025-03-25 05:50:39 +0200
|
|
-->
|
|
<para>
|
|
In <filename>contrib/postgres_fdw</filename>, avoid pulling up
|
|
restriction conditions from subqueries (Alexander Pyhalov)
|
|
<ulink url="&commit_baseurl;729fe699e">§</ulink>
|
|
</para>
|
|
|
|
<para>
|
|
This fix prevents rare cases of <quote>unexpected expression in
|
|
subquery output</quote> errors.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
Branch: master [cb36f8ec2] 2025-03-25 20:03:56 -0400
|
|
Branch: REL_17_STABLE [f186f90e5] 2025-03-25 20:03:56 -0400
|
|
-->
|
|
<para>
|
|
Fix build failure when an old version
|
|
of <filename>libpq_fe.h</filename> is present in system include
|
|
directories (Tom Lane)
|
|
<ulink url="&commit_baseurl;f186f90e5">§</ulink>
|
|
</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;915e88968">§</ulink>
|
|
</para>
|
|
|
|
<para>
|
|
This macOS update broke our configuration probe
|
|
for <function>strchrnul()</function>.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Thomas Munro <tmunro@postgresql.org>
|
|
Branch: master [2a8a00674] 2025-02-15 13:14:03 +1300
|
|
Branch: master [2509b857c] 2025-02-18 14:44:59 +1300
|
|
Branch: REL_17_STABLE [57dca6faa] 2025-02-21 15:16:37 +1300
|
|
-->
|
|
<para>
|
|
Fix valgrind labeling of per-buffer data of read streams
|
|
(Thomas Munro)
|
|
<ulink url="&commit_baseurl;57dca6faa">§</ulink>
|
|
</para>
|
|
|
|
<para>
|
|
This affects no core code in released versions
|
|
of <productname>PostgreSQL</productname>, but an extension using the
|
|
per-buffer data feature might have encountered spurious failures
|
|
when being tested under valgrind.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: John Naylor <john.naylor@postgresql.org>
|
|
Branch: master [0600d276d] 2025-02-24 18:03:29 +0700
|
|
Branch: REL_17_STABLE [fde7c0164] 2025-02-24 18:03:48 +0700
|
|
-->
|
|
<para>
|
|
Avoid valgrind complaints about string hashing code (John Naylor)
|
|
<ulink url="&commit_baseurl;fde7c0164">§</ulink>
|
|
</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;5d5970b9f">§</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-17-4">
|
|
<title>Release 17.4</title>
|
|
|
|
<formalpara>
|
|
<title>Release date:</title>
|
|
<para>2025-02-20</para>
|
|
</formalpara>
|
|
|
|
<para>
|
|
This release contains a few fixes from 17.3.
|
|
For information about new features in major release 17, see
|
|
<xref linkend="release-17"/>.
|
|
</para>
|
|
|
|
<sect2 id="release-17-4-migration">
|
|
<title>Migration to Version 17.4</title>
|
|
|
|
<para>
|
|
A dump/restore is not required for those running 17.X.
|
|
</para>
|
|
|
|
<para>
|
|
However, if you are upgrading from a version earlier than 17.1,
|
|
see <xref linkend="release-17-1"/>.
|
|
</para>
|
|
</sect2>
|
|
|
|
<sect2 id="release-17-4-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;a92db3d02">§</ulink>
|
|
<ulink url="&commit_baseurl;3abe6e04c">§</ulink>
|
|
<ulink url="&commit_baseurl;3977bd298">§</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: Michael Paquier <michael@paquier.xyz>
|
|
Branch: master [5b94e2753] 2025-02-12 17:11:43 +0900
|
|
Branch: REL_17_STABLE [ff6d9cfcb] 2025-02-12 17:11:47 +0900
|
|
-->
|
|
<para>
|
|
Fix small memory leak
|
|
in <application>pg_createsubscriber</application> (Ranier Vilela)
|
|
<ulink url="&commit_baseurl;ff6d9cfcb">§</ulink>
|
|
</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;c9a1d2135">§</ulink>
|
|
</para>
|
|
</listitem>
|
|
|
|
</itemizedlist>
|
|
|
|
</sect2>
|
|
</sect1>
|
|
|
|
<sect1 id="release-17-3">
|
|
<title>Release 17.3</title>
|
|
|
|
<formalpara>
|
|
<title>Release date:</title>
|
|
<para>2025-02-13</para>
|
|
</formalpara>
|
|
|
|
<para>
|
|
This release contains a variety of fixes from 17.2.
|
|
For information about new features in major release 17, see
|
|
<xref linkend="release-17"/>.
|
|
</para>
|
|
|
|
<sect2 id="release-17-3-migration">
|
|
<title>Migration to Version 17.3</title>
|
|
|
|
<para>
|
|
A dump/restore is not required for those running 17.X.
|
|
</para>
|
|
|
|
<para>
|
|
However, if you are upgrading from a version earlier than 17.1,
|
|
see <xref linkend="release-17-1"/>.
|
|
</para>
|
|
</sect2>
|
|
|
|
<sect2 id="release-17-3-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;43a77239d">§</ulink>
|
|
<ulink url="&commit_baseurl;7d43ca6fe">§</ulink>
|
|
<ulink url="&commit_baseurl;61ad93cdd">§</ulink>
|
|
<ulink url="&commit_baseurl;02d4d87ac">§</ulink>
|
|
<ulink url="&commit_baseurl;05abb0f83">§</ulink>
|
|
<ulink url="&commit_baseurl;85c1fcc65">§</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: Nathan Bossart <nathan@postgresql.org>
|
|
Branch: master [a0ff56e2d] 2024-12-12 15:52:04 -0600
|
|
Branch: REL_17_STABLE [d09fbf645] 2024-12-12 15:52:04 -0600
|
|
-->
|
|
<para>
|
|
Restore auto-truncation of database and user names appearing in
|
|
connection requests (Nathan Bossart)
|
|
<ulink url="&commit_baseurl;d09fbf645">§</ulink>
|
|
</para>
|
|
|
|
<para>
|
|
This reverts a v17 change that proved to cause trouble for some
|
|
users. Over-length names should be truncated in an encoding-aware
|
|
fashion, but for now just return to the former behavior of blind
|
|
truncation at <literal>NAMEDATALEN-1</literal> bytes.
|
|
</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;15b4c46c3">§</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: Álvaro Herrera <alvherre@alvh.no-ip.org>
|
|
Branch: master [1e5ef3a2a] 2024-12-03 15:50:03 +0100
|
|
Branch: REL_17_STABLE [5ffbbcfa1] 2024-12-03 15:50:03 +0100
|
|
-->
|
|
<para>
|
|
Drop <quote>Lock</quote> suffix from LWLock wait event names
|
|
(Bertrand Drouvot)
|
|
<ulink url="&commit_baseurl;5ffbbcfa1">§</ulink>
|
|
</para>
|
|
|
|
<para>
|
|
Refactoring unintentionally caused
|
|
the <structname>pg_stat_activity</structname> view to show
|
|
lock-related wait event names with a <quote>Lock</quote> suffix,
|
|
which among other things broke joining it
|
|
to <structname>pg_wait_events</structname>.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Peter Geoghegan <pg@bowt.ie>
|
|
Branch: master [31b0a8f04] 2024-12-19 11:08:55 -0500
|
|
Branch: REL_17_STABLE [9e85b20da] 2024-12-19 11:08:53 -0500
|
|
-->
|
|
<para>
|
|
Fix possible failure to return all matching tuples for a btree index
|
|
scan with a ScalarArrayOp (<literal>= ANY</literal>) condition
|
|
(Peter Geoghegan)
|
|
<ulink url="&commit_baseurl;9e85b20da">§</ulink>
|
|
</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;9d5ce4f1a">§</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;7cfdb4d1e">§</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;96e61b279">§</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;1587f7b9f">§</ulink>
|
|
<ulink url="&commit_baseurl;f4af4515b">§</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;0350b876b">§</ulink>
|
|
<ulink url="&commit_baseurl;66aaabe7a">§</ulink>
|
|
<ulink url="&commit_baseurl;45aef9f6b">§</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;d4ffbf47b">§</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;fa6131377">§</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;2b72fed2d">§</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;2f30847d1">§</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: Álvaro Herrera <alvherre@alvh.no-ip.org>
|
|
Branch: master [09d09d429] 2024-11-27 13:50:27 +0100
|
|
Branch: REL_17_STABLE [6e793582b] 2024-11-27 13:50:27 +0100
|
|
-->
|
|
<para>
|
|
Fix <function>pg_get_constraintdef</function>'s support
|
|
for <literal>NOT NULL</literal> constraints on domains
|
|
(Álvaro Herrera)
|
|
<ulink url="&commit_baseurl;6e793582b">§</ulink>
|
|
</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;765f76d8c">§</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 [a93e2a1e2] 2025-01-12 13:35:12 +0000
|
|
Branch: REL_17_STABLE [d037cc2af] 2025-01-12 13:36:44 +0000
|
|
-->
|
|
<para>
|
|
When deparsing a <literal>PASSING</literal> clause in a SQL/JSON
|
|
query function, ensure that variable names are double-quoted when
|
|
necessary (Dean Rasheed)
|
|
<ulink url="&commit_baseurl;d037cc2af">§</ulink>
|
|
</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;61b12135f">§</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;8ed9bf0a3">§</ulink>
|
|
<ulink url="&commit_baseurl;dc24c9ad5">§</ulink>
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: David Rowley <drowley@postgresql.org>
|
|
Branch: master [231006451] 2025-01-10 14:30:25 +1300
|
|
Branch: REL_17_STABLE [5db9367e5] 2025-01-10 14:31:31 +1300
|
|
-->
|
|
<para>
|
|
Fix planning of pre-sorted <literal>UNION</literal> operations for
|
|
cases where the input column datatypes don't all match (David
|
|
Rowley)
|
|
<ulink url="&commit_baseurl;5db9367e5">§</ulink>
|
|
</para>
|
|
|
|
<para>
|
|
This error could lead to sorting data with the wrong sort operator,
|
|
with consequences ranging from no visible problem to core dumps.
|
|
</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;c1ebef3c1">§</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;72822a99d">§</ulink>
|
|
<ulink url="&commit_baseurl;78883cd90">§</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;297b280ab">§</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;0671a71e0">§</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: Tom Lane <tgl@sss.pgh.pa.us>
|
|
Branch: master [2bdf1b2a2] 2024-12-28 12:30:42 -0500
|
|
Branch: REL_17_STABLE [14141bbbc] 2024-12-28 12:30:42 -0500
|
|
-->
|
|
<para>
|
|
Give the slotsync worker process its own process slot (Tom Lane, Hou
|
|
Zhijie)
|
|
<ulink url="&commit_baseurl;14141bbbc">§</ulink>
|
|
</para>
|
|
|
|
<para>
|
|
This was overlooked in the addition of the slotsync worker, with the
|
|
result that its process slot effectively came out of the pool meant
|
|
for regular backend processes. This could result in failure to
|
|
launch the worker, or to subsequent failures of connection requests
|
|
that should have succeeded according to the configured settings,
|
|
if the number of regular backend processes
|
|
approached <varname>max_connections</varname>.
|
|
</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;18452b70a">§</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;e027ee990">§</ulink>
|
|
</para>
|
|
|
|
<para>
|
|
Since the result is only used for statistical purposes, the effects
|
|
of this error were mostly cosmetic.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Álvaro Herrera <alvherre@alvh.no-ip.org>
|
|
Branch: master [69ab44651] 2025-01-09 07:39:05 +0100
|
|
Branch: REL_17_STABLE [ffd9b8134] 2025-01-09 07:44:30 +0100
|
|
-->
|
|
<para>
|
|
Correct miscalculation of SLRU bank numbers (Yura Sokolov)
|
|
<ulink url="&commit_baseurl;ffd9b8134">§</ulink>
|
|
</para>
|
|
|
|
<para>
|
|
This error led to using a smaller number of banks than intended,
|
|
causing more contention but no functional misbehavior.
|
|
</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;44f400fbc">§</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;e6767c0ed">§</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;4bd9de3f4">§</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;ec7b89cc5">§</ulink>
|
|
<ulink url="&commit_baseurl;5b44a317a">§</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;836435424">§</ulink>
|
|
<ulink url="&commit_baseurl;bbe68c13a">§</ulink>
|
|
<ulink url="&commit_baseurl;afe9b0d9f">§</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;9add1bbfa">§</ulink>
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Álvaro Herrera <alvherre@alvh.no-ip.org>
|
|
Branch: master [3c5f9f12c] 2024-12-03 17:50:57 +0100
|
|
Branch: REL_17_STABLE [9abdc1841] 2024-12-03 17:50:57 +0100
|
|
-->
|
|
<para>
|
|
Avoid crash when a background process tries to check a new value
|
|
of <varname>synchronized_standby_slots</varname> (Álvaro Herrera)
|
|
<ulink url="&commit_baseurl;9abdc1841">§</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;1e25cdb21">§</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;718af10da">§</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: John Naylor <john.naylor@postgresql.org>
|
|
Branch: master [ccc8194e4] 2024-12-04 16:58:25 +0700
|
|
Branch: REL_17_STABLE [83ce20d67] 2024-12-04 16:59:12 +0700
|
|
-->
|
|
<para>
|
|
Avoid potential use-after-free in parallel vacuum (Vallimaharajan G,
|
|
John Naylor)
|
|
<ulink url="&commit_baseurl;83ce20d67">§</ulink>
|
|
</para>
|
|
|
|
<para>
|
|
This bug seems to have no consequences in standard builds, but it's
|
|
theoretically a hazard.
|
|
</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;8a9a51518">§</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;7b8d45d27">§</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;fea81aee8">§</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;556f7b7bc">§</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;dc5f90541">§</ulink>
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: John Naylor <john.naylor@postgresql.org>
|
|
Branch: master [235328ee4] 2025-01-29 13:35:43 +0700
|
|
Branch: REL_17_STABLE [6555fe197] 2025-01-29 13:55:43 +0700
|
|
-->
|
|
<para>
|
|
Avoid valgrind complaints about string hashing code (John Naylor)
|
|
<ulink url="&commit_baseurl;6555fe197">§</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;97be02ad0">§</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;6e41e9e5e">§</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: Heikki Linnakangas <heikki.linnakangas@iki.fi>
|
|
Branch: master [ee937f040] 2024-11-22 16:28:24 +0200
|
|
Branch: REL_17_STABLE [969583553] 2024-11-22 16:29:22 +0200
|
|
-->
|
|
<para>
|
|
Avoid data loss when starting a bulk write on a relation fork that
|
|
already contains data (Matthias van de Meent)
|
|
<ulink url="&commit_baseurl;969583553">§</ulink>
|
|
</para>
|
|
|
|
<para>
|
|
Any pre-existing data was overwritten with zeroes. This is not an
|
|
issue for core <productname>PostgreSQL</productname>, which never
|
|
does that. Some extensions would like to, however.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Masahiko Sawada <msawada@postgresql.org>
|
|
Branch: REL_17_STABLE [9af2b3435] 2025-02-06 11:35:51 -0800
|
|
-->
|
|
<para>
|
|
Avoid crash if a server process tried to iterate over a shared radix
|
|
tree that it didn't create (Masahiko Sawada)
|
|
<ulink url="&commit_baseurl;9af2b3435">§</ulink>
|
|
</para>
|
|
|
|
<para>
|
|
There is no code in core <productname>PostgreSQL</productname> that
|
|
does this, but an extension might wish to.
|
|
</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;e98df02df">§</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;f979197eb">§</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;a963abd54">§</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;ba2dbedd5">§</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;0b713b94b">§</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: Peter Eisentraut <peter@eisentraut.org>
|
|
Branch: master [25ec329af] 2024-11-28 09:14:41 +0100
|
|
Branch: REL_17_STABLE [4527b9e26] 2024-11-28 12:09:53 +0100
|
|
-->
|
|
<para>
|
|
Add <application>psql</application> tab completion for <literal>COPY
|
|
(MERGE INTO)</literal> (Jian He)
|
|
<ulink url="&commit_baseurl;4527b9e26">§</ulink>
|
|
</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;a0dfeae0d">§</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;ff9dc96f3">§</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;adb103fca">§</ulink>
|
|
<ulink url="&commit_baseurl;e35d396ec">§</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;1b8a9533f">§</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;ad950ea98">§</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;04b860198">§</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;faee3185a">§</ulink>
|
|
<ulink url="&commit_baseurl;af109e339">§</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;3652de36e">§</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: Tomas Vondra <tomas.vondra@postgresql.org>
|
|
Branch: master [957ba9ff1] 2024-12-17 17:48:55 +0100
|
|
Branch: REL_17_STABLE [3668c1d50] 2024-12-17 17:50:13 +0100
|
|
-->
|
|
<para>
|
|
Detect version mismatch
|
|
between <filename>contrib/pageinspect</filename>'s SQL declarations
|
|
and the underlying shared library (Tomas Vondra)
|
|
<ulink url="&commit_baseurl;3668c1d50">§</ulink>
|
|
</para>
|
|
|
|
<para>
|
|
Previously, such a mismatch could result in a crash while
|
|
calling <function>brin_page_items()</function>. Instead throw an
|
|
error recommending updating the extension.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
Branch: master [c431986de] 2024-12-23 15:14:30 -0500
|
|
Branch: REL_17_STABLE [89962bfef] 2024-12-23 15:14:30 -0500
|
|
-->
|
|
<para>
|
|
When trying to cancel a remote query
|
|
in <filename>contrib/postgres_fdw</filename>, re-issue the cancel
|
|
request a few times if it didn't seem to do anything (Tom Lane)
|
|
<ulink url="&commit_baseurl;89962bfef">§</ulink>
|
|
</para>
|
|
|
|
<para>
|
|
This fixes a race condition where we might try to cancel a just-sent
|
|
query before the remote server has started to process it, so that
|
|
the initial cancel request is ignored.
|
|
</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;e266a0ed6">§</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;0951d4ee4">§</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;c80acbc6f">§</ulink>
|
|
<ulink url="&commit_baseurl;d8b0c6411">§</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;7c655a04a">§</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;e00c1e249">§</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;24c5b73eb">§</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;e292ba333">§</ulink>
|
|
</para>
|
|
</listitem>
|
|
|
|
</itemizedlist>
|
|
|
|
</sect2>
|
|
</sect1>
|
|
|
|
<sect1 id="release-17-2">
|
|
<title>Release 17.2</title>
|
|
|
|
<formalpara>
|
|
<title>Release date:</title>
|
|
<para>2024-11-21</para>
|
|
</formalpara>
|
|
|
|
<para>
|
|
This release contains a few fixes from 17.1.
|
|
For information about new features in major release 17, see
|
|
<xref linkend="release-17"/>.
|
|
</para>
|
|
|
|
<sect2 id="release-17-2-migration">
|
|
<title>Migration to Version 17.2</title>
|
|
|
|
<para>
|
|
A dump/restore is not required for those running 17.X.
|
|
</para>
|
|
|
|
<para>
|
|
However, if you are upgrading from a version earlier than 17.1,
|
|
see <xref linkend="release-17-1"/>.
|
|
</para>
|
|
</sect2>
|
|
|
|
<sect2 id="release-17-2-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;6bfacd368">§</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;1c05004a8">§</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;568e78a65">§</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;cb844d66b">§</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;1d6a03ea4">§</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;7af6d1306">§</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;a6fa869cf">§</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;5f28e6ba7">§</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-17-1">
|
|
<title>Release 17.1</title>
|
|
|
|
<formalpara>
|
|
<title>Release date:</title>
|
|
<para>2024-11-14</para>
|
|
</formalpara>
|
|
|
|
<para>
|
|
This release contains a variety of fixes from 17.0.
|
|
For information about new features in major release 17, see
|
|
<xref linkend="release-17"/>.
|
|
</para>
|
|
|
|
<sect2 id="release-17-1-migration">
|
|
<title>Migration to Version 17.1</title>
|
|
|
|
<para>
|
|
A dump/restore is not required for those running 17.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, in the uncommon case that a
|
|
database's <varname>LC_CTYPE</varname> setting is <literal>C</literal>
|
|
while its <varname>LC_COLLATE</varname> setting is some other locale,
|
|
indexes on textual columns should be reindexed, as described in the
|
|
sixth changelog entry below.
|
|
</para>
|
|
</sect2>
|
|
|
|
<sect2 id="release-17-1-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;edcda9bb4">§</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;a5cc4c667">§</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;cd82afdda">§</ulink>
|
|
<ulink url="&commit_baseurl;f4f5d27d8">§</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;3ebcfa54d">§</ulink>
|
|
<ulink url="&commit_baseurl;4cd4f3b97">§</ulink>
|
|
<ulink url="&commit_baseurl;8d19f3fea">§</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;5914a22f6">§</ulink>
|
|
<ulink url="&commit_baseurl;936ab6de9">§</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)) +
|
|
CASE WHEN pg_catalog.pg_partition_root(conrelid) = confrelid THEN
|
|
(SELECT count(*) FROM pg_catalog.pg_partition_tree(confrelid)
|
|
WHERE level = 1)
|
|
ELSE 0 END);
|
|
</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: Jeff Davis <jdavis@postgresql.org>
|
|
Branch: REL_17_STABLE [8148e7124] 2024-11-06 14:44:35 -0800
|
|
-->
|
|
<para>
|
|
Fix test for <literal>C</literal> locale
|
|
when <varname>LC_COLLATE</varname> is different
|
|
from <varname>LC_CTYPE</varname> (Jeff Davis)
|
|
<ulink url="&commit_baseurl;8148e7124">§</ulink>
|
|
</para>
|
|
|
|
<para>
|
|
When using <literal>libc</literal> as the default collation
|
|
provider, the test to see if <literal>C</literal> locale is in use
|
|
for collation accidentally checked <varname>LC_CTYPE</varname>
|
|
not <varname>LC_COLLATE</varname>. This has no impact in the
|
|
typical case where those settings are the same, nor if both are
|
|
not <literal>C</literal> (nor its alias <literal>POSIX</literal>).
|
|
However, if <varname>LC_CTYPE</varname> is <literal>C</literal>
|
|
while <varname>LC_COLLATE</varname> is some other locale, wrong
|
|
query answers could ensue, and corruption of indexes on strings was
|
|
possible. Users of databases with such settings should reindex
|
|
affected indexes after installing this update.
|
|
The converse case with <varname>LC_COLLATE</varname>
|
|
being <literal>C</literal> while <varname>LC_CTYPE</varname> is some
|
|
other locale would cause performance degradation, but no actual
|
|
errors.
|
|
</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;a0cdfc889">§</ulink>
|
|
<ulink url="&commit_baseurl;b6484ca95">§</ulink>
|
|
</para>
|
|
|
|
<para>
|
|
Such plans could produce incorrect results.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Richard Guo <rguo@postgresql.org>
|
|
Branch: master [f00ab1fd1] 2024-11-08 11:21:11 +0900
|
|
Branch: REL_17_STABLE [78b1c553b] 2024-11-08 11:24:26 +0900
|
|
-->
|
|
<para>
|
|
Avoid planner failure after converting an <literal>IS NULL</literal>
|
|
test on a <literal>NOT NULL</literal> column to
|
|
constant <literal>FALSE</literal> (Richard Guo)
|
|
<ulink url="&commit_baseurl;78b1c553b">§</ulink>
|
|
</para>
|
|
|
|
<para>
|
|
This bug typically led to errors such as <quote>variable not found
|
|
in subplan target lists</quote>.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
Branch: master [5a4416192] 2024-10-09 17:07:53 -0400
|
|
Branch: REL_17_STABLE [a3c4a91f1] 2024-10-09 17:07:53 -0400
|
|
-->
|
|
<para>
|
|
Avoid possible planner crash while inlining a SQL function whose
|
|
arguments contain certain array-related constructs (Tom Lane, Nathan
|
|
Bossart)
|
|
<ulink url="&commit_baseurl;a3c4a91f1">§</ulink>
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Dean Rasheed <dean.a.rasheed@gmail.com>
|
|
Branch: master [dddb5640c] 2024-10-03 12:53:03 +0100
|
|
Branch: REL_17_STABLE [d7d297f84] 2024-10-03 12:50:38 +0100
|
|
Branch: master [259a0a99f] 2024-10-03 13:48:32 +0100
|
|
Branch: REL_17_STABLE [34ae54af9] 2024-10-03 13:45:37 +0100
|
|
-->
|
|
<para>
|
|
Fix possible wrong answers or <quote>wrong varnullingrels</quote>
|
|
planner errors for <literal>MERGE ... WHEN NOT MATCHED BY
|
|
SOURCE</literal> actions (Dean Rasheed)
|
|
<ulink url="&commit_baseurl;d7d297f84">§</ulink>
|
|
<ulink url="&commit_baseurl;34ae54af9">§</ulink>
|
|
</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;54889ea64">§</ulink>
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Peter Geoghegan <pg@bowt.ie>
|
|
Branch: master [763d65ae2] 2024-10-30 10:57:19 -0400
|
|
Branch: REL_17_STABLE [c177726ae] 2024-10-30 10:57:17 -0400
|
|
-->
|
|
<para>
|
|
Fix edge case in B-tree ScalarArrayOp index scans (Peter Geoghegan)
|
|
<ulink url="&commit_baseurl;c177726ae">§</ulink>
|
|
</para>
|
|
|
|
<para>
|
|
When a scrollable cursor with a plan of this kind was backed up to its
|
|
starting point and then run forward again, wrong answers were
|
|
possible.
|
|
</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;3685ad618">§</ulink>
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Michael Paquier <michael@paquier.xyz>
|
|
Branch: master [089aac631] 2024-10-17 08:44:50 +0900
|
|
Branch: REL_17_STABLE [c06a4746b] 2024-10-17 08:45:56 +0900
|
|
-->
|
|
<para>
|
|
Fix validation
|
|
of <command>COPY</command>'s <literal>FORCE_NOT_NULL</literal>
|
|
and <literal>FORCE_NULL</literal> options (Joel Jacobson)
|
|
<ulink url="&commit_baseurl;c06a4746b">§</ulink>
|
|
</para>
|
|
|
|
<para>
|
|
Some incorrect usages are now rejected as they should be.
|
|
</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;7148cb3e3">§</ulink>
|
|
</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;4ac5d33a8">§</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: Jeff Davis <jdavis@postgresql.org>
|
|
Branch: master [a9ed7d944] 2024-10-07 17:51:14 -0700
|
|
Branch: REL_17_STABLE [2fe4167bc] 2024-10-07 17:54:19 -0700
|
|
-->
|
|
<para>
|
|
Avoid crash when <command>ALTER DATABASE SET</command> is used to
|
|
set a server parameter that requires search-path-based lookup, such
|
|
as <varname>default_text_search_config</varname> (Jeff Davis)
|
|
<ulink url="&commit_baseurl;2fe4167bc">§</ulink>
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
Branch: master [68dfecbef] 2024-10-05 14:46:44 -0400
|
|
Branch: REL_17_STABLE [fee8cb947] 2024-10-05 14:46:44 -0400
|
|
-->
|
|
<para>
|
|
Avoid repeated lookups of opclasses and collations while creating a
|
|
new index on a partitioned table (Tom Lane)
|
|
<ulink url="&commit_baseurl;fee8cb947">§</ulink>
|
|
</para>
|
|
|
|
<para>
|
|
This was problematic mainly because some of the lookups would be
|
|
done with a restricted <varname>search_path</varname>, leading to
|
|
unexpected failures if the <command>CREATE INDEX</command> command
|
|
referenced objects outside <literal>pg_catalog</literal>.
|
|
</para>
|
|
|
|
<para>
|
|
This fix also prevents comments on the parent partitioned index from
|
|
being copied to child indexes.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Michael Paquier <michael@paquier.xyz>
|
|
Branch: master [49a23441c] 2024-10-29 08:41:33 +0900
|
|
Branch: REL_17_STABLE [bb584e831] 2024-10-29 08:41:53 +0900
|
|
-->
|
|
<para>
|
|
Add missing dependency from a partitioned table to a non-built-in
|
|
access method specified in <literal>CREATE TABLE ... USING</literal>
|
|
(Michael Paquier)
|
|
<ulink url="&commit_baseurl;bb584e831">§</ulink>
|
|
</para>
|
|
|
|
<para>
|
|
Dropping the access method should be blocked when a table exists
|
|
that depends on it, but it was not, allowing subsequent odd
|
|
behavior. Note that this fix only prevents problems for partitioned
|
|
tables created after this update.
|
|
</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;9c7acc333">§</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;234f6d09e">§</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;f250cb29d">§</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;1532599a8">§</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;fd27b878c">§</ulink>
|
|
<ulink url="&commit_baseurl;3b7a689e1">§</ulink>
|
|
<ulink url="&commit_baseurl;da99df15c">§</ulink>
|
|
<ulink url="&commit_baseurl;e11907682">§</ulink>
|
|
<ulink url="&commit_baseurl;9aef6f19a">§</ulink>
|
|
<ulink url="&commit_baseurl;0bcb9d079">§</ulink>
|
|
<ulink url="&commit_baseurl;54bc22fbf">§</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;a4668c99f">§</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;2370582ab">§</ulink>
|
|
<ulink url="&commit_baseurl;943b65358">§</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: 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;3daeb539a">§</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: 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;918107759">§</ulink>
|
|
<ulink url="&commit_baseurl;c4b8a916f">§</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;eef9cc4dc">§</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: 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;b5eef7539">§</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 [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;c7a201053">§</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: 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;2c37cb26f">§</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: Tom Lane <tgl@sss.pgh.pa.us>
|
|
Branch: master [1591b38d1] 2024-09-24 17:21:38 -0400
|
|
Branch: REL_17_STABLE [923a71584] 2024-09-24 17:21:38 -0400
|
|
-->
|
|
<para>
|
|
Fix <application>psql</application>'s describe commands to again
|
|
work with pre-9.4 servers (Tom Lane)
|
|
<ulink url="&commit_baseurl;923a71584">§</ulink>
|
|
</para>
|
|
|
|
<para>
|
|
Commands involving display of an ACL (permissions) column failed
|
|
with very old <productname>PostgreSQL</productname> servers, due to
|
|
use of a function not present in those versions.
|
|
</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;8a6170860">§</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 [b1008c1f0] 2024-11-04 14:36:11 -0500
|
|
Branch: REL_17_STABLE [e2a912909] 2024-11-04 14:36:04 -0500
|
|
-->
|
|
<para>
|
|
Fix failure to find replication password
|
|
in <filename>~/.pgpass</filename> (Tom Lane)
|
|
<ulink url="&commit_baseurl;e2a912909">§</ulink>
|
|
</para>
|
|
|
|
<para>
|
|
<application>pg_basebackup</application>
|
|
and <application>pg_receivewal</application> failed to match an entry
|
|
in <filename>~/.pgpass</filename> that
|
|
had <literal>replication</literal> in the database name field, if
|
|
no <option>-d</option> or <option>--dbname</option> switch was
|
|
supplied. This resulted in an unexpected prompt for password.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Robert Haas <rhaas@postgresql.org>
|
|
Branch: master [0b1765d95] 2024-11-04 10:11:05 -0500
|
|
Branch: REL_17_STABLE [e36711442] 2024-11-04 10:19:37 -0500
|
|
-->
|
|
<para>
|
|
In <application>pg_combinebackup</application>, throw an error if an
|
|
incremental backup file is present in a directory that is supposed to
|
|
contain a full backup (Robert Haas)
|
|
<ulink url="&commit_baseurl;e36711442">§</ulink>
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Robert Haas <rhaas@postgresql.org>
|
|
Branch: master [6c24801b1] 2024-11-04 09:55:02 -0500
|
|
Branch: REL_17_STABLE [0d635b615] 2024-11-04 10:04:26 -0500
|
|
-->
|
|
<para>
|
|
In <application>pg_combinebackup</application>, don't construct
|
|
filenames containing double slashes (Robert Haas)
|
|
<ulink url="&commit_baseurl;0d635b615">§</ulink>
|
|
</para>
|
|
|
|
<para>
|
|
This caused no functional problems, but the duplicate slashes were
|
|
visible in error messages, which could create confusion.
|
|
</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;85cb21df6">§</ulink>
|
|
<ulink url="&commit_baseurl;77f154681">§</ulink>
|
|
<ulink url="&commit_baseurl;5bd26e652">§</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: 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;b7467ab71">§</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;a356d23fd">§</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: 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;cad65907e">§</ulink>
|
|
<ulink url="&commit_baseurl;6283ff201">§</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-17">
|
|
<title>Release 17</title>
|
|
|
|
<formalpara>
|
|
<title>Release date:</title>
|
|
<para>2024-09-26</para>
|
|
</formalpara>
|
|
|
|
<sect2 id="release-17-highlights">
|
|
<title>Overview</title>
|
|
|
|
<para>
|
|
<productname>PostgreSQL</productname> 17 contains many new features
|
|
and enhancements, including:
|
|
</para>
|
|
|
|
<itemizedlist>
|
|
<listitem>
|
|
<para>
|
|
New memory management system for <command>VACUUM</command>, which reduces
|
|
memory consumption and can improve overall vacuuming performance.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
New <acronym>SQL/JSON</acronym> capabilities, including constructors,
|
|
identity functions, and the <link
|
|
linkend="functions-sqljson-table"><function>JSON_TABLE()</function></link>
|
|
function, which converts JSON data into a table representation.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Various query performance improvements, including for sequential reads
|
|
using streaming I/O, write throughput under high concurrency, and
|
|
searches over multiple values in a <link linkend="btree">btree</link>
|
|
index.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Logical replication enhancements, including:
|
|
<itemizedlist>
|
|
<listitem>
|
|
<para>
|
|
Failover control
|
|
</para>
|
|
</listitem>
|
|
<listitem>
|
|
<para>
|
|
<link
|
|
linkend="app-pgcreatesubscriber"><application>pg_createsubscriber</application></link>,
|
|
a utility that creates logical replicas from physical standbys
|
|
</para>
|
|
</listitem>
|
|
<listitem>
|
|
<para>
|
|
<link
|
|
linkend="pgupgrade"><application>pg_upgrade</application></link> now
|
|
preserves logical replication slots on publishers and full
|
|
subscription state on subscribers. This will allow upgrades
|
|
to future major versions to continue logical replication without
|
|
requiring copy to resynchronize.
|
|
</para>
|
|
</listitem>
|
|
</itemizedlist>
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
New client-side connection option, <link
|
|
linkend="libpq-connect-sslnegotiation"><literal>sslnegotiation=direct</literal></link>,
|
|
that performs a direct TLS handshake to avoid a round-trip negotiation.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
<link
|
|
linkend="app-pgbasebackup"><application>pg_basebackup</application></link>
|
|
now supports incremental backup.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
<link linkend="sql-copy"><command>COPY</command></link> adds a new option,
|
|
<literal>ON_ERROR ignore</literal>, that allows a copy operation to
|
|
continue in the event of an error.
|
|
</para>
|
|
</listitem>
|
|
</itemizedlist>
|
|
|
|
<para>
|
|
The above items and other new features of
|
|
<productname>PostgreSQL</productname> 17 are explained in more detail
|
|
in the sections below.
|
|
</para>
|
|
|
|
</sect2>
|
|
|
|
<sect2 id="release-17-migration">
|
|
|
|
<title>Migration to Version 17</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 17 contains a number of changes that may affect compatibility
|
|
with previous releases. Observe the following incompatibilities:
|
|
</para>
|
|
|
|
<itemizedlist>
|
|
|
|
<!--
|
|
Author: Jeff Davis <jdavis@postgresql.org>
|
|
2024-03-04 [2af07e2f7] Fix search_path to a safe value during maintenance opera
|
|
Author: Jeff Davis <jdavis@postgresql.org>
|
|
2024-07-16 [b4da732fd64] When creating materialized views, use REFRESH to load data.
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Change functions to use a safe <xref linkend="guc-search-path"/>
|
|
during maintenance operations (Jeff Davis)
|
|
<ulink url="&commit_baseurl;2af07e2f7">§</ulink>
|
|
<ulink url="&commit_baseurl;b4da732fd64">§</ulink>
|
|
</para>
|
|
|
|
<para>
|
|
This prevents maintenance operations (<command>ANALYZE</command>,
|
|
<command>CLUSTER</command>, <command>CREATE
|
|
INDEX</command>, <command>CREATE
|
|
MATERIALIZED VIEW</command>, <command>REFRESH
|
|
MATERIALIZED VIEW</command>, <command>REINDEX</command>,
|
|
or <command>VACUUM</command>) from performing unsafe access.
|
|
Functions used by expression indexes and materialized views that
|
|
need to reference non-default schemas must specify a search path
|
|
during function creation.
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Michael Paquier <michael@paquier.xyz>
|
|
2023-08-28 [165d581f1] Tighten handling of "ago" in interval values
|
|
Author: Michael Paquier <michael@paquier.xyz>
|
|
2023-08-28 [617f9b7d4] Tighten unit parsing in internal values
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Restrict <literal>ago</literal> to only appear at the end in
|
|
<type>interval</type> values (Joseph Koshakow)
|
|
<ulink url="&commit_baseurl;165d581f1">§</ulink>
|
|
<ulink url="&commit_baseurl;617f9b7d4">§</ulink>
|
|
</para>
|
|
|
|
<para>
|
|
Also, prevent empty interval units from appearing multiple times.
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Thomas Munro <tmunro@postgresql.org>
|
|
2023-09-05 [f691f5b80] Remove the "snapshot too old" feature.
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Remove server variable old_snapshot_threshold (Thomas Munro)
|
|
<ulink url="&commit_baseurl;f691f5b80">§</ulink>
|
|
</para>
|
|
|
|
<para>
|
|
This variable allowed vacuum to remove rows that potentially could
|
|
be still visible to running transactions, causing "snapshot too
|
|
old" errors later if accessed. This feature might be re-added
|
|
to <application>PostgreSQL</application> later if an improved
|
|
implementation is found.
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Nathan Bossart <nathan@postgresql.org>
|
|
2023-07-13 [a0363ab7a] Fix privilege check for SET SESSION AUTHORIZATION.
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Change <link linkend="sql-set-session-authorization"><command>SET
|
|
SESSION AUTHORIZATION</command></link> handling of the initial
|
|
session user's superuser status (Joseph Koshakow)
|
|
<ulink url="&commit_baseurl;a0363ab7a">§</ulink>
|
|
</para>
|
|
|
|
<para>
|
|
The new behavior is based on the session user's superuser status at
|
|
the time the <command>SET SESSION AUTHORIZATION</command> command
|
|
is issued, rather than their superuser status at connection time.
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Nathan Bossart <nathan@postgresql.org>
|
|
2023-07-17 [884eee5bf] Remove db_user_namespace.
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Remove feature which simulated per-database users (Nathan Bossart)
|
|
<ulink url="&commit_baseurl;884eee5bf">§</ulink>
|
|
</para>
|
|
|
|
<para>
|
|
The feature, <literal>db_user_namespace</literal>, was rarely used.
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Daniel Gustafsson <dgustafsson@postgresql.org>
|
|
2024-03-04 [cc09e6549] Remove the adminpack contrib extension
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Remove <application>adminpack</application> contrib extension
|
|
(Daniel Gustafsson)
|
|
<ulink url="&commit_baseurl;cc09e6549">§</ulink>
|
|
</para>
|
|
|
|
<para>
|
|
This was used by now end-of-life <productname>pgAdmin
|
|
III</productname>.
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Thomas Munro <tmunro@postgresql.org>
|
|
2023-07-14 [d0c28601e] Remove wal_sync_method=fsync_writethrough on Windows.
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Remove <xref linkend="guc-wal-sync-method"/> value
|
|
<literal>fsync_writethrough</literal> on <systemitem
|
|
class="osname">Windows</systemitem> (Thomas Munro)
|
|
<ulink url="&commit_baseurl;d0c28601e">§</ulink>
|
|
</para>
|
|
|
|
<para>
|
|
This value was the same as <literal>fsync</literal> on <systemitem
|
|
class="osname">Windows</systemitem>.
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Bruce Momjian <bruce@momjian.us>
|
|
2023-11-24 [344afc776] modify segno. for pg_walfile_name() and pg_walfile_name_
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Change file boundary handling of two <acronym>WAL</acronym> file
|
|
name functions (Kyotaro Horiguchi, Andres Freund, Bruce Momjian)
|
|
<ulink url="&commit_baseurl;344afc776">§</ulink>
|
|
</para>
|
|
|
|
<para>
|
|
The functions <link
|
|
linkend="functions-admin-backup-table"><function>pg_walfile_name()</function></link>
|
|
and <function>pg_walfile_name_offset()</function> used to report
|
|
the previous <acronym>LSN</acronym> segment number when the
|
|
<acronym>LSN</acronym> was on a file segment boundary; it now
|
|
returns the current <acronym>LSN</acronym> segment.
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Michael Paquier <michael@paquier.xyz>
|
|
2023-12-11 [c7a3e6b46] Remove trace_recovery_messages
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Remove server variable <literal>trace_recovery_messages</literal>
|
|
since it is no longer needed (Bharath Rupireddy)
|
|
<ulink url="&commit_baseurl;c7a3e6b46">§</ulink>
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Peter Eisentraut <peter@eisentraut.org>
|
|
2023-08-16 [78806a950] Remove incorrect field from information schema
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Remove <link
|
|
linkend="information-schema">information schema</link> column
|
|
<structname>element_types</structname>.<structfield>domain_default</structfield>
|
|
(Peter Eisentraut)
|
|
<ulink url="&commit_baseurl;78806a950">§</ulink>
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Bruce Momjian <bruce@momjian.us>
|
|
2023-09-26 [15d5d7405] pgrowlocks: change lock mode output labels for consiste
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Change <application><xref linkend="pgrowlocks"/></application>
|
|
lock mode output labels (Bruce Momjian)
|
|
<ulink url="&commit_baseurl;15d5d7405">§</ulink>
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Michael Paquier <michael@paquier.xyz>
|
|
2023-10-27 [74604a37f] Remove buffers_backend and buffers_backend_fsync from pg
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Remove <structfield>buffers_backend</structfield> and
|
|
<structfield>buffers_backend_fsync</structfield> from <link
|
|
linkend="monitoring-pg-stat-bgwriter-view"><structname>pg_stat_bgwriter</structname></link>
|
|
(Bharath Rupireddy)
|
|
<ulink url="&commit_baseurl;74604a37f">§</ulink>
|
|
</para>
|
|
|
|
<para>
|
|
These fields are considered redundant to similar columns in <link
|
|
linkend="monitoring-pg-stat-io-view"><structname>pg_stat_io</structname></link>.
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Michael Paquier <michael@paquier.xyz>
|
|
2023-10-19 [13d00729d] Rename I/O timing statistics columns to shared_blk_{read
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Rename I/O block read/write timing statistics columns of
|
|
<application><xref linkend="pgstatstatements"/></application>
|
|
(Nazir Bilal Yavuz)
|
|
<ulink url="&commit_baseurl;13d00729d">§</ulink>
|
|
</para>
|
|
|
|
<para>
|
|
This renames <structfield>blk_read_time</structfield>
|
|
to <structfield>shared_blk_read_time</structfield>,
|
|
and <structfield>blk_write_time</structfield> to
|
|
<structfield>shared_blk_write_time</structfield>.
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Peter Eisentraut <peter@eisentraut.org>
|
|
2024-01-13 [4f622503d] Make attstattarget nullable
|
|
Author: Peter Eisentraut <peter@eisentraut.org>
|
|
2024-03-17 [012460ee9] Make stxstattarget nullable
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Change <link
|
|
linkend="catalog-pg-attribute"><structname>pg_attribute</structname>.<structfield>attstattarget</structfield></link>
|
|
and
|
|
<structname>pg_statistic_ext</structname>.<structfield>stxstattarget</structfield>
|
|
to represent the default statistics target as <literal>NULL</literal>
|
|
(Peter Eisentraut)
|
|
<ulink url="&commit_baseurl;4f622503d">§</ulink>
|
|
<ulink url="&commit_baseurl;012460ee9">§</ulink>
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Jeff Davis <jdavis@postgresql.org>
|
|
2024-03-09 [f696c0cd5] Catalog changes preparing for builtin collation provider
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Rename <link
|
|
linkend="catalog-pg-collation"><structname>pg_collation</structname>.<structfield>colliculocale</structfield></link>
|
|
to <structfield>colllocale</structfield> and
|
|
<link linkend="catalog-pg-database"><structname>pg_database</structname>.<structfield>daticulocale</structfield></link>
|
|
to <structfield>datlocale</structfield> (Jeff Davis)
|
|
<ulink url="&commit_baseurl;f696c0cd5">§</ulink>
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Masahiko Sawada <msawada@postgresql.org>
|
|
2024-04-02 [667e65aac] Use TidStore for dead tuple TIDs storage during lazy vac
|
|
Author: Masahiko Sawada <msawada@postgresql.org>
|
|
2024-06-14 [f1affb670] Reintroduce dead tuple counter in pg_stat_progress_vacuu
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Rename <link
|
|
linkend="vacuum-progress-reporting"><structname>pg_stat_progress_vacuum</structname></link>
|
|
column <structfield>max_dead_tuples</structfield>
|
|
to <structfield>max_dead_tuple_bytes</structfield>,
|
|
rename <structfield>num_dead_tuples</structfield> to
|
|
<structfield>num_dead_item_ids</structfield>, and add
|
|
<structfield>dead_tuple_bytes</structfield> (Masahiko Sawada)
|
|
<ulink url="&commit_baseurl;667e65aac">§</ulink>
|
|
<ulink url="&commit_baseurl;f1affb670">§</ulink>
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
|
|
2024-02-28 [bcdfa5f2e] Rename SLRU elements in view pg_stat_slru
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Rename <acronym>SLRU</acronym> columns in system view <link
|
|
linkend="monitoring-pg-stat-slru-view"><structname>pg_stat_slru</structname></link>
|
|
(Alvaro Herrera)
|
|
<ulink url="&commit_baseurl;bcdfa5f2e">§</ulink>
|
|
</para>
|
|
|
|
<para>
|
|
The column names accepted by <link
|
|
linkend="monitoring-stats-funcs-table"><function>pg_stat_reset_slru()</function></link>
|
|
are also changed.
|
|
</para>
|
|
</listitem>
|
|
|
|
</itemizedlist>
|
|
|
|
</sect2>
|
|
|
|
<sect2 id="release-17-changes">
|
|
<title>Changes</title>
|
|
|
|
<para>
|
|
Below you will find a detailed account of the changes between
|
|
<productname>PostgreSQL</productname> 17 and the previous major
|
|
release.
|
|
</para>
|
|
|
|
<sect3 id="release-17-server">
|
|
<title>Server</title>
|
|
|
|
<sect4 id="release-17-optimizer">
|
|
<title>Optimizer</title>
|
|
|
|
<itemizedlist>
|
|
|
|
<!--
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
2023-11-17 [f7816aec2] Extract column statistics from CTE references, if possib
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
2024-03-26 [a65724dfa] Propagate pathkeys from CTEs up to the outer query.
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Allow the optimizer to improve <acronym>CTE</acronym> plans by
|
|
considering the statistics and sort order of columns referenced in earlier row
|
|
output clauses (Jian Guo, Richard Guo, Tom Lane)
|
|
<ulink url="&commit_baseurl;f7816aec2">§</ulink>
|
|
<ulink url="&commit_baseurl;a65724dfa">§</ulink>
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: David Rowley <drowley@postgresql.org>
|
|
2024-01-23 [b262ad440] Add better handling of redundant IS [NOT] NULL quals
|
|
Author: David Rowley <drowley@postgresql.org>
|
|
2024-04-12 [3af704098] Fix IS [NOT] NULL qual optimization for inheritance tabl
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Improve optimization of <literal>IS NOT NULL</literal> and
|
|
<literal>IS NULL</literal> query restrictions (David Rowley,
|
|
Richard Guo, Andy Fan)
|
|
<ulink url="&commit_baseurl;b262ad440">§</ulink>
|
|
<ulink url="&commit_baseurl;3af704098">§</ulink>
|
|
</para>
|
|
|
|
<para>
|
|
Remove <literal>IS NOT NULL</literal> restrictions from queries on
|
|
<literal>NOT NULL</literal> columns and eliminate scans on
|
|
<literal>NOT NULL</literal> columns if <literal>IS NULL</literal>
|
|
is specified.
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: David Rowley <drowley@postgresql.org>
|
|
2024-03-04 [07c36c133] Support partition pruning on boolcol IS [NOT] UNKNOWN
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Allow partition pruning on boolean columns on <literal>IS [NOT]
|
|
UNKNOWN</literal> conditionals (David Rowley)
|
|
<ulink url="&commit_baseurl;07c36c133">§</ulink>
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
2024-01-20 [075df6b20] Add planner support functions for range operators <@ and
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Improve optimization of range values when using containment
|
|
operators <@ and @> (Kim Johan Andersson, Jian He)
|
|
<ulink url="&commit_baseurl;075df6b20">§</ulink>
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Alexander Korotkov <akorotkov@postgresql.org>
|
|
2024-02-15 [9f1337639] Pull up ANY-SUBLINK with the necessary lateral support.
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Allow correlated <literal>IN</literal> subqueries to be transformed
|
|
into joins (Andy Fan, Tom Lane)
|
|
<ulink url="&commit_baseurl;9f1337639">§</ulink>
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: David Rowley <drowley@postgresql.org>
|
|
2023-10-05 [a8a968a82] Consider cheap startup paths in add_paths_to_append_rel
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Improve optimization of the <literal>LIMIT</literal> clause
|
|
on partitioned tables, inheritance parents, and <literal>UNION
|
|
ALL</literal> queries (Andy Fan, David Rowley)
|
|
<ulink url="&commit_baseurl;a8a968a82">§</ulink>
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
2023-07-14 [e08d74ca1] Allow plan nodes with initPlans to be considered paralle
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Allow query nodes to be run in parallel in more cases (Tom Lane)
|
|
<ulink url="&commit_baseurl;e08d74ca1">§</ulink>
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Alexander Korotkov <akorotkov@postgresql.org>
|
|
2024-01-21 [0452b461b] Explore alternative orderings of group-by pathkeys durin
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Allow <literal>GROUP BY</literal> columns to be internally
|
|
ordered to match <literal>ORDER BY</literal> (Andrei Lepikhov,
|
|
Teodor Sigaev)
|
|
<ulink url="&commit_baseurl;0452b461b">§</ulink>
|
|
</para>
|
|
|
|
<para>
|
|
This can be disabled using server variable
|
|
<xref linkend="guc-enable-groupby-reordering"/>.
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: David Rowley <drowley@postgresql.org>
|
|
2024-03-25 [66c0185a3] Allow planner to use Merge Append to efficiently impleme
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Allow <literal>UNION</literal> (without <literal>ALL</literal>)
|
|
to use MergeAppend (David Rowley)
|
|
<ulink url="&commit_baseurl;66c0185a3">§</ulink>
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: David Rowley <drowley@postgresql.org>
|
|
2024-02-01 [9d1a5354f] Fix costing bug in MergeAppend
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Fix MergeAppend plans to more accurately compute the number of
|
|
rows that need to be sorted (Alexander Kuzmenkov)
|
|
<ulink url="&commit_baseurl;9d1a5354f">§</ulink>
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: David Rowley <drowley@postgresql.org>
|
|
2023-07-04 [625d5b3ca] Allow Incremental Sorts on GiST and SP-GiST indexes
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Allow <link linkend="gist">GiST</link> and <link
|
|
linkend="spgist">SP-GiST</link> indexes to be part of incremental
|
|
sorts (Miroslav Bendik)
|
|
<ulink url="&commit_baseurl;625d5b3ca">§</ulink>
|
|
</para>
|
|
|
|
<para>
|
|
This is particularly useful for <literal>ORDER BY</literal>
|
|
clauses where the first column has a GiST and SP-GiST index,
|
|
and other columns do not.
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Alexander Korotkov <akorotkov@postgresql.org>
|
|
2023-11-27 [bc3c8db8a] Display length and bounds histograms in pg_stats
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Add columns to <link
|
|
linkend="view-pg-stats"><structname>pg_stats</structname></link>
|
|
to report range-type histogram information (Egor Rogov, Soumyadeep
|
|
Chakraborty)
|
|
<ulink url="&commit_baseurl;bc3c8db8a">§</ulink>
|
|
</para>
|
|
</listitem>
|
|
|
|
</itemizedlist>
|
|
|
|
</sect4>
|
|
|
|
<sect4 id="release-17-indexes">
|
|
<title>Indexes</title>
|
|
|
|
<itemizedlist>
|
|
<!--
|
|
Author: Peter Geoghegan <pg@bowt.ie>
|
|
2024-04-06 [5bf748b86] Enhance nbtree ScalarArrayOp execution.
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Allow <link linkend="btree">btree</link> indexes to more
|
|
efficiently find a set of values, such as those supplied by
|
|
<literal>IN</literal> clauses using constants (Peter Geoghegan,
|
|
Matthias van de Meent)
|
|
<ulink url="&commit_baseurl;5bf748b86">§</ulink>
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Tomas Vondra <tomas.vondra@postgresql.org>
|
|
2023-12-08 [b43757171] Allow parallel CREATE INDEX for BRIN indexes
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Allow <link linkend="brin"><acronym>BRIN</acronym></link> indexes
|
|
to be created using parallel workers (Tomas Vondra, Matthias van
|
|
de Meent)
|
|
<ulink url="&commit_baseurl;b43757171">§</ulink>
|
|
</para>
|
|
</listitem>
|
|
|
|
</itemizedlist>
|
|
|
|
</sect4>
|
|
|
|
<sect4 id="release-17-performance">
|
|
<title>General Performance</title>
|
|
|
|
<itemizedlist>
|
|
|
|
<!--
|
|
Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
|
|
2024-04-03 [6dbb49026] Combine freezing and pruning steps in VACUUM
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Allow vacuum to more efficiently remove and freeze tuples (Melanie
|
|
Plageman, Heikki Linnakangas)
|
|
<ulink url="&commit_baseurl;6dbb49026">§</ulink>
|
|
</para>
|
|
|
|
<para>
|
|
<acronym>WAL</acronym> traffic caused by vacuum is also more
|
|
compact.
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: John Naylor <john.naylor@postgresql.org>
|
|
2024-03-07 [ee1b30f12] Add template for adaptive radix tree
|
|
Author: Masahiko Sawada <msawada@postgresql.org>
|
|
2024-03-21 [30e144287] Add TIDStore, to store sets of TIDs (ItemPointerData) ef
|
|
Author: Masahiko Sawada <msawada@postgresql.org>
|
|
2024-04-02 [667e65aac] Use TidStore for dead tuple TIDs storage during lazy vac
|
|
Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
|
|
2024-04-03 [6dbb49026] Combine freezing and pruning steps in VACUUM
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Allow vacuum to more efficiently store tuple references (Masahiko
|
|
Sawada, John Naylor)
|
|
<ulink url="&commit_baseurl;ee1b30f12">§</ulink>
|
|
<ulink url="&commit_baseurl;30e144287">§</ulink>
|
|
<ulink url="&commit_baseurl;667e65aac">§</ulink>
|
|
<ulink url="&commit_baseurl;6dbb49026">§</ulink>
|
|
</para>
|
|
|
|
<para>
|
|
Additionally, vacuum is no longer silently limited to one gigabyte
|
|
of memory when <xref linkend="guc-maintenance-work-mem"/> or <xref
|
|
linkend="guc-autovacuum-work-mem"/> are higher.
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Robert Haas <rhaas@postgresql.org>
|
|
2024-01-18 [c120550ed] Optimize vacuuming of relations with no indexes.
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Optimize vacuuming of relations with no indexes (Melanie Plageman)
|
|
<ulink url="&commit_baseurl;c120550ed">§</ulink>
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Thomas Munro <tmunro@postgresql.org>
|
|
2024-04-06 [98f320eb2] Increase default vacuum_buffer_usage_limit to 2MB.
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Increase default <xref linkend="guc-vacuum-buffer-usage-limit"/>
|
|
to 2MB (Thomas Munro)
|
|
<ulink url="&commit_baseurl;98f320eb2">§</ulink>
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Nathan Bossart <nathan@postgresql.org>
|
|
2024-03-26 [d365ae705] Optimize roles_is_member_of() with a Bloom filter.
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Improve performance when checking roles with many memberships
|
|
(Nathan Bossart)
|
|
<ulink url="&commit_baseurl;d365ae705">§</ulink>
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Michael Paquier <michael@paquier.xyz>
|
|
2023-07-25 [71e4cc6b8] Optimize WAL insertion lock acquisition and release with
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Improve performance of heavily-contended <acronym>WAL</acronym>
|
|
writes (Bharath Rupireddy)
|
|
<ulink url="&commit_baseurl;71e4cc6b8">§</ulink>
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: David Rowley <drowley@postgresql.org>
|
|
2024-04-07 [c4ab7da60] Avoid needless large memcpys in libpq socket writing
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Improve performance when transferring large blocks of data to a
|
|
client (Melih Mutlu)
|
|
<ulink url="&commit_baseurl;c4ab7da60">§</ulink>
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Thomas Munro <tmunro@postgresql.org>
|
|
2024-04-03 [210622c60] Provide vectored variant of ReadBuffer().
|
|
Author: Thomas Munro <tmunro@postgresql.org>
|
|
2024-04-08 [b7b0f3f27] Use streaming I/O in sequential scans.
|
|
Author: Thomas Munro <tmunro@postgresql.org>
|
|
2024-04-08 [041b96802] Use streaming I/O in ANALYZE.
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Allow the grouping of file system reads with the new system variable
|
|
<xref linkend="guc-io-combine-limit"/> (Thomas Munro, Andres Freund,
|
|
Melanie Plageman, Nazir Bilal Yavuz)
|
|
<ulink url="&commit_baseurl;210622c60">§</ulink>
|
|
<ulink url="&commit_baseurl;b7b0f3f27">§</ulink>
|
|
<ulink url="&commit_baseurl;041b96802">§</ulink>
|
|
</para>
|
|
</listitem>
|
|
|
|
</itemizedlist>
|
|
|
|
</sect4>
|
|
|
|
<sect4 id="release-17-monitoring">
|
|
<title>Monitoring</title>
|
|
|
|
<itemizedlist>
|
|
|
|
<!--
|
|
Author: Michael Paquier <michael@paquier.xyz>
|
|
2023-10-30 [96f052613] Introduce pg_stat_checkpointer
|
|
Author: Alexander Korotkov <akorotkov@postgresql.org>
|
|
2023-12-25 [12915a58e] Enhance checkpointer restartpoint statistics
|
|
Author: Alexander Korotkov <akorotkov@postgresql.org>
|
|
2024-03-14 [e820db5b5] Improve documentation for pg_stat_checkpointer fields
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Create system view <link
|
|
linkend="monitoring-pg-stat-checkpointer-view"><structname>pg_stat_checkpointer</structname></link>
|
|
(Bharath Rupireddy, Anton A. Melnikov, Alexander Korotkov)
|
|
<ulink url="&commit_baseurl;96f052613">§</ulink>
|
|
<ulink url="&commit_baseurl;12915a58e">§</ulink>
|
|
<ulink url="&commit_baseurl;e820db5b5">§</ulink>
|
|
</para>
|
|
|
|
<para>
|
|
Relevant columns have been removed from <link
|
|
linkend="pg-stat-bgwriter-view"><structname>pg_stat_bgwriter</structname></link>
|
|
and added to this new system view.
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Michael Paquier <michael@paquier.xyz>
|
|
2023-11-12 [23c8c0c8f] Add ability to reset all shared stats types in pg_stat_r
|
|
Author: Michael Paquier <michael@paquier.xyz>
|
|
2023-11-16 [2e8a0edc2] Add target "slru" to pg_stat_reset_shared()
|
|
Author: Michael Paquier <michael@paquier.xyz>
|
|
2023-11-14 [e5cca6288] Add support for pg_stat_reset_slru without argument
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Improve control over resetting statistics (Atsushi Torikoshi,
|
|
Bharath Rupireddy)
|
|
<ulink url="&commit_baseurl;23c8c0c8f">§</ulink>
|
|
<ulink url="&commit_baseurl;2e8a0edc2">§</ulink>
|
|
<ulink url="&commit_baseurl;e5cca6288">§</ulink>
|
|
</para>
|
|
|
|
<para>
|
|
Allow <link
|
|
linkend="monitoring-stats-funcs-table"><function>pg_stat_reset_shared()</function></link>
|
|
(with no arguments) and
|
|
pg_stat_reset_shared(<literal>NULL</literal>) to reset all
|
|
shared statistics. Allow pg_stat_reset_shared('slru') and <link
|
|
linkend="monitoring-stats-funcs-table"><function>pg_stat_reset_slru()</function></link>
|
|
(with no arguments) to reset <acronym>SLRU</acronym> statistics,
|
|
which was already possible with pg_stat_reset_slru(NULL).
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Michael Paquier <michael@paquier.xyz>
|
|
2024-01-25 [1d35f705e] Add more LOG messages when starting and ending recovery
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Add log messages related to <acronym>WAL</acronym> recovery from
|
|
backups (Andres Freund)
|
|
<ulink url="&commit_baseurl;1d35f705e">§</ulink>
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Michael Paquier <michael@paquier.xyz>
|
|
2023-08-26 [e48b19c5d] Generate new LOG for "trust" connections under log_conne
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Add <xref linkend="guc-log-connections"/> log line for
|
|
<literal>trust</literal> connections (Jacob Champion)
|
|
<ulink url="&commit_baseurl;e48b19c5d">§</ulink>
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Amit Kapila <akapila@postgresql.org>
|
|
2023-11-21 [7c3fb505b] Log messages for replication slot acquisition and releas
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Add log message to report walsender acquisition and release of
|
|
replication slots (Bharath Rupireddy)
|
|
<ulink url="&commit_baseurl;7c3fb505b">§</ulink>
|
|
</para>
|
|
|
|
<para>
|
|
This is enabled by the server variable <xref
|
|
linkend="guc-log-replication-commands"/>.
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Michael Paquier <michael@paquier.xyz>
|
|
2023-08-20 [1e68e43d3] Add system view pg_wait_events
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Add system view <link
|
|
linkend="view-pg-wait-events"><structname>pg_wait_events</structname></link>
|
|
that reports wait event types (Bertrand Drouvot)
|
|
<ulink url="&commit_baseurl;1e68e43d3">§</ulink>
|
|
</para>
|
|
|
|
<para>
|
|
This is useful for adding descriptions
|
|
to wait events reported in <link
|
|
linkend="monitoring-pg-stat-activity-view"><structname>pg_stat_activity</structname></link>.
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Thomas Munro <tmunro@postgresql.org>
|
|
2023-10-13 [0013ba290] Add wait events for checkpoint delay mechanism.
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Add <link linkend="view-pg-wait-events">wait events</link> for
|
|
checkpoint delays (Thomas Munro)
|
|
<ulink url="&commit_baseurl;0013ba290">§</ulink>
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Masahiko Sawada <msawada@postgresql.org>
|
|
2023-07-11 [46ebdfe16] Report index vacuum progress.
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Allow vacuum to report the progress of index processing (Sami
|
|
Imseih)
|
|
<ulink url="&commit_baseurl;46ebdfe16">§</ulink>
|
|
</para>
|
|
|
|
<para>
|
|
This appears in system view <link
|
|
linkend="pg-stat-progress-vacuum-view"><structname>pg_stat_progress_vacuum</structname></link>
|
|
columns <structfield>indexes_total</structfield> and
|
|
<structfield>indexes_processed</structfield>.
|
|
</para>
|
|
</listitem>
|
|
|
|
</itemizedlist>
|
|
|
|
</sect4>
|
|
|
|
<sect4 id="release-17-privileges">
|
|
<title>Privileges</title>
|
|
|
|
<itemizedlist>
|
|
|
|
<!--
|
|
Author: Nathan Bossart <nathan@postgresql.org>
|
|
2024-03-13 [ecb0fd337] Reintroduce MAINTAIN privilege and pg_maintain predefine
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Allow granting the right to perform maintenance operations
|
|
(Nathan Bossart)
|
|
<ulink url="&commit_baseurl;ecb0fd337">§</ulink>
|
|
</para>
|
|
|
|
<para>
|
|
The permission can be granted on a per-table basis using the <link
|
|
linkend="ddl-priv-maintain"><literal>MAINTAIN</literal></link>
|
|
privilege and on a per-role basis via the <link
|
|
linkend="predefined-roles"><literal>pg_maintain</literal></link>
|
|
predefined role. Permitted operations are
|
|
<command>VACUUM</command>, <command>ANALYZE</command>,
|
|
<command>REINDEX</command>, <command>REFRESH MATERIALIZED
|
|
VIEW</command>, <command>CLUSTER</command>, and <command>LOCK
|
|
TABLE</command>.
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Nathan Bossart <nathan@postgresql.org>
|
|
2024-02-14 [8d8afd48d] Allow pg_monitor to execute pg_current_logfile().
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Allow roles with <link
|
|
linkend="predefined-roles"><literal>pg_monitor</literal></link>
|
|
membership to execute <link
|
|
linkend="functions-info-session-table"><function>pg_current_logfile()</function></link>
|
|
(Pavlo Golub, Nathan Bossart)
|
|
<ulink url="&commit_baseurl;8d8afd48d">§</ulink>
|
|
</para>
|
|
</listitem>
|
|
|
|
</itemizedlist>
|
|
|
|
</sect4>
|
|
|
|
<sect4 id="release-17-server-config">
|
|
<title>Server Configuration</title>
|
|
|
|
<itemizedlist>
|
|
|
|
<!--
|
|
Author: Robert Haas <rhaas@postgresql.org>
|
|
2024-03-29 [d3ae2a24f] Add allow_alter_system GUC.
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Add system variable <xref linkend="guc-allow-alter-system"/>
|
|
to disallow <link linkend="sql-altersystem"><command>ALTER
|
|
SYSTEM</command></link> (Jelte Fennema-Nio, Gabriele Bartolini)
|
|
<ulink url="&commit_baseurl;d3ae2a24f">§</ulink>
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
2023-10-21 [2d870b4ae] Allow ALTER SYSTEM to set unrecognized custom GUCs.
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Allow <link linkend="sql-altersystem"><command>ALTER
|
|
SYSTEM</command></link> to set unrecognized custom server variables
|
|
(Tom Lane)
|
|
<ulink url="&commit_baseurl;2d870b4ae">§</ulink>
|
|
</para>
|
|
|
|
<para>
|
|
This is also possible with <link linkend="sql-grant"><literal>GRANT
|
|
ON PARAMETER</literal></link>.
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Alexander Korotkov <akorotkov@postgresql.org>
|
|
2024-02-15 [51efe38cb] Introduce transaction_timeout
|
|
Author: Alexander Korotkov <akorotkov@postgresql.org>
|
|
2024-02-16 [bf82f4379] Followup fixes for transaction_timeout
|
|
Author: Alexander Korotkov <akorotkov@postgresql.org>
|
|
2024-02-25 [28e858c0f] Improve documentation and GUC description for transactio
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Add server variable <xref linkend="guc-transaction-timeout"/> to
|
|
restrict the duration of transactions (Andrey Borodin, Japin Li,
|
|
Junwang Zhao, Alexander Korotkov)
|
|
<ulink url="&commit_baseurl;51efe38cb">§</ulink>
|
|
<ulink url="&commit_baseurl;bf82f4379">§</ulink>
|
|
<ulink url="&commit_baseurl;28e858c0f">§</ulink>
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Jeff Davis <jdavis@postgresql.org>
|
|
2024-03-13 [2d819a08a] Introduce "builtin" collation provider.
|
|
Author: Jeff Davis <jdavis@postgresql.org>
|
|
2024-03-18 [846311051] Address more review comments on commit 2d819a08a1.
|
|
Author: Jeff Davis <jdavis@postgresql.org>
|
|
2024-03-19 [f69319f2f] Support C.UTF-8 locale in the new builtin collation prov
|
|
Author: Jeff Davis <jdavis@postgresql.org>
|
|
2024-03-20 [9acae56ce] Inline basic UTF-8 functions.
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Add a builtin platform-independent collation provider (Jeff Davis)
|
|
<ulink url="&commit_baseurl;2d819a08a">§</ulink>
|
|
<ulink url="&commit_baseurl;846311051">§</ulink>
|
|
<ulink url="&commit_baseurl;f69319f2f">§</ulink>
|
|
<ulink url="&commit_baseurl;9acae56ce">§</ulink>
|
|
</para>
|
|
|
|
<para>
|
|
This supports <literal>C</literal> and <literal>C.UTF-8</literal>
|
|
collations.
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Michael Paquier <michael@paquier.xyz>
|
|
2023-07-06 [a14354cac] Add GUC parameter "huge_pages_status"
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Add server variable <xref linkend="guc-huge-pages-status"/> to
|
|
report the use of huge pages by Postgres (Justin Pryzby)
|
|
<ulink url="&commit_baseurl;a14354cac">§</ulink>
|
|
</para>
|
|
|
|
<para>
|
|
This is useful when <xref linkend="guc-huge-pages"/> is set to
|
|
<literal>try</literal>.
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Daniel Gustafsson <dgustafsson@postgresql.org>
|
|
2023-09-25 [7750fefdb] Add GUC for temporarily disabling event triggers
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Add server variable to disable event triggers (Daniel Gustafsson)
|
|
<ulink url="&commit_baseurl;7750fefdb">§</ulink>
|
|
</para>
|
|
|
|
<para>
|
|
The setting, <xref linkend="guc-event-triggers"/>, allows for the
|
|
temporary disabling of event triggers for debugging.
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
|
|
2024-02-28 [53c2a97a9] Improve performance of subsystems on top of SLRU
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Allow the <link
|
|
linkend="monitoring-pg-stat-slru-view"><acronym>SLRU</acronym></link>
|
|
cache sizes to be configured (Andrey Borodin, Dilip Kumar,
|
|
Alvaro Herrera)
|
|
<ulink url="&commit_baseurl;53c2a97a9">§</ulink>
|
|
</para>
|
|
|
|
<para>
|
|
The new server variables are <xref
|
|
linkend="guc-commit-timestamp-buffers"/>,
|
|
<xref linkend="guc-multixact-member-buffers"/>,
|
|
<xref linkend="guc-multixact-offset-buffers"/>,
|
|
<xref linkend="guc-notify-buffers"/>, <xref
|
|
linkend="guc-serializable-buffers"/>, <xref
|
|
linkend="guc-subtransaction-buffers"/>, and
|
|
<xref linkend="guc-transaction-buffers"/>. <xref
|
|
linkend="guc-commit-timestamp-buffers"/>, <xref
|
|
linkend="guc-transaction-buffers"/>, and <xref
|
|
linkend="guc-subtransaction-buffers"/> scale up automatically with
|
|
<xref linkend="guc-shared-buffers"/>.
|
|
</para>
|
|
</listitem>
|
|
|
|
</itemizedlist>
|
|
|
|
</sect4>
|
|
|
|
<sect4 id="release-17-replication">
|
|
<title>Streaming Replication and Recovery</title>
|
|
|
|
<itemizedlist>
|
|
|
|
<!--
|
|
Author: Robert Haas <rhaas@postgresql.org>
|
|
2023-12-20 [dc2123400] Add support for incremental backup.
|
|
Author: Tomas Vondra <tomas.vondra@postgresql.org>
|
|
2024-04-05 [f8ce4ed78] Allow copying files using clone/copy_file_range
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Add support for incremental file system backup (Robert Haas,
|
|
Jakub Wartak, Tomas Vondra)
|
|
<ulink url="&commit_baseurl;dc2123400">§</ulink>
|
|
<ulink url="&commit_baseurl;f8ce4ed78">§</ulink>
|
|
</para>
|
|
|
|
<para>
|
|
Incremental backups can be created using <link
|
|
linkend="app-pgbasebackup"><application>pg_basebackup</application></link>'s
|
|
new <option>--incremental</option>
|
|
option. The new application <link
|
|
linkend="app-pgcombinebackup"><application>pg_combinebackup</application></link>
|
|
allows manipulation of base and incremental file system backups.
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Robert Haas <rhaas@postgresql.org>
|
|
2023-12-20 [174c48050] Add a new WAL summarizer process.
|
|
Author: Nathan Bossart <nathan@postgresql.org>
|
|
2024-01-09 [d97ef756a] Fix documentation for wal_summary_keep_time.
|
|
Author: Robert Haas <rhaas@postgresql.org>
|
|
2024-01-09 [f896057e4] Document WAL summarization information functions.
|
|
Author: Robert Haas <rhaas@postgresql.org>
|
|
2024-01-11 [d9ef650fc] Add new function pg_get_wal_summarizer_state().
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Allow the creation of <acronym>WAL</acronym> summarization files
|
|
(Robert Haas, Nathan Bossart, Hubert Depesz Lubaczewski)
|
|
<ulink url="&commit_baseurl;174c48050">§</ulink>
|
|
<ulink url="&commit_baseurl;d97ef756a">§</ulink>
|
|
<ulink url="&commit_baseurl;f896057e4">§</ulink>
|
|
<ulink url="&commit_baseurl;d9ef650fc">§</ulink>
|
|
</para>
|
|
|
|
<para>
|
|
These files record the block numbers that have changed within an
|
|
<link linkend="datatype-pg-lsn"><acronym>LSN</acronym></link>
|
|
range and are useful for incremental file
|
|
system backups. This is controlled by the server
|
|
variables <xref linkend="guc-summarize-wal"/> and <xref
|
|
linkend="guc-wal-summary-keep-time"/>, and introspected with <link
|
|
linkend="functions-wal-summary"><function>pg_available_wal_summaries()</function></link>,
|
|
<function>pg_wal_summary_contents()</function>, and
|
|
<function>pg_get_wal_summarizer_state()</function>.
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Robert Haas <rhaas@postgresql.org>
|
|
2024-03-13 [2041bc427] Add the system identifier to backup manifests.
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Add the system identifier to file system <link
|
|
linkend="backup-manifest-format">backup manifest</link> files
|
|
(Amul Sul)
|
|
<ulink url="&commit_baseurl;2041bc427">§</ulink>
|
|
</para>
|
|
|
|
<para>
|
|
This helps detect invalid <acronym>WAL</acronym> usage.
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Amit Kapila <akapila@postgresql.org>
|
|
2024-03-21 [a145f424d] Allow dbname to be written as part of connstring via pg_
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Allow connection string value
|
|
<literal>dbname</literal> to be written when <link
|
|
linkend="app-pgbasebackup"><application>pg_basebackup</application></link>
|
|
writes connection information to
|
|
<filename>postgresql.auto.conf</filename> (Vignesh C, Hayato Kuroda)
|
|
<ulink url="&commit_baseurl;a145f424d">§</ulink>
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Amit Kapila <akapila@postgresql.org>
|
|
2024-01-04 [007693f2a] Track conflict_reason in pg_replication_slots.
|
|
Author: Amit Kapila <akapila@postgresql.org>
|
|
2024-03-22 [6ae701b43] Track invalidation_reason in pg_replication_slots.
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Add column <link
|
|
linkend="view-pg-replication-slots"><structname>pg_replication_slots</structname>.<structfield>invalidation_reason</structfield></link>
|
|
to report the reason for invalid slots (Shveta Malik, Bharath
|
|
Rupireddy)
|
|
<ulink url="&commit_baseurl;007693f2a">§</ulink>
|
|
<ulink url="&commit_baseurl;6ae701b43">§</ulink>
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Amit Kapila <akapila@postgresql.org>
|
|
2024-03-25 [a11f330b5] Track last_inactive_time in pg_replication_slots.
|
|
Author: Amit Kapila <akapila@postgresql.org>
|
|
2024-03-27 [6d49c8d4b] Change last_inactive_time to inactive_since in pg_replic
|
|
Author: Amit Kapila <akapila@postgresql.org>
|
|
2024-04-05 [6f132ed69] Allow synced slots to have their inactive_since.
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Add column <link
|
|
linkend="view-pg-replication-slots"><structname>pg_replication_slots</structname>.<structfield>inactive_since</structfield></link>
|
|
to report slot inactivity duration (Bharath Rupireddy)
|
|
<ulink url="&commit_baseurl;a11f330b5">§</ulink>
|
|
<ulink url="&commit_baseurl;6d49c8d4b">§</ulink>
|
|
<ulink url="&commit_baseurl;6f132ed69">§</ulink>
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Amit Kapila <akapila@postgresql.org>
|
|
2024-02-14 [ddd5f4f54] Add a slot synchronization function.
|
|
Author: Amit Kapila <akapila@postgresql.org>
|
|
2024-02-16 [7a424ece4] Add more LOG and DEBUG messages for slot synchronization
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Add function <link
|
|
linkend="functions-replication-table"><function>pg_sync_replication_slots()</function></link>
|
|
to synchronize logical replication slots (Hou Zhijie, Shveta Malik,
|
|
Ajin Cherian, Peter Eisentraut)
|
|
<ulink url="&commit_baseurl;ddd5f4f54">§</ulink>
|
|
<ulink url="&commit_baseurl;7a424ece4">§</ulink>
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Amit Kapila <akapila@postgresql.org>
|
|
2024-01-29 [732924043] Allow setting failover property in the replication comma
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Add the <literal>failover</literal> property to the <link
|
|
linkend="protocol-replication">replication protocol</link> (Hou
|
|
Zhijie, Shveta Malik)
|
|
<ulink url="&commit_baseurl;732924043">§</ulink>
|
|
</para>
|
|
</listitem>
|
|
|
|
</itemizedlist>
|
|
|
|
</sect4>
|
|
|
|
<sect4 id="release-17-logical">
|
|
<title><link linkend="logical-replication">Logical Replication</link></title>
|
|
|
|
<itemizedlist>
|
|
|
|
<!--
|
|
Author: Peter Eisentraut <peter@eisentraut.org>
|
|
2024-03-25 [d44032d01] pg_createsubscriber: creates a new logical replica from
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Add application <link
|
|
linkend="app-pgcreatesubscriber"><application>pg_createsubscriber</application></link>
|
|
to create a logical replica from a physical standby server
|
|
(Euler Taveira)
|
|
<ulink url="&commit_baseurl;d44032d01">§</ulink>
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Amit Kapila <akapila@postgresql.org>
|
|
2023-10-26 [29d0a77fa] Migrate logical slots to the new node during an upgrade.
|
|
Author: Amit Kapila <akapila@postgresql.org>
|
|
2024-01-02 [9a17be1e2] Allow upgrades to preserve the full subscription's state
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Have <link
|
|
linkend="pgupgrade"><application>pg_upgrade</application></link>
|
|
migrate valid logical slots and subscriptions (Hayato Kuroda,
|
|
Hou Zhijie, Vignesh C, Julien Rouhaud, Shlok Kyal)
|
|
<ulink url="&commit_baseurl;29d0a77fa">§</ulink>
|
|
<ulink url="&commit_baseurl;9a17be1e2">§</ulink>
|
|
</para>
|
|
|
|
<para>
|
|
This allows logical replication to continue
|
|
quickly after the upgrade. This only works for old
|
|
<productname>PostgreSQL</productname> clusters that are version
|
|
17 or later.
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Amit Kapila <akapila@postgresql.org>
|
|
2024-01-25 [c393308b6] Allow to enable failover property for replication slots
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Enable the failover of <link
|
|
linkend="logical-replication-subscription-slot">logical slots</link>
|
|
(Hou Zhijie, Shveta Malik, Ajin Cherian)
|
|
<ulink url="&commit_baseurl;c393308b6">§</ulink>
|
|
</para>
|
|
|
|
<para>
|
|
This is controlled by an optional fifth argument to <link
|
|
linkend="functions-replication-table"><function>pg_create_logical_replication_slot()</function></link>.
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Amit Kapila <akapila@postgresql.org>
|
|
2024-02-22 [93db6cbda] Add a new slot sync worker to synchronize logical slots
|
|
Author: Amit Kapila <akapila@postgresql.org>
|
|
2024-03-06 [60c07820d] Doc: Improve replication slot synchronization section.
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Add server variable <xref linkend="guc-sync-replication-slots"/>
|
|
to enable failover logical slot synchronization (Shveta Malik,
|
|
Hou Zhijie, Peter Smith)
|
|
<ulink url="&commit_baseurl;93db6cbda">§</ulink>
|
|
<ulink url="&commit_baseurl;60c07820d">§</ulink>
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Amit Kapila <akapila@postgresql.org>
|
|
2024-01-30 [776621a5e] Add a failover option to subscriptions.
|
|
Author: Amit Kapila <akapila@postgresql.org>
|
|
2024-02-07 [22f7e61a6] Clean-ups for 776621a5e4 and 7329240437.
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Add logical replication failover control to <link
|
|
linkend="sql-createsubscription"><literal>CREATE/ALTER
|
|
SUBSCRIPTION</literal></link> (Shveta Malik, Hou Zhijie, Ajin
|
|
Cherian)
|
|
<ulink url="&commit_baseurl;776621a5e">§</ulink>
|
|
<ulink url="&commit_baseurl;22f7e61a6">§</ulink>
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Amit Kapila <akapila@postgresql.org>
|
|
2023-07-14 [edca34243] Allow the use of a hash index on the subscriber during r
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Allow the application of logical replication changes to use
|
|
<link linkend="hash-index">hash</link> indexes on the subscriber
|
|
(Hayato Kuroda)
|
|
<ulink url="&commit_baseurl;edca34243">§</ulink>
|
|
</para>
|
|
|
|
<para>
|
|
Previously only <link linkend="btree">btree</link> indexes could
|
|
be used for this purpose.
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Masahiko Sawada <msawada@postgresql.org>
|
|
2024-04-03 [5bec1d6bc] Improve eviction algorithm in ReorderBuffer using max-he
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Improve <link linkend="logicaldecoding">logical decoding</link>
|
|
performance in cases where there are many subtransactions
|
|
(Masahiko Sawada)
|
|
<ulink url="&commit_baseurl;5bec1d6bc">§</ulink>
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Amit Kapila <akapila@postgresql.org>
|
|
2023-10-17 [79243de13] Restart the apply worker if the privileges have been rev
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Restart apply workers if subscription owner's superuser privileges
|
|
are revoked (Vignesh C)
|
|
<ulink url="&commit_baseurl;79243de13">§</ulink>
|
|
</para>
|
|
|
|
<para>
|
|
This forces reauthentication.
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Michael Paquier <michael@paquier.xyz>
|
|
2023-10-18 [173b56f1e] Add flush option to pg_logical_emit_message()
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Add <literal>flush</literal> option to <link
|
|
linkend="functions-replication-table"><function>pg_logical_emit_message()</function></link>
|
|
(Michael Paquier)
|
|
<ulink url="&commit_baseurl;173b56f1e">§</ulink>
|
|
</para>
|
|
|
|
<para>
|
|
This makes the message durable.
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Amit Kapila <akapila@postgresql.org>
|
|
2024-03-08 [bf279ddd1] Introduce a new GUC 'standby_slot_names'.
|
|
Author: Amit Kapila <akapila@postgresql.org>
|
|
2024-07-01 [0f934b073] Rename standby_slot_names to synchronized_standby_slots.
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Allow specification of physical standbys that must be synchronized
|
|
before they are visible to subscribers (Hou Zhijie, Shveta Malik)
|
|
<ulink url="&commit_baseurl;bf279ddd1">§</ulink>
|
|
<ulink url="&commit_baseurl;0f934b073">§</ulink>
|
|
</para>
|
|
|
|
<para>
|
|
The new server variable is <xref linkend="guc-synchronized-standby-slots"/>.
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Nathan Bossart <nathan@postgresql.org>
|
|
2023-09-25 [13aeaf079] Add worker type to pg_stat_subscription.
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Add worker type column to <link
|
|
linkend="monitoring-pg-stat-subscription"><structname>pg_stat_subscription</structname></link>
|
|
(Peter Smith)
|
|
<ulink url="&commit_baseurl;13aeaf079">§</ulink>
|
|
</para>
|
|
</listitem>
|
|
|
|
</itemizedlist>
|
|
|
|
</sect4>
|
|
|
|
</sect3>
|
|
|
|
<sect3 id="release-17-utility">
|
|
<title>Utility Commands</title>
|
|
|
|
<itemizedlist>
|
|
|
|
<!--
|
|
Author: Alexander Korotkov <akorotkov@postgresql.org>
|
|
2024-01-16 [9e2d87011] Add new COPY option SAVE_ERROR_TO
|
|
Author: Alexander Korotkov <akorotkov@postgresql.org>
|
|
2024-01-19 [b725b7eec] Rename COPY option from SAVE_ERROR_TO to ON_ERROR
|
|
Author: Alexander Korotkov <akorotkov@postgresql.org>
|
|
2024-02-03 [40bbc8cf0] Improve documentation for COPY ... ON_ERROR ...
|
|
Author: Masahiko Sawada <msawada@postgresql.org>
|
|
2024-04-17 [a6d0fa5ef] Disallow specifying ON_ERROR option without value.
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Add new <link linkend="sql-copy"><command>COPY</command></link>
|
|
option <literal>ON_ERROR ignore</literal> to discard error rows
|
|
(Damir Belyalov, Atsushi Torikoshi, Alex Shulgin, Jian He, Yugo
|
|
Nagata)
|
|
<ulink url="&commit_baseurl;9e2d87011">§</ulink>
|
|
<ulink url="&commit_baseurl;b725b7eec">§</ulink>
|
|
<ulink url="&commit_baseurl;40bbc8cf0">§</ulink>
|
|
<ulink url="&commit_baseurl;a6d0fa5ef">§</ulink>
|
|
</para>
|
|
|
|
<para>
|
|
The default behavior is <literal>ON_ERROR stop</literal>.
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Masahiko Sawada <msawada@postgresql.org>
|
|
2024-04-01 [f5a227895] Add new COPY option LOG_VERBOSITY.
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Add new <command>COPY</command> option
|
|
<literal>LOG_VERBOSITY</literal> which reports <literal>COPY
|
|
FROM</literal> ignored error rows (Bharath Rupireddy)
|
|
<ulink url="&commit_baseurl;f5a227895">§</ulink>
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Masahiko Sawada <msawada@postgresql.org>
|
|
2024-01-25 [729439607] Add progress reporting of skipped tuples during COPY FRO
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Allow <literal>COPY FROM</literal> to report the number of skipped
|
|
rows during processing (Atsushi Torikoshi)
|
|
<ulink url="&commit_baseurl;729439607">§</ulink>
|
|
</para>
|
|
|
|
<para>
|
|
This appears in system view column <link
|
|
linkend="copy-progress-reporting"><structname>pg_stat_progress_copy</structname>.<structfield>tuples_skipped</structfield></link>.
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Andrew Dunstan <andrew@dunslane.net>
|
|
2023-09-30 [f6d4c9cf1] Provide FORCE_NULL * and FORCE_NOT_NULL * options for CO
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
In <literal>COPY FROM</literal>, allow easy specification that all
|
|
columns should be forced null or not null (Zhang Mingli)
|
|
<ulink url="&commit_baseurl;f6d4c9cf1">§</ulink>
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Peter Eisentraut <peter@eisentraut.org>
|
|
2024-01-16 [699586315] Support identity columns in partitioned tables
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Allow partitioned tables to have identity columns (Ashutosh Bapat)
|
|
<ulink url="&commit_baseurl;699586315">§</ulink>
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Peter Eisentraut <peter@eisentraut.org>
|
|
2023-07-12 [8c852ba9a] Allow some exclusion constraints on partitions
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Allow <link linkend="ddl-constraints-exclusion">exclusion
|
|
constraints</link> on partitioned tables (Paul A. Jungwirth)
|
|
<ulink url="&commit_baseurl;8c852ba9a">§</ulink>
|
|
</para>
|
|
|
|
<para>
|
|
As long as exclusion constraints compare partition key columns
|
|
for equality, other columns can use exclusion constraint-specific
|
|
comparisons.
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Peter Eisentraut <peter@eisentraut.org>
|
|
2024-01-13 [4f622503d] Make attstattarget nullable
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Add clearer <link linkend="sql-altertable"><command>ALTER
|
|
TABLE</command></link> method to set a column to the default
|
|
statistics target (Peter Eisentraut)
|
|
<ulink url="&commit_baseurl;4f622503d">§</ulink>
|
|
</para>
|
|
|
|
<para>
|
|
The new syntax is <literal>ALTER TABLE ... SET STATISTICS
|
|
DEFAULT</literal>; using <literal>SET STATISTICS -1</literal>
|
|
is still supported.
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Peter Eisentraut <peter@eisentraut.org>
|
|
2024-01-04 [5d06e99a3] ALTER TABLE command to change generation expression
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Allow <literal>ALTER TABLE</literal> to change a column's generation
|
|
expression (Amul Sul)
|
|
<ulink url="&commit_baseurl;5d06e99a3">§</ulink>
|
|
</para>
|
|
|
|
<para>
|
|
The syntax is <literal>ALTER TABLE ... ALTER COLUMN ... SET
|
|
EXPRESSION</literal>.
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
|
|
2024-03-25 [374c7a229] Allow specifying an access method for partitioned tables
|
|
Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
|
|
2024-03-28 [e2395cdbe] ALTER TABLE: rework determination of access method ID
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Allow specification of <link linkend="tableam">table access
|
|
methods</link> on partitioned tables (Justin Pryzby, Soumyadeep
|
|
Chakraborty, Michael Paquier)
|
|
<ulink url="&commit_baseurl;374c7a229">§</ulink>
|
|
<ulink url="&commit_baseurl;e2395cdbe">§</ulink>
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Michael Paquier <michael@paquier.xyz>
|
|
2024-03-08 [d61a6cad6] Add support for DEFAULT in ALTER TABLE .. SET ACCESS MET
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Add <literal>DEFAULT</literal> setting for <literal>ALTER TABLE
|
|
.. SET ACCESS METHOD</literal> (Michael Paquier)
|
|
<ulink url="&commit_baseurl;d61a6cad6">§</ulink>
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Alexander Korotkov <akorotkov@postgresql.org>
|
|
2023-10-16 [e83d1b0c4] Add support event triggers on authenticated login
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Add support for <link linkend="sql-createeventtrigger">event
|
|
triggers</link> that fire at connection time (Konstantin Knizhnik,
|
|
Mikhail Gribkov)
|
|
<ulink url="&commit_baseurl;e83d1b0c4">§</ulink>
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Michael Paquier <michael@paquier.xyz>
|
|
2023-12-04 [f21848de2] Add support for REINDEX in event triggers
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Add event trigger support for <link
|
|
linkend="sql-reindex"><command>REINDEX</command></link> (Garrett
|
|
Thornburg, Jian He)
|
|
<ulink url="&commit_baseurl;f21848de2">§</ulink>
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Nathan Bossart <nathan@postgresql.org>
|
|
2023-07-19 [cdaedfc96] Support parenthesized syntax for CLUSTER without a table
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Allow parenthesized syntax for <link
|
|
linkend="sql-cluster"><command>CLUSTER</command></link> options if
|
|
a table name is not specified (Nathan Bossart)
|
|
<ulink url="&commit_baseurl;cdaedfc96">§</ulink>
|
|
</para>
|
|
</listitem>
|
|
|
|
</itemizedlist>
|
|
|
|
<sect4 id="release-17-explain">
|
|
<title><link linkend="sql-explain"><command>EXPLAIN</command></link></title>
|
|
|
|
<itemizedlist>
|
|
|
|
<!--
|
|
Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
|
|
2024-01-29 [5de890e36] Add EXPLAIN (MEMORY) to report planner memory consumptio
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Allow <command>EXPLAIN</command> to report
|
|
optimizer memory usage (Ashutosh Bapat)
|
|
<ulink url="&commit_baseurl;5de890e36">§</ulink>
|
|
</para>
|
|
|
|
<para>
|
|
The option is called <literal>MEMORY</literal>.
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
2024-04-03 [06286709e] Invent SERIALIZE option for EXPLAIN.
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Add <command>EXPLAIN</command> option <literal>SERIALIZE</literal>
|
|
to report the cost of converting data for network transmission
|
|
(Stepan Rutz, Matthias van de Meent)
|
|
<ulink url="&commit_baseurl;06286709e">§</ulink>
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Michael Paquier <michael@paquier.xyz>
|
|
2023-10-19 [295c36c0c] Add local_blk_{read|write}_time I/O timing statistics fo
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Add local I/O block read/write timing statistics to
|
|
<command>EXPLAIN</command>'s <literal>BUFFERS</literal> output
|
|
(Nazir Bilal Yavuz)
|
|
<ulink url="&commit_baseurl;295c36c0c">§</ulink>
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
2024-03-19 [fd0398fcb] Improve EXPLAIN's display of SubPlan nodes and output pa
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Improve <command>EXPLAIN</command>'s display of SubPlan nodes and
|
|
output parameters (Tom Lane, Dean Rasheed)
|
|
<ulink url="&commit_baseurl;fd0398fcb">§</ulink>
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Daniel Gustafsson <dgustafsson@postgresql.org>
|
|
2023-09-08 [5a3423ad8] Add JIT deform_counter
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Add <acronym>JIT</acronym> <literal>deform_counter</literal>
|
|
details to <command>EXPLAIN</command> (Dmitry Dolgov)
|
|
<ulink url="&commit_baseurl;5a3423ad8">§</ulink>
|
|
</para>
|
|
</listitem>
|
|
|
|
</itemizedlist>
|
|
|
|
</sect4>
|
|
|
|
</sect3>
|
|
|
|
<sect3 id="release-17-datatypes">
|
|
<title>Data Types</title>
|
|
|
|
<itemizedlist>
|
|
|
|
<!--
|
|
Author: Dean Rasheed <dean.a.rasheed@gmail.com>
|
|
2023-11-14 [519fc1bd9] Support +/- infinity in the interval data type.
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Allow the <type>interval</type> data type to support
|
|
<literal>+/-infinity</literal> values (Joseph Koshakow, Jian He,
|
|
Ashutosh Bapat)
|
|
<ulink url="&commit_baseurl;519fc1bd9">§</ulink>
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
2024-03-24 [af1d39584] Allow more cases to pass the unsafe-use-of-new-enum-valu
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Allow the use of an <link
|
|
linkend="datatype-enum"><type>ENUM</type></link> added via <link
|
|
linkend="sql-altertype"><command>ALTER TYPE</command></link> if
|
|
the type was created in the same transaction (Tom Lane)
|
|
<ulink url="&commit_baseurl;af1d39584">§</ulink>
|
|
</para>
|
|
|
|
<para>
|
|
This was previously disallowed.
|
|
</para>
|
|
</listitem>
|
|
|
|
</itemizedlist>
|
|
|
|
</sect3>
|
|
|
|
<sect3 id="release-17-merge">
|
|
<title><link linkend="sql-merge">MERGE</link></title>
|
|
|
|
|
|
<itemizedlist>
|
|
|
|
<!--
|
|
Author: Dean Rasheed <dean.a.rasheed@gmail.com>
|
|
2024-02-29 [5f2e179bd] Support MERGE into updatable views.
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Allow <command>MERGE</command> to modify updatable views (Dean
|
|
Rasheed)
|
|
<ulink url="&commit_baseurl;5f2e179bd">§</ulink>
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Dean Rasheed <dean.a.rasheed@gmail.com>
|
|
2024-03-30 [0294df2f1] Add support for MERGE ... WHEN NOT MATCHED BY SOURCE.
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Add <literal>WHEN NOT MATCHED BY SOURCE</literal> to
|
|
<command>MERGE</command> (Dean Rasheed)
|
|
<ulink url="&commit_baseurl;0294df2f1">§</ulink>
|
|
</para>
|
|
|
|
<para>
|
|
<literal>WHEN NOT MATCHED</literal> on target rows was already
|
|
supported.
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Dean Rasheed <dean.a.rasheed@gmail.com>
|
|
2024-03-17 [c649fa24a] Add RETURNING support to MERGE.
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Allow <command>MERGE</command> to use the
|
|
<literal>RETURNING</literal> clause (Dean Rasheed)
|
|
<ulink url="&commit_baseurl;c649fa24a">§</ulink>
|
|
</para>
|
|
|
|
<para>
|
|
The new <literal>RETURNING</literal> function
|
|
<function>merge_action()</function> reports on the
|
|
<acronym>DML</acronym> that generated the row.
|
|
</para>
|
|
</listitem>
|
|
|
|
</itemizedlist>
|
|
|
|
</sect3>
|
|
|
|
<sect3 id="release-17-functions">
|
|
<title>Functions</title>
|
|
|
|
<itemizedlist>
|
|
|
|
<!--
|
|
Author: Amit Langote <amitlan@postgresql.org>
|
|
2024-04-04 [de3600452] Add basic JSON_TABLE() functionality
|
|
Author: Amit Langote <amitlan@postgresql.org>
|
|
2024-04-08 [bb766cde6] JSON_TABLE: Add support for NESTED paths and columns
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Add function <link
|
|
linkend="functions-sqljson-table"><function>JSON_TABLE()</function></link>
|
|
to convert <type>JSON</type> data to a table representation (Nikita
|
|
Glukhov, Teodor Sigaev, Oleg Bartunov, Alexander Korotkov, Andrew
|
|
Dunstan, Amit Langote, Jian He)
|
|
<ulink url="&commit_baseurl;de3600452">§</ulink>
|
|
<ulink url="&commit_baseurl;bb766cde6">§</ulink>
|
|
</para>
|
|
|
|
<para>
|
|
This function can be used in the <literal>FROM</literal> clause of
|
|
<command>SELECT</command> queries as a tuple source.
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Amit Langote <amitlan@postgresql.org>
|
|
2023-07-26 [03734a7fe] Add more SQL/JSON constructor functions
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Add <acronym>SQL/JSON</acronym> constructor functions <link
|
|
linkend="functions-json-creation-table"><function>JSON()</function></link>,
|
|
<function>JSON_SCALAR()</function>, and
|
|
<function>JSON_SERIALIZE()</function> (Nikita Glukhov, Teodor Sigaev,
|
|
Oleg Bartunov, Alexander Korotkov, Andrew Dunstan, Amit Langote)
|
|
<ulink url="&commit_baseurl;03734a7fe">§</ulink>
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Amit Langote <amitlan@postgresql.org>
|
|
2024-01-24 [aaaf9449e] Add soft error handling to some expression nodes
|
|
Author: Amit Langote <amitlan@postgresql.org>
|
|
2024-01-24 [1edb3b491] Adjust populate_record_field() to handle errors softly
|
|
Author: Amit Langote <amitlan@postgresql.org>
|
|
2024-03-21 [6185c9737] Add SQL/JSON query functions
|
|
Author: Amit Langote <amitlan@postgresql.org>
|
|
2024-04-18 [c0fc07518] SQL/JSON: Fix issues with DEFAULT .. ON ERROR / EMPTY
|
|
Author: Amit Langote <amitlan@postgresql.org>
|
|
2024-04-18 [ef744ebb7] SQL/JSON: Miscellaneous fixes and improvements
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Add <acronym>SQL/JSON</acronym> query functions <link
|
|
linkend="functions-sqljson-querying"><function>JSON_EXISTS()</function></link>,
|
|
<function>JSON_QUERY()</function>, and
|
|
<function>JSON_VALUE()</function> (Nikita Glukhov, Teodor Sigaev,
|
|
Oleg Bartunov, Alexander Korotkov, Andrew Dunstan, Amit Langote,
|
|
Peter Eisentraut, Jian He)
|
|
<ulink url="&commit_baseurl;aaaf9449e">§</ulink>
|
|
<ulink url="&commit_baseurl;1edb3b491">§</ulink>
|
|
<ulink url="&commit_baseurl;6185c9737">§</ulink>
|
|
<ulink url="&commit_baseurl;c0fc07518">§</ulink>
|
|
<ulink url="&commit_baseurl;ef744ebb7">§</ulink>
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Andrew Dunstan <andrew@dunslane.net>
|
|
2024-01-25 [66ea94e8e] Implement various jsonpath methods
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Add <link linkend="functions-sqljson-path-operators">jsonpath</link>
|
|
methods to convert <type>JSON</type> values to other
|
|
<type>JSON</type> data types (Jeevan Chalke)
|
|
<ulink url="&commit_baseurl;66ea94e8e">§</ulink>
|
|
</para>
|
|
|
|
<para>
|
|
The jsonpath methods are <function>.bigint()</function>,
|
|
<function>.boolean()</function>, <function>.date()</function>,
|
|
<function>.decimal([precision [, scale]])</function>,
|
|
<function>.integer()</function>, <function>.number()</function>,
|
|
<function>.string()</function>, <function>.time()</function>,
|
|
<function>.time_tz()</function>, <function>.timestamp()</function>,
|
|
and <function>.timestamp_tz()</function>.
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
2024-01-25 [8ba6fdf90] Support TZ and OF format codes in <function>to_timestamp()</function>.
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Add <link
|
|
linkend="functions-formatting-table"><function>to_timestamp()</function></link>
|
|
time zone format specifiers (Tom Lane)
|
|
<ulink url="&commit_baseurl;8ba6fdf90">§</ulink>
|
|
</para>
|
|
|
|
<para>
|
|
<literal>TZ</literal> accepts time zone abbreviations or numeric
|
|
offsets, while <literal>OF</literal> accepts only numeric offsets.
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Michael Paquier <michael@paquier.xyz>
|
|
2023-10-13 [97957fdba] Add support for AT LOCAL
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Allow the session <link linkend="guc-timezone">time zone</link>
|
|
to be specified by <literal>AT LOCAL</literal> (Vik Fearing)
|
|
<ulink url="&commit_baseurl;97957fdba">§</ulink>
|
|
</para>
|
|
|
|
<para>
|
|
This is useful when converting adding and removing time zones from
|
|
time stamps values, rather than specifying the literal session
|
|
time zone.
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Peter Eisentraut <peter@eisentraut.org>
|
|
2024-03-19 [794f10f6b] Add some UUID support functions
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Add functions <link
|
|
linkend="functions-uuid"><function>uuid_extract_timestamp()</function></link>
|
|
and <function>uuid_extract_version()</function> to return
|
|
<acronym>UUID</acronym> information (Andrey Borodin)
|
|
<ulink url="&commit_baseurl;794f10f6b">§</ulink>
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Dean Rasheed <dean.a.rasheed@gmail.com>
|
|
2024-03-27 [e6341323a] Add functions to generate random numbers in a specified
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Add functions to generate random numbers in a specified range
|
|
(Dean Rasheed)
|
|
<ulink url="&commit_baseurl;e6341323a">§</ulink>
|
|
</para>
|
|
|
|
<para>
|
|
The functions are <link
|
|
linkend="functions-math-random-table"><function>random(min,
|
|
max)</function></link> and they take values of type
|
|
<type>integer</type>, <type>bigint</type>, and <type>numeric</type>.
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Nathan Bossart <nathan@postgresql.org>
|
|
2023-08-23 [260a1f18d] Add to_bin() and to_oct().
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Add functions to convert integers to binary and octal strings
|
|
(Eric Radman, Nathan Bossart)
|
|
<ulink url="&commit_baseurl;260a1f18d">§</ulink>
|
|
</para>
|
|
|
|
<para>
|
|
The functions are <link
|
|
linkend="functions-string-other"><function>to_bin()</function></link>
|
|
and <function>to_oct()</function>.
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Jeff Davis <jdavis@postgresql.org>
|
|
2023-11-01 [a02b37fc0] Additional unicode primitive functions.
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Add Unicode informational functions (Jeff Davis)
|
|
<ulink url="&commit_baseurl;a02b37fc0">§</ulink>
|
|
</para>
|
|
|
|
<para>
|
|
Function <link
|
|
linkend="functions-info-version"><function>unicode_version()</function></link>
|
|
returns the Unicode version,
|
|
<function>icu_unicode_version()</function>
|
|
returns the <acronym>ICU</acronym> version, and
|
|
<function>unicode_assigned()</function> returns if the characters
|
|
are assigned Unicode codepoints.
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Daniel Gustafsson <dgustafsson@postgresql.org>
|
|
2023-11-06 [526fe0d79] Add XMLText function (SQL/XML X038)
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Add function <link
|
|
linkend="functions-producing-xml-xmltext"><function>xmltext()</function></link>
|
|
to convert text to a single <type>XML</type> text node (Jim Jones)
|
|
<ulink url="&commit_baseurl;526fe0d79">§</ulink>
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
2024-03-20 [1218ca995] Add to_regtypemod function to extract typemod from a str
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Add function <link
|
|
linkend="functions-info-catalog-table"><function>to_regtypemod()</function></link>
|
|
to return the type modifier of a type specification (David Wheeler,
|
|
Erik Wienhold)
|
|
<ulink url="&commit_baseurl;1218ca995">§</ulink>
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
2024-03-30 [b154d8a6d] Add pg_basetype() function to extract a domain's base ty
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Add <link
|
|
linkend="functions-info-catalog-table"><function>pg_basetype()</function></link>
|
|
function to return a domain's base type (Steve Chavez)
|
|
<ulink url="&commit_baseurl;b154d8a6d">§</ulink>
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Nathan Bossart <nathan@postgresql.org>
|
|
2024-03-14 [d1162cfda] Add pg_column_toast_chunk_id().
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Add function <link
|
|
linkend="functions-admin-dbsize"><function>pg_column_toast_chunk_id()</function></link>
|
|
to return a value's <link
|
|
linkend="storage-toast"><acronym>TOAST</acronym></link> identifier
|
|
(Yugo Nagata)
|
|
<ulink url="&commit_baseurl;d1162cfda">§</ulink>
|
|
</para>
|
|
|
|
<para>
|
|
This returns <literal>NULL</literal> if the value is not stored
|
|
in <acronym>TOAST</acronym>.
|
|
</para>
|
|
</listitem>
|
|
|
|
</itemizedlist>
|
|
|
|
</sect3>
|
|
|
|
<sect3 id="release-17-plpgsql">
|
|
<title><link linkend="plpgsql">PL/pgSQL</link></title>
|
|
|
|
<itemizedlist>
|
|
|
|
<!--
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
2024-01-04 [5e8674dc8] In plpgsql, allow %TYPE and %ROWTYPE to be followed by a
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Allow plpgsql <link
|
|
linkend="plpgsql-declaration-type"><literal>%TYPE</literal></link>
|
|
and <literal>%ROWTYPE</literal> specifications to represent arrays
|
|
of non-array types (Quan Zongliang, Pavel Stehule)
|
|
<ulink url="&commit_baseurl;5e8674dc8">§</ulink>
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
2024-01-05 [43b46aae1] Clean up some edge cases in plpgsql's %TYPE parsing.
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Allow plpgsql <literal>%TYPE</literal> specification to reference
|
|
composite column (Tom Lane)
|
|
<ulink url="&commit_baseurl;43b46aae1">§</ulink>
|
|
</para>
|
|
</listitem>
|
|
|
|
</itemizedlist>
|
|
|
|
</sect3>
|
|
|
|
<sect3 id="release-17-libpq">
|
|
<title><link linkend="libpq">libpq</link></title>
|
|
|
|
<itemizedlist>
|
|
|
|
<!--
|
|
Author: Joe Conway <mail@joeconway.com>
|
|
2024-01-09 [a7be2a6c2] Add new function, PQchangePassword(), to libpq
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Add libpq function to change role passwords (Joe Conway)
|
|
<ulink url="&commit_baseurl;a7be2a6c2">§</ulink>
|
|
</para>
|
|
|
|
<para>
|
|
The new function, <link
|
|
linkend="libpq-PQchangePassword"><function>PQchangePassword()</function></link>,
|
|
hashes the new password before sending it to the server.
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Michael Paquier <michael@paquier.xyz>
|
|
2023-07-04 [28b572656] libpq: Add support for Close on portals and statements
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Add libpq functions to close portals and prepared statements
|
|
(Jelte Fennema-Nio)
|
|
<ulink url="&commit_baseurl;28b572656">§</ulink>
|
|
</para>
|
|
|
|
<para>
|
|
The functions are <link
|
|
linkend="libpq-PQclosePrepared"><function>PQclosePrepared()</function></link>,
|
|
<link
|
|
linkend="libpq-PQclosePortal"><function>PQclosePortal()</function></link>,
|
|
<link
|
|
linkend="libpq-PQsendClosePrepared"><function>PQsendClosePrepared()</function></link>,
|
|
and <link
|
|
linkend="libpq-PQsendClosePortal"><function>PQsendClosePortal()</function></link>.
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
|
|
2024-03-12 [61461a300] libpq: Add encrypted and non-blocking query cancellation
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Add libpq <acronym>API</acronym> which allows for blocking and
|
|
non-blocking <link linkend="libpq-cancel">cancel requests</link>,
|
|
with encryption if already in use (Jelte Fennema-Nio)
|
|
<ulink url="&commit_baseurl;61461a300">§</ulink>
|
|
</para>
|
|
|
|
<para>
|
|
Previously only blocking, unencrypted cancel requests were supported.
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Robert Haas <rhaas@postgresql.org>
|
|
2024-04-02 [f5e4dedfa] Expose PQsocketPoll via libpq
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
2024-06-13 [105024a47] Improve the granularity of PQsocketPoll's timeout parame
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Add libpq function <link
|
|
linkend="libpq-PQsocketPoll"><function>PQsocketPoll()</function></link>
|
|
to allow polling of network sockets (Tristan Partin, Tom Lane)
|
|
<ulink url="&commit_baseurl;f5e4dedfa">§</ulink>
|
|
<ulink url="&commit_baseurl;105024a47">§</ulink>
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Michael Paquier <michael@paquier.xyz>
|
|
2024-01-16 [4794c2d31] libpq: Add PQsendPipelineSync()
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Add libpq function <link
|
|
linkend="libpq-PQsendPipelineSync"><function>PQsendPipelineSync()</function></link>
|
|
to send a pipeline synchronization point (Anton Kirilov)
|
|
<ulink url="&commit_baseurl;4794c2d31">§</ulink>
|
|
</para>
|
|
|
|
<para>
|
|
This is similar to <link
|
|
linkend="libpq-PQpipelineSync"><function>PQpipelineSync()</function></link>
|
|
but it does not flush to the server unless the size threshold of
|
|
the output buffer is reached.
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
2024-04-06 [4643a2b26] Support retrieval of results in chunks with libpq.
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Add libpq function <link
|
|
linkend="libpq-PQsetChunkedRowsMode"><function>PQsetChunkedRowsMode()</function></link>
|
|
to allow retrieval of results in chunks (Daniel Vérité)
|
|
<ulink url="&commit_baseurl;4643a2b26">§</ulink>
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
|
|
2024-04-08 [d39a49c1e] Support TLS handshake directly without SSLRequest negoti
|
|
Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
|
|
2024-04-08 [91044ae4b] Send ALPN in TLS handshake, require it in direct SSL con
|
|
Author: Daniel Gustafsson <dgustafsson@postgresql.org>
|
|
2024-04-24 [44e27f0a6] Support disallowing SSL renegotiation when using LibreSS
|
|
Author: Daniel Gustafsson <dgustafsson@postgresql.org>
|
|
2024-04-24 [d80f2ce29] Support SSL_R_VERSION_TOO_LOW when using LibreSSL
|
|
Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
|
|
2024-04-29 [03a0e0d4b] libpq: Enforce ALPN in direct SSL connections
|
|
Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
|
|
2024-04-29 [17a834a04] Reject SSL connection if ALPN is used but there's no com
|
|
Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
|
|
2024-05-11 [407e0b023] Change ALPN protocol ID to IANA-approved "postgresql"
|
|
Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
|
|
2024-05-16 [fb5718f35] Remove option to fall back from direct to postgres SSL n
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Allow <acronym>TLS</acronym> connections without requiring a
|
|
network round-trip negotiation (Greg Stark, Heikki Linnakangas,
|
|
Peter Eisentraut, Michael Paquier, Daniel Gustafsson)
|
|
<ulink url="&commit_baseurl;d39a49c1e">§</ulink>
|
|
<ulink url="&commit_baseurl;91044ae4b">§</ulink>
|
|
<ulink url="&commit_baseurl;44e27f0a6">§</ulink>
|
|
<ulink url="&commit_baseurl;d80f2ce29">§</ulink>
|
|
<ulink url="&commit_baseurl;03a0e0d4b">§</ulink>
|
|
<ulink url="&commit_baseurl;17a834a04">§</ulink>
|
|
<ulink url="&commit_baseurl;407e0b023">§</ulink>
|
|
<ulink url="&commit_baseurl;fb5718f35">§</ulink>
|
|
</para>
|
|
|
|
<para>
|
|
This is enabled with the client-side option <link
|
|
linkend="libpq-connect-sslnegotiation"><literal>sslnegotiation=direct</literal></link>,
|
|
requires <acronym>ALPN</acronym>, and only works on
|
|
<productname>PostgreSQL</productname> 17 and later servers.
|
|
</para>
|
|
</listitem>
|
|
|
|
</itemizedlist>
|
|
|
|
</sect3>
|
|
|
|
<sect3 id="release-17-psql">
|
|
<title><xref linkend="app-psql"/></title>
|
|
|
|
<itemizedlist>
|
|
|
|
<!--
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
2023-11-13 [d1379ebf4] Improve default and empty privilege outputs in psql.
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Improve <application>psql</application> display of default and
|
|
empty privileges (Erik Wienhold, Laurenz Albe)
|
|
<ulink url="&commit_baseurl;d1379ebf4">§</ulink>
|
|
</para>
|
|
|
|
<para>
|
|
Command <literal>\dp</literal> now displays <literal>(none)</literal>
|
|
for empty privileges; default still displays as empty.
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
2023-11-13 [d1379ebf4] Improve default and empty privilege outputs in psql.
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Have backslash commands honor <literal>\pset null</literal> (Erik
|
|
Wienhold, Laurenz Albe)
|
|
<ulink url="&commit_baseurl;d1379ebf4">§</ulink>
|
|
</para>
|
|
|
|
<para>
|
|
Previously <literal>\pset null</literal> was ignored.
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Daniel Gustafsson <dgustafsson@postgresql.org>
|
|
2023-08-29 [f347ec76e] Allow \watch queries to stop on minimum rows returned
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Allow <application>psql</application>'s <literal>\watch</literal>
|
|
to stop after a minimum number of rows returned (Greg Sabino Mullane)
|
|
<ulink url="&commit_baseurl;f347ec76e">§</ulink>
|
|
</para>
|
|
|
|
<para>
|
|
The parameter is <literal>min_rows</literal>.
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Robert Haas <rhaas@postgresql.org>
|
|
2024-04-02 [cafe10565] Allow SIGINT to cancel psql database reconnections.
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Allow <application>psql</application> connection attempts to be
|
|
canceled with control-C (Tristan Partin)
|
|
<ulink url="&commit_baseurl;cafe10565">§</ulink>
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
2024-04-06 [90f517821] Re-implement psql's FETCH_COUNT feature atop libpq's chu
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Allow <application>psql</application> to honor
|
|
<literal>FETCH_COUNT</literal> for non-<command>SELECT</command>
|
|
queries (Daniel Vérité)
|
|
<ulink url="&commit_baseurl;90f517821">§</ulink>
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Michael Paquier <michael@paquier.xyz>
|
|
2023-06-30 [c951e9042] Add tab completion for CREATE SCHEMA in psql
|
|
Author: Michael Paquier <michael@paquier.xyz>
|
|
2023-10-13 [d16eb83ab] psql: Add completion support for AT [ LOCAL | TIME ZONE
|
|
Author: Dean Rasheed <dean.a.rasheed@gmail.com>
|
|
2023-11-28 [cd3424748] psql: Add tab completion for view options.
|
|
Author: Michael Paquier <michael@paquier.xyz>
|
|
2023-11-16 [816f10564] psql: Add some completion support for CREATE TABLE .. AS
|
|
Author: Alexander Korotkov <akorotkov@postgresql.org>
|
|
2024-03-16 [927332b95] psql: fix variable existence tab completion
|
|
Author: Masahiko Sawada <msawada@postgresql.org>
|
|
2024-03-28 [f1bb9284f] Improve tab completion for ALTER TABLE ALTER COLUMN SET
|
|
Author: Masahiko Sawada <msawada@postgresql.org>
|
|
2024-04-08 [304b6b1a6] Add more tab completion support for ALTER DEFAULT PRIVIL
|
|
Author: Michael Paquier <michael@paquier.xyz>
|
|
2024-05-01 [2800fbb2b] Add tab completion for EXPLAIN (MEMORY|SERIALIZE)
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Improve <application>psql</application> tab completion (Dagfinn
|
|
Ilmari Mannsåker, Gilles Darold, Christoph Heiss, Steve Chavez,
|
|
Vignesh C, Pavel Borisov, Jian He)
|
|
<ulink url="&commit_baseurl;c951e9042">§</ulink>
|
|
<ulink url="&commit_baseurl;d16eb83ab">§</ulink>
|
|
<ulink url="&commit_baseurl;cd3424748">§</ulink>
|
|
<ulink url="&commit_baseurl;816f10564">§</ulink>
|
|
<ulink url="&commit_baseurl;927332b95">§</ulink>
|
|
<ulink url="&commit_baseurl;f1bb9284f">§</ulink>
|
|
<ulink url="&commit_baseurl;304b6b1a6">§</ulink>
|
|
<ulink url="&commit_baseurl;2800fbb2b">§</ulink>
|
|
</para>
|
|
</listitem>
|
|
|
|
</itemizedlist>
|
|
|
|
</sect3>
|
|
|
|
<sect3 id="release-17-server-apps">
|
|
<title>Server Applications</title>
|
|
|
|
<itemizedlist>
|
|
|
|
<!--
|
|
Author: Robert Haas <rhaas@postgresql.org>
|
|
2024-01-11 [ee1bfd168] Add new pg_walsummary tool.
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Add application <link
|
|
linkend="app-pgwalsummary"><application>pg_walsummary</application></link>
|
|
to dump <acronym>WAL</acronym> summary files (Robert Haas)
|
|
<ulink url="&commit_baseurl;ee1bfd168">§</ulink>
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
2024-04-01 [a45c78e32] Rearrange pg_dump's handling of large objects for better
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Allow <link
|
|
linkend="app-pgdump"><application>pg_dump</application></link>'s
|
|
large objects to be restorable in batches (Tom Lane)
|
|
<ulink url="&commit_baseurl;a45c78e32">§</ulink>
|
|
</para>
|
|
|
|
<para>
|
|
This allows the restoration of many large objects to avoid
|
|
transaction limits and to be restored in parallel.
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Dean Rasheed <dean.a.rasheed@gmail.com>
|
|
2024-03-20 [522ed12f7] Add "- -exclude-extension" to pg_dump's options.
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Add <application>pg_dump</application> option
|
|
<option>--exclude-extension</option> (Ayush Vatsa)
|
|
<ulink url="&commit_baseurl;522ed12f7">§</ulink>
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Daniel Gustafsson <dgustafsson@postgresql.org>
|
|
2023-11-29 [a5cf808be] Read include/exclude commands for dump/restore from file
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Allow <link
|
|
linkend="app-pgdump"><application>pg_dump</application></link>, <link
|
|
linkend="app-pg-dumpall"><application>pg_dumpall</application></link>,
|
|
and <link
|
|
linkend="app-pgrestore"><application>pg_restore</application></link>
|
|
to specify include/exclude objects in a file (Pavel Stehule,
|
|
Daniel Gustafsson)
|
|
<ulink url="&commit_baseurl;a5cf808be">§</ulink>
|
|
</para>
|
|
|
|
<para>
|
|
The option is called <option>--filter</option>.
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Nathan Bossart <nathan@postgresql.org>
|
|
2023-09-06 [8c16ad3b4] Allow using syncfs() in frontend utilities.
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Add the <option>--sync-method</option> parameter to several client
|
|
applications (Justin Pryzby, Nathan Bossart)
|
|
<ulink url="&commit_baseurl;8c16ad3b4">§</ulink>
|
|
</para>
|
|
|
|
<para>
|
|
The applications are <link
|
|
linkend="app-initdb"><application>initdb</application></link>, <link
|
|
linkend="app-pgbasebackup"><application>pg_basebackup</application></link>,
|
|
<link
|
|
linkend="app-pgchecksums"><application>pg_checksums</application></link>,
|
|
<link linkend="app-pgdump"><application>pg_dump</application></link>,
|
|
<link linkend="app-pgrewind"><application>pg_rewind</application></link>,
|
|
and <link
|
|
linkend="pgupgrade"><application>pg_upgrade</application></link>.
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
2024-04-01 [959b38d77] Invent - -transaction-size option for pg_restore.
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Add <link
|
|
linkend="app-pgrestore"><application>pg_restore</application></link>
|
|
option <option>--transaction-size</option> to allow object restores
|
|
in transaction batches (Tom Lane)
|
|
<ulink url="&commit_baseurl;959b38d77">§</ulink>
|
|
</para>
|
|
|
|
<para>
|
|
This allows the performance benefits of transaction batches without
|
|
the problems of excessively large transaction blocks.
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Nathan Bossart <nathan@postgresql.org>
|
|
2024-03-25 [3ff01b2b6] Adjust pgbench option for debug mode.
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Change <link
|
|
linkend="pgbench"><application>pgbench</application></link> debug
|
|
mode option from <option>-d</option> to <option>--debug</option>
|
|
(Greg Sabino Mullane)
|
|
<ulink url="&commit_baseurl;3ff01b2b6">§</ulink>
|
|
</para>
|
|
|
|
<para>
|
|
Option <option>-d</option> is now used for the database name,
|
|
and the new <option>--dbname</option> option can be used as well.
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Tatsuo Ishii <ishii@postgresql.org>
|
|
2023-08-30 [3c662643c] Allow pgbench to exit immediately when any client is abo
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Add pgbench option <option>--exit-on-abort</option> to exit after
|
|
any client aborts (Yugo Nagata)
|
|
<ulink url="&commit_baseurl;3c662643c">§</ulink>
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Michael Paquier <michael@paquier.xyz>
|
|
2024-01-24 [94edfe250] pgbench: Add \syncpipeline
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Add pgbench command <literal>\syncpipeline</literal> to allow
|
|
sending of sync messages (Anthonin Bonnefoy)
|
|
<ulink url="&commit_baseurl;94edfe250">§</ulink>
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Michael Paquier <michael@paquier.xyz>
|
|
2023-07-19 [3f8c98d0b] pg_archivecleanup: Add - -clean-backup-history
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Allow <link
|
|
linkend="pgarchivecleanup"><application>pg_archivecleanup</application></link>
|
|
to remove backup history files (Atsushi Torikoshi)
|
|
<ulink url="&commit_baseurl;3f8c98d0b">§</ulink>
|
|
</para>
|
|
|
|
<para>
|
|
The option is <option>--clean-backup-history</option>.
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Michael Paquier <michael@paquier.xyz>
|
|
2023-06-30 [dd7c60f19] Introduce long options in pg_archivecleanup
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Add some long options to <application>pg_archivecleanup</application>
|
|
(Atsushi Torikoshi)
|
|
<ulink url="&commit_baseurl;dd7c60f19">§</ulink>
|
|
</para>
|
|
|
|
<para>
|
|
The long options are <option>--debug</option>,
|
|
<option>--dry-run</option>, and <option>--strip-extension</option>.
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Daniel Gustafsson <dgustafsson@postgresql.org>
|
|
2023-09-21 [cca97ce6a] Allow dbname in pg_basebackup/pg_receivewal connstring
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Allow <link
|
|
linkend="app-pgbasebackup"><application>pg_basebackup</application></link>
|
|
and <link
|
|
linkend="app-pgreceivewal"><application>pg_receivewal</application></link>
|
|
to use dbname in their connection specification (Jelte Fennema-Nio)
|
|
<ulink url="&commit_baseurl;cca97ce6a">§</ulink>
|
|
</para>
|
|
|
|
<para>
|
|
This is useful for connection poolers that are sensitive to the
|
|
database name.
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Thomas Munro <tmunro@postgresql.org>
|
|
2024-03-06 [d93627bcb] Add - -copy-file-range option to pg_upgrade.
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Add <link
|
|
linkend="pgupgrade"><application>pg_upgrade</application></link>
|
|
option <option>--copy-file-range</option> (Thomas Munro)
|
|
<ulink url="&commit_baseurl;d93627bcb">§</ulink>
|
|
</para>
|
|
|
|
<para>
|
|
This is supported on <systemitem class="osname">Linux</systemitem>
|
|
and <systemitem class="osname">FreeBSD</systemitem>.
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Alexander Korotkov <akorotkov@postgresql.org>
|
|
2024-03-25 [47f99a407] reindexdb: Add the index-level REINDEX with multiple job
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Allow <link
|
|
linkend="app-reindexdb"><application>reindexdb</application></link>
|
|
<option>--index</option> to process indexes from different tables
|
|
in parallel (Maxim Orlov, Svetlana Derevyanko, Alexander Korotkov)
|
|
<ulink url="&commit_baseurl;47f99a407">§</ulink>
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Nathan Bossart <nathan@postgresql.org>
|
|
2024-03-11 [24c928ad9] reindexdb: Allow specifying objects to process in all da
|
|
Author: Nathan Bossart <nathan@postgresql.org>
|
|
2024-03-11 [648928c79] vacuumdb: Allow specifying objects to process in all dat
|
|
Author: Nathan Bossart <nathan@postgresql.org>
|
|
2024-03-11 [1b49d56d3] clusterdb: Allow specifying tables to process in all dat
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Allow <link linkend="app-reindexdb">reindexdb</link>,
|
|
<link linkend="app-vacuumdb">vacuumdb</link>, and <link
|
|
linkend="app-clusterdb">clusterdb</link> to process objects in all
|
|
databases matching a pattern (Nathan Bossart)
|
|
<ulink url="&commit_baseurl;24c928ad9">§</ulink>
|
|
<ulink url="&commit_baseurl;648928c79">§</ulink>
|
|
<ulink url="&commit_baseurl;1b49d56d3">§</ulink>
|
|
</para>
|
|
|
|
<para>
|
|
The new option <option>--all</option> controls this behavior.
|
|
</para>
|
|
</listitem>
|
|
|
|
</itemizedlist>
|
|
|
|
</sect3>
|
|
|
|
<sect3 id="release-17-source-code">
|
|
<title>Source Code</title>
|
|
|
|
<itemizedlist>
|
|
|
|
<!--
|
|
Author: Michael Paquier <michael@paquier.xyz>
|
|
2023-07-03 [8e278b657] Remove support for OpenSSL 1.0.1
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Remove support for <productname>OpenSSL</productname> 1.0.1
|
|
(Michael Paquier)
|
|
<ulink url="&commit_baseurl;8e278b657">§</ulink>
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Peter Eisentraut <peter@eisentraut.org>
|
|
2023-11-17 [284cbaea7] Allow tests to pass in OpenSSL FIPS mode (TAP tests)
|
|
Author: Peter Eisentraut <peter@eisentraut.org>
|
|
2023-11-17 [3c44e7d8d] Allow tests to pass in OpenSSL FIPS mode (rest)
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Allow tests to pass in <productname>OpenSSL</productname>
|
|
<acronym>FIPS</acronym> mode (Peter Eisentraut)
|
|
<ulink url="&commit_baseurl;284cbaea7">§</ulink>
|
|
<ulink url="&commit_baseurl;3c44e7d8d">§</ulink>
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Nathan Bossart <nathan@postgresql.org>
|
|
2024-04-06 [792752af4] Optimize pg_popcount() with AVX-512 instructions.
|
|
Author: Nathan Bossart <nathan@postgresql.org>
|
|
2024-04-06 [41c51f0c6] Optimize visibilitymap_count() with AVX-512 instructions
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Use <acronym>CPU AVX</acronym>-512 instructions for bit counting
|
|
(Paul Amonson, Nathan Bossart, Ants Aasma)
|
|
<ulink url="&commit_baseurl;792752af4">§</ulink>
|
|
<ulink url="&commit_baseurl;41c51f0c6">§</ulink>
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Thomas Munro <tmunro@postgresql.org>
|
|
2024-01-25 [820b5af73] jit: Require at least LLVM 10.
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Require <productname><acronym>LLVM</acronym></productname> version
|
|
10 or later (Thomas Munro)
|
|
<ulink url="&commit_baseurl;820b5af73">§</ulink>
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: John Naylor <john.naylor@postgresql.org>
|
|
2023-08-10 [4d14ccd6a] Use native CRC instructions on 64-bit LoongArch
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Use native <acronym>CRC</acronym> instructions on 64-bit
|
|
<productname>LoongArch</productname> CPUs (Xudong Yang)
|
|
<ulink url="&commit_baseurl;4d14ccd6a">§</ulink>
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
|
|
2024-02-28 [0b16bb877] Remove AIX support
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Remove <systemitem class="osname"><acronym>AIX</acronym></systemitem>
|
|
support (Heikki Linnakangas)
|
|
<ulink url="&commit_baseurl;0b16bb877">§</ulink>
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Michael Paquier <michael@paquier.xyz>
|
|
2023-12-20 [1301c80b2] Remove MSVC scripts
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Remove the <productname>Microsoft Visual
|
|
Studio</productname>-specific <productname>PostgreSQL</productname>
|
|
build option (Michael Paquier)
|
|
<ulink url="&commit_baseurl;1301c80b2">§</ulink>
|
|
</para>
|
|
|
|
<para>
|
|
<productname>Meson</productname> is now the only available method
|
|
for <productname>Visual Studio</productname> builds.
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Thomas Munro <tmunro@postgresql.org>
|
|
2023-07-12 [68a4b58ec] Remove - -disable-thread-safety and related code.
|
|
Author: Thomas Munro <tmunro@postgresql.org>
|
|
2023-07-12 [ce0b0fa3e] Doc: Adjust libpq docs about thread safety.
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Remove configure option <option>--disable-thread-safety</option>
|
|
(Thomas Munro, Heikki Linnakangas)
|
|
<ulink url="&commit_baseurl;68a4b58ec">§</ulink>
|
|
<ulink url="&commit_baseurl;ce0b0fa3e">§</ulink>
|
|
</para>
|
|
|
|
<para>
|
|
We now assume all supported platforms have sufficient thread support.
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
|
|
2024-02-28 [1c1eec0f2] Remove configure - -with-CC option
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Remove <application>configure</application> option
|
|
<option>--with-CC</option> (Heikki Linnakangas)
|
|
<ulink url="&commit_baseurl;1c1eec0f2">§</ulink>
|
|
</para>
|
|
|
|
<para>
|
|
Setting the <envar>CC</envar> environment variable is now the only
|
|
supported method for specifying the compiler.
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: David Rowley <drowley@postgresql.org>
|
|
2023-10-26 [f0efa5aec] Introduce the concept of read-only StringInfos
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
User-defined data type receive functions will no longer receive
|
|
their data null-terminated (David Rowley)
|
|
<ulink url="&commit_baseurl;f0efa5aec">§</ulink>
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Andrew Dunstan <andrew@dunslane.net>
|
|
2024-04-04 [3311ea86e] Introduce a non-recursive JSON parser
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Add incremental <type>JSON</type> parser for use with huge
|
|
<type>JSON</type> documents (Andrew Dunstan)
|
|
<ulink url="&commit_baseurl;3311ea86e">§</ulink>
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Nathan Bossart <nathan@postgresql.org>
|
|
2024-02-28 [363eb0599] Convert README to Markdown.
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Convert top-level <filename>README</filename> file to
|
|
<productname>Markdown</productname> (Nathan Bossart)
|
|
<ulink url="&commit_baseurl;363eb0599">§</ulink>
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
2023-12-22 [e2b73f4a4] Stop generating plain-text INSTALL instructions.
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Remove no longer needed top-level <filename>INSTALL</filename> file
|
|
(Tom Lane)
|
|
<ulink url="&commit_baseurl;e2b73f4a4">§</ulink>
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Peter Eisentraut <peter@eisentraut.org>
|
|
2023-11-06 [721856ff2] Remove distprep
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Remove <application>make</application>'s <literal>distprep</literal>
|
|
option (Peter Eisentraut)
|
|
<ulink url="&commit_baseurl;721856ff2">§</ulink>
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Peter Eisentraut <peter@eisentraut.org>
|
|
2024-01-23 [79b03dbb3] Support shared libraries on Android (using make)
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Add <application>make</application> support for
|
|
<productname>Android</productname> shared libraries (Peter
|
|
Eisentraut)
|
|
<ulink url="&commit_baseurl;79b03dbb3">§</ulink>
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Michael Paquier <michael@paquier.xyz>
|
|
2024-01-22 [d86d20f0b] Add backend support for injection points
|
|
Author: Michael Paquier <michael@paquier.xyz>
|
|
2024-03-04 [37b369dc6] injection_points: Add wait and wakeup of processes
|
|
Author: Michael Paquier <michael@paquier.xyz>
|
|
2024-04-08 [f587338de] injection_points: Introduce runtime conditions
|
|
Author: Noah Misch <noah@leadboat.com>
|
|
2024-06-27 [bb93640a6] Add wait event type "InjectionPoint", a custom
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Add backend support for injection points (Michael Paquier)
|
|
<ulink url="&commit_baseurl;d86d20f0b">§</ulink>
|
|
<ulink url="&commit_baseurl;37b369dc6">§</ulink>
|
|
<ulink url="&commit_baseurl;f587338de">§</ulink>
|
|
<ulink url="&commit_baseurl;bb93640a6">§</ulink>
|
|
</para>
|
|
|
|
<para>
|
|
This is used for server debugging and they must be enabled at server
|
|
compile time.
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Nathan Bossart <nathan@postgresql.org>
|
|
2024-01-19 [8b2bcf3f2] Introduce the dynamic shared memory registry.
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Add dynamic shared memory registry (Nathan Bossart)
|
|
<ulink url="&commit_baseurl;8b2bcf3f2">§</ulink>
|
|
</para>
|
|
|
|
<para>
|
|
This allows shared libraries which are not initialized at startup
|
|
to coordinate dynamic shared memory access.
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Michael Paquier <michael@paquier.xyz>
|
|
2024-04-04 [2a217c371] Coordinate emit_log_hook and all log destinations to sha
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Fix <literal>emit_log_hook</literal> to use the same time value as
|
|
other log records for the same query (Kambam Vinay, Michael Paquier)
|
|
<ulink url="&commit_baseurl;2a217c371">§</ulink>
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
2024-01-25 [7014c9a4b] Doc: improve documentation for jsonpath behavior.
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Improve documentation for using <literal>jsonpath</literal> for
|
|
predicate checks (David Wheeler)
|
|
<ulink url="&commit_baseurl;7014c9a4b">§</ulink>
|
|
</para>
|
|
</listitem>
|
|
|
|
</itemizedlist>
|
|
|
|
</sect3>
|
|
|
|
<sect3 id="release-17-modules">
|
|
<title>Additional Modules</title>
|
|
|
|
<itemizedlist>
|
|
|
|
<!--
|
|
Author: Etsuro Fujita <efujita@postgresql.org>
|
|
2023-08-15 [9e9931d2b] Re-allow FDWs and custom scan providers to replace joins
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Allow joins with non-join qualifications to be pushed down to
|
|
foreign servers and custom scans (Richard Guo, Etsuro Fujita)
|
|
<ulink url="&commit_baseurl;9e9931d2b">§</ulink>
|
|
</para>
|
|
|
|
<para>
|
|
Foreign data wrappers and custom scans will need to be modified to
|
|
handle these cases.
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Alexander Korotkov <akorotkov@postgresql.org>
|
|
2023-12-05 [824dbea3e] Add support for deparsing semi-joins to contrib/postgres
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Allow pushdown of <literal>EXISTS</literal> and <literal>IN</literal>
|
|
subqueries to <xref linkend="postgres-fdw"/> foreign servers
|
|
(Alexander Pyhalov)
|
|
<ulink url="&commit_baseurl;824dbea3e">§</ulink>
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: David Rowley <drowley@postgresql.org>
|
|
2023-11-02 [cac169d68] Increase DEFAULT_FDW_TUPLE_COST from 0.01 to 0.2
|
|
Author: John Naylor <john.naylor@postgresql.org>
|
|
2024-01-11 [f7f694b21] Update documentation of default fdw_tuple_cost
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Increase the default foreign data wrapper tuple cost (David Rowley,
|
|
Umair Shahid)
|
|
<ulink url="&commit_baseurl;cac169d68">§</ulink>
|
|
<ulink url="&commit_baseurl;f7f694b21">§</ulink>
|
|
</para>
|
|
|
|
<para>
|
|
This value is used by the optimizer.
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Noah Misch <noah@leadboat.com>
|
|
2024-01-08 [d3c5f37dd] Make dblink interruptible, via new libpqsrv APIs.
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Allow <link linkend="dblink"><application>dblink</application></link>
|
|
database operations to be interrupted (Noah Misch)
|
|
<ulink url="&commit_baseurl;d3c5f37dd">§</ulink>
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
2024-03-21 [485f0aa85] Add hash support functions and hash opclass for contrib/
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Allow the creation of hash indexes on <application><xref
|
|
linkend="ltree"/></application> columns (Tommy Pavlicek)
|
|
<ulink url="&commit_baseurl;485f0aa85">§</ulink>
|
|
</para>
|
|
|
|
<para>
|
|
This also enables hash join and hash aggregation on
|
|
<application>ltree</application> columns.
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Michael Paquier <michael@paquier.xyz>
|
|
2023-09-20 [59f47fb98] unaccent: Add support for quoted translated characters
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Allow <application><xref linkend="unaccent"/></application> character
|
|
translation rules to contain whitespace and quotes (Michael Paquier)
|
|
<ulink url="&commit_baseurl;59f47fb98">§</ulink>
|
|
</para>
|
|
|
|
<para>
|
|
The syntax for the <filename>unaccent.rules</filename> file has
|
|
changed.
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Alexander Korotkov <akorotkov@postgresql.org>
|
|
2023-10-28 [5ae208720] Teach contrib/amcheck to check the unique constraint vio
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Allow <application><xref linkend="amcheck"/></application>
|
|
to check for unique constraint violations using new option
|
|
<option>--checkunique</option> (Anastasia Lubennikova, Pavel Borisov,
|
|
Maxim Orlov)
|
|
<ulink url="&commit_baseurl;5ae208720">§</ulink>
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Peter Eisentraut <peter@eisentraut.org>
|
|
2023-11-07 [3c551ebed] citext: Allow tests to pass in OpenSSL FIPS mode
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Allow <application><xref linkend="citext"/></application> tests to
|
|
pass in OpenSSL <acronym>FIPS</acronym> mode (Peter Eisentraut)
|
|
<ulink url="&commit_baseurl;3c551ebed">§</ulink>
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Peter Eisentraut <peter@eisentraut.org>
|
|
2023-11-17 [795592865] pgcrypto: Allow tests to pass in OpenSSL FIPS mode
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Allow <application><xref linkend="pgcrypto"/></application> tests
|
|
to pass in OpenSSL <acronym>FIPS</acronym> mode (Peter Eisentraut)
|
|
<ulink url="&commit_baseurl;795592865">§</ulink>
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Nathan Bossart <nathan@postgresql.org>
|
|
2023-11-27 [75680c3d8] Retire a few backwards compatibility macros.
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Remove some unused <link linkend="spi"><acronym>SPI</acronym></link>
|
|
macros (Bharath Rupireddy)
|
|
<ulink url="&commit_baseurl;75680c3d8">§</ulink>
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
2023-10-20 [2b5154bea] Extend ALTER OPERATOR to allow setting more optimization
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Allow <link linkend="sql-alteroperator"><command>ALTER
|
|
OPERATOR</command></link> to set more optimization attributes
|
|
(Tommy Pavlicek)
|
|
<ulink url="&commit_baseurl;2b5154bea">§</ulink>
|
|
</para>
|
|
|
|
<para>
|
|
This is useful for extensions.
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Michael Paquier <michael@paquier.xyz>
|
|
2023-07-31 [c9af05465] Support custom wait events for wait event type "Extensio
|
|
Author: Michael Paquier <michael@paquier.xyz>
|
|
2023-10-04 [c8e318b1b] worker_spi: Rename custom wait event to "WorkerSpiMain"
|
|
Author: Michael Paquier <michael@paquier.xyz>
|
|
2023-10-05 [d61f2538a] postgres_fdw: Replace WAIT_EVENT_EXTENSION with custom w
|
|
Author: Michael Paquier <michael@paquier.xyz>
|
|
2023-10-05 [c789f0f6c] dblink: Replace WAIT_EVENT_EXTENSION with custom wait ev
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Allow extensions to define <link
|
|
linkend="xfunc-addin-wait-events">custom wait events</link>
|
|
(Masahiro Ikeda)
|
|
<ulink url="&commit_baseurl;c9af05465">§</ulink>
|
|
<ulink url="&commit_baseurl;c8e318b1b">§</ulink>
|
|
<ulink url="&commit_baseurl;d61f2538a">§</ulink>
|
|
<ulink url="&commit_baseurl;c789f0f6c">§</ulink>
|
|
</para>
|
|
|
|
<para>
|
|
Custom wait events have been added to <application><xref
|
|
linkend="postgres-fdw"/></application> and <application><xref
|
|
linkend="dblink"/></application>.
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Thomas Munro <tmunro@postgresql.org>
|
|
2024-04-08 [13453eedd] Add pg_buffercache_evict() function for testing.
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Add <application><xref linkend="pgbuffercache"/></application>
|
|
function <function>pg_buffercache_evict()</function> to allow shared
|
|
buffer eviction (Palak Chaturvedi, Thomas Munro)
|
|
<ulink url="&commit_baseurl;13453eedd">§</ulink>
|
|
</para>
|
|
|
|
<para>
|
|
This is useful for testing.
|
|
</para>
|
|
</listitem>
|
|
|
|
</itemizedlist>
|
|
|
|
<sect4 id="release-17-pgstatstatements">
|
|
<title><link linkend="pgstatstatements"><application>pg_stat_statements</application></link></title>
|
|
|
|
<itemizedlist>
|
|
|
|
<!--
|
|
Author: Michael Paquier <michael@paquier.xyz>
|
|
2023-09-28 [11c34b342] Show parameters of CALL as constants in pg_stat_statemen
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Replace <link linkend="sql-call"><command>CALL</command></link>
|
|
parameters in <application>pg_stat_statements</application> with
|
|
placeholders (Sami Imseih)
|
|
<ulink url="&commit_baseurl;11c34b342">§</ulink>
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Michael Paquier <michael@paquier.xyz>
|
|
2023-07-27 [31de7e60d] Show savepoint names as constants in pg_stat_statements
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Replace savepoint names stored in
|
|
<structname>pg_stat_statements</structname> with placeholders
|
|
(Greg Sabino Mullane)
|
|
<ulink url="&commit_baseurl;31de7e60d">§</ulink>
|
|
</para>
|
|
|
|
<para>
|
|
This greatly reduces the number of entries needed to record <link
|
|
linkend="sql-savepoint"><command>SAVEPOINT</command></link>,
|
|
<link linkend="sql-release-savepoint"><command>RELEASE
|
|
SAVEPOINT</command></link>, and <link
|
|
linkend="sql-rollback-to"><command>ROLLBACK TO
|
|
SAVEPOINT</command></link> commands.
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Michael Paquier <michael@paquier.xyz>
|
|
2023-08-12 [638d42a3c] Show GIDs of two-phase commit commands as constants in p
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Replace the two-phase commit <acronym>GID</acronym>s stored in
|
|
<structname>pg_stat_statements</structname> with placeholders
|
|
(Michael Paquier)
|
|
<ulink url="&commit_baseurl;638d42a3c">§</ulink>
|
|
</para>
|
|
|
|
<para>
|
|
This greatly reduces the number of entries needed to record
|
|
<link linkend="sql-prepare-transaction"><command>PREPARE
|
|
TRANSACTION</command></link>, <link
|
|
linkend="sql-commit-prepared"><command>COMMIT
|
|
PREPARED</command></link>, and <link
|
|
linkend="sql-rollback-prepared"><command>ROLLBACK
|
|
PREPARED</command></link>.
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Michael Paquier <michael@paquier.xyz>
|
|
2023-08-27 [bb45156f3] Show names of DEALLOCATE as constants in pg_stat_stateme
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Track <link
|
|
linkend="sql-deallocate"><command>DEALLOCATE</command></link>
|
|
in <structname>pg_stat_statements</structname> (Dagfinn Ilmari
|
|
Mannsåker, Michael Paquier)
|
|
<ulink url="&commit_baseurl;bb45156f3">§</ulink>
|
|
</para>
|
|
|
|
<para>
|
|
<command>DEALLOCATE</command> names are stored in
|
|
<structname>pg_stat_statements</structname> as placeholders.
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Michael Paquier <michael@paquier.xyz>
|
|
2023-10-19 [295c36c0c] Add local_blk_{read|write}_time I/O timing statistics fo
|
|
Author: Michael Paquier <michael@paquier.xyz>
|
|
2023-10-19 [5147ab1dd] pg_stat_statements: Add local_blk_{read|write}_time
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Add local I/O block read/write timing statistics columns of
|
|
<structname>pg_stat_statements</structname> (Nazir Bilal Yavuz)
|
|
<ulink url="&commit_baseurl;295c36c0c">§</ulink>
|
|
<ulink url="&commit_baseurl;5147ab1dd">§</ulink>
|
|
</para>
|
|
|
|
<para>
|
|
The new columns are <structfield>local_blk_read_time</structfield>
|
|
and <structfield>local_blk_write_time</structfield>.
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Daniel Gustafsson <dgustafsson@postgresql.org>
|
|
2023-09-08 [5a3423ad8] Add JIT deform_counter
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Add <acronym>JIT</acronym> deform_counter details to
|
|
<structname>pg_stat_statements</structname> (Dmitry Dolgov)
|
|
<ulink url="&commit_baseurl;5a3423ad8">§</ulink>
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Alexander Korotkov <akorotkov@postgresql.org>
|
|
2023-11-27 [dc9f8a798] Track statement entry timestamp in contrib/pg_stat_state
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Add optional fourth argument (<literal>minmax_only</literal>)
|
|
to <function>pg_stat_statements_reset()</function> to allow for
|
|
the resetting of only min/max statistics (Andrei Zubkov)
|
|
<ulink url="&commit_baseurl;dc9f8a798">§</ulink>
|
|
</para>
|
|
|
|
<para>
|
|
This argument defaults to <literal>false</literal>.
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Alexander Korotkov <akorotkov@postgresql.org>
|
|
2023-11-27 [dc9f8a798] Track statement entry timestamp in contrib/pg_stat_state
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Add <structname>pg_stat_statements</structname>
|
|
columns <structfield>stats_since</structfield> and
|
|
<structfield>minmax_stats_since</structfield> to track entry
|
|
creation time and last min/max reset time (Andrei Zubkov)
|
|
<ulink url="&commit_baseurl;dc9f8a798">§</ulink>
|
|
</para>
|
|
</listitem>
|
|
|
|
</itemizedlist>
|
|
|
|
</sect4>
|
|
|
|
</sect3>
|
|
|
|
</sect2>
|
|
|
|
<sect2 id="release-17-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>Adnan Dautovic</member>
|
|
<member>Aidar Imamov</member>
|
|
<member>Ajin Cherian</member>
|
|
<member>Akash Shankaran</member>
|
|
<member>Akshat Jaimini</member>
|
|
<member>Alaa Attya</member>
|
|
<member>Aleksander Alekseev</member>
|
|
<member>Aleksej Orlov</member>
|
|
<member>Alena Rybakina</member>
|
|
<member>Alex Hsieh</member>
|
|
<member>Alex Malek</member>
|
|
<member>Alex Shulgin</member>
|
|
<member>Alex Work</member>
|
|
<member>Alexander Korotkov</member>
|
|
<member>Alexander Kozhemyakin</member>
|
|
<member>Alexander Kuzmenkov</member>
|
|
<member>Alexander Lakhin</member>
|
|
<member>Alexander Pyhalov</member>
|
|
<member>Alexey Palazhchenko</member>
|
|
<member>Alfons Kemper</member>
|
|
<member>Álvaro Herrera</member>
|
|
<member>Amadeo Gallardo</member>
|
|
<member>Amit Kapila</member>
|
|
<member>Amit Langote</member>
|
|
<member>Amul Sul</member>
|
|
<member>Anastasia Lubennikova</member>
|
|
<member>Anatoly Zaretsky</member>
|
|
<member>Andreas Karlsson</member>
|
|
<member>Andreas Ulbrich</member>
|
|
<member>Andrei Lepikhov</member>
|
|
<member>Andrei Zubkov</member>
|
|
<member>Andres Freund</member>
|
|
<member>Andrew Alsup</member>
|
|
<member>Andrew Atkinson</member>
|
|
<member>Andrew Bille</member>
|
|
<member>Andrew Dunstan</member>
|
|
<member>Andrew Kane</member>
|
|
<member>Andrey Borodin</member>
|
|
<member>Andrey Rachitskiy</member>
|
|
<member>Andrey Sokolov</member>
|
|
<member>Andy Fan</member>
|
|
<member>Anthonin Bonnefoy</member>
|
|
<member>Anthony Hsu</member>
|
|
<member>Anton Kirilov</member>
|
|
<member>Anton Melnikov</member>
|
|
<member>Anton Voloshin</member>
|
|
<member>Antonin Houska</member>
|
|
<member>Ants Aasma</member>
|
|
<member>Antti Lampinen</member>
|
|
<member>Aramaki Zyake</member>
|
|
<member>Artem Anisimov</member>
|
|
<member>Artur Zakirov</member>
|
|
<member>Ashutosh Bapat</member>
|
|
<member>Ashutosh Sharma</member>
|
|
<member>Atsushi Torikoshi</member>
|
|
<member>Attila Gulyás</member>
|
|
<member>Ayush Tiwari</member>
|
|
<member>Ayush Vatsa</member>
|
|
<member>Bartosz Chrol</member>
|
|
<member>Benoît Ryder</member>
|
|
<member>Bernd Helmle</member>
|
|
<member>Bertrand Drouvot</member>
|
|
<member>Bharath Rupireddy</member>
|
|
<member>Bo Andreson</member>
|
|
<member>Boshomi Phenix</member>
|
|
<member>Bowen Shi</member>
|
|
<member>Boyu Yang</member>
|
|
<member>Bruce Momjian</member>
|
|
<member>Cameron Vogt</member>
|
|
<member>Cary Huang</member>
|
|
<member>Cédric Villemain</member>
|
|
<member>Changhong Fei</member>
|
|
<member>Chantal Keller</member>
|
|
<member>Chapman Flack</member>
|
|
<member>Chengxi Sun</member>
|
|
<member>Chris Travers</member>
|
|
<member>Christian Maurer</member>
|
|
<member>Christian Stork</member>
|
|
<member>Christoph Berg</member>
|
|
<member>Christoph Heiss</member>
|
|
<member>Christophe Courtois</member>
|
|
<member>Christopher Kline</member>
|
|
<member>Claudio Freire</member>
|
|
<member>Colin Caine</member>
|
|
<member>Corey Huinker</member>
|
|
<member>Curt Kolovson</member>
|
|
<member>Dag Lem</member>
|
|
<member>Dagfinn Ilmari Mannsåker</member>
|
|
<member>Damir Belyalov</member>
|
|
<member>Daniel Fredouille</member>
|
|
<member>Daniel Gustafsson</member>
|
|
<member>Daniel Shelepanov</member>
|
|
<member>Daniel Vérité</member>
|
|
<member>Daniel Westermann</member>
|
|
<member>Darren Rush</member>
|
|
<member>Dave Cramer</member>
|
|
<member>Dave Page</member>
|
|
<member>David Christensen</member>
|
|
<member>David Cook</member>
|
|
<member>David G. Johnston</member>
|
|
<member>David Geier</member>
|
|
<member>David Hillman</member>
|
|
<member>David Perez</member>
|
|
<member>David Rowley</member>
|
|
<member>David Steele</member>
|
|
<member>David Wheeler</member>
|
|
<member>David Zhang</member>
|
|
<member>Dean Rasheed</member>
|
|
<member>Denis Erokhin</member>
|
|
<member>Denis Laxalde</member>
|
|
<member>Devrim Gündüz</member>
|
|
<member>Dilip Kumar</member>
|
|
<member>Dimitrios Apostolou</member>
|
|
<member>Dmitry Dolgov</member>
|
|
<member>Dmitry Koval</member>
|
|
<member>Dmitry Vasiliev</member>
|
|
<member>Dominique Devienne</member>
|
|
<member>Dong Wook Lee</member>
|
|
<member>Donghang Lin</member>
|
|
<member>Dongming Liu</member>
|
|
<member>Drew Callahan</member>
|
|
<member>Drew Kimball</member>
|
|
<member>Dzmitry Jachnik</member>
|
|
<member>Egor Chindyaskin</member>
|
|
<member>Egor Rogov</member>
|
|
<member>Ekaterina Kiryanova</member>
|
|
<member>Elena Indrupskaya</member>
|
|
<member>Elizabeth Christensen</member>
|
|
<member>Emre Hasegeli</member>
|
|
<member>Eric Cyr</member>
|
|
<member>Eric Mutta</member>
|
|
<member>Eric Radman</member>
|
|
<member>Eric Ridge</member>
|
|
<member>Erik Rijkers</member>
|
|
<member>Erik Wienhold</member>
|
|
<member>Erki Eessaar</member>
|
|
<member>Ethan Mertz</member>
|
|
<member>Etsuro Fujita</member>
|
|
<member>Eugen Konkov</member>
|
|
<member>Euler Taveira</member>
|
|
<member>Evan Macbeth</member>
|
|
<member>Evgeny Morozov</member>
|
|
<member>Fabien Coelho</member>
|
|
<member>Fabrízio de Royes Mello</member>
|
|
<member>Farias de Oliveira</member>
|
|
<member>Feliphe Pozzer</member>
|
|
<member>Fire Emerald</member>
|
|
<member>Flavien Guedez</member>
|
|
<member>Floris Van Nee</member>
|
|
<member>Francesco Degrassi</member>
|
|
<member>Frank Streitzig</member>
|
|
<member>Gabriele Bartolini</member>
|
|
<member>Garrett Thornburg</member>
|
|
<member>Gavin Flower</member>
|
|
<member>Gavin Panella</member>
|
|
<member>Gilles Darold</member>
|
|
<member>Gilles Parc</member>
|
|
<member>Grant Gryczan</member>
|
|
<member>Greg Nancarrow</member>
|
|
<member>Greg Sabino Mullane</member>
|
|
<member>Greg Stark</member>
|
|
<member>Gurjeet Singh</member>
|
|
<member>Haiying Tang</member>
|
|
<member>Hajime Matsunaga</member>
|
|
<member>Hal Takahara</member>
|
|
<member>Hanefi Onaldi</member>
|
|
<member>Hannu Krosing</member>
|
|
<member>Hans Buschmann</member>
|
|
<member>Hao Wu</member>
|
|
<member>Hao Zhang</member>
|
|
<member>Hayato Kuroda</member>
|
|
<member>Heikki Linnakangas</member>
|
|
<member>Hemanth Sandrana</member>
|
|
<member>Himanshu Upadhyaya</member>
|
|
<member>Hironobu Suzuki</member>
|
|
<member>Holger Reise</member>
|
|
<member>Hongxu Ma</member>
|
|
<member>Hongyu Song</member>
|
|
<member>Horst Reiterer</member>
|
|
<member>Hubert Lubaczewski</member>
|
|
<member>Hywel Carver</member>
|
|
<member>Ian Barwick</member>
|
|
<member>Ian Ilyasov</member>
|
|
<member>Ilya Nenashev</member>
|
|
<member>Isaac Morland</member>
|
|
<member>Israel Barth Rubio</member>
|
|
<member>Ivan Kartyshov</member>
|
|
<member>Ivan Kolombet</member>
|
|
<member>Ivan Lazarev</member>
|
|
<member>Ivan Panchenko</member>
|
|
<member>Ivan Trofimov</member>
|
|
<member>Jacob Champion</member>
|
|
<member>Jacob Speidel</member>
|
|
<member>Jacques Combrink</member>
|
|
<member>Jaime Casanova</member>
|
|
<member>Jakub Wartak</member>
|
|
<member>James Coleman</member>
|
|
<member>James Pang</member>
|
|
<member>Jani Rahkola</member>
|
|
<member>Japin Li</member>
|
|
<member>Jeevan Chalke</member>
|
|
<member>Jeff Davis</member>
|
|
<member>Jeff Janes</member>
|
|
<member>Jelte Fennema-Nio</member>
|
|
<member>Jeremy Schneider</member>
|
|
<member>Jian Guo</member>
|
|
<member>Jian He</member>
|
|
<member>Jim Jones</member>
|
|
<member>Jim Keener</member>
|
|
<member>Jim Nasby</member>
|
|
<member>Jingtang Zhang</member>
|
|
<member>Jingxian Li</member>
|
|
<member>Jingzhou Fu</member>
|
|
<member>Joe Conway</member>
|
|
<member>Joel Jacobson</member>
|
|
<member>John Ekins</member>
|
|
<member>John Hsu</member>
|
|
<member>John Morris</member>
|
|
<member>John Naylor</member>
|
|
<member>John Russell</member>
|
|
<member>Jonathan Katz</member>
|
|
<member>Jordi Gutiérrez</member>
|
|
<member>Joseph Koshakow</member>
|
|
<member>Josh Kupershmidt</member>
|
|
<member>Joshua D. Drake</member>
|
|
<member>Joshua Uyehara</member>
|
|
<member>Jubilee Young</member>
|
|
<member>Julien Rouhaud</member>
|
|
<member>Junwang Zhao</member>
|
|
<member>Justin Pryzby</member>
|
|
<member>Kaido Vaikla</member>
|
|
<member>Kambam Vinay</member>
|
|
<member>Karen Talarico</member>
|
|
<member>Karina Litskevich</member>
|
|
<member>Karl O. Pinc</member>
|
|
<member>Kashif Zeeshan</member>
|
|
<member>Kim Johan Andersson</member>
|
|
<member>Kirill Reshke</member>
|
|
<member>Kirk Parker</member>
|
|
<member>Kirk Wolak</member>
|
|
<member>Kisoon Kwon</member>
|
|
<member>Koen De Groote</member>
|
|
<member>Kohei KaiGai</member>
|
|
<member>Kong Man</member>
|
|
<member>Konstantin Knizhnik</member>
|
|
<member>Kouhei Sutou</member>
|
|
<member>Krishnakumar R</member>
|
|
<member>Kuntal Ghosh</member>
|
|
<member>Kurt Roeckx</member>
|
|
<member>Kyotaro Horiguchi</member>
|
|
<member>Lang Liu</member>
|
|
<member>Lars Kanis</member>
|
|
<member>Laurenz Albe</member>
|
|
<member>Lauri Laanmets</member>
|
|
<member>Legs Mansion</member>
|
|
<member>Lukas Fittl</member>
|
|
<member>Magnus Hagander</member>
|
|
<member>Mahendrakar Srinivasarao</member>
|
|
<member>Maiquel Grassi</member>
|
|
<member>Manos Emmanouilidis</member>
|
|
<member>Marcel Hofstetter</member>
|
|
<member>Marcos Pegoraro</member>
|
|
<member>Marian Krucina</member>
|
|
<member>Marina Polyakova</member>
|
|
<member>Mark Dilger</member>
|
|
<member>Mark Guertin</member>
|
|
<member>Mark Sloan</member>
|
|
<member>Markus Winand</member>
|
|
<member>Marlene Reiterer</member>
|
|
<member>Martín Marqués</member>
|
|
<member>Martin Nash</member>
|
|
<member>Martin Schlossarek</member>
|
|
<member>Masahiko Sawada</member>
|
|
<member>Masahiro Ikeda</member>
|
|
<member>Masaki Kuwamura</member>
|
|
<member>Masao Fujii</member>
|
|
<member>Mason Sharp</member>
|
|
<member>Matheus Alcantara</member>
|
|
<member>Mats Kindahl</member>
|
|
<member>Matthias Kuhn</member>
|
|
<member>Matthias van de Meent</member>
|
|
<member>Maxim Boguk</member>
|
|
<member>Maxim Orlov</member>
|
|
<member>Maxim Yablokov</member>
|
|
<member>Maxime Boyer</member>
|
|
<member>Melanie Plageman</member>
|
|
<member>Melih Mutlu</member>
|
|
<member>Merlin Moncure</member>
|
|
<member>Micah Gate</member>
|
|
<member>Michael Banck</member>
|
|
<member>Michael Bondarenko</member>
|
|
<member>Michael Paquier</member>
|
|
<member>Michael Wang</member>
|
|
<member>Michael Zhilin</member>
|
|
<member>Michail Nikolaev</member>
|
|
<member>Michal Bartak</member>
|
|
<member>Michal Kleczek</member>
|
|
<member>Mikhail Gribkov</member>
|
|
<member>Mingli Zhang</member>
|
|
<member>Miroslav Bendik</member>
|
|
<member>Mitsuru Hinata</member>
|
|
<member>Moaaz Assali</member>
|
|
<member>Muralikrishna Bandaru</member>
|
|
<member>Nathan Bossart</member>
|
|
<member>Nazir Bilal Yavuz</member>
|
|
<member>Neil Tiffin</member>
|
|
<member>Ngigi Waithaka</member>
|
|
<member>Nikhil Benesch</member>
|
|
<member>Nikhil Raj</member>
|
|
<member>Nikita Glukhov</member>
|
|
<member>Nikita Kalinin</member>
|
|
<member>Nikita Malakhov</member>
|
|
<member>Nikolay Samokhvalov</member>
|
|
<member>Nikolay Shaplov</member>
|
|
<member>Nisha Moond</member>
|
|
<member>Nishant Sharma</member>
|
|
<member>Nitin Jadhav</member>
|
|
<member>Noah Misch</member>
|
|
<member>Noriyoshi Shinoda</member>
|
|
<member>Ole Peder Brandtzæg</member>
|
|
<member>Oleg Bartunov</member>
|
|
<member>Oleg Sibiryakov</member>
|
|
<member>Oleg Tselebrovskiy</member>
|
|
<member>Olleg Samoylov</member>
|
|
<member>Onder Kalaci</member>
|
|
<member>Ondrej Navratil</member>
|
|
<member>Pablo Kharo</member>
|
|
<member>Palak Chaturvedi</member>
|
|
<member>Pantelis Theodosiou</member>
|
|
<member>Paul Amonson</member>
|
|
<member>Paul Jungwirth</member>
|
|
<member>Pavel Borisov</member>
|
|
<member>Pavel Kulakov</member>
|
|
<member>Pavel Luzanov</member>
|
|
<member>Pavel Stehule</member>
|
|
<member>Pavlo Golub</member>
|
|
<member>Pedro Gallegos</member>
|
|
<member>Pete Storer</member>
|
|
<member>Peter Eisentraut</member>
|
|
<member>Peter Geoghegan</member>
|
|
<member>Peter Smith</member>
|
|
<member>Philip Warner</member>
|
|
<member>Philipp Salvisberg</member>
|
|
<member>Pierre Ducroquet</member>
|
|
<member>Pierre Fortin</member>
|
|
<member>Przemyslaw Sztoch</member>
|
|
<member>Quynh Tran</member>
|
|
<member>Raghuveer Devulapalli</member>
|
|
<member>Ranier Vilela</member>
|
|
<member>Reid Thompson</member>
|
|
<member>Rian McGuire</member>
|
|
<member>Richard Guo</member>
|
|
<member>Richard Vesely</member>
|
|
<member>Ridvan Korkmaz</member>
|
|
<member>Robert Haas</member>
|
|
<member>Robert Scott</member>
|
|
<member>Robert Treat</member>
|
|
<member>Roberto Mello</member>
|
|
<member>Robins Tharakan</member>
|
|
<member>Roman Lozko</member>
|
|
<member>Ronan Dunklau</member>
|
|
<member>Rui Zhao</member>
|
|
<member>Ryo Matsumura</member>
|
|
<member>Ryoga Yoshida</member>
|
|
<member>Sameer Kumar</member>
|
|
<member>Sami Imseih</member>
|
|
<member>Samuel Dussault</member>
|
|
<member>Sanjay Minni</member>
|
|
<member>Satoru Koizumi</member>
|
|
<member>Sebastian Skalacki</member>
|
|
<member>Sergei Glukhov</member>
|
|
<member>Sergei Kornilov</member>
|
|
<member>Sergey Prokhorenko</member>
|
|
<member>Sergey Sargsyan</member>
|
|
<member>Sergey Shinderuk</member>
|
|
<member>Shaozhong Shi</member>
|
|
<member>Shaun Thomas</member>
|
|
<member>Shay Rojansky</member>
|
|
<member>Shihao Zhong</member>
|
|
<member>Shinya Kato</member>
|
|
<member>Shlok Kyal</member>
|
|
<member>Shruthi Gowda</member>
|
|
<member>Shubham Khanna</member>
|
|
<member>Shulin Zhou</member>
|
|
<member>Shveta Malik</member>
|
|
<member>Simon Riggs</member>
|
|
<member>Soumyadeep Chakraborty</member>
|
|
<member>Sravan Velagandula</member>
|
|
<member>Stan Hu</member>
|
|
<member>Stepan Neretin</member>
|
|
<member>Stepan Rutz</member>
|
|
<member>Stéphane Schildknecht</member>
|
|
<member>Stephane Tachoires</member>
|
|
<member>Stephen Frost</member>
|
|
<member>Steve Atkins</member>
|
|
<member>Steve Chavez</member>
|
|
<member>Suraj Khamkar</member>
|
|
<member>Suraj Kharage</member>
|
|
<member>Svante Richter</member>
|
|
<member>Svetlana Derevyanko</member>
|
|
<member>Sylvain Frandaz</member>
|
|
<member>Takayuki Tsunakawa</member>
|
|
<member>Tatsuo Ishii</member>
|
|
<member>Tatsuro Yamada</member>
|
|
<member>Tender Wang</member>
|
|
<member>Teodor Sigaev</member>
|
|
<member>Thom Brown</member>
|
|
<member>Thomas Munro</member>
|
|
<member>Tim Carey-Smith</member>
|
|
<member>Tim Needham</member>
|
|
<member>Tim Palmer</member>
|
|
<member>Tobias Bussmann</member>
|
|
<member>Tom Lane</member>
|
|
<member>Tomas Vondra</member>
|
|
<member>Tommy Pavlicek</member>
|
|
<member>Tomonari Katsumata</member>
|
|
<member>Tristan Partin</member>
|
|
<member>Tristen Raab</member>
|
|
<member>Tung Nguyen</member>
|
|
<member>Umair Shahid</member>
|
|
<member>Uwe Binder</member>
|
|
<member>Valerie Woolard</member>
|
|
<member>Vallimaharajan G</member>
|
|
<member>Vasya Boytsov</member>
|
|
<member>Victor Wagner</member>
|
|
<member>Victor Yegorov</member>
|
|
<member>Victoria Shepard</member>
|
|
<member>Vidushi Gupta</member>
|
|
<member>Vignesh C</member>
|
|
<member>Vik Fearing</member>
|
|
<member>Viktor Leis</member>
|
|
<member>Vinayak Pokale</member>
|
|
<member>Vitaly Burovoy</member>
|
|
<member>Vojtech Benes</member>
|
|
<member>Wei Sun</member>
|
|
<member>Wei Wang</member>
|
|
<member>Wenjiang Zhang</member>
|
|
<member>Will Mortensen</member>
|
|
<member>Willi Mann</member>
|
|
<member>Wolfgang Walther</member>
|
|
<member>Xiang Liu</member>
|
|
<member>Xiaoran Wang</member>
|
|
<member>Xing Guo</member>
|
|
<member>Xudong Yang</member>
|
|
<member>Yahor Yuzefovich</member>
|
|
<member>Yajun Hu</member>
|
|
<member>Yaroslav Saburov</member>
|
|
<member>Yong Li</member>
|
|
<member>Yongtao Huang</member>
|
|
<member>Yugo Nagata</member>
|
|
<member>Yuhang Qiu</member>
|
|
<member>Yuki Seino</member>
|
|
<member>Yura Sokolov</member>
|
|
<member>Yurii Rashkovskii</member>
|
|
<member>Yuuki Fujii</member>
|
|
<member>Yuya Watari</member>
|
|
<member>Yves Colin</member>
|
|
<member>Zhihong Yu</member>
|
|
<member>Zhijie Hou</member>
|
|
<member>Zongliang Quan</member>
|
|
<member>Zubeyr Eryilmaz</member>
|
|
<member>Zuming Jiang</member>
|
|
</simplelist>
|
|
</sect2>
|
|
|
|
</sect1>
|