8378 lines
270 KiB
Plaintext
8378 lines
270 KiB
Plaintext
<!-- doc/src/sgml/release-16.sgml -->
|
|
<!-- See header comment in release.sgml about typical markup -->
|
|
|
|
<sect1 id="release-16-3">
|
|
<title>Release 16.3</title>
|
|
|
|
<formalpara>
|
|
<title>Release date:</title>
|
|
<para>2024-05-09</para>
|
|
</formalpara>
|
|
|
|
<para>
|
|
This release contains a variety of fixes from 16.2.
|
|
For information about new features in major release 16, see
|
|
<xref linkend="release-16"/>.
|
|
</para>
|
|
|
|
<sect2 id="release-16-3-migration">
|
|
<title>Migration to Version 16.3</title>
|
|
|
|
<para>
|
|
A dump/restore is not required for those running 16.X.
|
|
</para>
|
|
|
|
<para>
|
|
However, a security vulnerability was found in the system
|
|
views <structname>pg_stats_ext</structname>
|
|
and <structname>pg_stats_ext_exprs</structname>, potentially allowing
|
|
authenticated database users to see data they shouldn't. If this is
|
|
of concern in your installation, follow the steps in the first
|
|
changelog entry below to rectify it.
|
|
</para>
|
|
|
|
<para>
|
|
Also, if you are upgrading from a version earlier than 16.2,
|
|
see <xref linkend="release-16-2"/>.
|
|
</para>
|
|
</sect2>
|
|
|
|
<sect2 id="release-16-3-changes">
|
|
<title>Changes</title>
|
|
|
|
<itemizedlist>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Nathan Bossart <nathan@postgresql.org>
|
|
Branch: master [521a7156a] 2024-05-06 09:00:00 -0500
|
|
Branch: REL_16_STABLE [2485a85e9] 2024-05-06 09:00:07 -0500
|
|
Branch: REL_15_STABLE [9cc2b6289] 2024-05-06 09:00:13 -0500
|
|
Branch: REL_14_STABLE [c3425383b] 2024-05-06 09:00:19 -0500
|
|
-->
|
|
<para>
|
|
Restrict visibility of <structname>pg_stats_ext</structname> and
|
|
<structname>pg_stats_ext_exprs</structname> entries to the table
|
|
owner (Nathan Bossart)
|
|
</para>
|
|
|
|
<para>
|
|
These views failed to hide statistics for expressions that involve
|
|
columns the accessing user does not have permission to read. View
|
|
columns such as <structfield>most_common_vals</structfield> might
|
|
expose security-relevant data. The potential interactions here are
|
|
not fully clear, so in the interest of erring on the side of safety,
|
|
make rows in these views visible only to the owner of the associated
|
|
table.
|
|
</para>
|
|
|
|
<para>
|
|
The <productname>PostgreSQL</productname> Project thanks
|
|
Lukas Fittl for reporting this problem.
|
|
(CVE-2024-4317)
|
|
</para>
|
|
|
|
<para>
|
|
By itself, this fix will only fix the behavior in newly initdb'd
|
|
database clusters. If you wish to apply this change in an existing
|
|
cluster, you will need to do the following:
|
|
</para>
|
|
|
|
<procedure>
|
|
<step>
|
|
<para>
|
|
Find the SQL script <filename>fix-CVE-2024-4317.sql</filename> in
|
|
the <replaceable>share</replaceable> directory of
|
|
the <productname>PostgreSQL</productname> installation (typically
|
|
located someplace like <filename>/usr/share/postgresql/</filename>).
|
|
Be sure to use the script appropriate to
|
|
your <productname>PostgreSQL</productname> major version.
|
|
If you do not see this file, either your version is not vulnerable
|
|
(only v14–v16 are affected) or your minor version is too
|
|
old to have the fix.
|
|
</para>
|
|
</step>
|
|
|
|
<step>
|
|
<para>
|
|
In <emphasis>each</emphasis> database of the cluster, run
|
|
the <filename>fix-CVE-2024-4317.sql</filename> script as superuser.
|
|
In <application>psql</application> this would look like
|
|
<programlisting>
|
|
\i /usr/share/postgresql/fix-CVE-2024-4317.sql
|
|
</programlisting>
|
|
(adjust the file path as appropriate). Any error probably indicates
|
|
that you've used the wrong script version. It will not hurt to run
|
|
the script more than once.
|
|
</para>
|
|
</step>
|
|
|
|
<step>
|
|
<para>
|
|
Do not forget to include the <literal>template0</literal>
|
|
and <literal>template1</literal> databases, or the vulnerability
|
|
will still exist in databases you create later. To
|
|
fix <literal>template0</literal>, you'll need to temporarily make
|
|
it accept connections. Do that with
|
|
<programlisting>
|
|
ALTER DATABASE template0 WITH ALLOW_CONNECTIONS true;
|
|
</programlisting>
|
|
and then after fixing <literal>template0</literal>, undo it with
|
|
<programlisting>
|
|
ALTER DATABASE template0 WITH ALLOW_CONNECTIONS false;
|
|
</programlisting>
|
|
</para>
|
|
</step>
|
|
</procedure>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
Branch: master [b4a71cf65] 2024-03-14 14:57:16 -0400
|
|
Branch: REL_16_STABLE [52898c63e] 2024-03-14 14:57:16 -0400
|
|
Branch: REL_15_STABLE [7c61d2342] 2024-03-14 14:57:16 -0400
|
|
Branch: REL_14_STABLE [3621ffd9f] 2024-03-14 14:57:16 -0400
|
|
Branch: REL_13_STABLE [0200398dd] 2024-03-14 14:57:16 -0400
|
|
Branch: REL_12_STABLE [82c87af7a] 2024-03-14 14:57:16 -0400
|
|
-->
|
|
<para>
|
|
Fix <command>INSERT</command> from
|
|
multiple <command>VALUES</command> rows into a target column that is
|
|
a domain over an array or composite type (Tom Lane)
|
|
</para>
|
|
|
|
<para>
|
|
Such cases would either fail with surprising complaints about
|
|
mismatched datatypes, or insert unexpected coercions that could lead
|
|
to odd results.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
|
|
Branch: master [4989ce726] 2024-02-21 17:18:52 +0100
|
|
Branch: REL_16_STABLE [a3f5d2056] 2024-02-21 17:18:52 +0100
|
|
Branch: REL_15_STABLE [90ad85db6] 2024-02-21 17:18:52 +0100
|
|
-->
|
|
<para>
|
|
Require <literal>SELECT</literal> privilege on the target table
|
|
for <command>MERGE</command> with a <literal>DO NOTHING</literal>
|
|
clause (Álvaro Herrera)
|
|
</para>
|
|
|
|
<para>
|
|
<literal>SELECT</literal> privilege would be required in all
|
|
practical cases anyway, but require it even if the query reads no
|
|
columns of the target table. This avoids an edge case in
|
|
which <command>MERGE</command> would require no privileges whatever,
|
|
which seems undesirable even when it's a do-nothing command.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Dean Rasheed <dean.a.rasheed@gmail.com>
|
|
Branch: master [29ef1dd19] 2024-03-07 09:57:02 +0000
|
|
Branch: REL_16_STABLE [dd73d10ad] 2024-03-07 09:55:39 +0000
|
|
Branch: REL_15_STABLE [b5c645d2a] 2024-03-07 09:53:31 +0000
|
|
-->
|
|
<para>
|
|
Fix handling of self-modified tuples in <command>MERGE</command>
|
|
(Dean Rasheed)
|
|
</para>
|
|
|
|
<para>
|
|
Throw an error if a target row joins to more than one source row, as
|
|
required by the SQL standard. (The previous coding could silently
|
|
ignore this condition if a concurrent update was involved.) Also,
|
|
throw a non-misleading error if a target row is already updated by a
|
|
later command in the current transaction, thanks to
|
|
a <literal>BEFORE</literal> trigger or a volatile function used in
|
|
the query.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: David Rowley <drowley@postgresql.org>
|
|
Branch: master [4c2369ac5] 2024-02-20 12:49:37 +1300
|
|
Branch: REL_16_STABLE [fb95cc72b] 2024-02-20 12:50:09 +1300
|
|
Branch: REL_15_STABLE [1b3495e29] 2024-02-20 12:50:34 +1300
|
|
Branch: REL_14_STABLE [f9c8f7ccd] 2024-02-20 12:50:57 +1300
|
|
Branch: REL_13_STABLE [3850fcca6] 2024-02-20 12:51:17 +1300
|
|
Branch: REL_12_STABLE [3ffcd24c2] 2024-02-20 12:51:38 +1300
|
|
-->
|
|
<para>
|
|
Fix incorrect pruning of NULL partition when a table is partitioned
|
|
on a boolean column and the query has a boolean <literal>IS
|
|
NOT</literal> clause (David Rowley)
|
|
</para>
|
|
|
|
<para>
|
|
A NULL value satisfies a clause such
|
|
as <literal><replaceable>boolcol</replaceable> IS NOT
|
|
FALSE</literal>, so pruning away a partition containing NULLs
|
|
yielded incorrect answers.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
Branch: master [fad3b5b5a] 2024-03-26 15:28:31 -0400
|
|
Branch: REL_16_STABLE [7445f0928] 2024-03-26 15:28:16 -0400
|
|
Branch: REL_15_STABLE [b48eda4e5] 2024-03-26 15:28:16 -0400
|
|
Branch: REL_14_STABLE [66bbad581] 2024-03-26 15:28:16 -0400
|
|
Branch: REL_13_STABLE [97de2a159] 2024-03-26 15:28:16 -0400
|
|
Branch: REL_12_STABLE [a8b740868] 2024-03-26 15:28:16 -0400
|
|
-->
|
|
<para>
|
|
Make <command>ALTER FOREIGN TABLE SET SCHEMA</command> move any
|
|
owned sequences into the new schema (Tom Lane)
|
|
</para>
|
|
|
|
<para>
|
|
Moving a regular table to a new schema causes any sequences owned by
|
|
the table to be moved to that schema too (along with indexes and
|
|
constraints). This was overlooked for foreign tables, however.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Peter Eisentraut <peter@eisentraut.org>
|
|
Branch: master [6743c5ae6] 2024-02-09 08:09:22 +0100
|
|
Branch: REL_16_STABLE [86d2b434c] 2024-02-09 08:09:59 +0100
|
|
Branch: REL_15_STABLE [d17a3a4c6] 2024-02-09 08:15:27 +0100
|
|
-->
|
|
<para>
|
|
Make <command>ALTER TABLE ... ADD COLUMN</command> create
|
|
identity/serial sequences with the same persistence as their owning
|
|
tables (Peter Eisentraut)
|
|
</para>
|
|
|
|
<para>
|
|
<command>CREATE UNLOGGED TABLE</command> will make any owned
|
|
sequences be unlogged too. <command>ALTER TABLE</command> missed
|
|
that consideration, so that an added identity column would have a
|
|
logged sequence, which seems pointless.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
Branch: master [91e7115b1] 2024-05-02 17:36:31 -0400
|
|
Branch: REL_16_STABLE [11d40a44b] 2024-05-02 17:36:31 -0400
|
|
Branch: REL_15_STABLE [5f4a1a0a7] 2024-05-02 17:36:31 -0400
|
|
Branch: master [42b041243] 2024-04-28 14:34:21 -0400
|
|
Branch: REL_16_STABLE [b19255ca6] 2024-04-28 14:34:21 -0400
|
|
Branch: REL_15_STABLE [9b41d1d63] 2024-04-28 14:34:21 -0400
|
|
Branch: REL_14_STABLE [617a23927] 2024-04-28 14:34:21 -0400
|
|
-->
|
|
<para>
|
|
Improve <command>ALTER TABLE ... ALTER COLUMN TYPE</command>'s error
|
|
message when there is a dependent function or publication (Tom Lane)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Tomas Vondra <tomas.vondra@postgresql.org>
|
|
Branch: master [8c239ee15] 2024-04-21 21:21:26 +0200
|
|
Branch: REL_16_STABLE [9e6faeb32] 2024-04-21 21:21:55 +0200
|
|
Branch: REL_15_STABLE [276b7888f] 2024-04-21 21:22:11 +0200
|
|
-->
|
|
<para>
|
|
In <command>CREATE DATABASE</command>, recognize strategy keywords
|
|
case-insensitively for consistency with other options (Tomas Vondra)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
|
|
Branch: master [0960ae196] 2024-03-18 14:03:58 +0200
|
|
Branch: REL_16_STABLE [1f4eb7342] 2024-03-18 14:04:13 +0200
|
|
Branch: REL_15_STABLE [d3d95f583] 2024-03-18 14:04:17 +0200
|
|
Branch: REL_14_STABLE [262757b73] 2024-03-18 14:04:19 +0200
|
|
Branch: REL_13_STABLE [992189a3e] 2024-03-18 14:04:24 +0200
|
|
Branch: REL_12_STABLE [f3e4581ac] 2024-03-18 14:04:28 +0200
|
|
-->
|
|
<para>
|
|
Fix <command>EXPLAIN</command>'s counting of heap pages accessed by
|
|
a bitmap heap scan (Melanie Plageman)
|
|
</para>
|
|
|
|
<para>
|
|
Previously, heap pages that contain no visible tuples were not
|
|
counted; but it seems more consistent to count all pages returned by
|
|
the bitmap index scan.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Dean Rasheed <dean.a.rasheed@gmail.com>
|
|
Branch: master [33e729c51] 2024-03-17 10:17:11 +0000
|
|
Branch: REL_16_STABLE [34c854b93] 2024-03-17 10:19:31 +0000
|
|
Branch: REL_15_STABLE [89ee14a2f] 2024-03-17 10:20:20 +0000
|
|
-->
|
|
<para>
|
|
Fix <command>EXPLAIN</command>'s output for subplans
|
|
in <command>MERGE</command> (Dean Rasheed)
|
|
</para>
|
|
|
|
<para>
|
|
<command>EXPLAIN</command> would sometimes fail to properly display
|
|
subplan Params referencing variables in other parts of the plan tree.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
Branch: master [6faca9ae2] 2024-04-02 14:59:32 -0400
|
|
Branch: REL_16_STABLE [cbfbb14bd] 2024-04-02 14:59:04 -0400
|
|
Branch: REL_15_STABLE [4fb56a734] 2024-04-02 14:59:04 -0400
|
|
Branch: REL_14_STABLE [ca392df8d] 2024-04-02 14:59:04 -0400
|
|
Branch: REL_13_STABLE [4afc2c219] 2024-04-02 14:59:04 -0400
|
|
Branch: REL_12_STABLE [f5d9212e5] 2024-04-02 14:59:04 -0400
|
|
-->
|
|
<para>
|
|
Avoid deadlock during removal of orphaned temporary tables
|
|
(Mikhail Zhilin)
|
|
</para>
|
|
|
|
<para>
|
|
If the session that creates a temporary table crashes without
|
|
removing the table, autovacuum will eventually try to remove the
|
|
orphaned table. However, an incoming session that's been assigned
|
|
the same temporary namespace will do that too. If a temporary table
|
|
has a dependency (such as an owned sequence) then a deadlock could
|
|
result between these two cleanup attempts.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
|
|
Branch: master [674e49c73] 2024-03-11 09:28:09 +0200
|
|
Branch: REL_16_STABLE [407cb6c65] 2024-03-11 09:28:21 +0200
|
|
-->
|
|
<para>
|
|
Fix updating of visibility map state in <command>VACUUM</command>
|
|
with the <literal>DISABLE_PAGE_SKIPPING</literal> option (Heikki
|
|
Linnakangas)
|
|
</para>
|
|
|
|
<para>
|
|
Due to an oversight, this mode caused all heap pages to be dirtied,
|
|
resulting in excess I/O. Also, visibility map bits that were
|
|
incorrectly set would not get cleared.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Noah Misch <noah@leadboat.com>
|
|
Branch: master [f65ab862e] 2024-04-29 10:24:56 -0700
|
|
Branch: REL_16_STABLE [92685c389] 2024-04-29 10:24:59 -0700
|
|
Branch: REL_15_STABLE [7c5915c4b] 2024-04-29 10:24:59 -0700
|
|
Branch: REL_14_STABLE [2ca19aa81] 2024-04-29 10:25:00 -0700
|
|
Branch: REL_13_STABLE [70cadfba0] 2024-04-29 10:25:00 -0700
|
|
Branch: REL_12_STABLE [f222349c4] 2024-04-29 10:25:00 -0700
|
|
-->
|
|
<para>
|
|
Avoid race condition while examining per-relation frozen-XID values
|
|
(Noah Misch)
|
|
</para>
|
|
|
|
<para>
|
|
<command>VACUUM</command>'s computation of per-database frozen-XID
|
|
values from per-relation values could get confused by a concurrent
|
|
update of those values by another <command>VACUUM</command>.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Masahiko Sawada <msawada@postgresql.org>
|
|
Branch: master [5cd72cc0c] 2024-05-01 12:34:06 +0900
|
|
Branch: REL_16_STABLE [f199436c1] 2024-05-01 12:34:04 +0900
|
|
Branch: REL_15_STABLE [faba2f8f3] 2024-05-01 12:34:01 +0900
|
|
-->
|
|
<para>
|
|
Fix buffer usage reporting for parallel vacuuming (Anthonin Bonnefoy)
|
|
</para>
|
|
|
|
<para>
|
|
Buffer accesses performed by parallel workers were not getting
|
|
counted in the statistics reported in <literal>VERBOSE</literal>
|
|
mode.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
Branch: master [03107b4ed] 2024-04-16 11:22:51 -0400
|
|
Branch: REL_16_STABLE [91800af13] 2024-04-16 11:03:43 -0400
|
|
Branch: REL_15_STABLE [5aacfa64e] 2024-04-16 11:22:39 -0400
|
|
Branch: REL_14_STABLE [ab2402268] 2024-04-16 11:22:39 -0400
|
|
Branch: REL_13_STABLE [d9e4ee74f] 2024-04-16 11:22:39 -0400
|
|
Branch: REL_12_STABLE [f502849d4] 2024-04-16 11:22:39 -0400
|
|
-->
|
|
<para>
|
|
Ensure that join conditions generated from equivalence classes are
|
|
applied at the correct plan level (Tom Lane)
|
|
</para>
|
|
|
|
<para>
|
|
In versions before <productname>PostgreSQL</productname> 16, it was
|
|
possible for generated conditions to be evaluated below outer joins
|
|
when they should be evaluated above (after) the outer join, leading
|
|
to incorrect query results. All versions have a similar hazard when
|
|
considering joins to <command>UNION ALL</command> trees that have
|
|
constant outputs for the join column in
|
|
some <command>SELECT </command> arms.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: David Rowley <drowley@postgresql.org>
|
|
Branch: master [4169850f0] 2024-03-15 11:54:36 +1300
|
|
Branch: REL_16_STABLE [4e1ff2aad] 2024-03-15 11:55:50 +1300
|
|
-->
|
|
<para>
|
|
Fix <quote>could not find pathkey item to sort</quote> errors
|
|
occurring while planning aggregate functions with <literal>ORDER
|
|
BY</literal> or <literal>DISTINCT</literal> options (David Rowley)
|
|
</para>
|
|
|
|
<para>
|
|
This is similar to a fix applied in 16.1, but it solves the problem
|
|
for parallel plans.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: David Rowley <drowley@postgresql.org>
|
|
Branch: REL_16_STABLE [9d36b883b] 2024-05-01 16:35:05 +1200
|
|
Branch: REL_15_STABLE [7e5d20bbd] 2024-05-01 16:35:37 +1200
|
|
-->
|
|
<para>
|
|
Prevent potentially-incorrect optimization of some window functions
|
|
(David Rowley)
|
|
</para>
|
|
|
|
<para>
|
|
Disable <quote>run condition</quote> optimization
|
|
of <function>ntile()</function> and <function>count()</function>
|
|
with non-constant arguments. This avoids possible misbehavior with
|
|
sub-selects, typically leading to errors like <quote>WindowFunc not
|
|
found in subplan target lists</quote>.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
Branch: master [a767cdc84] 2024-03-27 13:39:03 -0400
|
|
Branch: REL_16_STABLE [a94f51a7b] 2024-03-27 13:39:03 -0400
|
|
Branch: REL_15_STABLE [03561a6c7] 2024-03-27 13:39:03 -0400
|
|
Branch: REL_14_STABLE [0d30e48c2] 2024-03-27 13:39:03 -0400
|
|
Branch: REL_13_STABLE [de3c5b187] 2024-03-27 13:39:03 -0400
|
|
Branch: REL_12_STABLE [25675c474] 2024-03-27 13:39:03 -0400
|
|
-->
|
|
<para>
|
|
Avoid unnecessary use of moving-aggregate mode with a non-moving
|
|
window frame (Vallimaharajan G)
|
|
</para>
|
|
|
|
<para>
|
|
When a plain aggregate is used as a window function, and the window
|
|
frame start is specified as <literal>UNBOUNDED PRECEDING</literal>,
|
|
the frame's head cannot move so we do not need to use the special
|
|
(and more expensive) moving-aggregate mode. This optimization was
|
|
intended all along, but due to a coding error it never triggered.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
Branch: master [a6b2a51e1] 2024-02-23 15:21:53 -0500
|
|
Branch: REL_16_STABLE [ef0333e67] 2024-02-23 15:21:53 -0500
|
|
Branch: REL_15_STABLE [37bbe3d3a] 2024-02-23 15:21:53 -0500
|
|
Branch: REL_14_STABLE [cbeb45527] 2024-02-23 15:21:53 -0500
|
|
Branch: REL_13_STABLE [9061fd23c] 2024-02-23 15:21:53 -0500
|
|
Branch: REL_12_STABLE [cf807eba5] 2024-02-23 15:21:53 -0500
|
|
-->
|
|
<para>
|
|
Avoid use of already-freed data while planning partition-wise joins
|
|
under GEQO (Tom Lane)
|
|
</para>
|
|
|
|
<para>
|
|
This would typically end in a crash or unexpected error message.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: David Rowley <drowley@postgresql.org>
|
|
Branch: master [e62984647] 2024-03-11 18:19:56 +1300
|
|
Branch: REL_16_STABLE [348233cb1] 2024-03-11 18:20:39 +1300
|
|
Branch: REL_15_STABLE [74530804f] 2024-03-11 18:21:23 +1300
|
|
Branch: REL_14_STABLE [72b8507db] 2024-03-11 18:21:48 +1300
|
|
-->
|
|
<para>
|
|
Avoid freeing still-in-use data in Memoize (Tender Wang, Andrei
|
|
Lepikhov)
|
|
</para>
|
|
|
|
<para>
|
|
In production builds this error frequently didn't cause any
|
|
problems, as the freed data would most likely not get overwritten
|
|
before it was used.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: David Rowley <drowley@postgresql.org>
|
|
Branch: master [a37a3e2b3] 2024-03-05 16:17:02 +1300
|
|
Branch: REL_16_STABLE [ac7e6a01c] 2024-03-05 16:17:53 +1300
|
|
Branch: REL_15_STABLE [164fe7a6e] 2024-03-05 16:18:19 +1300
|
|
Branch: REL_14_STABLE [0c2dda109] 2024-03-05 16:18:42 +1300
|
|
Branch: REL_13_STABLE [421dfb41a] 2024-03-05 16:19:05 +1300
|
|
Branch: REL_12_STABLE [94246405d] 2024-03-05 16:19:26 +1300
|
|
-->
|
|
<para>
|
|
Fix incorrectly-reported statistics kind codes in <quote>requested
|
|
statistics kind <replaceable>X</replaceable> is not yet
|
|
built</quote> error messages (David Rowley)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
Branch: master [473182c95] 2024-03-22 17:13:53 -0400
|
|
Branch: REL_16_STABLE [14e991db8] 2024-03-22 17:13:53 -0400
|
|
-->
|
|
<para>
|
|
Use a hash table instead of linear search for <quote>catcache
|
|
list</quote> objects (Tom Lane)
|
|
</para>
|
|
|
|
<para>
|
|
This change solves performance problems that were reported for
|
|
certain operations in installations with many thousands of roles.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
Branch: master [e0df80828] 2024-04-15 12:56:56 -0400
|
|
Branch: REL_16_STABLE [cc1eb6a3c] 2024-04-15 12:56:56 -0400
|
|
Branch: REL_15_STABLE [09989ba84] 2024-04-15 12:56:56 -0400
|
|
Branch: REL_14_STABLE [78e81e14d] 2024-04-15 12:56:56 -0400
|
|
Branch: REL_13_STABLE [b6e21cef7] 2024-04-15 12:56:56 -0400
|
|
Branch: REL_12_STABLE [e0970862e] 2024-04-15 12:56:56 -0400
|
|
Branch: master [2ed8f9a01] 2024-03-06 14:41:13 -0500
|
|
Branch: REL_16_STABLE [1b3029be5] 2024-03-06 14:41:13 -0500
|
|
Branch: REL_15_STABLE [3b671dcf5] 2024-03-06 14:41:13 -0500
|
|
Branch: REL_14_STABLE [a595c3075] 2024-03-06 14:41:13 -0500
|
|
Branch: REL_13_STABLE [d769f9d97] 2024-03-06 14:41:13 -0500
|
|
Branch: REL_12_STABLE [466376c9f] 2024-03-06 14:41:13 -0500
|
|
-->
|
|
<para>
|
|
Be more careful with <type>RECORD</type>-returning functions
|
|
in <literal>FROM</literal> (Tom Lane)
|
|
</para>
|
|
|
|
<para>
|
|
The output columns of such a function call must be defined by
|
|
an <literal>AS</literal> clause that specifies the column names and
|
|
data types. If the actual function output value doesn't match that,
|
|
an error is supposed to be thrown at runtime. However, some code
|
|
paths would examine the actual value prematurely, and potentially
|
|
issue strange errors or suffer assertion failures if it doesn't
|
|
match expectations.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
Branch: master [6ee3261e9] 2024-03-12 18:16:25 -0400
|
|
Branch: REL_16_STABLE [40d1bdeb7] 2024-03-12 18:16:10 -0400
|
|
Branch: REL_15_STABLE [6f66fadad] 2024-03-12 18:16:10 -0400
|
|
Branch: REL_14_STABLE [649bbba11] 2024-03-12 18:16:10 -0400
|
|
Branch: REL_13_STABLE [28184f039] 2024-03-12 18:16:10 -0400
|
|
Branch: REL_12_STABLE [dc1503d5b] 2024-03-12 18:16:10 -0400
|
|
-->
|
|
<para>
|
|
Fix confusion about the return rowtype of SQL-language procedures
|
|
(Tom Lane)
|
|
</para>
|
|
|
|
<para>
|
|
A procedure implemented in SQL language that returns a single
|
|
composite-type column would cause an assertion failure or core dump.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Alexander Korotkov <akorotkov@postgresql.org>
|
|
Branch: master [d57b7cc33] 2024-02-16 16:02:00 +0200
|
|
Branch: master [75bcba6cb] 2024-02-21 02:51:41 +0200
|
|
Branch: REL_16_STABLE [760767182] 2024-03-11 03:06:55 +0200
|
|
Branch: REL_15_STABLE [84788ee5b] 2024-03-11 03:06:45 +0200
|
|
Branch: REL_14_STABLE [84cc1a552] 2024-03-11 03:06:15 +0200
|
|
Branch: REL_13_STABLE [445c7e38f] 2024-03-11 03:06:10 +0200
|
|
Branch: REL_12_STABLE [98bfb7558] 2024-03-11 02:53:07 +0200
|
|
-->
|
|
<para>
|
|
Add protective stack depth checks to some recursive functions
|
|
(Egor Chindyaskin)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
Branch: master [d163fdbfe] 2024-02-28 14:00:30 -0500
|
|
Branch: REL_16_STABLE [17db5436e] 2024-02-28 14:00:30 -0500
|
|
Branch: REL_15_STABLE [db8855b66] 2024-02-28 14:00:30 -0500
|
|
Branch: REL_14_STABLE [fe3b1b575] 2024-02-28 14:00:30 -0500
|
|
-->
|
|
<para>
|
|
Fix mis-rounding and overflow hazards
|
|
in <function>date_bin()</function> (Moaaz Assali)
|
|
</para>
|
|
|
|
<para>
|
|
In the case where the source timestamp is before the origin
|
|
timestamp and their difference is already an exact multiple of the
|
|
stride, the code incorrectly subtracted the stride anyway. Also,
|
|
detect some integer-overflow cases that would have produced
|
|
incorrect results.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
Branch: master [4019285c0] 2024-04-28 13:42:13 -0400
|
|
Branch: REL_16_STABLE [3752e3d21] 2024-04-28 13:42:13 -0400
|
|
Branch: REL_15_STABLE [e6e3ee5b7] 2024-04-28 13:42:13 -0400
|
|
Branch: REL_14_STABLE [1748379b6] 2024-04-28 13:42:13 -0400
|
|
Branch: REL_13_STABLE [440b6251b] 2024-04-28 13:42:13 -0400
|
|
Branch: REL_12_STABLE [cb0ccefa0] 2024-04-28 13:42:13 -0400
|
|
-->
|
|
<para>
|
|
Detect integer overflow when adding or subtracting
|
|
an <type>interval</type> to/from a <type>timestamp</type>
|
|
(Joseph Koshakow)
|
|
</para>
|
|
|
|
<para>
|
|
Some cases that should cause an out-of-range error produced an
|
|
incorrect result instead.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
Branch: master [ce571434a] 2024-02-09 12:29:41 -0500
|
|
Branch: REL_16_STABLE [4eb261165] 2024-02-09 12:29:41 -0500
|
|
Branch: REL_15_STABLE [26c89d105] 2024-02-09 12:29:41 -0500
|
|
Branch: REL_14_STABLE [d21690edb] 2024-02-09 12:29:41 -0500
|
|
Branch: REL_13_STABLE [ceb224b62] 2024-02-09 12:29:41 -0500
|
|
Branch: REL_12_STABLE [f38903d1e] 2024-02-09 12:29:41 -0500
|
|
-->
|
|
<para>
|
|
Avoid race condition in <function>pg_get_expr()</function>
|
|
(Tom Lane)
|
|
</para>
|
|
|
|
<para>
|
|
If the relation referenced by the argument is dropped concurrently,
|
|
the function's intention is to return NULL, but sometimes it failed
|
|
instead.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Alexander Korotkov <akorotkov@postgresql.org>
|
|
Branch: master [165d921c9] 2024-02-08 12:45:26 +0200
|
|
Branch: REL_16_STABLE [e3e05adde] 2024-02-09 12:37:21 +0200
|
|
Branch: REL_15_STABLE [503299b7f] 2024-02-09 12:38:32 +0200
|
|
Branch: REL_14_STABLE [18388291a] 2024-02-09 12:39:42 +0200
|
|
Branch: REL_13_STABLE [4efaf4b09] 2024-02-09 12:39:54 +0200
|
|
Branch: REL_12_STABLE [d44060cfc] 2024-02-09 12:55:43 +0200
|
|
-->
|
|
<para>
|
|
Fix detection of old transaction IDs in XID status functions
|
|
(Karina Litskevich)
|
|
</para>
|
|
|
|
<para>
|
|
Transaction IDs more than 2<superscript>31</superscript>
|
|
transactions in the past could be misidentified as recent,
|
|
leading to misbehavior of <function>pg_xact_status()</function>
|
|
or <function>txid_status()</function>.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Noah Misch <noah@leadboat.com>
|
|
Branch: master [935829743] 2024-04-13 08:34:20 -0700
|
|
Branch: REL_16_STABLE [4e62ba21a] 2024-04-13 08:35:06 -0700
|
|
Branch: REL_15_STABLE [7c490a18b] 2024-04-13 08:35:20 -0700
|
|
Branch: REL_14_STABLE [08059fc04] 2024-04-13 08:35:32 -0700
|
|
-->
|
|
<para>
|
|
Ensure that a table's freespace map won't return a page that's past
|
|
the end of the table (Ronan Dunklau)
|
|
</para>
|
|
|
|
<para>
|
|
Because the freespace map isn't WAL-logged, this was possible in
|
|
edge cases involving an OS crash, a replica promote, or a PITR
|
|
restore. The result would be a <quote>could not read block</quote>
|
|
error.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Etsuro Fujita <efujita@postgresql.org>
|
|
Branch: REL_16_STABLE [e79ceafe9] 2024-04-11 19:05:00 +0900
|
|
Branch: REL_15_STABLE [b82dca2a5] 2024-04-11 19:05:02 +0900
|
|
Branch: REL_14_STABLE [b714bc40c] 2024-04-11 19:05:04 +0900
|
|
Branch: REL_13_STABLE [01b01a77f] 2024-04-11 19:05:05 +0900
|
|
Branch: REL_12_STABLE [0341d4b10] 2024-04-11 19:05:07 +0900
|
|
-->
|
|
<para>
|
|
Fix file descriptor leakage when an error is thrown while waiting
|
|
in <function>WaitEventSetWait</function> (Etsuro Fujita)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Etsuro Fujita <efujita@postgresql.org>
|
|
Branch: REL_16_STABLE [f6f61a4bd] 2024-04-04 17:25:00 +0900
|
|
Branch: REL_15_STABLE [3f96d113f] 2024-04-04 17:25:02 +0900
|
|
Branch: REL_14_STABLE [e10ca95ff] 2024-04-04 17:25:04 +0900
|
|
-->
|
|
<para>
|
|
Avoid corrupting exception stack if an FDW implements async append
|
|
but doesn't configure any wait conditions for the Append plan node
|
|
to wait for (Alexander Pyhalov)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
Branch: master [f5a465f1a] 2024-02-25 16:15:07 -0500
|
|
Branch: REL_16_STABLE [8c785d354] 2024-02-25 16:15:07 -0500
|
|
Branch: REL_15_STABLE [940489b46] 2024-02-25 16:15:07 -0500
|
|
Branch: REL_14_STABLE [09f09884c] 2024-02-25 16:15:07 -0500
|
|
Branch: REL_13_STABLE [43cca9de9] 2024-02-25 16:15:07 -0500
|
|
Branch: REL_12_STABLE [c0b4dad38] 2024-02-25 16:15:07 -0500
|
|
-->
|
|
<para>
|
|
Throw an error if an index is accessed while it is being reindexed
|
|
(Tom Lane)
|
|
</para>
|
|
|
|
<para>
|
|
Previously this was just an assertion check, but promote it into a
|
|
regular runtime error. This will provide a more on-point error
|
|
message when reindexing a user-defined index expression that
|
|
attempts to access its own table.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: David Rowley <drowley@postgresql.org>
|
|
Branch: master [a63224be4] 2024-05-01 13:21:21 +1200
|
|
Branch: REL_16_STABLE [68d358545] 2024-05-01 13:21:50 +1200
|
|
Branch: REL_15_STABLE [52f21f928] 2024-05-01 13:22:16 +1200
|
|
Branch: REL_14_STABLE [e6b0efc65] 2024-05-01 13:22:41 +1200
|
|
Branch: REL_13_STABLE [0a34bcd0c] 2024-05-01 13:23:05 +1200
|
|
Branch: REL_12_STABLE [e3f9dcabd] 2024-05-01 13:23:25 +1200
|
|
-->
|
|
<para>
|
|
Ensure that index-only scans on <type>name</type> columns return a
|
|
fully-padded value (David Rowley)
|
|
</para>
|
|
|
|
<para>
|
|
The value physically stored in the index is truncated, and
|
|
previously a pointer to that value was returned to callers. This
|
|
provoked complaints when testing under valgrind. In theory it could
|
|
result in crashes, though none have been reported.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Michael Paquier <michael@paquier.xyz>
|
|
Branch: master [818fefd8f] 2024-02-20 13:43:51 +0900
|
|
Branch: REL_16_STABLE [59cea09f0] 2024-02-20 13:43:56 +0900
|
|
-->
|
|
<para>
|
|
Fix race condition that could lead to reporting an incorrect
|
|
conflict cause when invalidating a replication slot (Bertrand
|
|
Drouvot)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Amit Kapila <akapila@postgresql.org>
|
|
Branch: master [aa79bde72] 2024-04-25 10:40:52 +0530
|
|
Branch: REL_16_STABLE [a9155efc7] 2024-04-25 10:52:34 +0530
|
|
Branch: REL_15_STABLE [28a8cc457] 2024-04-25 10:33:04 +0530
|
|
-->
|
|
<para>
|
|
Fix race condition in deciding whether a table sync operation is
|
|
needed in logical replication (Vignesh C)
|
|
</para>
|
|
|
|
<para>
|
|
An invalidation event arriving while a subscriber identifies which
|
|
tables need to be synced would be forgotten about, so that any
|
|
tables newly in need of syncing might not get processed in a timely
|
|
fashion.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
|
|
Branch: master [fbf9a7ac4] 2024-02-13 21:23:41 +0200
|
|
Branch: REL_16_STABLE [f2f09b825] 2024-02-13 21:24:45 +0200
|
|
Branch: REL_15_STABLE [d46c26961] 2024-02-13 21:25:27 +0200
|
|
Branch: REL_14_STABLE [9b8550fbd] 2024-02-13 21:25:39 +0200
|
|
Branch: REL_13_STABLE [e92375692] 2024-02-13 21:25:48 +0200
|
|
Branch: REL_12_STABLE [95cc48ca0] 2024-02-13 21:25:59 +0200
|
|
-->
|
|
<para>
|
|
Fix crash with DSM allocations larger than 4GB (Heikki Linnakangas)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
|
|
Branch: master [f8c5317d0] 2024-03-12 10:18:32 +0200
|
|
Branch: REL_16_STABLE [539e328b1] 2024-03-12 10:18:44 +0200
|
|
Branch: REL_15_STABLE [4fce5f970] 2024-03-12 10:18:50 +0200
|
|
Branch: REL_14_STABLE [bf1f593e8] 2024-03-12 10:18:51 +0200
|
|
Branch: REL_13_STABLE [ad5cd55e6] 2024-03-12 10:18:53 +0200
|
|
Branch: REL_12_STABLE [df27d76d3] 2024-03-12 10:18:54 +0200
|
|
-->
|
|
<para>
|
|
Disconnect if a new server session's client socket cannot be put
|
|
into non-blocking mode (Heikki Linnakangas)
|
|
</para>
|
|
|
|
<para>
|
|
It was once theoretically possible for us to operate with a socket
|
|
that's in blocking mode; but that hasn't worked fully in a long
|
|
time, so fail at connection start rather than misbehave later.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
Branch: master [453c46873] 2024-03-07 19:38:17 -0500
|
|
Branch: REL_16_STABLE [6a2c80e95] 2024-03-07 19:37:51 -0500
|
|
Branch: REL_15_STABLE [0fe82e45c] 2024-03-07 19:37:51 -0500
|
|
Branch: REL_14_STABLE [473babd42] 2024-03-07 19:37:51 -0500
|
|
Branch: REL_13_STABLE [9fbe07275] 2024-03-07 19:37:51 -0500
|
|
Branch: REL_12_STABLE [c42e5fdcf] 2024-03-07 19:37:51 -0500
|
|
-->
|
|
<para>
|
|
Fix inadequate error reporting
|
|
with <application>OpenSSL</application> 3.0.0 and later (Heikki
|
|
Linnakangas, Tom Lane)
|
|
</para>
|
|
|
|
<para>
|
|
System-reported errors passed through by OpenSSL were reported with
|
|
a numeric error code rather than anything readable.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Thomas Munro <tmunro@postgresql.org>
|
|
Branch: master [65f438471] 2024-02-12 11:14:21 +1300
|
|
Branch: REL_16_STABLE [0460e4ecc] 2024-02-12 11:14:42 +1300
|
|
-->
|
|
<para>
|
|
Fix thread-safety of error reporting
|
|
for <function>getaddrinfo()</function> on Windows (Thomas Munro)
|
|
</para>
|
|
|
|
<para>
|
|
A multi-threaded <application>libpq</application> client program
|
|
could get an incorrect or corrupted error message after a network
|
|
lookup failure.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
Branch: master [a584d03ce] 2024-02-09 11:21:08 -0500
|
|
Branch: REL_16_STABLE [52afe5632] 2024-02-09 11:21:08 -0500
|
|
Branch: REL_15_STABLE [806f98951] 2024-02-09 11:21:08 -0500
|
|
Branch: REL_14_STABLE [8ead39e38] 2024-02-09 11:21:08 -0500
|
|
Branch: REL_13_STABLE [8c5da20db] 2024-02-09 11:21:08 -0500
|
|
Branch: REL_12_STABLE [9fb1396a9] 2024-02-09 11:21:08 -0500
|
|
Branch: master [0028b55bc] 2024-02-09 11:11:39 -0500
|
|
Branch: REL_16_STABLE [9440d23a0] 2024-02-09 11:11:39 -0500
|
|
Branch: REL_15_STABLE [9f041b041] 2024-02-09 11:11:39 -0500
|
|
Branch: REL_14_STABLE [7d7cc7fd6] 2024-02-09 11:11:39 -0500
|
|
Branch: REL_13_STABLE [67f8cf0f0] 2024-02-09 11:11:39 -0500
|
|
Branch: REL_12_STABLE [95e960e81] 2024-02-09 11:11:39 -0500
|
|
-->
|
|
<para>
|
|
Avoid concurrent calls to <function>bindtextdomain()</function>
|
|
in <application>libpq</application>
|
|
and <application>ecpglib</application> (Tom Lane)
|
|
</para>
|
|
|
|
<para>
|
|
Although GNU <application>gettext</application>'s implementation
|
|
seems to be fine with concurrent calls, the version available on
|
|
Windows is not.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
Branch: master [6f0cef935] 2024-04-16 12:31:42 -0400
|
|
Branch: REL_16_STABLE [392e6e9e6] 2024-04-16 12:31:32 -0400
|
|
Branch: REL_15_STABLE [25f937217] 2024-04-16 12:31:32 -0400
|
|
Branch: REL_14_STABLE [463164639] 2024-04-16 12:31:32 -0400
|
|
Branch: REL_13_STABLE [02531e8ca] 2024-04-16 12:31:32 -0400
|
|
Branch: REL_12_STABLE [2b6a74afe] 2024-04-16 12:31:32 -0400
|
|
Branch: REL_16_STABLE [0018f0af5] 2024-04-18 20:47:37 -0400
|
|
Branch: REL_15_STABLE [1e7b1b026] 2024-04-18 20:47:37 -0400
|
|
Branch: REL_14_STABLE [df66319f7] 2024-04-18 20:47:37 -0400
|
|
Branch: REL_13_STABLE [481597fc6] 2024-04-18 20:47:37 -0400
|
|
Branch: REL_12_STABLE [61dd815e0] 2024-04-18 20:47:37 -0400
|
|
Branch: REL_16_STABLE [dd3fddc85] 2024-04-19 01:07:16 -0400
|
|
Branch: REL_15_STABLE [f7e891748] 2024-04-19 01:07:32 -0400
|
|
Branch: REL_14_STABLE [de84608e2] 2024-04-19 01:07:41 -0400
|
|
Branch: REL_13_STABLE [c6bfeab42] 2024-04-19 01:07:47 -0400
|
|
Branch: REL_12_STABLE [cd26f08e4] 2024-04-19 01:07:52 -0400
|
|
-->
|
|
<para>
|
|
Fix crash in <application>ecpg</application>'s preprocessor if
|
|
the program tries to redefine a macro that was defined on the
|
|
preprocessor command line (Tom Lane)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
Branch: master [096a761d6] 2024-04-04 15:31:53 -0400
|
|
Branch: REL_16_STABLE [118558e6d] 2024-04-04 15:31:53 -0400
|
|
Branch: REL_15_STABLE [f159f1814] 2024-04-04 15:31:53 -0400
|
|
Branch: REL_14_STABLE [d3167ed3f] 2024-04-04 15:31:53 -0400
|
|
Branch: REL_13_STABLE [5ba29e945] 2024-04-04 15:31:53 -0400
|
|
Branch: REL_12_STABLE [360d007e3] 2024-04-04 15:31:53 -0400
|
|
-->
|
|
<para>
|
|
In <application>ecpg</application>, avoid issuing
|
|
false <quote>unsupported feature will be passed to server</quote>
|
|
warnings (Tom Lane)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Michael Paquier <michael@paquier.xyz>
|
|
Branch: master [e77a1c58e] 2024-02-19 11:38:18 +0900
|
|
Branch: REL_16_STABLE [88e03d055] 2024-02-19 11:38:44 +0900
|
|
Branch: REL_15_STABLE [b5cb6022b] 2024-02-19 11:38:47 +0900
|
|
Branch: REL_14_STABLE [a05bb9add] 2024-02-19 11:38:49 +0900
|
|
Branch: REL_13_STABLE [c031ce97b] 2024-02-19 11:38:52 +0900
|
|
Branch: REL_12_STABLE [771240f97] 2024-02-19 11:38:54 +0900
|
|
-->
|
|
<para>
|
|
Ensure that the string result
|
|
of <application>ecpg</application>'s <function>intoasc()</function>
|
|
function is correctly zero-terminated (Oleg Tselebrovskiy)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
Branch: master [fce2ce797] 2024-03-04 12:00:48 -0500
|
|
Branch: REL_16_STABLE [b78f4d22b] 2024-03-04 12:00:39 -0500
|
|
-->
|
|
<para>
|
|
In <application>initdb</application>'s <option>-c</option> option,
|
|
match parameter names case-insensitively (Tom Lane)
|
|
</para>
|
|
|
|
<para>
|
|
The server treats parameter names case-insensitively, so this code
|
|
should too. This avoids putting redundant entries into the
|
|
generated <filename>postgresql.conf</filename> file.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
Branch: master [f463de59d] 2024-04-08 17:00:07 -0400
|
|
Branch: REL_16_STABLE [a85e3ba1c] 2024-04-08 17:00:07 -0400
|
|
Branch: REL_15_STABLE [4f1d33d70] 2024-04-08 17:00:07 -0400
|
|
-->
|
|
<para>
|
|
In <application>psql</application>, avoid leaking a query result
|
|
after the query is cancelled (Tom Lane)
|
|
</para>
|
|
|
|
<para>
|
|
This happened only when cancelling a non-last query in a query
|
|
string made with <literal>\;</literal> separators.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Daniel Gustafsson <dgustafsson@postgresql.org>
|
|
Branch: master [7e65ad197] 2024-03-21 23:31:57 +0100
|
|
Branch: REL_16_STABLE [5863bacb8] 2024-03-21 23:31:57 +0100
|
|
Branch: REL_15_STABLE [12128be62] 2024-03-21 23:31:57 +0100
|
|
Branch: REL_14_STABLE [be01c8c34] 2024-03-21 23:31:57 +0100
|
|
Branch: REL_13_STABLE [affc46b76] 2024-03-21 23:31:57 +0100
|
|
Branch: REL_12_STABLE [d82cb467b] 2024-03-21 23:31:57 +0100
|
|
Branch: REL_14_STABLE [6ebd43725] 2024-03-22 01:01:30 +0100
|
|
Branch: REL_13_STABLE [d5c6affb8] 2024-03-22 01:01:30 +0100
|
|
Branch: REL_12_STABLE [82c2192d9] 2024-03-22 01:01:30 +0100
|
|
-->
|
|
<para>
|
|
Fix <application>pg_dumpall</application> so that role comments, if
|
|
present, will be dumped regardless of the setting
|
|
of <option>--no-role-passwords</option> (Daniel Gustafsson,
|
|
Álvaro Herrera)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Daniel Gustafsson <dgustafsson@postgresql.org>
|
|
Branch: master [c1fc502f5] 2024-02-13 13:47:12 +0100
|
|
Branch: REL_16_STABLE [103235888] 2024-02-13 13:47:12 +0100
|
|
Branch: REL_15_STABLE [29f005238] 2024-02-13 13:47:12 +0100
|
|
-->
|
|
<para>
|
|
Skip files named <filename>.DS_Store</filename>
|
|
in <application>pg_basebackup</application>,
|
|
<application>pg_checksums</application>,
|
|
and <application>pg_rewind</application> (Daniel Gustafsson)
|
|
</para>
|
|
|
|
<para>
|
|
This avoids problems on macOS, where the Finder may create such
|
|
files.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
Branch: master [5392dd3d2] 2024-04-10 15:45:58 -0400
|
|
Branch: REL_16_STABLE [48f216dc6] 2024-04-10 15:45:58 -0400
|
|
Branch: REL_15_STABLE [d85db0a8e] 2024-04-10 15:45:59 -0400
|
|
Branch: REL_14_STABLE [dc5824a06] 2024-04-10 15:45:59 -0400
|
|
Branch: REL_13_STABLE [f5cee411a] 2024-04-10 15:45:59 -0400
|
|
Branch: REL_12_STABLE [5e9d8bed0] 2024-04-10 15:45:59 -0400
|
|
-->
|
|
<para>
|
|
Fix <application>PL/pgSQL</application>'s parsing of single-line
|
|
comments (<literal>--</literal>-style comments) following
|
|
expressions (Erik Wienhold, Tom Lane)
|
|
</para>
|
|
|
|
<para>
|
|
This mistake caused parse errors if such a comment followed
|
|
a <literal>WHEN</literal> expression in
|
|
a <application>PL/pgSQL</application> <command>CASE</command>
|
|
statement.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Alexander Korotkov <akorotkov@postgresql.org>
|
|
Branch: master [b1fe8efdf] 2024-03-24 00:09:24 +0200
|
|
Branch: REL_16_STABLE [3676b846b] 2024-03-23 23:02:30 +0200
|
|
Branch: REL_15_STABLE [0d466bce9] 2024-03-23 23:02:43 +0200
|
|
Branch: REL_14_STABLE [4e8529da4] 2024-03-23 23:03:10 +0200
|
|
Branch: REL_13_STABLE [5cc1f2626] 2024-03-23 23:03:12 +0200
|
|
Branch: REL_12_STABLE [d603e6744] 2024-03-24 00:08:13 +0200
|
|
Branch: master [ab65dfb0f] 2024-03-24 00:09:24 +0200
|
|
Branch: REL_16_STABLE [a6ddb8ad0] 2024-03-23 23:02:30 +0200
|
|
Branch: REL_15_STABLE [54e6184db] 2024-03-23 23:02:43 +0200
|
|
Branch: REL_14_STABLE [5df5d9cd7] 2024-03-23 23:03:10 +0200
|
|
Branch: REL_13_STABLE [e2c241416] 2024-03-23 23:03:12 +0200
|
|
Branch: REL_12_STABLE [50f8611d0] 2024-03-23 23:03:14 +0200
|
|
-->
|
|
<para>
|
|
In <filename>contrib/amcheck</filename>, don't report false match
|
|
failures due to short- versus long-header values (Andrey Borodin,
|
|
Michael Zhilin)
|
|
</para>
|
|
|
|
<para>
|
|
A variable-length datum in a heap tuple or index tuple could have
|
|
either a short or a long header, depending on compression parameters
|
|
that applied when it was made. Treat these cases as equivalent
|
|
rather than complaining if there's a difference.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Tomas Vondra <tomas.vondra@postgresql.org>
|
|
Branch: master [bb616ed3e] 2024-04-14 18:19:58 +0200
|
|
Branch: REL_16_STABLE [8cea358b1] 2024-04-14 18:24:38 +0200
|
|
Branch: master [2f20ced1e] 2024-04-14 18:07:15 +0200
|
|
Branch: REL_16_STABLE [ccd8f0fa1] 2024-04-14 18:17:09 +0200
|
|
Branch: REL_15_STABLE [3cd413511] 2024-04-14 18:17:29 +0200
|
|
Branch: REL_14_STABLE [ad23af83d] 2024-04-14 18:18:07 +0200
|
|
-->
|
|
<para>
|
|
Fix bugs in BRIN output functions (Tomas Vondra)
|
|
</para>
|
|
|
|
<para>
|
|
These output functions are only used for displaying index entries
|
|
in <filename>contrib/pageinspect</filename>, so the errors are of
|
|
limited practical concern.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: David Rowley <drowley@postgresql.org>
|
|
Branch: master [c399248b3] 2024-03-11 12:27:11 +1300
|
|
Branch: REL_16_STABLE [6a9e2cb2b] 2024-03-11 12:27:46 +1300
|
|
Branch: REL_15_STABLE [ab64b275a] 2024-03-11 12:28:11 +1300
|
|
Branch: REL_14_STABLE [628c3f2e1] 2024-03-11 12:28:40 +1300
|
|
Branch: REL_13_STABLE [20b85b3da] 2024-03-11 12:29:03 +1300
|
|
Branch: REL_12_STABLE [9301e0f41] 2024-03-11 12:29:24 +1300
|
|
-->
|
|
<para>
|
|
In <filename>contrib/postgres_fdw</filename>, avoid emitting
|
|
requests to sort by a constant (David Rowley)
|
|
</para>
|
|
|
|
<para>
|
|
This could occur in cases involving <literal>UNION ALL</literal>
|
|
with constant-emitting subqueries. Sorting by a constant is useless
|
|
of course, but it also risks being misinterpreted by the remote
|
|
server, leading to <quote>ORDER BY
|
|
position <replaceable>N</replaceable> is not in select list</quote>
|
|
errors.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
Branch: master [a3021aafc] 2024-04-21 13:46:20 -0400
|
|
Branch: REL_16_STABLE [75929b6cf] 2024-04-21 13:46:20 -0400
|
|
Branch: REL_15_STABLE [6c85e3359] 2024-04-21 13:46:20 -0400
|
|
Branch: REL_14_STABLE [3ed6e1698] 2024-04-21 13:46:20 -0400
|
|
Branch: REL_13_STABLE [0e56b2b94] 2024-04-21 13:46:20 -0400
|
|
Branch: REL_12_STABLE [ce1c30ece] 2024-04-21 13:46:20 -0400
|
|
-->
|
|
<para>
|
|
Make <filename>contrib/postgres_fdw</filename> set the remote
|
|
session's time zone to <literal>GMT</literal>
|
|
not <literal>UTC</literal> (Tom Lane)
|
|
</para>
|
|
|
|
<para>
|
|
This should have the same results for practical purposes.
|
|
However, <literal>GMT</literal> is recognized by hard-wired code in
|
|
the server, while <literal>UTC</literal> is looked up in the
|
|
timezone database. So the old code could fail in the unlikely event
|
|
that the remote server's timezone database is missing entries.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Michael Paquier <michael@paquier.xyz>
|
|
Branch: REL_16_STABLE [7c93f31de] 2024-04-16 12:25:48 +0900
|
|
Branch: REL_15_STABLE [689ba4f1c] 2024-04-16 12:26:10 +0900
|
|
Branch: REL_14_STABLE [6fa5e67e8] 2024-04-16 12:26:15 +0900
|
|
Branch: REL_13_STABLE [bb418aeee] 2024-04-16 12:26:17 +0900
|
|
Branch: REL_12_STABLE [4b0e5d601] 2024-04-16 12:26:21 +0900
|
|
-->
|
|
<para>
|
|
In <filename>contrib/xml2</filename>, avoid use of library functions
|
|
that have been deprecated in recent versions
|
|
of <application>libxml2</application> (Dmitry Koval)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Thomas Munro <tmunro@postgresql.org>
|
|
Branch: master [53c8d6c9f] 2024-04-10 12:13:46 +1200
|
|
Branch: REL_16_STABLE [bf1cfe77e] 2024-04-10 10:46:15 +1200
|
|
Branch: REL_15_STABLE [74992929a] 2024-04-10 12:14:04 +1200
|
|
Branch: REL_14_STABLE [7fe32eaa4] 2024-04-10 12:15:07 +1200
|
|
Branch: REL_13_STABLE [4f90750b5] 2024-04-10 12:15:41 +1200
|
|
Branch: REL_12_STABLE [01b55203a] 2024-04-10 12:15:59 +1200
|
|
-->
|
|
<para>
|
|
Fix incompatibility with LLVM 18 (Thomas Munro, Dmitry Dolgov)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
Branch: master [8a92b70c1] 2024-03-26 11:44:49 -0400
|
|
Branch: REL_16_STABLE [7651fd387] 2024-03-26 11:44:49 -0400
|
|
Branch: REL_15_STABLE [3c3f4fd74] 2024-03-26 11:44:49 -0400
|
|
Branch: REL_14_STABLE [d82605bcd] 2024-03-26 11:44:49 -0400
|
|
Branch: REL_13_STABLE [243e99532] 2024-03-26 11:44:49 -0400
|
|
Branch: REL_12_STABLE [7124e7d52] 2024-03-26 11:44:49 -0400
|
|
-->
|
|
<para>
|
|
Allow <literal>make check</literal> to work with
|
|
the <application>musl</application> C library (Thomas Munro, Bruce
|
|
Momjian, Tom Lane)
|
|
</para>
|
|
</listitem>
|
|
|
|
</itemizedlist>
|
|
|
|
</sect2>
|
|
</sect1>
|
|
|
|
<sect1 id="release-16-2">
|
|
<title>Release 16.2</title>
|
|
|
|
<formalpara>
|
|
<title>Release date:</title>
|
|
<para>2024-02-08</para>
|
|
</formalpara>
|
|
|
|
<para>
|
|
This release contains a variety of fixes from 16.1.
|
|
For information about new features in major release 16, see
|
|
<xref linkend="release-16"/>.
|
|
</para>
|
|
|
|
<sect2 id="release-16-2-migration">
|
|
<title>Migration to Version 16.2</title>
|
|
|
|
<para>
|
|
A dump/restore is not required for those running 16.X.
|
|
</para>
|
|
|
|
<para>
|
|
However, one bug was fixed that could have resulted in corruption of
|
|
GIN indexes during concurrent updates. If you suspect such
|
|
corruption, reindex affected indexes after installing this update.
|
|
</para>
|
|
|
|
<para>
|
|
Also, if you are upgrading from a version earlier than 16.1,
|
|
see <xref linkend="release-16-1"/>.
|
|
</para>
|
|
</sect2>
|
|
|
|
<sect2 id="release-16-2-changes">
|
|
<title>Changes</title>
|
|
|
|
<itemizedlist>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
|
|
Branch: master [5a9167c39] 2024-02-05 11:01:23 +0200
|
|
Branch: REL_16_STABLE [d6a61cb3b] 2024-02-05 11:02:56 +0200
|
|
Branch: REL_15_STABLE [f2fdea198] 2024-02-05 11:03:26 +0200
|
|
Branch: REL_14_STABLE [f4f288352] 2024-02-05 11:03:43 +0200
|
|
Branch: REL_13_STABLE [d541ce3b6] 2024-02-05 11:04:08 +0200
|
|
Branch: REL_12_STABLE [2699fc035] 2024-02-05 11:04:22 +0200
|
|
Branch: master [b96115acb] 2024-02-05 11:01:30 +0200
|
|
Branch: REL_16_STABLE [fb3836855] 2024-02-05 11:03:03 +0200
|
|
Branch: REL_15_STABLE [06f36bc01] 2024-02-05 11:03:28 +0200
|
|
Branch: REL_14_STABLE [a45c950ae] 2024-02-05 11:03:43 +0200
|
|
Branch: REL_13_STABLE [b73d21648] 2024-02-05 11:04:10 +0200
|
|
Branch: REL_12_STABLE [add8bc9b8] 2024-02-05 11:04:23 +0200
|
|
-->
|
|
<para>
|
|
Tighten security restrictions within <command>REFRESH MATERIALIZED
|
|
VIEW CONCURRENTLY</command> (Heikki Linnakangas)
|
|
</para>
|
|
|
|
<para>
|
|
One step of a concurrent refresh command was run under weak security
|
|
restrictions. If a materialized view's owner could persuade a
|
|
superuser or other high-privileged user to perform a concurrent
|
|
refresh on that view, the view's owner could control code executed
|
|
with the privileges of the user running <command>REFRESH</command>.
|
|
Fix things so that all user-determined code is run as the view's
|
|
owner, as expected.
|
|
</para>
|
|
|
|
<para>
|
|
The only known exploit for this error does not work
|
|
in <productname>PostgreSQL</productname> 16.0 and later, so it may
|
|
be that v16 is not vulnerable in practice.
|
|
</para>
|
|
|
|
<para>
|
|
The <productname>PostgreSQL</productname> Project thanks Pedro
|
|
Gallegos for reporting this problem.
|
|
(CVE-2024-0985) <!-- not CVE-2023-5869 as claimed in commit msg -->
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Daniel Gustafsson <dgustafsson@postgresql.org>
|
|
Branch: master [9dce22033] 2023-09-27 13:02:21 +0200
|
|
Branch: REL_16_STABLE [2cf50585e] 2023-11-17 10:18:38 +0100
|
|
Branch: REL_15_STABLE [aef521849] 2023-11-17 10:21:34 +0100
|
|
Branch: REL_14_STABLE [75a20a4b4] 2023-11-17 10:27:45 +0100
|
|
Branch: REL_13_STABLE [10912f7d4] 2023-11-17 11:46:31 +0100
|
|
Branch: REL_12_STABLE [3b991f81c] 2023-11-17 11:47:17 +0100
|
|
Branch: REL_12_STABLE [c922b2410] 2023-12-11 12:02:01 +0100
|
|
-->
|
|
<para>
|
|
Fix memory leak when performing JIT inlining (Andres Freund,
|
|
Daniel Gustafsson)
|
|
</para>
|
|
|
|
<para>
|
|
There have been multiple reports of backend processes suffering
|
|
out-of-memory conditions after sufficiently many JIT compilations.
|
|
This fix should resolve that.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
Branch: REL_16_STABLE [62f120203] 2024-02-01 12:34:21 -0500
|
|
Branch: REL_15_STABLE [12ec16d11] 2024-02-01 12:34:21 -0500
|
|
Branch: REL_14_STABLE [e031995d5] 2024-02-01 12:34:21 -0500
|
|
Branch: REL_13_STABLE [7af96a66f] 2024-02-01 12:34:21 -0500
|
|
Branch: REL_12_STABLE [2e822a1d6] 2024-02-01 12:34:21 -0500
|
|
-->
|
|
<para>
|
|
Avoid generating incorrect partitioned-join plans (Richard Guo)
|
|
</para>
|
|
|
|
<para>
|
|
Some uncommon situations involving lateral references could create
|
|
incorrect plans. Affected queries could produce wrong answers, or
|
|
odd failures such as <quote>variable not found in subplan target
|
|
list</quote>, or executor crashes.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
Branch: master [29f114b6f] 2024-01-11 15:28:22 -0500
|
|
Branch: REL_16_STABLE [80bece312] 2024-01-11 15:28:13 -0500
|
|
Branch: REL_15_STABLE [a0b4fda44] 2024-01-11 15:28:13 -0500
|
|
Branch: REL_14_STABLE [ea1d54288] 2024-01-11 15:28:13 -0500
|
|
Branch: REL_13_STABLE [bfd28bb07] 2024-01-11 15:28:13 -0500
|
|
Branch: REL_12_STABLE [69c12c417] 2024-01-11 15:28:13 -0500
|
|
-->
|
|
<para>
|
|
Fix incorrect wrapping of subquery output expressions in
|
|
PlaceHolderVars (Tom Lane)
|
|
</para>
|
|
|
|
<para>
|
|
This fixes incorrect results when a subquery is underneath an outer
|
|
join and has an output column that laterally references something
|
|
outside the outer join's scope. The output column might not appear
|
|
as NULL when it should do so due to the action of the outer join.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
Branch: master [d641b827a] 2024-01-10 13:36:33 -0500
|
|
Branch: REL_16_STABLE [ee9553218] 2024-01-10 13:36:34 -0500
|
|
Branch: REL_15_STABLE [c3f52fd5d] 2024-01-10 13:36:34 -0500
|
|
-->
|
|
<para>
|
|
Fix misprocessing of window function run conditions (Richard Guo)
|
|
</para>
|
|
|
|
<para>
|
|
This oversight could lead to <quote>WindowFunc not found in subplan
|
|
target lists</quote> errors.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: David Rowley <drowley@postgresql.org>
|
|
Branch: master [2bcf0785c] 2024-01-22 22:45:02 +1300
|
|
Branch: REL_16_STABLE [74f770ef2] 2024-01-22 22:45:33 +1300
|
|
-->
|
|
<para>
|
|
Fix detection of inner-side uniqueness for Memoize plans
|
|
(Richard Guo)
|
|
</para>
|
|
|
|
<para>
|
|
This mistake could lead to <quote>cache entry already
|
|
complete</quote> errors.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
Branch: master [36f5594c0] 2023-11-09 15:46:16 -0500
|
|
Branch: REL_16_STABLE [6bf2efb38] 2023-11-09 15:46:16 -0500
|
|
-->
|
|
<para>
|
|
Fix computation of nullingrels when constant-folding field selection
|
|
(Richard Guo)
|
|
</para>
|
|
|
|
<para>
|
|
Failure to do this led to errors like <quote>wrong varnullingrels
|
|
(b) (expected (b 3)) for Var 2/2</quote>.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Dean Rasheed <dean.a.rasheed@gmail.com>
|
|
Branch: master [a4f7d33a9] 2023-11-09 11:23:42 +0000
|
|
Branch: REL_16_STABLE [06a546382] 2023-11-09 11:27:04 +0000
|
|
Branch: REL_15_STABLE [c0bfdaf2b] 2023-11-09 11:28:25 +0000
|
|
-->
|
|
<para>
|
|
Skip inappropriate actions when <command>MERGE</command> causes a
|
|
cross-partition update (Dean Rasheed)
|
|
</para>
|
|
|
|
<para>
|
|
When executing a <literal>MERGE UPDATE</literal> action on a
|
|
partitioned table, if the <literal>UPDATE</literal> is turned into
|
|
a <literal>DELETE</literal> and <literal>INSERT</literal> due to
|
|
changing a partition key column, skip firing <literal>AFTER
|
|
UPDATE ROW</literal> triggers, as well as other post-update actions
|
|
such as RLS checks. These actions would typically fail, which is
|
|
why a regular <literal>UPDATE</literal> doesn't do them in such
|
|
cases; <literal>MERGE</literal> shouldn't either.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Dean Rasheed <dean.a.rasheed@gmail.com>
|
|
Branch: master [a0ff37173] 2023-12-21 12:55:22 +0000
|
|
Branch: REL_16_STABLE [7f07384dc] 2023-12-21 12:53:48 +0000
|
|
Branch: REL_15_STABLE [7e8c6d7af] 2023-12-21 12:51:55 +0000
|
|
-->
|
|
<para>
|
|
Cope with <literal>BEFORE ROW DELETE</literal> triggers in
|
|
cross-partition <command>MERGE</command> updates (Dean Rasheed)
|
|
</para>
|
|
|
|
<para>
|
|
If such a trigger attempted to prevent the update by returning
|
|
NULL, <command>MERGE</command> would suffer an error or assertion
|
|
failure.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
Branch: master [6545ba96c] 2024-01-14 12:38:41 -0500
|
|
Branch: REL_16_STABLE [23e0ba59c] 2024-01-14 12:38:41 -0500
|
|
Branch: REL_15_STABLE [1a4e54617] 2024-01-14 12:38:41 -0500
|
|
Branch: REL_14_STABLE [c7edaeec5] 2024-01-14 12:38:41 -0500
|
|
-->
|
|
<para>
|
|
Prevent access to a no-longer-pinned buffer in <literal>BEFORE ROW
|
|
UPDATE</literal> triggers (Alexander Lakhin, Tom Lane)
|
|
</para>
|
|
|
|
<para>
|
|
If the tuple being updated had just been updated and moved to
|
|
another page by another session, there was a narrow window where
|
|
we would attempt to fetch data from the new tuple version without
|
|
any pin on its buffer. In principle this could result in garbage
|
|
data appearing in non-updated columns of the proposed new tuple.
|
|
The odds of problems in practice seem rather low, however.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Alexander Korotkov <akorotkov@postgresql.org>
|
|
Branch: master [2a67b5a60] 2024-01-07 09:10:19 +0200
|
|
Branch: REL_16_STABLE [714a987bc] 2024-01-07 09:32:58 +0200
|
|
Branch: REL_15_STABLE [1a7c03e6f] 2024-01-07 09:10:40 +0200
|
|
Branch: REL_14_STABLE [3bdaa8fc6] 2024-01-07 09:10:49 +0200
|
|
Branch: REL_13_STABLE [60de25c6e] 2024-01-07 09:11:00 +0200
|
|
Branch: REL_12_STABLE [72d5b2776] 2024-01-07 09:18:43 +0200
|
|
Branch: master [6d94cc6ca] 2024-01-08 20:00:20 +0200
|
|
Branch: REL_16_STABLE [20a566cd4] 2024-01-08 19:57:09 +0200
|
|
Branch: REL_15_STABLE [6eecc3a62] 2024-01-08 19:57:03 +0200
|
|
Branch: REL_14_STABLE [97e64911d] 2024-01-08 19:57:58 +0200
|
|
Branch: REL_13_STABLE [17b6f39f1] 2024-01-08 19:58:38 +0200
|
|
Branch: REL_12_STABLE [a5e2853c3] 2024-01-08 19:58:51 +0200
|
|
-->
|
|
<para>
|
|
Avoid requesting an oversize shared-memory area in parallel hash
|
|
join (Thomas Munro, Andrei Lepikhov, Alexander Korotkov)
|
|
</para>
|
|
|
|
<para>
|
|
The limiting value was too large, allowing <quote>invalid DSA memory
|
|
alloc request size</quote> errors to occur with sufficiently large
|
|
expected hash table sizes.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Michael Paquier <michael@paquier.xyz>
|
|
Branch: master [9cd0d77df] 2024-01-05 20:08:34 +0900
|
|
Branch: REL_16_STABLE [37c551663] 2024-01-05 20:10:46 +0900
|
|
-->
|
|
<para>
|
|
Fix corruption of local buffer state when an error occurs while
|
|
trying to extend a temporary table (Tender Wang)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: David Rowley <drowley@postgresql.org>
|
|
Branch: master [ae69c4fcf] 2024-01-04 20:38:25 +1300
|
|
Branch: REL_16_STABLE [6298673f4] 2024-01-04 20:40:11 +1300
|
|
-->
|
|
<para>
|
|
Fix use of wrong tuple slot while
|
|
evaluating <literal>DISTINCT</literal> aggregates that have multiple
|
|
arguments (David Rowley)
|
|
</para>
|
|
|
|
<para>
|
|
This mistake could lead to errors such as <quote>attribute 1 of type
|
|
record has wrong type</quote>.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
|
|
Branch: master [60f227316] 2023-11-28 12:00:14 +0200
|
|
Branch: REL_16_STABLE [9fee3232a] 2023-11-28 11:59:45 +0200
|
|
Branch: REL_15_STABLE [2873fbfe0] 2023-11-28 11:59:50 +0200
|
|
Branch: REL_14_STABLE [59c62a21f] 2023-11-28 11:59:51 +0200
|
|
Branch: REL_13_STABLE [e434d3620] 2023-11-28 11:59:52 +0200
|
|
Branch: REL_12_STABLE [b8a606e21] 2023-11-28 11:59:53 +0200
|
|
-->
|
|
<para>
|
|
Avoid assertion failures in <function>heap_update()</function>
|
|
and <function>heap_delete()</function> when a tuple to be updated by
|
|
a foreign-key enforcement trigger fails the extra visibility
|
|
crosscheck (Alexander Lakhin)
|
|
</para>
|
|
|
|
<para>
|
|
This error had no impact in non-assert builds.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Michael Paquier <michael@paquier.xyz>
|
|
Branch: master [1b2c6b756] 2023-11-08 14:06:26 +0900
|
|
Branch: REL_16_STABLE [4dccf9575] 2023-11-08 14:06:36 +0900
|
|
Branch: REL_15_STABLE [7e18c0bd6] 2023-11-08 14:06:39 +0900
|
|
Branch: REL_14_STABLE [59fc39c0d] 2023-11-08 14:06:42 +0900
|
|
-->
|
|
<para>
|
|
Fix overly tight assertion
|
|
about <varname>false_positive_rate</varname> parameter of
|
|
BRIN bloom operator classes (Alexander Lakhin)
|
|
</para>
|
|
|
|
<para>
|
|
This error had no impact in non-assert builds, either.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Michael Paquier <michael@paquier.xyz>
|
|
Branch: master [bb812ab09] 2024-01-24 14:20:01 +0900
|
|
Branch: REL_16_STABLE [51193e7a7] 2024-01-24 14:20:08 +0900
|
|
Branch: REL_15_STABLE [ad6fbbeeb] 2024-01-24 14:20:10 +0900
|
|
Branch: REL_14_STABLE [5a7833f49] 2024-01-24 14:20:11 +0900
|
|
Branch: REL_13_STABLE [bfec14d06] 2024-01-24 14:20:13 +0900
|
|
Branch: REL_12_STABLE [2f7242837] 2024-01-24 14:20:14 +0900
|
|
-->
|
|
<para>
|
|
Fix possible failure during <command>ALTER TABLE ADD
|
|
COLUMN</command> on a complex inheritance tree (Tender Wang)
|
|
</para>
|
|
|
|
<para>
|
|
If a grandchild table would inherit the new column via multiple
|
|
intermediate parents, the command failed with <quote>tuple already
|
|
updated by self</quote>.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Michael Paquier <michael@paquier.xyz>
|
|
Branch: master [3e91dba8b] 2024-01-31 13:15:21 +0900
|
|
Branch: REL_16_STABLE [f33e83285] 2024-01-31 13:16:43 +0900
|
|
Branch: REL_15_STABLE [41fa4b31c] 2024-01-31 13:16:46 +0900
|
|
Branch: REL_14_STABLE [dde5b01c3] 2024-01-31 13:16:47 +0900
|
|
Branch: REL_13_STABLE [4d0e8a008] 2024-01-31 13:16:49 +0900
|
|
Branch: REL_12_STABLE [056109782] 2024-01-31 13:16:50 +0900
|
|
-->
|
|
<para>
|
|
Fix problems with duplicate token names in <command>ALTER TEXT
|
|
SEARCH CONFIGURATION ... MAPPING</command> commands (Tender Wang,
|
|
Michael Paquier)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Michael Paquier <michael@paquier.xyz>
|
|
Branch: master [50b797dc9] 2024-01-29 08:05:59 +0900
|
|
Branch: REL_16_STABLE [f57a580fd] 2024-01-29 08:06:03 +0900
|
|
-->
|
|
<para>
|
|
Fix <command>DROP ROLE</command> with duplicate role names
|
|
(Michael Paquier)
|
|
</para>
|
|
|
|
<para>
|
|
Previously this led to a <quote>tuple already updated by
|
|
self</quote> failure. Instead, ignore the duplicate.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Tomas Vondra <tomas.vondra@postgresql.org>
|
|
Branch: master [28f84f72f] 2023-11-19 21:03:38 +0100
|
|
Branch: REL_16_STABLE [ee32b824d] 2023-11-19 21:03:50 +0100
|
|
Branch: REL_15_STABLE [0177fc773] 2023-11-19 21:04:16 +0100
|
|
Branch: REL_14_STABLE [9dd50e92e] 2023-11-19 21:04:28 +0100
|
|
Branch: REL_13_STABLE [1e468ea4e] 2023-11-19 21:04:39 +0100
|
|
Branch: REL_12_STABLE [4f8d3c5b5] 2023-11-19 21:04:47 +0100
|
|
-->
|
|
<para>
|
|
Properly lock the associated table during <command>DROP
|
|
STATISTICS</command> (Tomas Vondra)
|
|
</para>
|
|
|
|
<para>
|
|
Failure to acquire the lock could result in <quote>tuple
|
|
concurrently deleted</quote> errors if the <command>DROP</command>
|
|
executes concurrently with <command>ANALYZE</command>.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
Branch: master [743ddafc7] 2023-11-16 10:05:14 -0500
|
|
Branch: REL_16_STABLE [f07a3039c] 2023-11-16 10:05:14 -0500
|
|
Branch: REL_15_STABLE [9057ddbef] 2023-11-16 10:05:14 -0500
|
|
Branch: REL_14_STABLE [9bd0f74ea] 2023-11-16 10:05:14 -0500
|
|
Branch: REL_13_STABLE [5c11104c7] 2023-11-16 10:05:14 -0500
|
|
Branch: REL_12_STABLE [abd1b1325] 2023-11-16 10:05:14 -0500
|
|
-->
|
|
<para>
|
|
Fix function volatility checking for <literal>GENERATED</literal>
|
|
and <literal>DEFAULT</literal> expressions (Tom Lane)
|
|
</para>
|
|
|
|
<para>
|
|
These places could fail to detect insertion of a volatile function
|
|
default-argument expression, or decide that a polymorphic function
|
|
is volatile although it is actually immutable on the datatype of
|
|
interest. This could lead to improperly rejecting or accepting
|
|
a <literal>GENERATED</literal> clause, or to mistakenly applying the
|
|
constant-default-value optimization in <command>ALTER TABLE ADD
|
|
COLUMN</command>.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
Branch: master [ad98fb142] 2024-01-13 13:46:27 -0500
|
|
Branch: REL_16_STABLE [7e2561e1a] 2024-01-13 13:46:27 -0500
|
|
Branch: REL_15_STABLE [2a46a0df4] 2024-01-13 13:46:27 -0500
|
|
Branch: REL_14_STABLE [db122d426] 2024-01-13 13:46:27 -0500
|
|
Branch: REL_13_STABLE [98e03f957] 2024-01-13 13:46:27 -0500
|
|
Branch: REL_12_STABLE [3b4d85cf1] 2024-01-13 13:46:27 -0500
|
|
Branch: master [96c019ffa] 2024-01-13 13:54:11 -0500
|
|
Branch: REL_16_STABLE [56dcd71de] 2024-01-13 13:54:11 -0500
|
|
Branch: REL_15_STABLE [d41358f4b] 2024-01-13 13:54:11 -0500
|
|
Branch: REL_14_STABLE [7ceeb57ba] 2024-01-13 13:54:11 -0500
|
|
Branch: REL_13_STABLE [475b3ea3c] 2024-01-13 13:54:11 -0500
|
|
Branch: REL_12_STABLE [d29a4fbac] 2024-01-13 13:54:11 -0500
|
|
-->
|
|
<para>
|
|
Detect that a new catalog cache entry became stale while detoasting
|
|
its fields (Tom Lane)
|
|
</para>
|
|
|
|
<para>
|
|
We expand any out-of-line fields in a catalog tuple before inserting
|
|
it into the catalog caches. That involves database access which
|
|
might cause invalidation of catalog cache entries — but the
|
|
new entry isn't in the cache yet, so we would miss noticing that it
|
|
should get invalidated. The result is a race condition in which an
|
|
already-stale cache entry could get made, and then persist
|
|
indefinitely. This would lead to hard-to-predict misbehavior.
|
|
Fix by rechecking the tuple's visibility after detoasting.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Dean Rasheed <dean.a.rasheed@gmail.com>
|
|
Branch: master [0e3e8fbd3] 2023-11-09 09:50:23 +0000
|
|
Branch: REL_16_STABLE [c396aca2b] 2023-11-09 09:53:05 +0000
|
|
Branch: REL_15_STABLE [308a69a98] 2023-11-09 09:54:22 +0000
|
|
Branch: REL_14_STABLE [dea12b40d] 2023-11-09 09:55:39 +0000
|
|
Branch: REL_13_STABLE [4f4a0010a] 2023-11-09 09:56:31 +0000
|
|
Branch: REL_12_STABLE [b17a02be2] 2023-11-09 09:57:52 +0000
|
|
-->
|
|
<para>
|
|
Fix edge-case integer overflow detection bug on some platforms (Dean
|
|
Rasheed)
|
|
</para>
|
|
|
|
<para>
|
|
Computing <literal>0 - INT64_MIN</literal> should result in an
|
|
overflow error, and did on most platforms. However, platforms with
|
|
neither integer overflow builtins nor 128-bit integers would fail to
|
|
spot the overflow, instead returning <literal>INT64_MIN</literal>.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
Branch: master [25cd2d640] 2024-01-26 13:39:45 -0500
|
|
Branch: REL_16_STABLE [7204aea83] 2024-01-26 13:39:37 -0500
|
|
Branch: REL_15_STABLE [86b6243a8] 2024-01-26 13:39:37 -0500
|
|
Branch: REL_14_STABLE [3eb8a87f6] 2024-01-26 13:39:37 -0500
|
|
Branch: REL_13_STABLE [425127bed] 2024-01-26 13:39:37 -0500
|
|
Branch: REL_12_STABLE [c3bdb25fb] 2024-01-26 13:39:37 -0500
|
|
-->
|
|
<para>
|
|
Detect Julian-date overflow when adding or subtracting
|
|
an <type>interval</type> to/from a <type>timestamp</type> (Tom Lane)
|
|
</para>
|
|
|
|
<para>
|
|
Some cases that should cause an out-of-range error produced an
|
|
incorrect result instead.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Dean Rasheed <dean.a.rasheed@gmail.com>
|
|
Branch: master [b218fbb7a] 2023-11-18 14:41:20 +0000
|
|
Branch: REL_16_STABLE [72d0c135b] 2023-11-18 14:46:02 +0000
|
|
Branch: REL_15_STABLE [2851aa7d1] 2023-11-18 14:47:04 +0000
|
|
Branch: REL_14_STABLE [2ffcebdba] 2023-11-18 14:48:10 +0000
|
|
Branch: REL_13_STABLE [428770aad] 2023-11-18 14:49:18 +0000
|
|
Branch: REL_12_STABLE [f499d2b20] 2023-11-18 14:50:00 +0000
|
|
-->
|
|
<para>
|
|
Add more checks for overflow in <function>interval_mul()</function>
|
|
and <function>interval_div()</function> (Dean Rasheed)
|
|
</para>
|
|
|
|
<para>
|
|
Some cases that should cause an out-of-range error produced an
|
|
incorrect result instead.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Michael Paquier <michael@paquier.xyz>
|
|
Branch: master [14f2f9eb1] 2023-11-28 08:35:50 +0900
|
|
Branch: REL_16_STABLE [07cb7bc1c] 2023-11-28 08:35:56 +0900
|
|
-->
|
|
<para>
|
|
Allow <function>scram_SaltedPassword()</function> to be interrupted
|
|
(Bowen Shi)
|
|
</para>
|
|
|
|
<para>
|
|
With large <varname>scram_iterations</varname> values, this function
|
|
could take a long time to run. Allow it to be interrupted by query
|
|
cancel requests.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Michael Paquier <michael@paquier.xyz>
|
|
Branch: master [235c09efb] 2024-02-01 17:12:50 +0900
|
|
Branch: REL_16_STABLE [781bc121d] 2024-02-01 17:13:09 +0900
|
|
Branch: REL_15_STABLE [171d21f50] 2024-02-01 17:13:11 +0900
|
|
-->
|
|
<para>
|
|
Ensure cached statistics are discarded after a change
|
|
to <varname>stats_fetch_consistency</varname> (Shinya Kato)
|
|
</para>
|
|
|
|
<para>
|
|
In some code paths, it was possible for stale statistics to be
|
|
returned.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
Branch: master [059de3ca4] 2023-12-26 17:57:48 -0500
|
|
Branch: REL_16_STABLE [e87252ceb] 2023-12-26 17:57:48 -0500
|
|
Branch: REL_15_STABLE [76dd3d94a] 2023-12-26 17:57:48 -0500
|
|
Branch: REL_14_STABLE [bf4f30a0f] 2023-12-26 17:57:48 -0500
|
|
Branch: REL_13_STABLE [cb88f44ec] 2023-12-26 17:57:48 -0500
|
|
Branch: REL_12_STABLE [ea61b1cf6] 2023-12-26 17:57:48 -0500
|
|
-->
|
|
<para>
|
|
Make the <structname>pg_file_settings</structname> view check
|
|
validity of unapplied values for settings
|
|
with <literal>backend</literal>
|
|
or <literal>superuser-backend</literal> context (Tom Lane)
|
|
</para>
|
|
|
|
<para>
|
|
Invalid values were not noted in the view as intended. This escaped
|
|
detection because there are very few settings in these groups.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Peter Eisentraut <peter@eisentraut.org>
|
|
Branch: master [a11c9c42e] 2023-12-01 16:05:41 +0100
|
|
Branch: REL_16_STABLE [267f33f68] 2023-12-01 16:09:54 +0100
|
|
Branch: REL_15_STABLE [15d485921] 2023-12-01 16:14:22 +0100
|
|
Branch: REL_14_STABLE [e846fc491] 2023-12-01 16:17:38 +0100
|
|
Branch: REL_13_STABLE [3c49fa2af] 2023-12-01 16:23:18 +0100
|
|
Branch: REL_12_STABLE [5d40b3c4f] 2023-12-01 16:27:18 +0100
|
|
-->
|
|
<para>
|
|
Match collation too when matching an existing index to a new
|
|
partitioned index (Peter Eisentraut)
|
|
</para>
|
|
|
|
<para>
|
|
Previously we could accept an index that has a different collation
|
|
from the corresponding element of the partition key, possibly
|
|
leading to misbehavior.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Michael Paquier <michael@paquier.xyz>
|
|
Branch: master [0ae3b4662] 2024-01-18 16:30:11 +0900
|
|
Branch: REL_16_STABLE [c030e263e] 2024-01-18 16:31:38 +0900
|
|
Branch: REL_15_STABLE [a0c19de11] 2024-01-18 16:31:46 +0900
|
|
Branch: REL_14_STABLE [b6f2e019d] 2024-01-18 16:31:50 +0900
|
|
Branch: master [8013850c8] 2024-01-18 15:04:24 +0900
|
|
Branch: REL_16_STABLE [7ce65c6f7] 2024-01-18 15:04:31 +0900
|
|
Branch: REL_15_STABLE [1cf2dba84] 2024-01-18 15:04:35 +0900
|
|
Branch: REL_14_STABLE [b685b41cf] 2024-01-18 15:04:39 +0900
|
|
-->
|
|
<para>
|
|
Avoid failure if a child index is dropped concurrently
|
|
with <command>REINDEX INDEX</command> on a partitioned index
|
|
(Fei Changhong)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
|
|
Branch: master [6a1ea02c4] 2024-01-29 13:46:22 +0200
|
|
Branch: REL_16_STABLE [b899e00e7] 2024-01-29 13:46:30 +0200
|
|
Branch: REL_15_STABLE [e43425f48] 2024-01-29 13:46:42 +0200
|
|
Branch: REL_14_STABLE [f120c0872] 2024-01-29 13:46:43 +0200
|
|
Branch: REL_13_STABLE [e74c91665] 2024-01-29 13:46:45 +0200
|
|
Branch: REL_12_STABLE [e6511fe64] 2024-01-29 13:46:48 +0200
|
|
-->
|
|
<para>
|
|
Fix insufficient locking when cleaning up an incomplete split of
|
|
a GIN index's internal page (Fei Changhong, Heikki Linnakangas)
|
|
</para>
|
|
|
|
<para>
|
|
The code tried to do this with shared rather than exclusive lock on
|
|
the buffer. This could lead to index corruption if two processes
|
|
attempted the cleanup concurrently.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
Branch: master [5c62ecf6e] 2023-11-13 11:44:35 -0500
|
|
Branch: REL_16_STABLE [f76b975d5] 2023-11-13 11:44:48 -0500
|
|
Branch: REL_15_STABLE [4c73ec604] 2023-11-13 11:44:57 -0500
|
|
Branch: REL_14_STABLE [d900e74e0] 2023-11-13 11:45:04 -0500
|
|
Branch: REL_13_STABLE [c859d688b] 2023-11-13 11:45:09 -0500
|
|
Branch: REL_12_STABLE [5a6937ec9] 2023-11-13 11:45:13 -0500
|
|
-->
|
|
<para>
|
|
Avoid premature release of buffer pin in GIN index insertion
|
|
(Tom Lane)
|
|
</para>
|
|
|
|
<para>
|
|
If an index root page split occurs concurrently with our own
|
|
insertion, the code could fail with <quote>buffer NNNN is not owned
|
|
by resource owner</quote>.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
Branch: master [903737c5b] 2023-12-21 12:43:36 -0500
|
|
Branch: REL_16_STABLE [0977bd64e] 2023-12-21 12:43:36 -0500
|
|
Branch: REL_15_STABLE [ab04c1901] 2023-12-21 12:43:36 -0500
|
|
Branch: REL_14_STABLE [375f441bd] 2023-12-21 12:43:36 -0500
|
|
Branch: REL_13_STABLE [cc3865150] 2023-12-21 12:43:36 -0500
|
|
Branch: REL_12_STABLE [1771ec9a8] 2023-12-21 12:43:36 -0500
|
|
-->
|
|
<para>
|
|
Avoid failure with partitioned SP-GiST indexes (Tom Lane)
|
|
</para>
|
|
|
|
<para>
|
|
Trying to use an index of this kind could lead to <quote>No such
|
|
file or directory</quote> errors.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
Branch: master [59bd34c2f] 2023-12-15 13:55:05 -0500
|
|
Branch: REL_16_STABLE [152bfc0af] 2023-12-15 13:55:05 -0500
|
|
-->
|
|
<para>
|
|
Fix ownership tests for large objects (Tom Lane)
|
|
</para>
|
|
|
|
<para>
|
|
Operations on large objects that require ownership privilege failed
|
|
with <quote>unrecognized class ID: 2613</quote>, unless run by a
|
|
superuser.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
Branch: master [59bd34c2f] 2023-12-15 13:55:05 -0500
|
|
Branch: REL_16_STABLE [152bfc0af] 2023-12-15 13:55:05 -0500
|
|
Branch: REL_15_STABLE [7a99fb6e1] 2023-12-15 13:55:05 -0500
|
|
Branch: REL_14_STABLE [f552f2be2] 2023-12-15 13:55:05 -0500
|
|
Branch: REL_13_STABLE [55b5c67da] 2023-12-15 13:55:05 -0500
|
|
Branch: REL_12_STABLE [ba66f2533] 2023-12-15 13:55:05 -0500
|
|
-->
|
|
<para>
|
|
Fix ownership change reporting for large objects (Tom Lane)
|
|
</para>
|
|
|
|
<para>
|
|
A no-op <command>ALTER LARGE OBJECT OWNER</command> command (that
|
|
is, one selecting the existing owner) passed the wrong class ID to
|
|
the <varname>PostAlterHook</varname>, probably confusing any
|
|
extension using that hook.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Michael Paquier <michael@paquier.xyz>
|
|
Branch: REL_16_STABLE [db69101a1] 2023-12-14 09:59:47 +0100
|
|
Branch: REL_15_STABLE [8dd70828b] 2023-12-14 09:59:52 +0100
|
|
-->
|
|
<para>
|
|
Fix reporting of I/O timing data in <literal>EXPLAIN
|
|
(BUFFERS)</literal> (Michael Paquier)
|
|
</para>
|
|
|
|
<para>
|
|
The numbers labeled as <quote>shared/local</quote> actually refer
|
|
only to shared buffers, so change that label
|
|
to <quote>shared</quote>.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Noah Misch <noah@leadboat.com>
|
|
Branch: master [df220714e] 2024-02-01 13:44:19 -0800
|
|
Branch: REL_16_STABLE [6d423e9ff] 2024-02-01 13:44:22 -0800
|
|
Branch: REL_15_STABLE [d493bed28] 2024-02-01 13:44:22 -0800
|
|
Branch: master [0b6517a3b] 2024-02-01 13:44:19 -0800
|
|
Branch: REL_16_STABLE [48a6bf5c4] 2024-02-01 13:44:22 -0800
|
|
Branch: REL_15_STABLE [8fa4a1ac6] 2024-02-01 13:44:23 -0800
|
|
-->
|
|
<para>
|
|
Ensure durability of <command>CREATE DATABASE</command> (Noah Misch)
|
|
</para>
|
|
|
|
<para>
|
|
If an operating system crash occurred during or shortly
|
|
after <command>CREATE DATABASE</command>, recovery could fail, or
|
|
subsequent connections to the new database could fail. If a base
|
|
backup was taken in that window, similar problems could be observed
|
|
when trying to use the backup. The symptom would be that the
|
|
database directory, <filename>PG_VERSION</filename> file, or
|
|
<filename>pg_filenode.map</filename> file was missing or empty.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Michael Paquier <michael@paquier.xyz>
|
|
Branch: master [1d35f705e] 2024-01-25 17:07:56 +0900
|
|
Branch: REL_16_STABLE [edbd1b41a] 2024-01-29 09:04:51 +0900
|
|
Branch: REL_15_STABLE [8b34cff33] 2024-01-29 09:04:55 +0900
|
|
-->
|
|
<para>
|
|
Add more <literal>LOG</literal> messages when starting and ending
|
|
recovery from a backup (Andres Freund)
|
|
</para>
|
|
|
|
<para>
|
|
This change provides additional information in the postmaster log
|
|
that may be useful for diagnosing recovery problems.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Michael Paquier <michael@paquier.xyz>
|
|
Branch: master [8a7cbfce1] 2023-12-12 17:05:18 +0100
|
|
Branch: REL_16_STABLE [0e2c05af9] 2023-12-12 17:05:27 +0100
|
|
Branch: REL_15_STABLE [f5d8f59ca] 2023-12-12 17:05:29 +0100
|
|
Branch: REL_14_STABLE [0cfd3ddfe] 2023-12-12 17:05:33 +0100
|
|
Branch: REL_13_STABLE [d99294e77] 2023-12-12 17:05:34 +0100
|
|
Branch: REL_12_STABLE [4d45ecc92] 2023-12-12 17:05:36 +0100
|
|
-->
|
|
<para>
|
|
Prevent standby servers from incorrectly processing dead index
|
|
tuples during subtransactions (Fei Changhong)
|
|
</para>
|
|
|
|
<para>
|
|
The <structfield>startedInRecovery</structfield> flag was not
|
|
correctly set for a subtransaction. This affects only processing of
|
|
dead index tuples. It could allow a query in a subtransaction to
|
|
ignore index entries that it should return (if they are already dead
|
|
on the primary server, but not dead to the standby transaction), or
|
|
to prematurely mark index entries as dead that are not yet dead on
|
|
the primary. It is not clear that the latter case has any serious
|
|
consequences, but it's not the intended behavior.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
|
|
Branch: master [21ef4d4d8] 2024-01-23 10:38:07 +0200
|
|
Branch: REL_16_STABLE [c5a6d5337] 2024-01-23 10:53:23 +0200
|
|
-->
|
|
<para>
|
|
Fix signal handling in walreceiver processes (Heikki Linnakangas)
|
|
</para>
|
|
|
|
<para>
|
|
Revert a change that made walreceivers non-responsive
|
|
to <systemitem>SIGTERM</systemitem> while waiting for the
|
|
replication connection to be established.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Thomas Munro <tmunro@postgresql.org>
|
|
Branch: master [cd7f19da3] 2023-12-08 16:09:03 +1300
|
|
Branch: REL_16_STABLE [8ca56620c] 2023-12-08 16:10:23 +1300
|
|
Branch: REL_15_STABLE [b9f687f5a] 2023-12-08 16:11:12 +1300
|
|
-->
|
|
<para>
|
|
Fix integer overflow hazard in checking whether a record will fit
|
|
into the WAL decoding buffer (Thomas Munro)
|
|
</para>
|
|
|
|
<para>
|
|
This bug appears to be only latent except when running a
|
|
32-bit <productname>PostgreSQL</productname> build on a 64-bit
|
|
platform.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Amit Kapila <akapila@postgresql.org>
|
|
Branch: master [8d7d2197f] 2023-12-11 08:50:43 +0530
|
|
Branch: REL_16_STABLE [01cc92fa6] 2023-12-11 08:36:17 +0530
|
|
Branch: REL_15_STABLE [332b43063] 2023-12-11 08:23:33 +0530
|
|
Branch: REL_14_STABLE [3f86867d5] 2023-12-11 08:10:46 +0530
|
|
Branch: REL_13_STABLE [b47ea4f3d] 2023-12-11 07:57:50 +0530
|
|
Branch: REL_12_STABLE [e81e617f3] 2023-12-11 07:45:45 +0530
|
|
-->
|
|
<para>
|
|
Fix deadlock between a logical replication apply worker, its
|
|
tablesync worker, and a session process trying to alter the
|
|
subscription (Shlok Kyal)
|
|
</para>
|
|
|
|
<para>
|
|
One edge of the deadlock loop did not involve a lock wait, so the
|
|
deadlock went undetected and would persist until manual
|
|
intervention.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Amit Kapila <akapila@postgresql.org>
|
|
Branch: master [360392fa2] 2023-11-27 08:49:55 +0530
|
|
Branch: REL_16_STABLE [d7ca9209c] 2023-11-27 08:59:12 +0530
|
|
Branch: REL_15_STABLE [a77fb8c68] 2023-11-27 09:14:17 +0530
|
|
-->
|
|
<para>
|
|
Ensure that column default values are correctly transmitted by
|
|
the <application>pgoutput</application> logical replication plugin
|
|
(Nikhil Benesch)
|
|
</para>
|
|
|
|
<para>
|
|
<command>ALTER TABLE ADD COLUMN</command> with a constant default
|
|
value for the new column avoids rewriting existing tuples, instead
|
|
expecting that reading code will insert the correct default into a
|
|
tuple that lacks that column. If replication was subsequently
|
|
initiated on the table, <application>pgoutput</application> would
|
|
transmit NULL instead of the correct default for such a column,
|
|
causing incorrect replication on the subscriber.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Amit Kapila <akapila@postgresql.org>
|
|
Branch: master [eeb0ebad7] 2023-11-22 11:44:14 +0530
|
|
Branch: REL_16_STABLE [1b6da28e0] 2023-11-22 11:27:38 +0530
|
|
Branch: REL_15_STABLE [57aae65ae] 2023-11-22 11:14:35 +0530
|
|
-->
|
|
<para>
|
|
Fix failure of logical replication's initial sync for a table with
|
|
no columns (Vignesh C)
|
|
</para>
|
|
|
|
<para>
|
|
This case generated an improperly-formatted <command>COPY</command>
|
|
command.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Jeff Davis <jdavis@postgresql.org>
|
|
Branch: master [5c3166905] 2024-01-12 13:41:36 -0800
|
|
Branch: REL_16_STABLE [4c03ac7e2] 2024-01-12 13:42:09 -0800
|
|
Branch: master [dd3ca8cbb] 2024-01-18 14:59:59 -0800
|
|
Branch: REL_16_STABLE [5b5318c38] 2024-01-18 15:00:15 -0800
|
|
-->
|
|
<para>
|
|
Re-validate a subscription's connection string before use (Vignesh C)
|
|
</para>
|
|
|
|
<para>
|
|
This is meant to detect cases where a subscription was created
|
|
without a password (which is allowed to superusers) but then the
|
|
subscription owner is changed to a non-superuser.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
Branch: master [aaf09c592] 2024-01-03 17:40:41 -0500
|
|
Branch: REL_16_STABLE [fb464a1ae] 2024-01-03 17:40:38 -0500
|
|
Branch: REL_15_STABLE [a0d016393] 2024-01-03 17:40:38 -0500
|
|
Branch: REL_14_STABLE [9b042e27e] 2024-01-03 17:40:38 -0500
|
|
Branch: REL_13_STABLE [5810888c5] 2024-01-03 17:40:38 -0500
|
|
Branch: REL_12_STABLE [c20f2aab6] 2024-01-03 17:40:38 -0500
|
|
-->
|
|
<para>
|
|
Return the correct status code when a new client disconnects without
|
|
responding to the server's password challenge (Liu Lang, Tom Lane)
|
|
</para>
|
|
|
|
<para>
|
|
In some cases we'd treat this as a loggable error, which was not the
|
|
intention and tends to create log spam, since common clients
|
|
like <application>psql</application> frequently do this. It may
|
|
also confuse extensions that
|
|
use <varname>ClientAuthentication_hook</varname>.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
Branch: master [c82207a54] 2023-11-28 12:34:03 -0500
|
|
Branch: REL_16_STABLE [efa8f6064] 2023-11-28 12:34:03 -0500
|
|
Branch: REL_15_STABLE [5dd30bb54] 2023-11-28 12:34:03 -0500
|
|
Branch: REL_14_STABLE [b2b1f1288] 2023-11-28 12:34:03 -0500
|
|
Branch: REL_13_STABLE [efb804682] 2023-11-28 12:34:03 -0500
|
|
Branch: REL_12_STABLE [0bd682246] 2023-11-28 12:34:03 -0500
|
|
-->
|
|
<para>
|
|
Fix incompatibility with <application>OpenSSL</application> 3.2
|
|
(Tristan Partin, Bo Andreson)
|
|
</para>
|
|
|
|
<para>
|
|
Use the BIO <quote>app_data</quote> field for our private storage,
|
|
instead of assuming it's okay to use the <quote>data</quote> field.
|
|
This mistake didn't cause problems before, but with 3.2 it leads
|
|
to crashes and complaints about double frees.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
Branch: master [0a5c46a7a] 2023-12-11 11:51:56 -0500
|
|
Branch: REL_16_STABLE [ebbd499d4] 2023-12-11 11:51:56 -0500
|
|
Branch: REL_15_STABLE [551d4b28e] 2023-12-11 11:51:56 -0500
|
|
Branch: REL_14_STABLE [07ce24326] 2023-12-11 11:51:56 -0500
|
|
Branch: REL_13_STABLE [87b46ad90] 2023-12-11 11:51:56 -0500
|
|
Branch: REL_12_STABLE [271d24f31] 2023-12-11 11:51:56 -0500
|
|
-->
|
|
<para>
|
|
Be more wary about <application>OpenSSL</application> not
|
|
setting <varname>errno</varname> on error (Tom Lane)
|
|
</para>
|
|
|
|
<para>
|
|
If <varname>errno</varname> isn't set, assume the cause of the
|
|
reported failure is read EOF. This fixes rare cases of strange
|
|
error reports like <quote>could not accept SSL connection:
|
|
Success</quote>.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
|
|
Branch: REL_16_STABLE [501cfd07d] 2023-11-23 13:30:13 +0200
|
|
Branch: REL_15_STABLE [481d7d1c0] 2023-11-23 13:31:51 +0200
|
|
Branch: REL_14_STABLE [555276f85] 2023-11-23 13:31:57 +0200
|
|
-->
|
|
<para>
|
|
Fix file descriptor leakage when a foreign data
|
|
wrapper's <function>ForeignAsyncRequest</function> function fails
|
|
(Heikki Linnakangas)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Jeff Davis <jdavis@postgresql.org>
|
|
Branch: master [45da69371] 2024-01-12 21:40:23 -0800
|
|
Branch: REL_16_STABLE [41820e640] 2024-01-12 21:39:35 -0800
|
|
-->
|
|
<para>
|
|
Fix minor memory leak in connection string validation
|
|
for <command>CREATE SUBSCRIPTION</command> (Jeff Davis)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
Branch: master [e4e63cd98] 2024-02-02 15:34:29 -0500
|
|
Branch: REL_16_STABLE [a15378100] 2024-02-02 15:34:29 -0500
|
|
Branch: REL_15_STABLE [3766b8b64] 2024-02-02 15:34:29 -0500
|
|
Branch: REL_14_STABLE [329b96882] 2024-02-02 15:34:29 -0500
|
|
Branch: REL_13_STABLE [29df29dad] 2024-02-02 15:34:29 -0500
|
|
Branch: REL_12_STABLE [4493bfb70] 2024-02-02 15:34:29 -0500
|
|
-->
|
|
<para>
|
|
Report <systemitem>ENOMEM</systemitem> errors from file-related system
|
|
calls as <literal>ERRCODE_OUT_OF_MEMORY</literal>,
|
|
not <literal>ERRCODE_INTERNAL_ERROR</literal> (Alexander Kuzmenkov)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
Branch: master [57b440ec1] 2024-01-18 16:11:16 -0500
|
|
Branch: REL_16_STABLE [00f941356] 2024-01-18 16:10:57 -0500
|
|
Branch: REL_15_STABLE [de2d393a8] 2024-01-18 16:10:57 -0500
|
|
Branch: REL_14_STABLE [b7e8f27d1] 2024-01-18 16:10:57 -0500
|
|
-->
|
|
<para>
|
|
In <application>PL/pgSQL</application>, support SQL commands that
|
|
are <command>CREATE FUNCTION</command>/<command>CREATE
|
|
PROCEDURE</command> with SQL-standard bodies (Tom Lane)
|
|
</para>
|
|
|
|
<para>
|
|
Previously, such cases failed with parsing errors due to the
|
|
semicolon(s) appearing in the function body.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
|
|
Branch: master [b8ba7344e] 2023-12-05 12:43:24 +0100
|
|
Branch: REL_16_STABLE [878aa41f8] 2023-12-05 12:43:24 +0100
|
|
Branch: REL_15_STABLE [1171c6e74] 2023-12-05 12:43:24 +0100
|
|
Branch: REL_14_STABLE [f89681816] 2023-12-05 12:43:24 +0100
|
|
Branch: master [c6605c1bd] 2024-01-16 12:27:52 +0100
|
|
Branch: REL_16_STABLE [39aab1108] 2024-01-16 12:27:52 +0100
|
|
Branch: REL_15_STABLE [2b656cbd2] 2024-01-16 12:27:52 +0100
|
|
Branch: REL_14_STABLE [7a7c8c98a] 2024-01-16 12:27:52 +0100
|
|
-->
|
|
<para>
|
|
Fix <application>libpq</application>'s
|
|
handling of errors in pipelines (Álvaro Herrera)
|
|
</para>
|
|
|
|
<para>
|
|
The pipeline state could get out of sync if an error is returned
|
|
for reasons other than a query problem (for example, if the
|
|
connection is lost). Potentially this would lead to a busy-loop in
|
|
the calling application.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
|
|
Branch: master [1a5594b95] 2023-11-08 16:44:08 +0100
|
|
Branch: REL_16_STABLE [42f832685] 2023-11-08 16:44:08 +0100
|
|
Branch: REL_15_STABLE [0e28091d5] 2023-11-08 16:44:08 +0100
|
|
Branch: REL_14_STABLE [99fa98766] 2023-11-08 16:44:08 +0100
|
|
-->
|
|
<para>
|
|
Make <application>libpq</application>'s
|
|
<function>PQsendFlushRequest()</function> function flush the client
|
|
output buffer under the same rules as
|
|
other <literal>PQsend</literal> functions (Jelte Fennema-Nio)
|
|
</para>
|
|
|
|
<para>
|
|
In pipeline mode, it may still be necessary to
|
|
call <function>PQflush()</function> as well; but this change removes
|
|
some inconsistency.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Michael Paquier <michael@paquier.xyz>
|
|
Branch: master [01eca6a91] 2023-11-27 09:40:44 +0900
|
|
Branch: REL_16_STABLE [8984480b5] 2023-11-27 09:40:49 +0900
|
|
Branch: REL_15_STABLE [b97226815] 2023-11-27 09:40:50 +0900
|
|
Branch: REL_14_STABLE [c3b79223f] 2023-11-27 09:40:52 +0900
|
|
Branch: REL_13_STABLE [09f680d11] 2023-11-27 09:40:55 +0900
|
|
Branch: REL_12_STABLE [0217a7444] 2023-11-27 09:40:57 +0900
|
|
-->
|
|
<para>
|
|
Avoid race condition when <application>libpq</application>
|
|
initializes OpenSSL support concurrently in two different threads
|
|
(Willi Mann, Michael Paquier)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
Branch: master [d053a879b] 2023-11-23 13:30:18 -0500
|
|
Branch: REL_16_STABLE [85eb77185] 2023-11-23 13:30:18 -0500
|
|
Branch: REL_15_STABLE [a50053777] 2023-11-23 13:30:18 -0500
|
|
Branch: REL_14_STABLE [8f23e6a45] 2023-11-23 13:30:18 -0500
|
|
Branch: REL_13_STABLE [5abdfd88f] 2023-11-23 13:30:18 -0500
|
|
Branch: REL_12_STABLE [18fad508b] 2023-11-23 13:30:19 -0500
|
|
-->
|
|
<para>
|
|
Fix timing-dependent failure in GSSAPI data transmission (Tom Lane)
|
|
</para>
|
|
|
|
<para>
|
|
When using GSSAPI encryption in non-blocking
|
|
mode, <application>libpq</application> sometimes failed
|
|
with <quote>GSSAPI caller failed to retransmit all data needing to
|
|
be retried</quote>.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
Branch: master [3d185cfc0] 2024-01-10 18:09:29 -0500
|
|
Branch: REL_16_STABLE [ba33775fd] 2024-01-10 18:09:29 -0500
|
|
-->
|
|
<para>
|
|
Change <application>initdb</application> to always un-comment
|
|
the <filename>postgresql.conf</filename> entries for
|
|
the <literal>lc_<replaceable>xxx</replaceable></literal> parameters
|
|
(Kyotaro Horiguchi)
|
|
</para>
|
|
|
|
<para>
|
|
<application>initdb</application> used to work this way before v16,
|
|
and now it does again. The change
|
|
caused <application>initdb</application>'s <option>--no-locale</option>
|
|
option to not have the intended effect
|
|
on <varname>lc_messages</varname>.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
Branch: master [a70f2a57f] 2023-11-13 17:04:26 -0500
|
|
Branch: REL_16_STABLE [64d2467fc] 2023-11-13 17:04:26 -0500
|
|
Branch: REL_15_STABLE [f15147df6] 2023-11-13 17:04:10 -0500
|
|
Branch: REL_14_STABLE [15439205d] 2023-11-13 17:04:10 -0500
|
|
Branch: REL_13_STABLE [9e08789d4] 2023-11-13 17:04:10 -0500
|
|
Branch: REL_12_STABLE [891afa84c] 2023-11-13 17:04:10 -0500
|
|
Branch: master [1e3f461e8] 2023-11-14 00:31:39 -0500
|
|
Branch: REL_16_STABLE [f1674ac6b] 2023-11-14 00:31:39 -0500
|
|
Branch: REL_15_STABLE [63c1b4d88] 2023-11-14 00:31:39 -0500
|
|
Branch: REL_14_STABLE [c532be99d] 2023-11-14 00:31:39 -0500
|
|
Branch: REL_13_STABLE [7836f6838] 2023-11-14 00:31:39 -0500
|
|
Branch: REL_12_STABLE [e43790342] 2023-11-14 00:31:39 -0500
|
|
-->
|
|
<para>
|
|
In <application>pg_dump</application>, don't dump RLS policies or
|
|
security labels for extension member objects (Tom Lane, Jacob
|
|
Champion)
|
|
</para>
|
|
|
|
<para>
|
|
Previously, commands would be included in the dump to set these
|
|
properties, which is really incorrect since they should be
|
|
considered as internal affairs of the extension. Moreover, the
|
|
restoring user might not have adequate privilege to set them, and
|
|
indeed the dumping user might not have enough privilege to dump them
|
|
(since dumping RLS policies requires acquiring lock on their table).
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
Branch: master [7418767f1] 2023-12-29 10:57:11 -0500
|
|
Branch: REL_16_STABLE [b2c9936a7] 2023-12-29 10:57:11 -0500
|
|
Branch: REL_15_STABLE [1e0841426] 2023-12-29 10:57:11 -0500
|
|
Branch: REL_14_STABLE [aa2e323ee] 2023-12-29 10:57:11 -0500
|
|
Branch: REL_13_STABLE [8d4e8b746] 2023-12-29 10:57:11 -0500
|
|
Branch: REL_12_STABLE [69d7edb06] 2023-12-29 10:57:11 -0500
|
|
-->
|
|
<para>
|
|
In <application>pg_dump</application>, don't dump an extended
|
|
statistics object if its underlying table isn't being dumped
|
|
(Rian McGuire, Tom Lane)
|
|
</para>
|
|
|
|
<para>
|
|
This conforms to the behavior for other dependent objects such as
|
|
indexes.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Daniel Gustafsson <dgustafsson@postgresql.org>
|
|
Branch: master [30e54d5c5] 2023-12-20 22:37:28 +0100
|
|
Branch: REL_16_STABLE [5b5db413d] 2023-12-20 22:37:28 +0100
|
|
-->
|
|
<para>
|
|
Properly detect out-of-memory in one code path
|
|
in <application>pg_dump</application> (Daniel Gustafsson)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
|
|
Branch: master [49f7c6c44] 2024-01-22 17:48:30 +0100
|
|
Branch: REL_16_STABLE [07b53de70] 2024-01-22 17:48:30 +0100
|
|
Branch: REL_15_STABLE [3fd36be52] 2024-01-22 17:48:30 +0100
|
|
Branch: REL_14_STABLE [85ecff891] 2024-01-22 17:48:30 +0100
|
|
-->
|
|
<para>
|
|
Make it an error for a <application>pgbench</application> script to
|
|
end with an open pipeline (Anthonin Bonnefoy)
|
|
</para>
|
|
|
|
<para>
|
|
Previously, <application>pgbench</application> would behave oddly if
|
|
a <command>\startpipeline</command> command lacked a
|
|
matching <command>\endpipeline</command>. This seems like a
|
|
scripting mistake rather than a case
|
|
that <application>pgbench</application> needs to handle nicely, so
|
|
throw an error.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
Branch: master [9034a2d51] 2024-01-07 15:19:50 -0500
|
|
Branch: REL_16_STABLE [cf6f802bf] 2024-01-07 15:19:50 -0500
|
|
Branch: REL_15_STABLE [940ab02b5] 2024-01-07 15:19:50 -0500
|
|
Branch: REL_14_STABLE [90e8b86fc] 2024-01-07 15:19:50 -0500
|
|
Branch: REL_13_STABLE [9e7432faf] 2024-01-07 15:19:50 -0500
|
|
Branch: REL_12_STABLE [1c7443521] 2024-01-07 15:19:50 -0500
|
|
-->
|
|
<para>
|
|
Fix crash in <filename>contrib/intarray</filename> if an array with
|
|
an element equal to <literal>INT_MAX</literal> is inserted into
|
|
a <literal>gist__int_ops</literal> index
|
|
(Alexander Lakhin, Tom Lane)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Michael Paquier <michael@paquier.xyz>
|
|
Branch: master [208470136] 2023-12-19 18:19:05 +0900
|
|
Branch: REL_16_STABLE [7f68b1462] 2023-12-19 18:19:15 +0900
|
|
Branch: REL_15_STABLE [2e08440d6] 2023-12-19 18:19:16 +0900
|
|
Branch: REL_14_STABLE [bfbe4a146] 2023-12-19 18:19:18 +0900
|
|
Branch: REL_13_STABLE [586c6a091] 2023-12-19 18:19:19 +0900
|
|
Branch: REL_12_STABLE [f610d4f11] 2023-12-19 18:19:21 +0900
|
|
-->
|
|
<para>
|
|
Report a better error
|
|
when <filename>contrib/pageinspect</filename>'s
|
|
<function>hash_bitmap_info()</function> function is applied to a
|
|
partitioned hash index (Alexander Lakhin, Michael Paquier)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Michael Paquier <michael@paquier.xyz>
|
|
Branch: master [a8dd62ef4] 2023-12-19 15:20:39 +0900
|
|
Branch: REL_16_STABLE [b4948ed66] 2023-12-19 15:20:48 +0900
|
|
Branch: REL_15_STABLE [b745f1680] 2023-12-19 15:20:50 +0900
|
|
Branch: REL_14_STABLE [f729fdab4] 2023-12-19 15:20:52 +0900
|
|
Branch: REL_13_STABLE [b4c1d255c] 2023-12-19 15:20:53 +0900
|
|
Branch: REL_12_STABLE [bd2d3c928] 2023-12-19 15:20:55 +0900
|
|
-->
|
|
<para>
|
|
Report a better error
|
|
when <filename>contrib/pgstattuple</filename>'s
|
|
<function>pgstathashindex()</function> function is applied to a
|
|
partitioned hash index (Alexander Lakhin)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Michael Paquier <michael@paquier.xyz>
|
|
Branch: master [9886744a3] 2024-01-10 10:41:57 +0900
|
|
Branch: REL_16_STABLE [714bfb781] 2024-01-12 13:53:07 +0900
|
|
Branch: REL_15_STABLE [33d1be06a] 2024-01-12 13:53:10 +0900
|
|
Branch: REL_14_STABLE [4c6944223] 2024-01-12 13:53:12 +0900
|
|
Branch: REL_13_STABLE [c8aab699e] 2024-01-12 13:53:13 +0900
|
|
Branch: REL_12_STABLE [9e70e6564] 2024-01-12 13:53:14 +0900
|
|
Branch: master [b83747a8a] 2024-01-11 10:39:58 +0900
|
|
Branch: REL_16_STABLE [506c77f9b] 2024-01-12 13:59:51 +0900
|
|
Branch: REL_15_STABLE [7e7d827f5] 2024-01-12 13:59:58 +0900
|
|
Branch: REL_14_STABLE [4a7475e9a] 2024-01-12 14:00:00 +0900
|
|
Branch: REL_13_STABLE [2a0eb80ae] 2024-01-12 14:00:01 +0900
|
|
Branch: REL_12_STABLE [e50a52b2b] 2024-01-12 14:00:02 +0900
|
|
-->
|
|
<para>
|
|
On Windows, suppress autorun options when launching subprocesses
|
|
in <application>pg_ctl</application>
|
|
and <application>pg_regress</application> (Kyotaro Horiguchi)
|
|
</para>
|
|
|
|
<para>
|
|
When launching a child process via <filename>cmd.exe</filename>,
|
|
pass the <option>/D</option> flag to prevent executing any autorun
|
|
commands specified in the registry. This avoids possibly-surprising
|
|
side effects.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Nathan Bossart <nathan@postgresql.org>
|
|
Branch: master [97287bdfa] 2024-01-29 12:08:57 -0600
|
|
Branch: REL_16_STABLE [1b924a86e] 2024-01-29 12:09:03 -0600
|
|
Branch: REL_15_STABLE [3726c1cb0] 2024-01-29 12:09:08 -0600
|
|
-->
|
|
<para>
|
|
Move <function>is_valid_ascii()</function>
|
|
from <filename>mb/pg_wchar.h</filename>
|
|
to <filename>utils/ascii.h</filename> (Jubilee Young)
|
|
</para>
|
|
|
|
<para>
|
|
This change avoids the need to
|
|
include <filename><simd.h></filename>
|
|
in <filename>pg_wchar.h</filename>, which was causing problems for
|
|
some third-party code.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
Branch: master [400928b83] 2024-01-29 12:06:13 -0500
|
|
Branch: REL_16_STABLE [e02fea093] 2024-01-29 12:06:07 -0500
|
|
Branch: REL_15_STABLE [3f8ac13b1] 2024-01-29 12:06:07 -0500
|
|
Branch: REL_14_STABLE [29e25a6b1] 2024-01-29 12:06:08 -0500
|
|
Branch: REL_13_STABLE [7c53b1977] 2024-01-29 12:06:08 -0500
|
|
Branch: REL_12_STABLE [b2fd1dab9] 2024-01-29 12:06:08 -0500
|
|
-->
|
|
<para>
|
|
Fix compilation failures with <application>libxml2</application>
|
|
version 2.12.0 and later (Tom Lane)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Michael Paquier <michael@paquier.xyz>
|
|
Branch: master [7636725b9] 2023-12-06 14:10:39 +0900
|
|
Branch: REL_16_STABLE [6248a2bb9] 2023-12-06 14:11:41 +0900
|
|
Branch: REL_15_STABLE [87ed81a87] 2023-12-06 14:11:44 +0900
|
|
Branch: REL_14_STABLE [c49b6cab1] 2023-12-06 14:11:46 +0900
|
|
Branch: REL_13_STABLE [7d5a74033] 2023-12-06 14:11:47 +0900
|
|
-->
|
|
<para>
|
|
Fix compilation failure of <literal>WAL_DEBUG</literal> code on
|
|
Windows (Bharath Rupireddy)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
Branch: master [58c3151bb] 2023-12-26 16:16:37 -0500
|
|
Branch: REL_16_STABLE [b0115e7e2] 2023-12-26 16:16:29 -0500
|
|
Branch: REL_15_STABLE [5f8d6d709] 2023-12-26 16:16:29 -0500
|
|
Branch: REL_14_STABLE [7978eee02] 2023-12-26 16:16:29 -0500
|
|
Branch: REL_13_STABLE [48e797164] 2023-12-26 16:16:29 -0500
|
|
Branch: REL_12_STABLE [1613e2fae] 2023-12-26 16:16:29 -0500
|
|
Branch: master [a46972e30] 2023-12-26 17:03:02 -0500
|
|
Branch: REL_16_STABLE [c72049dbc] 2023-12-26 17:03:24 -0500
|
|
-->
|
|
<para>
|
|
Suppress compiler warnings from Python's header files
|
|
(Peter Eisentraut, Tom Lane)
|
|
</para>
|
|
|
|
<para>
|
|
Our preferred compiler options provoke warnings about constructs
|
|
appearing in recent versions of Python's header files. When using
|
|
<application>gcc</application>, we can suppress these warnings with
|
|
a pragma.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Thomas Munro <tmunro@postgresql.org>
|
|
Branch: master [d282e88e5] 2024-01-25 13:44:54 +1300
|
|
Branch: REL_16_STABLE [60ba7cae7] 2024-01-25 13:45:22 +1300
|
|
Branch: REL_15_STABLE [67f7aaa38] 2024-01-25 13:46:07 +1300
|
|
Branch: REL_14_STABLE [364283c92] 2024-01-25 13:46:38 +1300
|
|
Branch: REL_13_STABLE [70a82f40a] 2024-01-25 13:47:20 +1300
|
|
Branch: REL_12_STABLE [d060cb658] 2024-01-25 13:47:35 +1300
|
|
-->
|
|
<para>
|
|
Avoid deprecation warning when compiling with LLVM 18 (Thomas Munro)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
Branch: master [272a7c303] 2024-02-01 15:57:53 -0500
|
|
Branch: REL_16_STABLE [b4fb76fb5] 2024-02-01 15:57:53 -0500
|
|
Branch: REL_15_STABLE [970b1aeeb] 2024-02-01 15:57:53 -0500
|
|
Branch: REL_14_STABLE [35b8b2c4a] 2024-02-01 15:57:53 -0500
|
|
Branch: REL_13_STABLE [ac3afc3f7] 2024-02-01 15:57:53 -0500
|
|
Branch: REL_12_STABLE [b59ae79b7] 2024-02-01 15:57:53 -0500
|
|
-->
|
|
<para>
|
|
Update time zone data files to <application>tzdata</application>
|
|
release 2024a for DST law changes in Greenland, Kazakhstan, and
|
|
Palestine, plus corrections for the Antarctic stations Casey and
|
|
Vostok. Also historical corrections for Vietnam, Toronto, and
|
|
Miquelon.
|
|
</para>
|
|
</listitem>
|
|
|
|
</itemizedlist>
|
|
|
|
</sect2>
|
|
</sect1>
|
|
|
|
<sect1 id="release-16-1">
|
|
<title>Release 16.1</title>
|
|
|
|
<formalpara>
|
|
<title>Release date:</title>
|
|
<para>2023-11-09</para>
|
|
</formalpara>
|
|
|
|
<para>
|
|
This release contains a variety of fixes from 16.0.
|
|
For information about new features in major release 16, see
|
|
<xref linkend="release-16"/>.
|
|
</para>
|
|
|
|
<sect2 id="release-16-1-migration">
|
|
<title>Migration to Version 16.1</title>
|
|
|
|
<para>
|
|
A dump/restore is not required for those running 16.X.
|
|
</para>
|
|
|
|
<para>
|
|
However, several mistakes have been discovered that could lead to
|
|
certain types of indexes yielding wrong search results or being
|
|
unnecessarily inefficient. It is advisable
|
|
to <command>REINDEX</command> potentially-affected indexes after
|
|
installing this update. See the fourth through seventh changelog
|
|
entries below.
|
|
</para>
|
|
</sect2>
|
|
|
|
<sect2 id="release-16-1-changes">
|
|
<title>Changes</title>
|
|
|
|
<itemizedlist>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
Branch: master [3b0776fde] 2023-11-06 10:38:00 -0500
|
|
Branch: REL_16_STABLE [d3d1e2509] 2023-11-06 10:38:00 -0500
|
|
Branch: REL_15_STABLE [4f4a422fb] 2023-11-06 10:38:00 -0500
|
|
Branch: REL_14_STABLE [9146d0d65] 2023-11-06 10:38:00 -0500
|
|
Branch: REL_13_STABLE [d3de70fdb] 2023-11-06 10:38:00 -0500
|
|
Branch: REL_12_STABLE [e911afd09] 2023-11-06 10:38:00 -0500
|
|
Branch: REL_11_STABLE [8c6633f4d] 2023-11-06 10:38:00 -0500
|
|
-->
|
|
<para>
|
|
Fix handling of unknown-type arguments
|
|
in <literal>DISTINCT</literal> <type>"any"</type> aggregate
|
|
functions (Tom Lane)
|
|
</para>
|
|
|
|
<para>
|
|
This error led to a <type>text</type>-type value being interpreted
|
|
as an <type>unknown</type>-type value (that is, a zero-terminated
|
|
string) at runtime. This could result in disclosure of server
|
|
memory following the <type>text</type> value.
|
|
</para>
|
|
|
|
<para>
|
|
The <productname>PostgreSQL</productname> Project thanks Jingzhou Fu
|
|
for reporting this problem.
|
|
(CVE-2023-5868)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
Branch: master [18b585155] 2023-11-06 10:56:43 -0500
|
|
Branch: REL_16_STABLE [e24daa94b] 2023-11-06 10:56:43 -0500
|
|
Branch: REL_15_STABLE [3bc6bc3ee] 2023-11-06 10:56:43 -0500
|
|
Branch: REL_14_STABLE [edc0a8d82] 2023-11-06 10:56:43 -0500
|
|
Branch: REL_13_STABLE [26c599beb] 2023-11-06 10:56:43 -0500
|
|
Branch: REL_12_STABLE [d267cea24] 2023-11-06 10:56:43 -0500
|
|
Branch: REL_11_STABLE [c48008f59] 2023-11-06 10:56:43 -0500
|
|
-->
|
|
<para>
|
|
Detect integer overflow while computing new array dimensions
|
|
(Tom Lane)
|
|
</para>
|
|
|
|
<para>
|
|
When assigning new elements to array subscripts that are outside the
|
|
current array bounds, an undetected integer overflow could occur in
|
|
edge cases. Memory stomps that are potentially exploitable for
|
|
arbitrary code execution are possible, and so is disclosure of
|
|
server memory.
|
|
</para>
|
|
|
|
<para>
|
|
The <productname>PostgreSQL</productname> Project thanks Pedro
|
|
Gallegos for reporting this problem.
|
|
(CVE-2023-5869)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Noah Misch <noah@leadboat.com>
|
|
Branch: master [3a9b18b30] 2023-11-06 06:14:13 -0800
|
|
Branch: REL_16_STABLE [785412731] 2023-11-06 06:14:16 -0800
|
|
Branch: REL_15_STABLE [595c988c9] 2023-11-06 06:14:16 -0800
|
|
Branch: REL_14_STABLE [508acb901] 2023-11-06 06:14:17 -0800
|
|
Branch: REL_13_STABLE [28b609550] 2023-11-06 06:14:17 -0800
|
|
Branch: REL_12_STABLE [2893f2f40] 2023-11-06 06:14:17 -0800
|
|
Branch: REL_11_STABLE [e082734c8] 2023-11-06 06:14:18 -0800
|
|
Author: Noah Misch <noah@leadboat.com>
|
|
Branch: master [b72de09a1] 2023-11-06 06:14:13 -0800
|
|
Branch: REL_16_STABLE [2c3c5ec49] 2023-11-06 06:14:16 -0800
|
|
Branch: REL_15_STABLE [fbc371909] 2023-11-06 06:14:16 -0800
|
|
Branch: REL_14_STABLE [ecd5d240c] 2023-11-06 06:14:17 -0800
|
|
Branch: REL_13_STABLE [2c7a2a00a] 2023-11-06 06:14:17 -0800
|
|
Branch: REL_12_STABLE [7bbf4d037] 2023-11-06 06:14:17 -0800
|
|
Branch: REL_11_STABLE [a27be40c1] 2023-11-06 06:14:18 -0800
|
|
-->
|
|
<para>
|
|
Prevent the <literal>pg_signal_backend</literal> role from
|
|
signalling background workers and autovacuum processes
|
|
(Noah Misch, Jelte Fennema-Nio)
|
|
</para>
|
|
|
|
<para>
|
|
The documentation says that <literal>pg_signal_backend</literal>
|
|
cannot issue signals to superuser-owned processes. It was able to
|
|
signal these background processes, though, because they advertise a
|
|
role OID of zero. Treat that as indicating superuser ownership.
|
|
The security implications of cancelling one of these process types
|
|
are fairly small so far as the core code goes (we'll just start
|
|
another one), but extensions might add background workers that are
|
|
more vulnerable.
|
|
</para>
|
|
|
|
<para>
|
|
Also ensure that the <varname>is_superuser</varname> parameter is
|
|
set correctly in such processes. No specific security consequences
|
|
are known for that oversight, but it might be significant for some
|
|
extensions.
|
|
</para>
|
|
|
|
<para>
|
|
The <productname>PostgreSQL</productname> Project thanks
|
|
Hemanth Sandrana and Mahendrakar Srinivasarao
|
|
for reporting this problem.
|
|
(CVE-2023-5870)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
|
|
Branch: master [28d3c2ddc] 2023-09-26 14:14:49 +0300
|
|
Branch: REL_16_STABLE [d7f521325] 2023-09-26 14:15:01 +0300
|
|
Branch: REL_15_STABLE [c3c284b37] 2023-09-26 14:15:19 +0300
|
|
Branch: REL_14_STABLE [747cef5a5] 2023-09-26 14:15:28 +0300
|
|
Branch: REL_13_STABLE [db7394d4d] 2023-09-26 14:15:35 +0300
|
|
Branch: REL_12_STABLE [26917ebea] 2023-09-26 15:41:44 +0300
|
|
-->
|
|
<para>
|
|
Fix misbehavior during recursive page split in GiST index build
|
|
(Heikki Linnakangas)
|
|
</para>
|
|
|
|
<para>
|
|
Fix a case where the location of a page downlink was incorrectly
|
|
tracked, and introduce some logic to allow recovering from such
|
|
situations rather than silently doing the wrong thing. This error
|
|
could result in incorrect answers from subsequent index searches.
|
|
It may be advisable to reindex all GiST indexes after installing
|
|
this update.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Noah Misch <noah@leadboat.com>
|
|
Branch: master [5f27b5f84] 2023-10-14 16:33:51 -0700
|
|
Branch: REL_16_STABLE [bf1c21c4f] 2023-10-14 16:33:54 -0700
|
|
Branch: REL_15_STABLE [782be0f71] 2023-10-14 16:33:54 -0700
|
|
Branch: REL_14_STABLE [0834df909] 2023-10-14 16:33:54 -0700
|
|
Branch: REL_13_STABLE [6fd1dbdb2] 2023-10-14 16:33:54 -0700
|
|
-->
|
|
<para>
|
|
Prevent de-duplication of btree index entries
|
|
for <type>interval</type> columns (Noah Misch)
|
|
</para>
|
|
|
|
<para>
|
|
There are <type>interval</type> values that are distinguishable but
|
|
compare equal, for example <literal>24:00:00</literal>
|
|
and <literal>1 day</literal>. This breaks assumptions made by btree
|
|
de-duplication, so <type>interval</type> columns need to be excluded
|
|
from de-duplication. This oversight can cause incorrect results
|
|
from index-only scans. Moreover, after
|
|
updating <application>amcheck</application> will report an error for
|
|
almost all such indexes. Users should reindex any btree indexes
|
|
on <type>interval</type> columns.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Tomas Vondra <tomas.vondra@postgresql.org>
|
|
Branch: master [394d51731] 2023-10-27 18:15:37 +0200
|
|
Branch: REL_16_STABLE [e7965226d] 2023-10-27 18:28:19 +0200
|
|
Branch: REL_15_STABLE [088233f8d] 2023-10-27 18:37:59 +0200
|
|
Branch: REL_14_STABLE [d1740e169] 2023-10-27 18:46:49 +0200
|
|
-->
|
|
<para>
|
|
Process <type>date</type> values more sanely in
|
|
BRIN <literal>datetime_minmax_multi_ops</literal> indexes
|
|
(Tomas Vondra)
|
|
</para>
|
|
|
|
<para>
|
|
The distance calculation for dates was backward, causing poor
|
|
decisions about which entries to merge. The index still produces
|
|
correct results, but is much less efficient than it should be.
|
|
Reindexing BRIN <literal>minmax_multi</literal> indexes
|
|
on <type>date</type> columns is advisable.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Tomas Vondra <tomas.vondra@postgresql.org>
|
|
Branch: master [8da86d62a] 2023-10-27 18:15:37 +0200
|
|
Branch: REL_16_STABLE [497fc9208] 2023-10-27 18:28:28 +0200
|
|
Branch: REL_15_STABLE [d04a9283b] 2023-10-27 18:38:02 +0200
|
|
Branch: REL_14_STABLE [52c934cc1] 2023-10-27 18:46:53 +0200
|
|
Branch: master [b5489b75c] 2023-10-27 18:15:37 +0200
|
|
Branch: REL_16_STABLE [0635fe02b] 2023-10-27 18:28:04 +0200
|
|
Branch: REL_15_STABLE [daa7b0d7c] 2023-10-27 18:37:56 +0200
|
|
Branch: REL_14_STABLE [90c4da6d4] 2023-10-27 18:46:46 +0200
|
|
-->
|
|
<para>
|
|
Process large <type>timestamp</type> and <type>timestamptz</type>
|
|
values more sanely in
|
|
BRIN <literal>datetime_minmax_multi_ops</literal> indexes
|
|
(Tomas Vondra)
|
|
</para>
|
|
|
|
<para>
|
|
Infinities were mistakenly treated as having distance zero rather
|
|
than a large distance from other values, causing poor decisions
|
|
about which entries to merge. Also, finite-but-very-large values
|
|
(near the endpoints of the representable timestamp range) could
|
|
result in internal overflows, again causing poor decisions. The
|
|
index still produces correct results, but is much less efficient
|
|
than it should be. Reindexing BRIN <literal>minmax_multi</literal>
|
|
indexes on <type>timestamp</type> and <type>timestamptz</type>
|
|
columns is advisable if the column contains, or has contained,
|
|
infinities or large finite values.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Tomas Vondra <tomas.vondra@postgresql.org>
|
|
Branch: master [c6cf6d353] 2023-10-27 18:15:37 +0200
|
|
Branch: REL_16_STABLE [924e0e2ee] 2023-10-27 18:28:37 +0200
|
|
Branch: REL_15_STABLE [2fbb2fcb0] 2023-10-27 18:38:05 +0200
|
|
Branch: REL_14_STABLE [0fa73c5cd] 2023-10-27 18:46:56 +0200
|
|
-->
|
|
<para>
|
|
Avoid calculation overflows in
|
|
BRIN <literal>interval_minmax_multi_ops</literal> indexes with
|
|
extreme interval values (Tomas Vondra)
|
|
</para>
|
|
|
|
<para>
|
|
This bug might have caused unexpected failures while trying to
|
|
insert large interval values into such an index.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: David Rowley <drowley@postgresql.org>
|
|
Branch: master [d9e46dfb7] 2023-10-13 01:12:31 +1300
|
|
Branch: REL_16_STABLE [595db9e9c] 2023-10-13 01:13:07 +1300
|
|
Branch: REL_15_STABLE [1e81d3e6e] 2023-10-13 01:13:36 +1300
|
|
Branch: REL_14_STABLE [d26f33c32] 2023-10-13 01:13:59 +1300
|
|
Branch: REL_13_STABLE [890a73ba3] 2023-10-13 01:14:22 +1300
|
|
Branch: REL_12_STABLE [3cc0c2517] 2023-10-13 01:14:46 +1300
|
|
Branch: REL_11_STABLE [2759924f3] 2023-10-13 01:15:12 +1300
|
|
Author: David Rowley <drowley@postgresql.org>
|
|
Branch: master [f0c409d9c] 2023-10-12 19:50:38 +1300
|
|
Branch: REL_16_STABLE [6352f1627] 2023-10-12 19:51:26 +1300
|
|
Branch: REL_15_STABLE [916adc7c5] 2023-10-12 19:52:05 +1300
|
|
Branch: REL_14_STABLE [cd15bff48] 2023-10-12 19:52:31 +1300
|
|
Branch: REL_13_STABLE [45c4b2a3a] 2023-10-12 19:52:58 +1300
|
|
Branch: REL_12_STABLE [cd259de50] 2023-10-12 19:53:23 +1300
|
|
Branch: REL_11_STABLE [07f261b31] 2023-10-12 19:53:50 +1300
|
|
-->
|
|
<para>
|
|
Fix partition step generation and runtime partition pruning for
|
|
hash-partitioned tables with multiple partition keys (David Rowley)
|
|
</para>
|
|
|
|
<para>
|
|
Some cases involving an <literal>IS NULL</literal> condition on one
|
|
of the partition keys could result in a crash.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Dean Rasheed <dean.a.rasheed@gmail.com>
|
|
Branch: master [1d5caec22] 2023-09-30 10:52:21 +0100
|
|
Branch: REL_16_STABLE [6d2de076c] 2023-09-30 10:54:29 +0100
|
|
Branch: REL_15_STABLE [3c1a1af91] 2023-09-30 10:55:24 +0100
|
|
-->
|
|
<para>
|
|
Fix inconsistent rechecking of concurrently-updated rows
|
|
during <command>MERGE</command> (Dean Rasheed)
|
|
</para>
|
|
|
|
<para>
|
|
In <literal>READ COMMITTED</literal> mode, an update that finds that
|
|
its target row was just updated by a concurrent transaction will
|
|
recheck the query's <literal>WHERE</literal> conditions on the
|
|
updated row. <command>MERGE</command> failed to ensure that the
|
|
proper rows of other joined tables were used during this recheck,
|
|
possibly resulting in incorrect decisions about whether the
|
|
newly-updated row should be updated again
|
|
by <command>MERGE</command>.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
Branch: master [387f9ed0a] 2023-10-24 14:48:33 -0400
|
|
Branch: REL_16_STABLE [b1444a09d] 2023-10-24 14:48:34 -0400
|
|
Branch: REL_15_STABLE [1268e7378] 2023-10-24 14:48:34 -0400
|
|
Branch: REL_14_STABLE [8f4a6b9e4] 2023-10-24 14:48:34 -0400
|
|
Author: Amit Langote <amitlan@postgresql.org>
|
|
Branch: master [01575ad78] 2023-10-26 11:53:56 +0900
|
|
Branch: REL_16_STABLE [178ee1d85] 2023-10-26 11:53:41 +0900
|
|
Author: Amit Langote <amitlan@postgresql.org>
|
|
Branch: master [1f06b7fc6] 2023-10-26 17:32:38 +0900
|
|
Branch: REL_16_STABLE [2bf99b48d] 2023-10-26 17:29:32 +0900
|
|
-->
|
|
<para>
|
|
Correctly identify the target table in an
|
|
inherited <command>UPDATE</command>/<command>DELETE</command>/<command>MERGE</command>
|
|
even when the parent table is excluded by constraints (Amit Langote,
|
|
Tom Lane)
|
|
</para>
|
|
|
|
<para>
|
|
If the initially-named table is excluded by constraints, but not all
|
|
its inheritance descendants are, the first non-excluded descendant
|
|
was identified as the primary target table. This would lead to
|
|
firing statement-level triggers associated with that table, rather
|
|
than the initially-named table as should happen. In v16, the same
|
|
oversight could also lead to <quote>invalid perminfoindex 0 in RTE
|
|
with relid NNNN</quote> errors.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Peter Geoghegan <pg@bowt.ie>
|
|
Branch: master [714780dcd] 2023-09-28 16:29:37 -0700
|
|
Branch: REL_16_STABLE [3fa81b62e] 2023-09-28 16:29:35 -0700
|
|
Branch: REL_15_STABLE [cac37c1a1] 2023-09-28 16:29:32 -0700
|
|
Branch: REL_14_STABLE [41486c4aa] 2023-09-28 16:29:29 -0700
|
|
Branch: REL_13_STABLE [d4724e94a] 2023-09-28 16:29:27 -0700
|
|
Branch: REL_12_STABLE [b36d72cbc] 2023-09-28 16:29:24 -0700
|
|
Branch: REL_11_STABLE [7c07305e6] 2023-09-28 16:29:22 -0700
|
|
-->
|
|
<para>
|
|
Fix edge case in btree mark/restore processing of ScalarArrayOpExpr
|
|
clauses (Peter Geoghegan)
|
|
</para>
|
|
|
|
<para>
|
|
When restoring an indexscan to a previously marked position, the
|
|
code could miss required setup steps if the scan had advanced
|
|
exactly to the end of the matches for a ScalarArrayOpExpr (that is,
|
|
an <literal>indexcol = ANY(ARRAY[])</literal>) clause. This could
|
|
result in missing some rows that should have been fetched.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: David Rowley <drowley@postgresql.org>
|
|
Branch: master [0b053e78b] 2023-10-05 20:30:47 +1300
|
|
Branch: REL_16_STABLE [31b2b2d72] 2023-10-05 20:31:25 +1300
|
|
Branch: REL_15_STABLE [689af6db6] 2023-10-05 20:31:51 +1300
|
|
Branch: REL_14_STABLE [e4b95b9b0] 2023-10-05 20:32:14 +1300
|
|
-->
|
|
<para>
|
|
Fix intra-query memory leak in Memoize execution
|
|
(Orlov Aleksej, David Rowley)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
Branch: master [237f8765d] 2023-10-28 14:05:01 -0400
|
|
Branch: REL_16_STABLE [07494a0df] 2023-10-28 14:04:43 -0400
|
|
Branch: REL_15_STABLE [592cb11fb] 2023-10-28 14:04:43 -0400
|
|
Branch: REL_14_STABLE [5d7515d7d] 2023-10-28 14:04:43 -0400
|
|
Branch: REL_13_STABLE [b7684473d] 2023-10-28 14:04:43 -0400
|
|
Branch: REL_12_STABLE [d8d7f282f] 2023-10-28 14:04:43 -0400
|
|
Branch: REL_11_STABLE [7ab6971c6] 2023-10-28 14:04:43 -0400
|
|
-->
|
|
<para>
|
|
Fix intra-query memory leak when a set-returning function repeatedly
|
|
returns zero rows (Tom Lane)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
Branch: master [f73fa5a47] 2023-09-18 14:28:17 -0400
|
|
Branch: REL_16_STABLE [ec693a3f3] 2023-09-18 14:27:47 -0400
|
|
Branch: REL_15_STABLE [95f54f0d0] 2023-09-18 14:27:47 -0400
|
|
Branch: REL_14_STABLE [9baabfa38] 2023-09-18 14:27:47 -0400
|
|
Branch: REL_13_STABLE [e6e50ada0] 2023-09-18 14:27:47 -0400
|
|
Branch: REL_12_STABLE [123337079] 2023-09-18 14:27:47 -0400
|
|
Branch: REL_11_STABLE [db00be6d7] 2023-09-18 14:27:47 -0400
|
|
-->
|
|
<para>
|
|
Don't crash if <function>cursor_to_xmlschema()</function> is applied
|
|
to a non-data-returning Portal (Boyu Yang)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Amit Kapila <akapila@postgresql.org>
|
|
Branch: master [54ccfd658] 2023-09-27 14:32:51 +0530
|
|
Branch: REL_16_STABLE [8d05be931] 2023-09-27 14:20:57 +0530
|
|
-->
|
|
<para>
|
|
Fix improper sharing of origin filter condition across
|
|
successive <function>pg_logical_slot_get_changes()</function> calls
|
|
(Hou Zhijie)
|
|
</para>
|
|
|
|
<para>
|
|
The origin condition set by one call of this function would be
|
|
re-used by later calls that did not specify the origin argument.
|
|
This was not intended.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: David Rowley <drowley@postgresql.org>
|
|
Branch: master [73635b6d6] 2023-10-31 16:42:08 +1300
|
|
Branch: REL_16_STABLE [a98f01c93] 2023-10-31 16:42:35 +1300
|
|
Branch: REL_15_STABLE [136068353] 2023-10-31 16:43:01 +1300
|
|
Branch: REL_14_STABLE [c5988e69f] 2023-10-31 16:43:28 +1300
|
|
Branch: REL_13_STABLE [b3c8d1d0e] 2023-10-31 16:44:00 +1300
|
|
Branch: REL_12_STABLE [efcb601d2] 2023-10-31 16:44:27 +1300
|
|
-->
|
|
<para>
|
|
Throw the intended error if <function>pgrowlocks()</function> is
|
|
applied to a partitioned table (David Rowley)
|
|
</para>
|
|
|
|
<para>
|
|
Previously, a not-on-point complaint <quote>only heap AM is
|
|
supported</quote> would be raised.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Noah Misch <noah@leadboat.com>
|
|
Branch: master [13503eb59] 2023-10-30 14:46:05 -0700
|
|
Branch: REL_16_STABLE [1a368dd3e] 2023-10-30 14:46:08 -0700
|
|
Branch: REL_15_STABLE [e633e9b13] 2023-10-30 14:46:08 -0700
|
|
Branch: REL_14_STABLE [0a7b183fd] 2023-10-30 14:46:09 -0700
|
|
Branch: REL_13_STABLE [123b0d111] 2023-10-30 14:46:09 -0700
|
|
Branch: REL_12_STABLE [975ae0553] 2023-10-30 14:46:09 -0700
|
|
Branch: REL_11_STABLE [bae063db4] 2023-10-30 14:46:09 -0700
|
|
-->
|
|
<para>
|
|
Handle invalid indexes more cleanly in assorted SQL functions
|
|
(Noah Misch)
|
|
</para>
|
|
|
|
<para>
|
|
Report an error if <function>pgstatindex()</function>,
|
|
<function>pgstatginindex()</function>,
|
|
<function>pgstathashindex()</function>,
|
|
or <function>pgstattuple()</function> is applied to an invalid
|
|
index. If <function>brin_desummarize_range()</function>,
|
|
<function>brin_summarize_new_values()</function>,
|
|
<function>brin_summarize_range()</function>,
|
|
or <function>gin_clean_pending_list()</function> is applied to an
|
|
invalid index, do nothing except to report a debug-level message.
|
|
Formerly these functions attempted to process the index, and might
|
|
fail in strange ways depending on what the failed <command>CREATE
|
|
INDEX</command> had left behind.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
Branch: master [cf1c65070] 2023-09-25 11:50:28 -0400
|
|
Branch: REL_16_STABLE [8465efc1a] 2023-09-25 11:50:28 -0400
|
|
Branch: REL_15_STABLE [71bb73f60] 2023-09-25 11:50:28 -0400
|
|
Branch: REL_14_STABLE [a2799f53d] 2023-09-25 11:50:28 -0400
|
|
Branch: REL_13_STABLE [52a676ef4] 2023-09-25 11:50:28 -0400
|
|
Branch: REL_12_STABLE [4a81ed29d] 2023-09-25 11:50:28 -0400
|
|
Branch: REL_11_STABLE [0fb91ed2b] 2023-09-25 11:50:28 -0400
|
|
-->
|
|
<para>
|
|
Avoid premature memory allocation failure with long inputs
|
|
to <function>to_tsvector()</function> (Tom Lane)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
Branch: master [5b7b38246] 2023-10-01 13:16:47 -0400
|
|
Branch: REL_16_STABLE [5c34a7374] 2023-10-01 13:16:59 -0400
|
|
Branch: REL_15_STABLE [55e188a15] 2023-10-01 13:17:06 -0400
|
|
Branch: REL_14_STABLE [cf12c4fd2] 2023-10-01 13:17:11 -0400
|
|
Branch: REL_13_STABLE [9da153846] 2023-10-01 13:17:15 -0400
|
|
Branch: REL_12_STABLE [2296bc362] 2023-10-01 13:17:20 -0400
|
|
Branch: REL_11_STABLE [7a310cae0] 2023-10-01 13:17:25 -0400
|
|
-->
|
|
<para>
|
|
Fix over-allocation of the constructed <type>tsvector</type>
|
|
in <function>tsvectorrecv()</function> (Denis Erokhin)
|
|
</para>
|
|
|
|
<para>
|
|
If the incoming vector includes position data, the binary receive
|
|
function left wasted space (roughly equal to the size of the
|
|
position data) in the finished <type>tsvector</type>. In extreme
|
|
cases this could lead to <quote>maximum total lexeme length
|
|
exceeded</quote> failures for vectors that were under the length
|
|
limit when emitted. In any case it could lead to wasted space
|
|
on-disk.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
Branch: master [9b103f861] 2023-10-18 20:43:27 -0400
|
|
Branch: REL_16_STABLE [cfa4eba02] 2023-10-18 20:43:17 -0400
|
|
Branch: REL_15_STABLE [985ac5ce2] 2023-10-18 20:43:17 -0400
|
|
Branch: REL_14_STABLE [2c63dc035] 2023-10-18 20:43:17 -0400
|
|
Branch: REL_13_STABLE [817669ea2] 2023-10-18 20:43:17 -0400
|
|
-->
|
|
<para>
|
|
Improve checks for corrupt PGLZ compressed data (Flavien Guedez)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Amit Kapila <akapila@postgresql.org>
|
|
Branch: master [f062cddaf] 2023-09-13 09:34:30 +0530
|
|
Branch: REL_16_STABLE [a81e5516f] 2023-09-13 09:48:31 +0530
|
|
-->
|
|
<para>
|
|
Fix <command>ALTER SUBSCRIPTION</command> so that a commanded change
|
|
in the <literal>run_as_owner</literal> option is actually applied
|
|
(Hou Zhijie)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Andres Freund <andres@anarazel.de>
|
|
Branch: master [22655aa23] 2023-10-13 19:16:44 -0700
|
|
Branch: REL_16_STABLE [0002feb82] 2023-10-13 19:17:28 -0700
|
|
-->
|
|
<para>
|
|
Fix bulk table insertion into partitioned tables (Andres Freund)
|
|
</para>
|
|
|
|
<para>
|
|
Improper sharing of insertion state across partitions could result
|
|
in failures during <command>COPY FROM</command>, typically
|
|
manifesting as <quote>could not read block NNNN in file XXXX: read
|
|
only 0 of 8192 bytes</quote> errors.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Andrew Dunstan <andrew@dunslane.net>
|
|
Branch: master [276393f53] 2023-10-01 10:18:41 -0400
|
|
Branch: REL_16_STABLE [910eb61b2] 2023-10-01 10:25:33 -0400
|
|
-->
|
|
<para>
|
|
In <command>COPY FROM</command>, avoid evaluating column default
|
|
values that will not be needed by the command (Laurenz Albe)
|
|
</para>
|
|
|
|
<para>
|
|
This avoids a possible error if the default value isn't actually
|
|
valid for the column, or if the default's expression would fail in
|
|
the current execution context. Such edge cases sometimes arise
|
|
while restoring dumps, for example. Previous releases did not fail
|
|
in this situation, so prevent v16 from doing so.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
Branch: master [d8a09939a] 2023-10-01 12:09:26 -0400
|
|
Branch: REL_16_STABLE [ea0e7cd6b] 2023-10-01 12:09:26 -0400
|
|
Branch: REL_15_STABLE [95fd5c89f] 2023-10-01 12:09:26 -0400
|
|
Branch: REL_14_STABLE [a715c0212] 2023-10-01 12:09:26 -0400
|
|
-->
|
|
<para>
|
|
In <command>COPY FROM</command>, fail cleanly when an unsupported
|
|
encoding conversion is needed (Tom Lane)
|
|
</para>
|
|
|
|
<para>
|
|
Recent refactoring accidentally removed the intended error check for
|
|
this, such that it ended in <quote>cache lookup failed for function
|
|
0</quote> instead of a useful error message.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
Branch: master [7704a1a72] 2023-11-02 11:47:33 -0400
|
|
Branch: REL_16_STABLE [82063edd4] 2023-11-02 11:47:33 -0400
|
|
Branch: REL_15_STABLE [ae33659d4] 2023-11-02 11:47:33 -0400
|
|
Branch: REL_14_STABLE [47c0f00cf] 2023-11-02 11:47:33 -0400
|
|
Branch: REL_13_STABLE [137227c6d] 2023-11-02 11:47:33 -0400
|
|
Branch: REL_12_STABLE [65810fc6d] 2023-11-02 11:47:33 -0400
|
|
Branch: REL_11_STABLE [6e1cca511] 2023-11-02 11:47:33 -0400 !! no live bug
|
|
-->
|
|
<para>
|
|
Avoid crash in <command>EXPLAIN</command> if a parameter marked to
|
|
be displayed by <command>EXPLAIN</command> has a NULL boot-time
|
|
value (Xing Guo, Aleksander Alekseev, Tom Lane)
|
|
</para>
|
|
|
|
<para>
|
|
No built-in parameter fits this description, but an extension could
|
|
define such a parameter.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
Branch: master [54b208f90] 2023-10-16 14:06:14 -0400
|
|
Branch: REL_16_STABLE [57e6e861d] 2023-10-16 14:06:15 -0400
|
|
Branch: REL_15_STABLE [0d1a7cd14] 2023-10-16 14:06:15 -0400
|
|
Branch: REL_14_STABLE [f6e1ee3cf] 2023-10-16 14:06:11 -0400
|
|
Branch: REL_13_STABLE [1e678175c] 2023-10-16 14:06:11 -0400
|
|
Branch: REL_12_STABLE [07eb22a77] 2023-10-16 14:06:11 -0400
|
|
Branch: REL_11_STABLE [a295684b8] 2023-10-16 14:06:12 -0400
|
|
-->
|
|
<para>
|
|
Ensure we have a snapshot while dropping <literal>ON COMMIT
|
|
DROP</literal> temp tables (Tom Lane)
|
|
</para>
|
|
|
|
<para>
|
|
This prevents possible misbehavior if any catalog entries for the
|
|
temp tables have fields wide enough to require toasting (such as a
|
|
very complex <literal>CHECK</literal> condition).
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Nathan Bossart <nathan@postgresql.org>
|
|
Branch: master [97550c071] 2023-10-17 10:41:48 -0500
|
|
Branch: REL_16_STABLE [ee06199fc] 2023-10-17 10:41:58 -0500
|
|
Branch: REL_15_STABLE [c9265ae80] 2023-10-17 10:42:06 -0500
|
|
Branch: REL_14_STABLE [54fc9dca5] 2023-10-17 10:42:12 -0500
|
|
Branch: REL_13_STABLE [ac1dfc303] 2023-10-17 10:42:17 -0500
|
|
Branch: REL_12_STABLE [e2e169042] 2023-10-17 10:42:22 -0500
|
|
Branch: REL_11_STABLE [d0e7f95b4] 2023-10-17 10:42:28 -0500
|
|
Author: Nathan Bossart <nathan@postgresql.org>
|
|
Branch: REL_14_STABLE [555bc89c9] 2023-10-17 16:11:03 -0500
|
|
Branch: REL_13_STABLE [ebc093fa6] 2023-10-17 16:11:08 -0500
|
|
Branch: REL_12_STABLE [0e32652a7] 2023-10-17 16:11:13 -0500
|
|
Branch: REL_11_STABLE [bc322c73c] 2023-10-17 16:11:18 -0500
|
|
-->
|
|
<para>
|
|
Avoid improper response to shutdown signals in child processes
|
|
just forked by <function>system()</function> (Nathan Bossart)
|
|
</para>
|
|
|
|
<para>
|
|
This fix avoids a race condition in which a child process that has
|
|
been forked off by <function>system()</function>, but hasn't yet
|
|
exec'd the intended child program, might receive and act on a signal
|
|
intended for the parent server process. That would lead to
|
|
duplicate cleanup actions being performed, which will not end well.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Thomas Munro <tmunro@postgresql.org>
|
|
Branch: master [63a582222] 2023-10-16 17:33:08 +1300
|
|
Branch: REL_16_STABLE [5725e4ebe] 2023-10-16 17:21:41 +1300
|
|
Branch: REL_15_STABLE [5e39884d3] 2023-10-16 17:23:02 +1300
|
|
Branch: REL_14_STABLE [dc75748a9] 2023-10-16 17:23:25 +1300
|
|
Branch: REL_13_STABLE [67060be3d] 2023-10-16 17:24:35 +1300
|
|
Branch: REL_12_STABLE [43c979086] 2023-10-16 17:25:43 +1300
|
|
-->
|
|
<para>
|
|
Cope with torn reads of <filename>pg_control</filename> in frontend
|
|
programs (Thomas Munro)
|
|
</para>
|
|
|
|
<para>
|
|
On some file systems, reading <filename>pg_control</filename> may
|
|
not be an atomic action when the server concurrently writes that
|
|
file. This is detectable via a bad CRC. Retry a few times to see
|
|
if the file becomes valid before we report error.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Thomas Munro <tmunro@postgresql.org>
|
|
Branch: master [c558e6fd9] 2023-10-16 10:43:47 +1300
|
|
Branch: REL_16_STABLE [2371432cd] 2023-10-16 10:45:05 +1300
|
|
Branch: REL_15_STABLE [606be8a35] 2023-10-16 10:45:18 +1300
|
|
Branch: REL_14_STABLE [a56fe5cf0] 2023-10-16 10:47:01 +1300
|
|
Branch: REL_13_STABLE [ae9da357b] 2023-10-16 10:47:10 +1300
|
|
Branch: REL_12_STABLE [637e86ecc] 2023-10-16 10:47:33 +1300
|
|
Branch: REL_11_STABLE [f1634c968] 2023-10-16 10:52:40 +1300
|
|
-->
|
|
<para>
|
|
Avoid torn reads of <filename>pg_control</filename> in relevant SQL
|
|
functions (Thomas Munro)
|
|
</para>
|
|
|
|
<para>
|
|
Acquire the appropriate lock before
|
|
reading <filename>pg_control</filename>, to ensure we get a
|
|
consistent view of that file.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: David Rowley <drowley@postgresql.org>
|
|
Branch: master [d8a295389] 2023-10-09 16:37:05 +1300
|
|
Branch: REL_16_STABLE [9154ededf] 2023-10-09 16:37:33 +1300
|
|
-->
|
|
<para>
|
|
Fix <quote>could not find pathkey item to sort</quote> errors
|
|
occurring while planning aggregate functions with <literal>ORDER
|
|
BY</literal> or <literal>DISTINCT</literal> options (David Rowley)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Michael Paquier <michael@paquier.xyz>
|
|
Branch: master [a956bd3fa] 2023-10-03 15:37:00 +0900
|
|
Branch: REL_16_STABLE [75f31a3f2] 2023-10-03 15:37:18 +0900
|
|
Branch: REL_15_STABLE [95e91da66] 2023-10-03 15:37:19 +0900
|
|
Branch: REL_14_STABLE [f91c87b31] 2023-10-03 15:37:21 +0900
|
|
Branch: REL_13_STABLE [a0b013625] 2023-10-03 15:37:23 +0900
|
|
Branch: REL_12_STABLE [9b3900cdb] 2023-10-03 15:37:24 +0900
|
|
-->
|
|
<para>
|
|
Avoid integer overflow when computing size of backend activity
|
|
string array (Jakub Wartak)
|
|
</para>
|
|
|
|
<para>
|
|
On 64-bit machines we will allow values
|
|
of <varname>track_activity_query_size</varname> large enough to
|
|
cause 32-bit overflow when multiplied by the allowed number of
|
|
connections. The code actually allocating the per-backend local
|
|
array was careless about this though, and allocated the array
|
|
incorrectly.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
|
|
Branch: master [c181f2e2b] 2023-09-30 17:03:50 +0300
|
|
Branch: REL_16_STABLE [992d2ca81] 2023-09-30 17:07:24 +0300
|
|
Branch: REL_15_STABLE [5ae245664] 2023-09-30 17:07:32 +0300
|
|
Branch: REL_14_STABLE [2d4f99bc6] 2023-09-30 17:07:37 +0300
|
|
Branch: REL_13_STABLE [ed9247cd7] 2023-09-30 17:07:41 +0300
|
|
-->
|
|
<para>
|
|
Fix briefly showing inconsistent progress statistics
|
|
for <command>ANALYZE</command> on inherited tables
|
|
(Heikki Linnakangas)
|
|
</para>
|
|
|
|
<para>
|
|
The block-level counters should be reset to zero at the same time we
|
|
update the current-relation field.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
|
|
Branch: master [e64c733bb] 2023-10-02 12:39:35 +0300
|
|
Branch: REL_16_STABLE [4a97a43a7] 2023-10-02 12:49:25 +0300
|
|
Branch: REL_15_STABLE [0684d1949] 2023-10-02 12:49:29 +0300
|
|
Branch: REL_14_STABLE [594001864] 2023-10-02 12:50:32 +0300
|
|
-->
|
|
<para>
|
|
Fix the background writer to report any WAL writes it makes to the
|
|
statistics counters (Nazir Bilal Yavuz)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Michael Paquier <michael@paquier.xyz>
|
|
Branch: master [e221c0bef] 2023-09-26 09:29:47 +0900
|
|
Branch: REL_16_STABLE [280f70221] 2023-09-26 09:30:36 +0900
|
|
Branch: REL_15_STABLE [802fcb9ed] 2023-09-26 09:30:39 +0900
|
|
-->
|
|
<para>
|
|
Fix confusion about forced-flush behavior
|
|
in <function>pgstat_report_wal()</function>
|
|
(Ryoga Yoshida, Michael Paquier)
|
|
</para>
|
|
|
|
<para>
|
|
This could result in some statistics about WAL I/O being forgotten
|
|
in a shutdown.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Andres Freund <andres@anarazel.de>
|
|
Branch: master [7369798a8] 2023-09-13 19:14:09 -0700
|
|
Branch: REL_16_STABLE [c4758649b] 2023-09-13 19:14:11 -0700
|
|
-->
|
|
<para>
|
|
Fix statistics tracking of temporary-table extensions (Karina
|
|
Litskevich, Andres Freund)
|
|
</para>
|
|
|
|
<para>
|
|
These were counted as normal-table writes when they should be
|
|
counted as temp-table writes.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Michael Paquier <michael@paquier.xyz>
|
|
Branch: master [d17ffc734] 2023-10-18 14:54:33 +0900
|
|
Branch: REL_16_STABLE [2308f18c0] 2023-10-18 14:54:39 +0900
|
|
-->
|
|
<para>
|
|
When <varname>track_io_timing</varname> is enabled, include the
|
|
time taken by relation extension operations as write time
|
|
(Nazir Bilal Yavuz)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
Branch: master [dc8d72c1c] 2023-09-25 14:42:17 -0400
|
|
Branch: REL_16_STABLE [055f786ea] 2023-09-25 14:42:17 -0400
|
|
Branch: REL_15_STABLE [0e59266a5] 2023-09-25 14:41:57 -0400
|
|
Branch: REL_14_STABLE [5cff431bc] 2023-09-25 14:41:57 -0400
|
|
Branch: REL_13_STABLE [8cfc3e80b] 2023-09-25 14:41:57 -0400
|
|
Branch: REL_12_STABLE [4435a8d5d] 2023-09-25 14:41:57 -0400
|
|
Branch: REL_11_STABLE [fdc7cf73b] 2023-09-25 14:41:57 -0400
|
|
-->
|
|
<para>
|
|
Track the dependencies of cached <command>CALL</command> statements,
|
|
and re-plan them when needed (Tom Lane)
|
|
</para>
|
|
|
|
<para>
|
|
DDL commands, such as replacement of a function that has been
|
|
inlined into a <command>CALL</command> argument, can create the need
|
|
to re-plan a <command>CALL</command> that has been cached by
|
|
PL/pgSQL. That was not happening, leading to misbehavior or strange
|
|
errors such as <quote>cache lookup failed</quote>.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Daniel Gustafsson <dgustafsson@postgresql.org>
|
|
Branch: master [5f3aa309a] 2023-09-22 11:18:25 +0200
|
|
Branch: REL_16_STABLE [f720875a4] 2023-09-22 11:18:25 +0200
|
|
Branch: REL_15_STABLE [9dc85806d] 2023-09-22 11:18:25 +0200
|
|
-->
|
|
<para>
|
|
Avoid a possible pfree-a-NULL-pointer crash after an error in
|
|
OpenSSL connection setup (Sergey Shinderuk)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
Branch: master [e0e492e5a] 2023-09-15 17:01:52 -0400
|
|
Branch: REL_16_STABLE [53630f12d] 2023-09-15 17:01:26 -0400
|
|
Branch: REL_15_STABLE [2679a107a] 2023-09-15 17:01:26 -0400
|
|
Branch: REL_14_STABLE [ae13f8166] 2023-09-15 17:01:26 -0400
|
|
Branch: REL_13_STABLE [c5b7f791d] 2023-09-15 17:01:26 -0400
|
|
Branch: REL_12_STABLE [d29812c0c] 2023-09-15 17:01:26 -0400
|
|
Branch: REL_11_STABLE [a374f6c61] 2023-09-15 17:01:26 -0400
|
|
-->
|
|
<para>
|
|
Track nesting depth correctly when
|
|
inspecting <type>RECORD</type>-type Vars from outer query levels
|
|
(Richard Guo)
|
|
</para>
|
|
|
|
<para>
|
|
This oversight could lead to assertion failures, core dumps,
|
|
or <quote>bogus varno</quote> errors.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: David Rowley <drowley@postgresql.org>
|
|
Branch: master [ee3a551e9] 2023-09-14 11:27:29 +1200
|
|
Branch: REL_16_STABLE [1a6900e58] 2023-09-14 11:27:16 +1200
|
|
Branch: REL_15_STABLE [17a3f1c34] 2023-09-14 11:27:00 +1200
|
|
Branch: REL_14_STABLE [6341cb0b0] 2023-09-14 11:27:43 +1200
|
|
-->
|
|
<para>
|
|
Track hash function and negator function dependencies of
|
|
ScalarArrayOpExpr plan nodes (David Rowley)
|
|
</para>
|
|
|
|
<para>
|
|
In most cases this oversight was harmless, since these functions
|
|
would be unlikely to disappear while the node's original operator
|
|
remains present.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Thomas Munro <tmunro@postgresql.org>
|
|
Branch: master [3acd0599b] 2023-09-13 14:58:22 +1200
|
|
Branch: REL_16_STABLE [f899c7f1e] 2023-09-13 15:06:07 +1200
|
|
Branch: REL_15_STABLE [a26cc0334] 2023-09-13 14:43:04 +1200
|
|
Branch: REL_14_STABLE [e2452c2a6] 2023-09-13 14:46:16 +1200
|
|
Branch: REL_13_STABLE [189097db8] 2023-09-13 14:48:00 +1200
|
|
Branch: REL_12_STABLE [012b80ad2] 2023-09-13 14:50:14 +1200
|
|
Branch: REL_11_STABLE [6ae57f190] 2023-09-13 14:52:34 +1200
|
|
-->
|
|
<para>
|
|
Fix error-handling bug in <type>RECORD</type> type cache management
|
|
(Thomas Munro)
|
|
</para>
|
|
|
|
<para>
|
|
An out-of-memory error occurring at just the wrong point could leave
|
|
behind inconsistent state that would lead to an infinite loop.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Michael Paquier <michael@paquier.xyz>
|
|
Branch: master [6b18b3fe2] 2023-10-03 10:21:44 +0900
|
|
Branch: REL_16_STABLE [a06efbc3a] 2023-10-03 10:25:12 +0900
|
|
Branch: REL_15_STABLE [afc79591d] 2023-10-03 10:25:14 +0900
|
|
Branch: REL_14_STABLE [baeb8542c] 2023-10-03 10:25:15 +0900
|
|
Branch: REL_13_STABLE [6103d2cca] 2023-10-03 10:25:17 +0900
|
|
Branch: REL_12_STABLE [22b2e6e9d] 2023-10-03 10:25:19 +0900
|
|
-->
|
|
<para>
|
|
Treat out-of-memory failures as fatal while reading WAL
|
|
(Michael Paquier)
|
|
</para>
|
|
|
|
<para>
|
|
Previously this would be treated as a bogus-data condition, leading
|
|
to the conclusion that we'd reached the end of WAL, which is
|
|
incorrect and could lead to inconsistent WAL replay.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Thomas Munro <tmunro@postgresql.org>
|
|
Branch: master [bae868caf] 2023-09-23 10:26:24 +1200
|
|
Branch: REL_16_STABLE [ce497f648] 2023-09-23 10:27:02 +1200
|
|
Branch: REL_15_STABLE [f4d152edd] 2023-09-23 10:28:12 +1200
|
|
Branch: REL_14_STABLE [3ce3b53d7] 2023-09-23 10:28:40 +1200
|
|
Branch: REL_13_STABLE [6606c5716] 2023-09-23 10:29:44 +1200
|
|
Branch: REL_12_STABLE [e8f3c0687] 2023-09-23 10:29:56 +1200
|
|
Author: Thomas Munro <tmunro@postgresql.org>
|
|
Branch: master [becfbdd6c] 2023-09-26 10:53:38 +1300
|
|
Branch: REL_16_STABLE [10d0591ea] 2023-09-26 10:53:52 +1300
|
|
Branch: REL_15_STABLE [99d334a18] 2023-09-26 10:54:02 +1300
|
|
Branch: REL_14_STABLE [3d413c5a7] 2023-09-26 10:54:24 +1300
|
|
Branch: REL_13_STABLE [45d1fe8b5] 2023-09-26 10:54:47 +1300
|
|
Branch: REL_12_STABLE [bde2f1847] 2023-09-26 10:59:49 +1300
|
|
-->
|
|
<para>
|
|
Fix possible recovery failure due to trying to allocate memory based
|
|
on a bogus WAL record length field (Thomas Munro, Michael Paquier)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Thomas Munro <tmunro@postgresql.org>
|
|
Branch: master [dab889d60] 2023-10-22 10:04:55 +1300
|
|
Branch: REL_16_STABLE [174ccda5e] 2023-10-22 10:05:22 +1300
|
|
Branch: REL_15_STABLE [f72790b29] 2023-10-22 10:05:40 +1300
|
|
Branch: REL_14_STABLE [fb9a16a1a] 2023-10-22 10:05:59 +1300
|
|
-->
|
|
<para>
|
|
Fix <quote>could not duplicate handle</quote> error occurring on
|
|
Windows when <varname>min_dynamic_shared_memory</varname> is set
|
|
above zero (Thomas Munro)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Jeff Davis <jdavis@postgresql.org>
|
|
Branch: master [ef74c7197] 2023-10-10 11:01:13 -0700
|
|
Branch: REL_16_STABLE [b8963e8a2] 2023-10-10 11:01:55 -0700
|
|
Branch: REL_15_STABLE [b9bb02620] 2023-10-10 11:02:45 -0700
|
|
Branch: REL_14_STABLE [6615bb95a] 2023-10-10 11:02:56 -0700
|
|
Branch: REL_13_STABLE [469d367be] 2023-10-10 11:03:03 -0700
|
|
Branch: REL_12_STABLE [6dbd01b9f] 2023-10-10 11:03:10 -0700
|
|
Branch: REL_11_STABLE [04f0baa85] 2023-10-10 11:03:20 -0700
|
|
-->
|
|
<para>
|
|
Fix order of operations in <function>GenericXLogFinish</function>
|
|
(Jeff Davis)
|
|
</para>
|
|
|
|
<para>
|
|
This code violated the conditions required for crash safety by
|
|
writing WAL before marking changed buffers dirty. No core code uses
|
|
this function, but extensions do (<filename>contrib/bloom</filename>
|
|
does, for example).
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Michael Paquier <michael@paquier.xyz>
|
|
Branch: master [af5b3c3d1] 2023-09-19 08:31:06 +0900
|
|
Branch: REL_16_STABLE [f171430f0] 2023-09-19 08:31:22 +0900
|
|
Branch: REL_15_STABLE [9e0ce80f3] 2023-09-19 08:31:24 +0900
|
|
Branch: REL_14_STABLE [bb65f3c1b] 2023-09-19 08:31:26 +0900
|
|
Branch: REL_13_STABLE [35e8ba3e5] 2023-09-19 08:31:27 +0900
|
|
Branch: REL_12_STABLE [99d27e55c] 2023-09-19 08:31:29 +0900
|
|
Branch: REL_11_STABLE [ddded779a] 2023-09-19 08:31:31 +0900
|
|
-->
|
|
<para>
|
|
Remove incorrect assertion in PL/Python exception handling
|
|
(Alexander Lakhin)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
Branch: master [5ba4cc309] 2023-10-29 12:56:35 -0400
|
|
Branch: REL_16_STABLE [67738dbf9] 2023-10-29 12:56:24 -0400
|
|
-->
|
|
<para>
|
|
Fix <application>pg_dump</application> to dump the
|
|
new <literal>run_as_owner</literal> option of subscriptions
|
|
(Philip Warner)
|
|
</para>
|
|
|
|
<para>
|
|
Due to this oversight, subscriptions would always be restored
|
|
with <literal>run_as_owner</literal> set
|
|
to <literal>false</literal>, which is not equivalent to their
|
|
behavior in pre-v16 releases.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
Branch: master [06c0c3688] 2023-10-02 13:27:58 -0400
|
|
Branch: REL_16_STABLE [aaaf8fbb6] 2023-10-02 13:27:51 -0400
|
|
Branch: REL_15_STABLE [10e705bd2] 2023-10-02 13:27:51 -0400
|
|
Branch: REL_14_STABLE [829d91cc6] 2023-10-02 13:27:51 -0400
|
|
Branch: REL_13_STABLE [295953f8b] 2023-10-02 13:27:51 -0400
|
|
Branch: REL_12_STABLE [c02f29758] 2023-10-02 13:27:51 -0400
|
|
Branch: REL_11_STABLE [4f16152d9] 2023-10-02 13:27:51 -0400
|
|
-->
|
|
<para>
|
|
Fix <application>pg_restore</application> so that selective restores
|
|
will include both table-level and column-level ACLs for selected
|
|
tables (Euler Taveira, Tom Lane)
|
|
</para>
|
|
|
|
<para>
|
|
Formerly, only the table-level ACL would get restored if both types
|
|
were present.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
|
|
Branch: master [2e3dc8c14] 2023-09-25 14:27:33 +0200
|
|
Branch: REL_16_STABLE [fb9ddd0fa] 2023-09-25 14:34:06 +0200
|
|
Branch: REL_15_STABLE [8845d8597] 2023-09-25 14:34:06 +0200
|
|
Branch: REL_14_STABLE [26c291a15] 2023-09-25 14:34:06 +0200
|
|
Branch: REL_13_STABLE [d3946c4f6] 2023-09-25 14:34:05 +0200
|
|
Branch: REL_12_STABLE [af9f6cd1d] 2023-09-25 14:34:05 +0200
|
|
Author: Peter Eisentraut <peter@eisentraut.org>
|
|
Branch: REL_15_STABLE [04d2d605f] 2023-11-03 12:07:11 -0400
|
|
Branch: REL_14_STABLE [f9280e77e] 2023-11-03 12:07:25 -0400
|
|
Branch: REL_13_STABLE [2f1f49975] 2023-11-03 12:07:35 -0400
|
|
Branch: REL_12_STABLE [d3246a2ad] 2023-11-03 12:07:40 -0400
|
|
-->
|
|
<para>
|
|
Add logic to <application>pg_upgrade</application> to check for use
|
|
of <type>abstime</type>, <type>reltime</type>,
|
|
and <type>tinterval</type> data types (Álvaro Herrera)
|
|
</para>
|
|
|
|
<para>
|
|
These obsolete data types were removed
|
|
in <productname>PostgreSQL</productname> version 12, so check to
|
|
make sure they aren't present in an older database before claiming
|
|
it can be upgraded.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Noah Misch <noah@leadboat.com>
|
|
Branch: master [90ebcc32d] 2023-10-14 15:54:46 -0700
|
|
Branch: REL_16_STABLE [06ff06484] 2023-10-14 15:54:49 -0700
|
|
Branch: REL_15_STABLE [1102f4ece] 2023-10-14 15:54:49 -0700
|
|
Branch: REL_14_STABLE [0df88a686] 2023-10-14 15:54:49 -0700
|
|
Branch: REL_13_STABLE [3895e9153] 2023-10-14 15:54:50 -0700
|
|
Branch: REL_12_STABLE [73cda80a3] 2023-10-14 15:54:50 -0700
|
|
-->
|
|
<para>
|
|
Avoid false <quote>too many client connections</quote> errors
|
|
in <application>pgbench</application> on Windows (Noah Misch)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Daniel Gustafsson <dgustafsson@postgresql.org>
|
|
Branch: master [fb56a1811] 2023-09-25 16:03:17 +0200
|
|
Branch: REL_16_STABLE [2143d96dc] 2023-09-25 16:03:17 +0200
|
|
-->
|
|
<para>
|
|
Fix <application>vacuumdb</application>'s handling of
|
|
multiple <option>-N</option> switches (Nathan Bossart, Kuwamura
|
|
Masaki)
|
|
</para>
|
|
|
|
<para>
|
|
Multiple <option>-N</option> switches should exclude tables
|
|
in multiple schemas, but in fact excluded nothing due to faulty
|
|
construction of a generated query.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: David Rowley <drowley@postgresql.org>
|
|
Branch: master [5cfba1ad6] 2023-09-21 17:47:20 +1200
|
|
Branch: REL_16_STABLE [f7dbdab05] 2023-09-21 17:39:30 +1200
|
|
-->
|
|
<para>
|
|
Fix <application>vacuumdb</application> to honor
|
|
its <option>--buffer-usage-limit</option> option in analyze-only
|
|
mode (Ryoga Yoshida, David Rowley)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Noah Misch <noah@leadboat.com>
|
|
Branch: master [6ec9e9975] 2023-10-30 14:46:05 -0700
|
|
Branch: REL_16_STABLE [3c6a05b80] 2023-10-30 14:46:08 -0700
|
|
Branch: REL_15_STABLE [6f81386a9] 2023-10-30 14:46:08 -0700
|
|
Branch: REL_14_STABLE [42496cba6] 2023-10-30 14:46:09 -0700
|
|
Branch: REL_13_STABLE [f31ccb575] 2023-10-30 14:46:09 -0700
|
|
Branch: REL_12_STABLE [3a205c916] 2023-10-30 14:46:09 -0700
|
|
Branch: REL_11_STABLE [e04509f32] 2023-10-30 14:46:09 -0700
|
|
-->
|
|
<para>
|
|
In <filename>contrib/amcheck</filename>, do not report interrupted
|
|
page deletion as corruption (Noah Misch)
|
|
</para>
|
|
|
|
<para>
|
|
This fix prevents false-positive reports of <quote>the first child
|
|
of leftmost target page is not leftmost of its
|
|
level</quote>, <quote>block NNNN is not leftmost</quote>
|
|
or <quote>left link/right link pair in index XXXX not in
|
|
agreement</quote>. They appeared
|
|
if <application>amcheck</application> ran after an unfinished btree
|
|
index page deletion and before <command>VACUUM</command> had cleaned
|
|
things up.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Dean Rasheed <dean.a.rasheed@gmail.com>
|
|
Branch: master [849172ff4] 2023-10-29 11:14:37 +0000
|
|
Branch: REL_16_STABLE [ab73a37e9] 2023-10-29 11:14:36 +0000
|
|
Branch: REL_15_STABLE [5f0691839] 2023-10-29 11:14:35 +0000
|
|
Branch: REL_14_STABLE [162b38a06] 2023-10-29 11:14:34 +0000
|
|
Branch: REL_13_STABLE [35e6a5c20] 2023-10-29 11:14:34 +0000
|
|
Branch: REL_12_STABLE [f7cd7b265] 2023-10-29 11:14:33 +0000
|
|
Branch: REL_11_STABLE [c804ffb56] 2023-10-29 11:14:32 +0000
|
|
-->
|
|
<para>
|
|
Fix failure of <filename>contrib/btree_gin</filename> indexes
|
|
on <type>interval</type> columns,
|
|
when an indexscan using the <literal><</literal>
|
|
or <literal><=</literal> operator is performed (Dean Rasheed)
|
|
</para>
|
|
|
|
<para>
|
|
Such an indexscan failed to return all the entries it should.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Thomas Munro <tmunro@postgresql.org>
|
|
Branch: master [76200e5ee] 2023-10-19 05:13:23 +1300
|
|
Branch: REL_16_STABLE [774185056] 2023-10-19 05:14:07 +1300
|
|
Branch: REL_15_STABLE [b60e3ac76] 2023-10-19 05:15:38 +1300
|
|
Branch: REL_14_STABLE [0a8b7d5c1] 2023-10-19 05:16:00 +1300
|
|
Branch: REL_13_STABLE [53c4dabe1] 2023-10-19 05:16:24 +1300
|
|
Branch: REL_12_STABLE [7da915e33] 2023-10-19 05:17:27 +1300
|
|
Author: Thomas Munro <tmunro@postgresql.org>
|
|
Branch: master [37d5babb5] 2023-10-18 22:47:23 +1300
|
|
Branch: REL_16_STABLE [74d19ec09] 2023-10-18 22:53:56 +1300
|
|
Branch: REL_15_STABLE [eed1feb3f] 2023-10-18 22:59:46 +1300
|
|
Branch: REL_14_STABLE [82d9a782a] 2023-10-18 23:04:09 +1300
|
|
Branch: REL_13_STABLE [f28956b23] 2023-10-18 23:16:48 +1300
|
|
Branch: REL_12_STABLE [15ddc9725] 2023-10-18 23:18:16 +1300
|
|
Author: Thomas Munro <tmunro@postgresql.org>
|
|
Branch: master [f90b4a846] 2023-10-19 03:01:55 +1300
|
|
Branch: REL_16_STABLE [60596f148] 2023-10-19 03:07:18 +1300
|
|
Branch: REL_15_STABLE [b2e097788] 2023-10-19 03:03:27 +1300
|
|
Branch: REL_14_STABLE [ee3e4c41f] 2023-10-19 03:03:46 +1300
|
|
Branch: REL_13_STABLE [981292c19] 2023-10-19 03:04:00 +1300
|
|
Branch: REL_12_STABLE [d701f0d1f] 2023-10-19 03:04:09 +1300
|
|
Author: Thomas Munro <tmunro@postgresql.org>
|
|
Branch: REL_13_STABLE [7c070e224] 2023-10-24 11:23:08 +1300
|
|
Branch: REL_12_STABLE [9ad986276] 2023-10-24 11:23:21 +1300
|
|
-->
|
|
<para>
|
|
Add support for LLVM 16 and 17 (Thomas Munro, Dmitry Dolgov)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
Branch: master [06843df4a] 2023-09-29 14:07:30 -0400
|
|
Branch: REL_16_STABLE [75c562653] 2023-09-29 14:07:30 -0400
|
|
Branch: REL_15_STABLE [be3398ea1] 2023-09-29 14:07:30 -0400
|
|
Branch: REL_14_STABLE [e9d1560d3] 2023-09-29 14:07:30 -0400
|
|
Branch: REL_13_STABLE [1b64e374c] 2023-09-29 14:07:30 -0400
|
|
Branch: REL_12_STABLE [d8ceb98e4] 2023-09-29 14:07:30 -0400
|
|
Branch: REL_11_STABLE [4d10fda52] 2023-09-29 14:07:30 -0400
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
Branch: master [3aa021b29] 2023-09-26 21:06:21 -0400
|
|
Branch: REL_16_STABLE [e73d6a0df] 2023-09-26 21:06:21 -0400
|
|
Branch: REL_15_STABLE [78f17fb97] 2023-09-26 21:06:21 -0400
|
|
Branch: REL_14_STABLE [5d60e8ed3] 2023-09-26 21:06:21 -0400
|
|
Branch: REL_13_STABLE [53cc19bfa] 2023-09-26 21:06:21 -0400
|
|
Branch: REL_12_STABLE [abe423712] 2023-09-26 21:06:21 -0400
|
|
Branch: REL_11_STABLE [0e0de20c8] 2023-09-26 21:06:21 -0400
|
|
-->
|
|
<para>
|
|
Suppress assorted build-time warnings on
|
|
recent <productname>macOS</productname> (Tom Lane)
|
|
</para>
|
|
|
|
<para>
|
|
<productname>Xcode 15</productname> (released
|
|
with <productname>macOS Sonoma</productname>) changed the linker's
|
|
behavior in a way that causes many duplicate-library warnings while
|
|
building <productname>PostgreSQL</productname>. These were
|
|
harmless, but they're annoying so avoid citing the same libraries
|
|
twice. Also remove use of the <option>-multiply_defined
|
|
suppress</option> linker switch, which apparently has been a no-op
|
|
for a long time, and is now actively complained of.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Michael Paquier <michael@paquier.xyz>
|
|
Branch: master [6fc3a138b] 2023-09-27 14:40:23 +0900
|
|
Branch: REL_16_STABLE [641db601b] 2023-09-27 14:41:15 +0900
|
|
Branch: REL_15_STABLE [8a9e4e84e] 2023-09-27 14:41:21 +0900
|
|
Branch: REL_14_STABLE [e4d7ad30f] 2023-09-27 14:41:23 +0900
|
|
Branch: REL_13_STABLE [a64b8b035] 2023-09-27 14:41:26 +0900
|
|
-->
|
|
<para>
|
|
When building <filename>contrib/unaccent</filename>'s rules file,
|
|
fall back to using <literal>python</literal>
|
|
if <literal>--with-python</literal> was not given and make
|
|
variable <literal>PYTHON</literal> was not set (Japin Li)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
Branch: master [5fd3e06f6] 2023-10-28 11:54:40 -0400
|
|
Branch: REL_16_STABLE [d1537afe3] 2023-10-28 11:54:51 -0400
|
|
Branch: REL_15_STABLE [85b98a70b] 2023-10-28 11:54:59 -0400
|
|
Branch: REL_14_STABLE [877e7b4b9] 2023-10-28 11:55:06 -0400
|
|
Branch: REL_13_STABLE [d94612873] 2023-10-28 11:55:14 -0400
|
|
Branch: REL_12_STABLE [7180bb827] 2023-10-28 11:55:22 -0400
|
|
Branch: REL_11_STABLE [64fc5e005] 2023-10-28 11:55:30 -0400
|
|
-->
|
|
<para>
|
|
Remove <literal>PHOT</literal> (Phoenix Islands Time) from the
|
|
default timezone abbreviations list (Tom Lane)
|
|
</para>
|
|
|
|
<para>
|
|
Presence of this abbreviation in the default list can cause failures
|
|
on recent Debian and Ubuntu releases, as they no longer install the
|
|
underlying tzdb entry by default. Since this is a made-up
|
|
abbreviation for a zone with a total human population of about two
|
|
dozen, it seems unlikely that anyone will miss it. If someone does,
|
|
they can put it back via a custom abbreviations file.
|
|
</para>
|
|
</listitem>
|
|
|
|
</itemizedlist>
|
|
|
|
</sect2>
|
|
</sect1>
|
|
|
|
<sect1 id="release-16">
|
|
<title>Release 16</title>
|
|
|
|
<formalpara>
|
|
<title>Release date:</title>
|
|
<para>2023-09-14</para>
|
|
</formalpara>
|
|
|
|
<sect2 id="release-16-highlights">
|
|
<title>Overview</title>
|
|
|
|
<para>
|
|
<productname>PostgreSQL</productname> 16 contains many new features
|
|
and enhancements, including:
|
|
</para>
|
|
|
|
<itemizedlist>
|
|
|
|
<listitem>
|
|
<para>
|
|
Allow parallelization of <literal>FULL</literal> and internal right <literal>OUTER</literal> hash joins
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Allow logical replication from standby servers
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Allow logical replication subscribers to apply large transactions in parallel
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Allow monitoring of <acronym>I/O</acronym> statistics using the new <structname>pg_stat_io</structname> view
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Add <acronym>SQL/JSON</acronym> constructors and identity functions
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Improve performance of vacuum freezing
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Add support for regular expression matching of user and database names in <filename>pg_hba.conf</filename>, and user names in <filename>pg_ident.conf</filename>
|
|
</para>
|
|
</listitem>
|
|
|
|
</itemizedlist>
|
|
|
|
<para>
|
|
The above items and other new features of
|
|
<productname>PostgreSQL</productname> 16 are explained in more detail
|
|
in the sections below.
|
|
</para>
|
|
|
|
</sect2>
|
|
|
|
<sect2 id="release-16-migration">
|
|
|
|
<title>Migration to Version 16</title>
|
|
|
|
<para>
|
|
A dump/restore using <xref linkend="app-pg-dumpall"/> or use of
|
|
<xref linkend="pgupgrade"/> or logical replication is required for
|
|
those wishing to migrate data from any previous release. See <xref
|
|
linkend="upgrading"/> for general information on migrating to new
|
|
major releases.
|
|
</para>
|
|
|
|
<para>
|
|
Version 16 contains a number of changes that may affect compatibility
|
|
with previous releases. Observe the following incompatibilities:
|
|
</para>
|
|
|
|
<itemizedlist>
|
|
|
|
<!--
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
2023-01-01 [d747dc85a] In plpgsql, don't preassign portal names to bound cursor
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Change assignment rules for <link
|
|
linkend="plpgsql-open-bound-cursor"><application>PL/pgSQL</application></link>
|
|
bound cursor variables (Tom Lane)
|
|
</para>
|
|
|
|
<para>
|
|
Previously, the string value of such variables
|
|
was set to match the variable name during cursor
|
|
assignment; now it will be assigned during <link
|
|
linkend="plpgsql-cursor-opening"><command>OPEN</command></link>,
|
|
and will not match the variable name. To restore the previous
|
|
behavior, assign the desired portal name to the cursor variable
|
|
before <command>OPEN</command>.
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Daniel Gustafsson <dgustafsson@postgresql.org>
|
|
2023-02-24 [d95952325] Disallow NULLS NOT DISTINCT indexes for primary keys
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Disallow <link linkend="sql-createindex"><literal>NULLS NOT
|
|
DISTINCT</literal></link> indexes for primary keys (Daniel
|
|
Gustafsson)
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Michael Paquier <michael@paquier.xyz>
|
|
2022-07-19 [2cbc3c17a] Rework logic and simplify syntax of REINDEX DATABASE/SYS
|
|
Author: Michael Paquier <michael@paquier.xyz>
|
|
2022-07-26 [0a5f06b84] Fix a few issues with REINDEX grammar
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Change <link linkend="sql-reindex"><command>REINDEX
|
|
DATABASE</command></link> and <link
|
|
linkend="app-reindexdb"><application>reindexdb</application></link>
|
|
to not process indexes on system catalogs (Simon Riggs)
|
|
</para>
|
|
|
|
<para>
|
|
Processing such indexes is still possible using <command>REINDEX
|
|
SYSTEM</command> and <link linkend="app-reindexdb"><command>reindexdb
|
|
--system</command></link>.
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
2023-01-11 [8bf6ec3ba] Improve handling of inherited GENERATED expressions.
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Tighten <link
|
|
linkend="ddl-generated-columns"><literal>GENERATED</literal></link>
|
|
expression restrictions on inherited and partitioned tables (Amit
|
|
Langote, Tom Lane)
|
|
</para>
|
|
|
|
<para>
|
|
Columns of parent/partitioned and child/partition tables must all
|
|
have the same generation status, though now the actual generation
|
|
expressions can be different.
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Michael Paquier <michael@paquier.xyz>
|
|
2023-03-14 [5c1b66280] Rework design of functions in pg_walinspect
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Remove <link
|
|
linkend="pgwalinspect"><application>pg_walinspect</application></link>
|
|
functions
|
|
<function>pg_get_wal_records_info_till_end_of_wal()</function>
|
|
and <function>pg_get_wal_stats_till_end_of_wal()</function>
|
|
(Bharath Rupireddy)
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: David Rowley <drowley@postgresql.org>
|
|
2023-02-15 [5352ca22e] Rename force_parallel_mode to debug_parallel_query
|
|
Author: David Rowley <drowley@postgresql.org>
|
|
2023-04-14 [0981846b9] Remove old GUC name mapping for "force_parallel_mode"
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Rename server variable
|
|
<varname>force_parallel_mode</varname> to <link
|
|
linkend="guc-debug-parallel-query"><varname>debug_parallel_query</varname></link>
|
|
(David Rowley)
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
2022-12-02 [b23cd185f] Remove logic for converting a table to a view.
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Remove the ability to <link linkend="sql-createview">create
|
|
views</link> manually with <literal>ON SELECT</literal> rules
|
|
(Tom Lane)
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Andres Freund <andres@anarazel.de>
|
|
2023-04-24 [1118cd37e] Remove vacuum_defer_cleanup_age
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Remove the server variable
|
|
<varname>vacuum_defer_cleanup_age</varname> (Andres Freund)
|
|
</para>
|
|
|
|
<para>
|
|
This has been unnecessary since <link
|
|
linkend="guc-hot-standby-feedback"><varname>hot_standby_feedback</varname></link>
|
|
and <link linkend="streaming-replication-slots">replication
|
|
slots</link> were added.
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Thomas Munro <tmunro@postgresql.org>
|
|
2022-11-29 [cd4329d93] Remove promote_trigger_file.
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Remove server variable <varname>promote_trigger_file</varname>
|
|
(Simon Riggs)
|
|
</para>
|
|
|
|
<para>
|
|
This was used to promote a standby to primary, but is now more easily
|
|
accomplished with <link linkend="app-pg-ctl"><literal>pg_ctl
|
|
promote</literal></link> or <link
|
|
linkend="functions-recovery-control-table"><function>pg_promote()</function></link>.
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Peter Eisentraut <peter@eisentraut.org>
|
|
2023-06-07 [b0f6c4371] Remove read-only server settings lc_collate and lc_ctype
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Remove read-only server variables <varname>lc_collate</varname>
|
|
and <varname>lc_ctype</varname> (Peter Eisentraut)
|
|
</para>
|
|
|
|
<para>
|
|
Collations and locales can vary between databases so having them
|
|
as read-only server variables was unhelpful.
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Robert Haas <rhaas@postgresql.org>
|
|
2022-08-25 [e3ce2de09] Allow grant-level control of role inheritance behavior.
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Role inheritance now controls the default
|
|
inheritance status of member roles added during <link
|
|
linkend="sql-grant"><command>GRANT</command></link> (Robert Haas)
|
|
</para>
|
|
|
|
<para>
|
|
The role's default inheritance behavior can be overridden with the
|
|
new <command>GRANT ... WITH INHERIT</command> clause. This allows
|
|
inheritance of some roles and not others because the members'
|
|
inheritance status is set at <command>GRANT</command> time.
|
|
Previously the inheritance status of member roles was controlled
|
|
only by the role's inheritance status, and changes to a role's
|
|
inheritance status affected all previous and future member roles.
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Robert Haas <rhaas@postgresql.org>
|
|
2023-01-10 [cf5eb37c5] Restrict the privileges of CREATEROLE users.
|
|
Author: Robert Haas <rhaas@postgresql.org>
|
|
2023-01-24 [f1358ca52] Adjust interaction of CREATEROLE with role properties.
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Restrict the privileges of <link
|
|
linkend="sql-createrole"><literal>CREATEROLE</literal></link>
|
|
and its ability to modify other roles (Robert Haas)
|
|
</para>
|
|
|
|
<para>
|
|
Previously roles with <literal>CREATEROLE</literal> privileges could
|
|
change many aspects of any non-superuser role. Such changes,
|
|
including adding members, now require the role requesting
|
|
the change to have <literal>ADMIN OPTION</literal> permission.
|
|
For example, they can now change the <literal>CREATEDB</literal>,
|
|
<literal>REPLICATION</literal>, and <literal>BYPASSRLS</literal>
|
|
properties only if they also have those permissions.
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Peter Eisentraut <peter@eisentraut.org>
|
|
2023-01-26 [37e267335] Don't install postmaster symlink anymore
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Remove symbolic links for the <application>postmaster</application>
|
|
binary (Peter Eisentraut)
|
|
</para>
|
|
</listitem>
|
|
|
|
</itemizedlist>
|
|
|
|
</sect2>
|
|
|
|
<sect2 id="release-16-changes">
|
|
<title>Changes</title>
|
|
|
|
<para>
|
|
Below you will find a detailed account of the changes between
|
|
<productname>PostgreSQL</productname> 16 and the previous major
|
|
release.
|
|
</para>
|
|
|
|
<sect3 id="release-16-server">
|
|
<title>Server</title>
|
|
|
|
<sect4 id="release-16-optimizer">
|
|
<title>Optimizer</title>
|
|
|
|
<itemizedlist>
|
|
|
|
<!--
|
|
Author: David Rowley <drowley@postgresql.org>
|
|
2022-08-02 [b59242209] Relax overly strict rules in select_outer_pathkeys_for_m
|
|
Author: David Rowley <drowley@postgresql.org>
|
|
2023-01-11 [3c6fc5820] Have the planner consider Incremental Sort for DISTINCT
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Allow incremental sorts in more cases, including
|
|
<literal>DISTINCT</literal> (David Rowley)
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: David Rowley <drowley@postgresql.org>
|
|
2022-08-02 [1349d2790] Improve performance of ORDER BY / DISTINCT aggregates
|
|
Author: David Rowley <drowley@postgresql.org>
|
|
2022-12-20 [3226f4728] Add enable_presorted_aggregate GUC
|
|
Author: David Rowley <drowley@postgresql.org>
|
|
2023-01-17 [da5800d5f] Don't presort ORDER BY/DISTINCT Aggrefs with volatile fu
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Add the ability for aggregates having <literal>ORDER BY</literal>
|
|
or <literal>DISTINCT</literal> to use pre-sorted data (David
|
|
Rowley)
|
|
</para>
|
|
|
|
<para>
|
|
The new server variable <link
|
|
linkend="guc-enable-presorted-aggregate"><varname>enable_presorted_aggregate</varname></link>
|
|
can be used to disable this.
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
2023-03-16 [9bfd2822b] Enable use of Memoize atop an Append that came from UNIO
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Allow memoize atop a <literal>UNION ALL</literal> (Richard Guo)
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
2023-04-05 [16dc2703c] Support "Right Anti Join" plan shapes.
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Allow anti-joins to be performed with the non-nullable input as
|
|
the inner relation (Richard Guo)
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Thomas Munro <tmunro@postgresql.org>
|
|
2023-03-31 [11c2d6fdf] Parallel Hash Full Join.
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Allow parallelization of <link
|
|
linkend="queries-join"><literal>FULL</literal></link> and internal
|
|
right <literal>OUTER</literal> hash joins (Melanie Plageman,
|
|
Thomas Munro)
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Alexander Korotkov <akorotkov@postgresql.org>
|
|
2023-01-08 [cd9479af2] Improve GIN cost estimation
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Improve the accuracy of <link
|
|
linkend="gin"><literal>GIN</literal></link> index access optimizer
|
|
costs (Ronan Dunklau)
|
|
</para>
|
|
</listitem>
|
|
|
|
</itemizedlist>
|
|
|
|
</sect4>
|
|
|
|
<sect4 id="release-16-performance">
|
|
<title>General Performance</title>
|
|
|
|
<itemizedlist>
|
|
|
|
<!--
|
|
Author: Andres Freund <andres@anarazel.de>
|
|
2023-04-06 [00d1e02be] hio: Use ExtendBufferedRelBy() to extend tables more eff
|
|
Author: Andres Freund <andres@anarazel.de>
|
|
2023-04-06 [26158b852] Use ExtendBufferedRelTo() in XLogReadBufferExtended()
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Allow more efficient addition of heap and index pages (Andres
|
|
Freund)
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Peter Geoghegan <pg@bowt.ie>
|
|
2022-09-08 [d977ffd92] Instrument freezing in autovacuum log reports.
|
|
Author: Peter Geoghegan <pg@bowt.ie>
|
|
2022-11-15 [9e5405993] Deduplicate freeze plans in freeze WAL records.
|
|
Author: Peter Geoghegan <pg@bowt.ie>
|
|
2022-12-28 [1de58df4f] Add page-level freezing to VACUUM.
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
During non-freeze operations, perform page <link
|
|
linkend="vacuum-for-wraparound">freezing</link> where appropriate
|
|
(Peter Geoghegan)
|
|
</para>
|
|
|
|
<para>
|
|
This makes full-table freeze vacuums less necessary.
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: David Rowley <drowley@postgresql.org>
|
|
2022-12-23 [ed1a88dda] Allow window functions to adjust their frameOptions
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Allow window functions to use the faster <link
|
|
linkend="syntax-window-functions"><literal>ROWS</literal></link>
|
|
mode internally when <literal>RANGE</literal> mode is active but
|
|
unnecessary (David Rowley)
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: David Rowley <drowley@postgresql.org>
|
|
2023-01-27 [456fa635a] Teach planner about more monotonic window functions
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Allow optimization of always-increasing window functions <link
|
|
linkend="functions-window-table"><function>ntile()</function></link>,
|
|
<function>cume_dist()</function> and
|
|
<function>percent_rank()</function> (David Rowley)
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: David Rowley <drowley@postgresql.org>
|
|
2023-01-23 [16fd03e95] Allow parallel aggregate on string_agg and array_agg
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Allow aggregate functions <link
|
|
linkend="functions-aggregate-table"><function>string_agg()</function></link>
|
|
and <function>array_agg()</function> to be parallelized (David
|
|
Rowley)
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: David Rowley <drowley@postgresql.org>
|
|
2022-08-02 [3592e0ff9] Have ExecFindPartition cache the last found partition
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Improve performance by caching <link
|
|
linkend="ddl-partitioning-overview"><literal>RANGE</literal></link>
|
|
and <literal>LIST</literal> partition lookups (Amit Langote,
|
|
Hou Zhijie, David Rowley)
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: David Rowley <drowley@postgresql.org>
|
|
2023-04-07 [1cbbee033] Add VACUUM/ANALYZE BUFFER_USAGE_LIMIT option
|
|
Author: David Rowley <drowley@postgresql.org>
|
|
2023-04-07 [ae78cae3b] Add - -buffer-usage-limit option to vacuumdb
|
|
Author: Masahiko Sawada <msawada@postgresql.org>
|
|
2023-04-28 [b72f564d8] Add unit to vacuum_buffer_usage_limit value in postgresq
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Allow control of the shared buffer usage by vacuum and analyze
|
|
(Melanie Plageman)
|
|
</para>
|
|
|
|
<para>
|
|
The <link
|
|
linkend="sql-vacuum"><command>VACUUM</command></link>/<link
|
|
linkend="sql-analyze"><command>ANALYZE</command></link>
|
|
option is <literal>BUFFER_USAGE_LIMIT</literal>, and the <link
|
|
linkend="app-vacuumdb"><application>vacuumdb</application></link>
|
|
option is <option>--buffer-usage-limit</option>.
|
|
The default value is set by server variable <link
|
|
linkend="guc-vacuum-buffer-usage-limit"><varname>vacuum_buffer_usage_limit</varname></link>,
|
|
which also controls autovacuum.
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Thomas Munro <tmunro@postgresql.org>
|
|
2022-07-20 [9430fb407] Add wal_sync_method=fdatasync for Windows.
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Support <link
|
|
linkend="guc-wal-sync-method"><literal>wal_sync_method=fdatasync</literal></link>
|
|
on <systemitem class="osname">Windows</systemitem> (Thomas Munro)
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Tomas Vondra <tomas.vondra@postgresql.org>
|
|
2023-03-20 [19d8e2308] Ignore BRIN indexes when checking for HOT updates
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Allow <link linkend="storage-hot"><acronym>HOT</acronym></link>
|
|
updates if only <literal>BRIN</literal>-indexed columns are updated
|
|
(Matthias van de Meent, Josef Simanek, Tomas Vondra)
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: David Rowley <drowley@postgresql.org>
|
|
2023-02-20 [2cb82e2ac] Speedup and increase usability of set proc title functio
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Improve the speed of updating the <link
|
|
linkend="guc-update-process-title">process title</link> (David
|
|
Rowley)
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: John Naylor <john.naylor@postgresql.org>
|
|
2022-08-11 [37a6e5df3] Optimize xid/subxid searches in XidInMVCCSnapshot().
|
|
Author: John Naylor <john.naylor@postgresql.org>
|
|
2022-08-26 [121d2d3d7] Use SSE2 in is_valid_ascii() where available.
|
|
Author: John Naylor <john.naylor@postgresql.org>
|
|
2022-08-10 [b6ef16756] Introduce optimized routine for linear searches of array
|
|
Author: John Naylor <john.naylor@postgresql.org>
|
|
2022-08-26 [e813e0e16] Add optimized functions for linear search within byte ar
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Allow <type>xid</type>/<type>subxid</type> searches and
|
|
<acronym>ASCII</acronym> string detection to use vector operations
|
|
(Nathan Bossart, John Naylor)
|
|
</para>
|
|
|
|
<para>
|
|
<acronym>ASCII</acronym> detection is particularly useful for
|
|
<link linkend="sql-copy"><command>COPY FROM</command></link>.
|
|
Vector operations are also used for some C array searches.
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: David Rowley <drowley@postgresql.org>
|
|
2022-08-29 [c6e0fe1f2] Improve performance of and reduce overheads of memory ma
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Reduce overhead of memory allocations (Andres Freund, David Rowley)
|
|
</para>
|
|
</listitem>
|
|
|
|
</itemizedlist>
|
|
|
|
</sect4>
|
|
|
|
<sect4 id="release-16-monitoring">
|
|
<title>Monitoring</title>
|
|
|
|
<itemizedlist>
|
|
|
|
<!--
|
|
Author: Andres Freund <andres@anarazel.de>
|
|
2023-02-11 [a9c70b46d] Add pg_stat_io view, providing more detailed IO statisti
|
|
Author: Andres Freund <andres@anarazel.de>
|
|
2023-03-30 [8aaa04b32] Track shared buffer hits in pg_stat_io
|
|
Author: Andres Freund <andres@anarazel.de>
|
|
2023-04-07 [ac8d53dae] Track IO times in pg_stat_io
|
|
Author: Michael Paquier <michael@paquier.xyz>
|
|
2023-04-21 [0ecb87e1f] Remove io prefix from pg_stat_io columns
|
|
Author: Andres Freund <andres@anarazel.de>
|
|
2023-05-17 [093e5c57d] Add writeback to pg_stat_io
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Add system view <link
|
|
linkend="monitoring-pg-stat-io-view"><structname>pg_stat_io</structname></link>
|
|
view to track <acronym>I/O</acronym> statistics (Melanie Plageman)
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Andres Freund <andres@anarazel.de>
|
|
2022-10-14 [c03747183] pgstat: Track time of the last scan of a relation
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Record statistics on the last sequential and index scans on tables
|
|
(Dave Page)
|
|
</para>
|
|
|
|
<para>
|
|
This information appears in <link
|
|
linkend="pg-stat-all-tables-view"><structname>pg_stat_*_tables</structname></link>
|
|
and <link
|
|
linkend="monitoring-pg-stat-all-indexes-view"><structname>pg_stat_*_indexes</structname></link>.
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Peter Geoghegan <pg@bowt.ie>
|
|
2023-03-23 [ae4fdde13] Count updates that move row to a new page.
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Record statistics on the occurrence of updated rows moving to
|
|
new pages (Corey Huinker)
|
|
</para>
|
|
|
|
<para>
|
|
The <literal>pg_stat_*_tables</literal> column is <link
|
|
linkend="monitoring-pg-stat-all-tables-view"><structfield>n_tup_newpage_upd</structfield></link>.
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Amit Kapila <akapila@postgresql.org>
|
|
2023-01-10 [f74573969] Fix the display of lock information for specktoken.
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Add speculative lock information to the <link
|
|
linkend="view-pg-locks"><structname>pg_locks</structname></link>
|
|
system view (Masahiko Sawada, Noriyoshi Shinoda)
|
|
</para>
|
|
|
|
<para>
|
|
The transaction id is displayed in the
|
|
<structfield>transactionid</structfield> column and
|
|
the speculative insertion token is displayed in the
|
|
<structfield>objid</structfield> column.
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Peter Eisentraut <peter@eisentraut.org>
|
|
2022-07-05 [84ad713cf] Add result_types column to pg_prepared_statements view
|
|
Author: Peter Eisentraut <peter@eisentraut.org>
|
|
2022-07-05 [6ffff0fd2] Fix pg_prepared_statements.result_types for DML statemen
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Add the display of prepared statement result types to the <link
|
|
linkend="view-pg-prepared-statements"><structname>pg_prepared_statements</structname></link>
|
|
view (Dagfinn Ilmari Mannsåker)
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Andres Freund <andres@anarazel.de>
|
|
2022-10-06 [e0b014295] Create subscription stats entry at CREATE SUBSCRIPTION t
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Create subscription statistics
|
|
entries at subscription creation time so <link
|
|
linkend="pg-stat-database-view"><structfield>stats_reset</structfield></link>
|
|
is accurate (Andres Freund)
|
|
</para>
|
|
|
|
<para>
|
|
Previously entries were created only when the first statistics
|
|
were reported.
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Andres Freund <andres@anarazel.de>
|
|
2023-04-07 [704261ecc] Improve IO accounting for temp relation writes
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Correct the <acronym>I/O</acronym>
|
|
accounting for temp relation writes shown in <link
|
|
linkend="pg-stat-database-view"><structname>pg_stat_database</structname></link>
|
|
(Melanie Plageman)
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Robert Haas <rhaas@postgresql.org>
|
|
2022-12-19 [10ea0f924] Expose some information about backend subxact status.
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Add function <link
|
|
linkend="monitoring-stats-backend-funcs-table"><function>pg_stat_get_backend_subxact()</function></link>
|
|
to report on a session's subtransaction cache (Dilip Kumar)
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
2022-09-29 [d7e39d72c] Use actual backend IDs in pg_stat_get_backend_idset() an
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Have <link
|
|
linkend="monitoring-stats-backend-funcs-table"><function>pg_stat_get_backend_idset()</function></link>,
|
|
<function>pg_stat_get_backend_activity()</function>, and related
|
|
functions use the unchanging backend id (Nathan Bossart)
|
|
</para>
|
|
|
|
<para>
|
|
Previously the index values might change during the lifetime of
|
|
the session.
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Andres Freund <andres@anarazel.de>
|
|
2022-08-22 [0c679464a] Add BackendType for standalone backends
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Report stand-alone backends with a special backend type (Melanie
|
|
Plageman)
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Andres Freund <andres@anarazel.de>
|
|
2022-11-21 [92daeca45] Add wait event for pg_usleep() in perform_spin_delay()
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Add wait event <link
|
|
linkend="wait-event-timeout-table"><literal>SpinDelay</literal></link>
|
|
to report spinlock sleep delays (Andres Freund)
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Thomas Munro <tmunro@postgresql.org>
|
|
2022-07-14 [7bae3bbf6] Create a distinct wait event for POSIX DSM allocation.
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Create new wait event <link
|
|
linkend="wait-event-io-table"><literal>DSMAllocate</literal></link>
|
|
to indicate waiting for dynamic shared memory allocation (Thomas
|
|
Munro)
|
|
</para>
|
|
|
|
<para>
|
|
Previously this type of wait was reported as
|
|
<literal>DSMFillZeroWrite</literal>, which was also used by
|
|
<function>mmap()</function> allocations.
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Michael Paquier <michael@paquier.xyz>
|
|
2022-11-24 [af205152e] Add the database name to the ps display of logical WAL s
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Add the database name to the <link
|
|
linkend="guc-update-process-title">process title</link> of logical
|
|
<acronym>WAL</acronym> senders (Tatsuhiro Nakamori)
|
|
</para>
|
|
|
|
<para>
|
|
Physical <acronym>WAL</acronym> senders do not display a database
|
|
name.
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Fujii Masao <fujii@postgresql.org>
|
|
2022-07-07 [62c46eee2] Add checkpoint and REDO LSN to log_checkpoints message.
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Add checkpoint and <literal>REDO LSN</literal> information to <link
|
|
linkend="guc-log-checkpoints"><varname>log_checkpoints</varname></link>
|
|
messages (Bharath Rupireddy, Kyotaro Horiguchi)
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Peter Eisentraut <peter@eisentraut.org>
|
|
2022-07-15 [3a0e38504] Log details for client certificate failures
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Provide additional details during client certificate failures
|
|
(Jacob Champion)
|
|
</para>
|
|
</listitem>
|
|
|
|
</itemizedlist>
|
|
|
|
</sect4>
|
|
|
|
<sect4 id="release-16-privileges">
|
|
<title>Privileges</title>
|
|
|
|
<itemizedlist>
|
|
|
|
<!--
|
|
Author: Robert Haas <rhaas@postgresql.org>
|
|
2023-03-30 [c3afe8cf5] Add new predefined role pg_create_subscription.
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Add predefined role <link
|
|
linkend="predefined-roles"><literal>pg_create_subscription</literal></link>
|
|
with permission to create subscriptions (Robert Haas)
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Robert Haas <rhaas@postgresql.org>
|
|
2023-03-30 [c3afe8cf5] Add new predefined role pg_create_subscription.
|
|
Author: Amit Kapila <akapila@postgresql.org>
|
|
2023-04-20 [c1cc4e688] Restart the apply worker if the 'password_required' opti
|
|
Author: Amit Kapila <akapila@postgresql.org>
|
|
2023-04-24 [19e65dff3] Display 'password_required' option for \dRs+ command.
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Allow subscriptions to not require passwords (Robert Haas)
|
|
</para>
|
|
|
|
<para>
|
|
This is accomplished with the option <link
|
|
linkend="sql-createsubscription"><literal>password_required=false</literal></link>.
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Jeff Davis <jdavis@postgresql.org>
|
|
2023-01-13 [c44f6334c] Simplify permissions for LOCK TABLE.
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Simplify permissions for <link linkend="sql-lock"><command>LOCK
|
|
TABLE</command></link> (Jeff Davis)
|
|
</para>
|
|
|
|
<para>
|
|
Previously a user's ability to perform <command>LOCK
|
|
TABLE</command> at various lock levels was limited to the
|
|
lock levels required by the commands they had permission
|
|
to execute on the table. For example, someone with <link
|
|
linkend="sql-update"><command>UPDATE</command></link>
|
|
permission could perform all lock levels except <literal>ACCESS
|
|
SHARE</literal>, even though it was a lesser lock level. Now users
|
|
can issue lesser lock levels if they already have permission for
|
|
greater lock levels.
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Robert Haas <rhaas@postgresql.org>
|
|
2022-08-22 [ce6b672e4] Make role grant system more consistent with other privil
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Allow <link linkend="sql-altergroup"><literal>ALTER GROUP group_name
|
|
ADD USER user_name</literal></link> to be performed with <literal>ADMIN
|
|
OPTION</literal> (Robert Haas)
|
|
</para>
|
|
|
|
<para>
|
|
Previously <literal>CREATEROLE</literal> permission was required.
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Robert Haas <rhaas@postgresql.org>
|
|
2022-08-25 [e3ce2de09] Allow grant-level control of role inheritance behavior.
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Allow <link linkend="sql-grant"><command>GRANT</command></link>
|
|
to use <literal>WITH ADMIN TRUE</literal>/<literal>FALSE</literal>
|
|
syntax (Robert Haas)
|
|
</para>
|
|
|
|
<para>
|
|
Previously only the <literal>WITH ADMIN OPTION</literal> syntax
|
|
was supported.
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Robert Haas <rhaas@postgresql.org>
|
|
2023-01-10 [e5b8a4c09] Add new GUC createrole_self_grant.
|
|
Author: Daniel Gustafsson <dgustafsson@postgresql.org>
|
|
2023-02-22 [e00bc6c92] doc: Add default value of createrole_self_grant
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Allow roles that create other roles to automatically
|
|
inherit the new role's rights or the ability to <link
|
|
linkend="sql-set-role"><command>SET ROLE</command></link> to the
|
|
new role (Robert Haas, Shi Yu)
|
|
</para>
|
|
|
|
<para>
|
|
This is controlled by server variable <link
|
|
linkend="guc-createrole-self-grant"><varname>createrole_self_grant</varname></link>.
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Robert Haas <rhaas@postgresql.org>
|
|
2022-09-19 [48a257d44] Make ALTER DEFAULT PRIVILEGES require privileges, not me
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Prevent users from changing the default privileges of non-inherited
|
|
roles (Robert Haas)
|
|
</para>
|
|
|
|
<para>
|
|
This is now only allowed for inherited roles.
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Robert Haas <rhaas@postgresql.org>
|
|
2022-08-22 [ce6b672e4] Make role grant system more consistent with other privil
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
When granting role membership, require the granted-by role to be
|
|
a role that has appropriate permissions (Robert Haas)
|
|
</para>
|
|
|
|
<para>
|
|
This is a requirement even when a non-bootstrap superuser is
|
|
granting role membership.
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Robert Haas <rhaas@postgresql.org>
|
|
2022-08-22 [ce6b672e4] Make role grant system more consistent with other privil
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Allow non-superusers to grant permissions using a granted-by user
|
|
that is not the current user (Robert Haas)
|
|
</para>
|
|
|
|
<para>
|
|
The current user still must have sufficient permissions given by
|
|
the specified granted-by user.
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Robert Haas <rhaas@postgresql.org>
|
|
2022-11-18 [3d14e171e] Add a SET option to the GRANT command.
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Add <link linkend="sql-grant"><command>GRANT</command></link> to
|
|
control permission to use <link linkend="sql-set-role"><command>SET
|
|
ROLE</command></link> (Robert Haas)
|
|
</para>
|
|
|
|
<para>
|
|
This is controlled by a new <literal>GRANT ... SET</literal>
|
|
option.
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Robert Haas <rhaas@postgresql.org>
|
|
2022-08-22 [ce6b672e4] Make role grant system more consistent with other privil
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Add dependency tracking to roles which have granted privileges
|
|
(Robert Haas)
|
|
</para>
|
|
|
|
<para>
|
|
For example, removing <literal>ADMIN OPTION</literal> will fail if
|
|
there are privileges using that option; <literal>CASCADE</literal>
|
|
must be used to revoke dependent permissions.
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Robert Haas <rhaas@postgresql.org>
|
|
2022-08-18 [6566133c5] Ensure that pg_auth_members.grantor is always valid.
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Add dependency tracking of grantors for <link
|
|
linkend="sql-grant"><command>GRANT</command></link> records
|
|
(Robert Haas)
|
|
</para>
|
|
|
|
<para>
|
|
This guarantees that <link
|
|
linkend="catalog-pg-auth-members"><structname>pg_auth_members</structname></link>.<structfield>grantor</structfield>
|
|
values are always valid.
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Robert Haas <rhaas@postgresql.org>
|
|
2022-08-22 [ce6b672e4] Make role grant system more consistent with other privil
|
|
Author: Robert Haas <rhaas@postgresql.org>
|
|
2022-08-31 [0101f770a] Fix a bug in roles_is_member_of.
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Allow multiple role membership records (Robert Haas)
|
|
</para>
|
|
|
|
<para>
|
|
Previously a new membership grant would remove a previous matching
|
|
membership grant, even if other aspects of the grant did not match.
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Robert Haas <rhaas@postgresql.org>
|
|
2022-07-26 [e530be2c5] Do not allow removal of superuser privileges from bootst
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Prevent removal of superuser privileges for the bootstrap user
|
|
(Robert Haas)
|
|
</para>
|
|
|
|
<para>
|
|
Restoring such users could lead to errors.
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
2022-07-03 [b762bbde3] Allow makeaclitem() to accept multiple privilege names.
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Allow <link
|
|
linkend="functions-aclitem-fn-table"><function>makeaclitem()</function></link>
|
|
to accept multiple privilege names (Robins Tharakan)
|
|
</para>
|
|
|
|
<para>
|
|
Previously only a single privilege name, like <link
|
|
linkend="sql-select"><command>SELECT</command></link>, was
|
|
accepted.
|
|
</para>
|
|
</listitem>
|
|
|
|
</itemizedlist>
|
|
|
|
</sect4>
|
|
|
|
<sect4 id="release-16-server-config">
|
|
<title>Server Configuration</title>
|
|
|
|
<itemizedlist>
|
|
|
|
<!--
|
|
Author: Stephen Frost <sfrost@snowman.net>
|
|
2023-04-13 [6633cfb21] De-Revert "Add support for Kerberos credential delegatio
|
|
Author: Bruce Momjian <bruce@momjian.us>
|
|
2023-05-20 [9c0a0e2ed] rename "gss_accept_deleg" to "gss_accept_delegation".
|
|
Author: Nathan Bossart <nathan@postgresql.org>
|
|
2023-05-20 [f4001a553] Fix remaining references to gss_accept_deleg.
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
2023-05-21 [a2eb99a01] Expand some more uses of "deleg" to "delegation" or "del
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Add support for <productname>Kerberos</productname> credential
|
|
delegation (Stephen Frost)
|
|
</para>
|
|
|
|
<para>
|
|
This is enabled with server variable <link
|
|
linkend="guc-gss-accept-delegation"><varname>gss_accept_delegation</varname></link>
|
|
and <application>libpq</application> connection parameter <link
|
|
linkend="libpq-connect-gssdelegation"><literal>gssdelegation</literal></link>.
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Daniel Gustafsson <dgustafsson@postgresql.org>
|
|
2023-03-27 [b57774300] Make SCRAM iteration count configurable
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Allow the <acronym>SCRAM</acronym> iteration
|
|
count to be set with server variable <link
|
|
linkend="guc-scram-iterations"><varname>scram_iterations</varname></link>
|
|
(Daniel Gustafsson)
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
2022-10-14 [3057465ac] Replace the sorted array of GUC variables with a hash ta
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
2022-10-14 [f13b2088f] Add auxiliary lists to GUC data structures for better pe
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Improve performance of server variable management (Tom Lane)
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
2022-09-27 [385366426] Introduce GUC_NO_RESET flag.
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Tighten restrictions on which server variables can be reset
|
|
(Masahiko Sawada)
|
|
</para>
|
|
|
|
<para>
|
|
Previously, while certain variables, like <link
|
|
linkend="guc-default-transaction-isolation"><varname>transaction_isolation</varname></link>,
|
|
were not affected by <link linkend="sql-reset"><command>RESET
|
|
ALL</command></link>, they could be individually reset in
|
|
inappropriate situations.
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Michael Paquier <michael@paquier.xyz>
|
|
2022-08-09 [0b039e3a8] Fix some inconsistencies with GUC categories
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Move various <link
|
|
linkend="config-setting-configuration-file"><filename>postgresql.conf</filename></link>
|
|
items into new categories (Shinya Kato)
|
|
</para>
|
|
|
|
<para>
|
|
This also affects the categories displayed in the <link
|
|
linkend="view-pg-settings"><structname>pg_settings</structname></link>
|
|
view.
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Michael Paquier <michael@paquier.xyz>
|
|
2022-11-25 [d13b68411] Introduce variables for initial and max nesting depth on
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Prevent configuration file recursion beyond 10 levels (Julien
|
|
Rouhaud)
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Daniel Gustafsson <dgustafsson@postgresql.org>
|
|
2023-04-07 [7d71d3dd0] Refresh cost-based delay params more frequently in autov
|
|
Author: Daniel Gustafsson <dgustafsson@postgresql.org>
|
|
2023-04-20 [a9781ae11] Fix autovacuum cost debug logging
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Allow <link linkend="autovacuum">autovacuum</link> to more
|
|
frequently honor changes to delay settings (Melanie Plageman)
|
|
</para>
|
|
|
|
<para>
|
|
Rather than honor changes only at the start of each relation,
|
|
honor them at the start of each block.
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Fujii Masao <fujii@postgresql.org>
|
|
2022-07-26 [756e221db] Reduce overhead of renaming archive status files.
|
|
Author: Fujii Masao <fujii@postgresql.org>
|
|
2022-07-26 [3cabe45a8] doc: Add note about re-archiving of same WAL files in do
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Remove restrictions that archive files be durably renamed
|
|
(Nathan Bossart)
|
|
</para>
|
|
|
|
<para>
|
|
The <link
|
|
linkend="guc-archive-command"><varname>archive_command</varname></link>
|
|
command is now more likely to be called with already-archived
|
|
files after a crash.
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Peter Eisentraut <peter@eisentraut.org>
|
|
2022-11-15 [d627ce3b7] Disallow setting archive_library and archive_command at
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Prevent <link
|
|
linkend="guc-archive-library"><varname>archive_library</varname></link>
|
|
and <link
|
|
linkend="guc-archive-command"><varname>archive_command</varname></link>
|
|
from being set at the same time (Nathan Bossart)
|
|
</para>
|
|
|
|
<para>
|
|
Previously <varname>archive_library</varname> would override
|
|
<varname>archive_command</varname>.
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
2022-11-21 [51b5834cd] Provide options for postmaster to kill child processes w
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Allow the postmaster to terminate children with an abort signal
|
|
(Tom Lane)
|
|
</para>
|
|
|
|
<para>
|
|
This allows collection of a core dump for a
|
|
stuck child process. This is controlled by <link
|
|
linkend="guc-send-abort-for-crash"><varname>send_abort_for_crash</varname></link>
|
|
and <link
|
|
linkend="guc-send-abort-for-kill"><varname>send_abort_for_kill</varname></link>.
|
|
The postmaster's <option>-T</option> switch is now the same as
|
|
setting <varname>send_abort_for_crash</varname>.
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
2022-11-21 [51b5834cd] Provide options for postmaster to kill child processes w
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Remove the non-functional postmaster <option>-n</option> option
|
|
(Tom Lane)
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Robert Haas <rhaas@postgresql.org>
|
|
2023-01-20 [6e2775e4d] Add new GUC reserved_connections.
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Allow the server to reserve backend slots for roles with <link
|
|
linkend="predefined-roles"><literal>pg_use_reserved_connections</literal></link>
|
|
membership (Nathan Bossart)
|
|
</para>
|
|
|
|
<para>
|
|
The number of reserved slots is set by server variable <link
|
|
linkend="guc-reserved-connections"><varname>reserved_connections</varname></link>.
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Michael Paquier <michael@paquier.xyz>
|
|
2022-09-17 [fdd8937c0] Fix huge_pages on Windows
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Allow <link linkend="guc-huge-pages">huge pages</link> to
|
|
work on newer versions of <systemitem class="osname">Windows
|
|
10</systemitem> (Thomas Munro)
|
|
</para>
|
|
|
|
<para>
|
|
This adds the special handling required to enable huge pages
|
|
on newer versions of <systemitem class="osname">Windows
|
|
10</systemitem>.
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Thomas Munro <tmunro@postgresql.org>
|
|
2023-04-08 [d4e71df6d] Add io_direct setting (developer-only).
|
|
Author: Thomas Munro <tmunro@postgresql.org>
|
|
2023-05-15 [319bae9a8] Rename io_direct to debug_io_direct.
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Add <link
|
|
linkend="guc-debug-io-direct"><varname>debug_io_direct</varname></link>
|
|
setting for developer usage (Thomas Munro, Andres Freund,
|
|
Bharath Rupireddy)
|
|
</para>
|
|
|
|
<para>
|
|
While primarily for developers, <link
|
|
linkend="guc-wal-sync-method"><literal>wal_sync_method=open_sync</literal></link>/<literal>open_datasync</literal>
|
|
has been modified to not use direct <acronym>I/O</acronym> with
|
|
<literal>wal_level=minimal</literal>; this is now enabled with
|
|
<literal>debug_io_direct=wal</literal>.
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Michael Paquier <michael@paquier.xyz>
|
|
2022-12-20 [cca186348] Add pg_dissect_walfile_name()
|
|
Author: Michael Paquier <michael@paquier.xyz>
|
|
2022-12-23 [13e0d7a60] Rename pg_dissect_walfile_name() to pg_split_walfile_nam
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Add function <link
|
|
linkend="functions-admin-backup-table"><function>pg_split_walfile_name()</function></link>
|
|
to report the segment and timeline values of <acronym>WAL</acronym>
|
|
file names (Bharath Rupireddy)
|
|
</para>
|
|
</listitem>
|
|
|
|
</itemizedlist>
|
|
|
|
</sect4>
|
|
|
|
<sect4 id="release-16-pg-hba">
|
|
<title><link linkend="auth-pg-hba-conf">pg_hba.conf</link></title>
|
|
|
|
<itemizedlist>
|
|
|
|
<!--
|
|
Author: Michael Paquier <michael@paquier.xyz>
|
|
2022-10-24 [8fea86830] Add support for regexps on database and user entries in
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Add support for regular expression matching on database and role
|
|
entries in <filename>pg_hba.conf</filename> (Bertrand Drouvot)
|
|
</para>
|
|
|
|
<para>
|
|
Regular expression patterns are prefixed with a slash. Database
|
|
and role names that begin with slashes need to be double-quoted
|
|
if referenced in <filename>pg_hba.conf</filename>.
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Michael Paquier <michael@paquier.xyz>
|
|
2023-01-20 [efb6f4a4f] Support the same patterns for pg-user in pg_ident.conf a
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Improve user-column handling of <link
|
|
linkend="runtime-config-file-locations"><filename>pg_ident.conf</filename></link>
|
|
to match <filename>pg_hba.conf</filename> (Jelte Fennema)
|
|
</para>
|
|
|
|
<para>
|
|
Specifically, add support for <literal>all</literal>, role
|
|
membership with <literal>+</literal>, and regular expressions
|
|
with a leading slash. Any user name that matches these patterns
|
|
must be double-quoted.
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Michael Paquier <michael@paquier.xyz>
|
|
2022-11-24 [a54b658ce] Add support for file inclusions in HBA and ident configu
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Allow include files in <filename>pg_hba.conf</filename> and
|
|
<filename>pg_ident.conf</filename> (Julien Rouhaud)
|
|
</para>
|
|
|
|
<para>
|
|
These are controlled by <literal>include</literal>,
|
|
<literal>include_if_exists</literal>, and
|
|
<literal>include_dir</literal>. System views <link
|
|
linkend="view-pg-hba-file-rules"><structname>pg_hba_file_rules</structname></link>
|
|
and <link
|
|
linkend="view-pg-ident-file-mappings"><structname>pg_ident_file_mappings</structname></link>
|
|
now display the file name.
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
2023-07-27 [de3f0e3fe] Eliminate fixed token-length limit in hba.c.
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Allow <filename>pg_hba.conf</filename> tokens to be of unlimited
|
|
length (Tom Lane)
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Michael Paquier <michael@paquier.xyz>
|
|
2022-10-26 [c591300a8] Add rule_number to pg_hba_file_rules and map_number to p
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Add rule and map numbers to the system view <link
|
|
linkend="view-pg-hba-file-rules"><structname>pg_hba_file_rules</structname></link>
|
|
(Julien Rouhaud)
|
|
</para>
|
|
</listitem>
|
|
|
|
</itemizedlist>
|
|
|
|
</sect4>
|
|
|
|
<sect4 id="release-16-localization">
|
|
<title><link linkend="charset">Localization</link></title>
|
|
|
|
<itemizedlist>
|
|
|
|
<!--
|
|
Author: Jeff Davis <jdavis@postgresql.org>
|
|
2023-03-10 [c45dc7ffb] initdb: derive encoding from locale for ICU; similar to
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Determine the default encoding from the locale when using
|
|
<acronym>ICU</acronym> (Jeff Davis)
|
|
</para>
|
|
|
|
<para>
|
|
Previously the default was always <literal>UTF-8</literal>.
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Jeff Davis <jdavis@postgresql.org>
|
|
Date: Fri Jun 16 10:27:32 2023 -0700
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Have <link linkend="sql-createdatabase"><command>CREATE
|
|
DATABASE</command></link> and <link
|
|
linkend="sql-createcollation"><command>CREATE
|
|
COLLATION</command></link>'s <literal>LOCALE</literal> options, and
|
|
<link linkend="app-initdb"><application>initdb</application></link>
|
|
and <link
|
|
linkend="app-createdb"><application>createdb</application></link>
|
|
<option>--locale</option> options, control
|
|
non-<application>libc</application> collation providers (Jeff
|
|
Davis)
|
|
</para>
|
|
|
|
<para>
|
|
Previously they only controlled <application>libc</application>
|
|
providers.
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Peter Eisentraut <peter@eisentraut.org>
|
|
2023-03-10 [0d21d4b9b] Add standard collation UNICODE
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Add predefined collations <literal>unicode</literal> and
|
|
<literal>ucs_basic</literal> (Peter Eisentraut)
|
|
</para>
|
|
|
|
<para>
|
|
This only works if <acronym>ICU</acronym> support is enabled.
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Peter Eisentraut <peter@eisentraut.org>
|
|
2023-03-08 [30a53b792] Allow tailoring of ICU locales with custom rules
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Allow custom <acronym>ICU</acronym> collation rules to be created
|
|
(Peter Eisentraut)
|
|
</para>
|
|
|
|
<para>
|
|
This is done using <link
|
|
linkend="sql-createcollation"><command>CREATE
|
|
COLLATION</command></link>'s new <literal>RULES</literal>
|
|
clause, as well as new options for <link
|
|
linkend="sql-createdatabase"><command>CREATE
|
|
DATABASE</command></link>, <link
|
|
linkend="app-createdb"><application>createdb</application></link>,
|
|
and <link
|
|
linkend="app-initdb"><application>initdb</application></link>.
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Peter Eisentraut <peter@eisentraut.org>
|
|
2023-01-03 [bf03cfd16] Windows support in pg_import_system_collations
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Allow <systemitem class="osname">Windows</systemitem> to import
|
|
system locales automatically (Juan José Santamaría Flecha)
|
|
</para>
|
|
|
|
<para>
|
|
Previously, only <acronym>ICU</acronym> locales could be imported
|
|
on <systemitem class="osname">Windows</systemitem>.
|
|
</para>
|
|
</listitem>
|
|
|
|
</itemizedlist>
|
|
|
|
</sect4>
|
|
|
|
</sect3>
|
|
|
|
<sect3 id="release-16-logical">
|
|
<title><link linkend="logical-replication">Logical Replication</link></title>
|
|
|
|
<itemizedlist>
|
|
|
|
<!--
|
|
Author: Andres Freund <andres@anarazel.de>
|
|
2023-04-08 [0fdab27ad] Allow logical decoding on standbys
|
|
Author: Andres Freund <andres@anarazel.de>
|
|
2023-04-07 [be87200ef] Support invalidating replication slots due to horizon an
|
|
Author: Andres Freund <andres@anarazel.de>
|
|
2023-04-08 [26669757b] Handle logical slot conflicts on standby
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Allow <link linkend="logicaldecoding">logical decoding</link>
|
|
on standbys (Bertrand Drouvot, Andres Freund, Amit Khandekar)
|
|
</para>
|
|
|
|
<para>
|
|
Snapshot <acronym>WAL</acronym> records are
|
|
required for logical slot creation but cannot be
|
|
created on standbys. To avoid delays, the new function <link
|
|
linkend="functions-snapshot-synchronization-table"><function>pg_log_standby_snapshot()</function></link>
|
|
allows creation of such records.
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Amit Kapila <akapila@postgresql.org>
|
|
2022-12-26 [5de94a041] Add 'logical_decoding_mode' GUC.
|
|
Author: Amit Kapila <akapila@postgresql.org>
|
|
2023-01-30 [1e8b61735] Rename GUC logical_decoding_mode to logical_replication_
|
|
Author: Amit Kapila <akapila@postgresql.org>
|
|
2023-02-02 [9f2213a7c] Allow the logical_replication_mode to be used on the sub
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Add server variable to control how logical decoding publishers
|
|
transfer changes and how subscribers apply them (Shi Yu)
|
|
</para>
|
|
|
|
<para>
|
|
The variable is <link
|
|
linkend="guc-debug-logical-replication-streaming"><varname>debug_logical_replication_streaming</varname></link>.
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Amit Kapila <akapila@postgresql.org>
|
|
2023-03-23 [ecb696527] Allow logical replication to copy tables in binary forma
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Allow logical replication initial table synchronization to copy
|
|
rows in binary format (Melih Mutlu)
|
|
</para>
|
|
|
|
<para>
|
|
This is only possible for subscriptions marked as binary.
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Amit Kapila <akapila@postgresql.org>
|
|
2023-01-09 [216a78482] Perform apply of large transactions by parallel workers.
|
|
Author: Amit Kapila <akapila@postgresql.org>
|
|
2023-01-10 [cd06ccd78] Document the newly added wait events added by commit 216
|
|
Author: Amit Kapila <akapila@postgresql.org>
|
|
2023-02-16 [fce003cfd] Add a new wait state and use it when sending data in the
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Allow parallel application of logical replication (Hou Zhijie,
|
|
Wang Wei, Amit Kapila)
|
|
</para>
|
|
|
|
<para>
|
|
The <link linkend="sql-createsubscription"><command>CREATE
|
|
SUBSCRIPTION</command></link> <option>STREAMING</option>
|
|
option now supports <literal>parallel</literal> to enable
|
|
application of large transactions by parallel workers. The number
|
|
of parallel workers is controlled by the new server variable <link
|
|
linkend="guc-max-parallel-apply-workers-per-subscription"><varname>max_parallel_apply_workers_per_subscription</varname></link>.
|
|
Wait events <link
|
|
linkend="wait-event-activity-table"><literal>LogicalParallelApplyMain</literal></link>,
|
|
<literal>LogicalParallelApplyStateChange</literal>, and
|
|
<literal>LogicalApplySendData</literal> were also added. Column
|
|
<structfield>leader_pid</structfield> was added to system view <link
|
|
linkend="monitoring-pg-stat-subscription"><structname>pg_stat_subscription</structname></link>
|
|
to track parallel activity.
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Amit Kapila <akapila@postgresql.org>
|
|
2023-03-15 [89e46da5e] Allow the use of indexes other than PK and REPLICA IDENT
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Improve performance for <link
|
|
linkend="logical-replication-architecture">logical replication
|
|
apply</link> without a primary key (Onder Kalaci, Amit Kapila)
|
|
</para>
|
|
|
|
<para>
|
|
Specifically, <literal>REPLICA IDENTITY FULL</literal> can now
|
|
use btree indexes rather than sequentially scanning the table to
|
|
find matches.
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Amit Kapila <akapila@postgresql.org>
|
|
2022-07-21 [366283961] Allow users to skip logical replication of data having o
|
|
Author: Amit Kapila <akapila@postgresql.org>
|
|
2022-09-08 [875693019] Raise a warning if there is a possibility of data from m
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Allow logical replication subscribers to process only changes that
|
|
have no origin (Vignesh C, Amit Kapila)
|
|
</para>
|
|
|
|
<para>
|
|
This can be used to avoid replication loops. This is controlled
|
|
by the new <literal>CREATE SUBSCRIPTION ... ORIGIN</literal> option.
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Robert Haas <rhaas@postgresql.org>
|
|
2023-04-04 [1e10d49b6] Perform logical replication actions as the table owner.
|
|
Author: Robert Haas <rhaas@postgresql.org>
|
|
2023-04-04 [482675987] Add a run_as_owner option to subscriptions.
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Perform logical replication <link
|
|
linkend="sql-select"><command>SELECT</command></link> and
|
|
<acronym>DML</acronym> actions as the table owner (Robert Haas)
|
|
</para>
|
|
|
|
<para>
|
|
This improves security and now requires subscription
|
|
owners to be either superusers or to have <link
|
|
linkend="sql-set-role"><command>SET ROLE</command></link>
|
|
permission on all roles owning tables in the replication set.
|
|
The previous behavior of performing all operations as the
|
|
subscription owner can be enabled with the subscription <link
|
|
linkend="sql-createsubscription"><option>run_as_owner</option></link>
|
|
option.
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
2023-01-22 [5a3a95385] Track logrep apply workers' last start times to avoid us
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Have <link
|
|
linkend="guc-wal-retrieve-retry-interval"><varname>wal_retrieve_retry_interval</varname></link>
|
|
operate on a per-subscription basis (Nathan Bossart)
|
|
</para>
|
|
|
|
<para>
|
|
Previously the retry time was applied
|
|
globally. This also adds wait events <link
|
|
linkend="wait-event-lwlock-table">><literal>LogicalRepLauncherDSA</literal></link>
|
|
and <literal>LogicalRepLauncherHash</literal>.
|
|
</para>
|
|
</listitem>
|
|
|
|
</itemizedlist>
|
|
|
|
</sect3>
|
|
|
|
<sect3 id="release-16-utility">
|
|
<title>Utility Commands</title>
|
|
|
|
<itemizedlist>
|
|
|
|
<!--
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
2023-03-24 [3c05284d8] Invent GENERIC_PLAN option for EXPLAIN.
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Add <link linkend="sql-explain"><command>EXPLAIN</command></link>
|
|
option <literal>GENERIC_PLAN</literal> to display the generic plan
|
|
for a parameterized query (Laurenz Albe)
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Andrew Dunstan <andrew@dunslane.net>
|
|
2023-03-13 [9f8377f7a] Add a DEFAULT option to COPY FROM
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Allow a <link linkend="sql-copy"><command>COPY FROM</command></link>
|
|
value to map to a column's <literal>DEFAULT</literal> (Israel
|
|
Barth Rubio)
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Etsuro Fujita <efujita@postgresql.org>
|
|
2022-10-13 [97da48246] Allow batch insertion during COPY into a foreign table.
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Allow <link linkend="sql-copy"><command>COPY</command></link>
|
|
into foreign tables to add rows in batches (Andrey Lepikhov,
|
|
Etsuro Fujita)
|
|
</para>
|
|
|
|
<para>
|
|
This is controlled by the <link
|
|
linkend="postgres-fdw"><application>postgres_fdw</application></link>
|
|
option <link
|
|
linkend="postgres-fdw-options-cost-estimation"><option>batch_size</option></link>.
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Peter Eisentraut <peter@eisentraut.org>
|
|
2022-07-13 [784cedda0] Allow specifying STORAGE attribute for a new table
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
2022-11-10 [b9424d014] Support writing "CREATE/ALTER TABLE ... SET STORAGE DEFA
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Allow the <literal>STORAGE</literal> type to be specified by <link
|
|
linkend="sql-createtable"><command>CREATE TABLE</command></link>
|
|
(Teodor Sigaev, Aleksander Alekseev)
|
|
</para>
|
|
|
|
<para>
|
|
Previously only <link linkend="sql-altertable"><command>ALTER
|
|
TABLE</command></link> could control this.
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Fujii Masao <fujii@postgresql.org>
|
|
2022-07-12 [3b00a944a] Support TRUNCATE triggers on foreign tables.
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Allow <link linkend="sql-createtrigger">truncate triggers</link>
|
|
on foreign tables (Yugo Nagata)
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Michael Paquier <michael@paquier.xyz>
|
|
2023-03-06 [4211fbd84] Add PROCESS_MAIN to VACUUM
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Allow <link
|
|
linkend="sql-vacuum"><command>VACUUM</command></link> and <link
|
|
linkend="app-vacuumdb"><application>vacuumdb</application></link>
|
|
to only process <link
|
|
linkend="storage-toast"><literal>TOAST</literal></link> tables
|
|
(Nathan Bossart)
|
|
</para>
|
|
|
|
<para>
|
|
This is accomplished by having <link
|
|
linkend="sql-vacuum"><command>VACUUM</command></link>
|
|
turn off <literal>PROCESS_MAIN</literal> or by <link
|
|
linkend="app-vacuumdb"><application>vacuumdb</application></link>
|
|
using the <option>--no-process-main</option> option.
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
2023-01-06 [a46a7011b] Add options to control whether VACUUM runs vac_update_da
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Add <link linkend="sql-vacuum"><command>VACUUM</command></link>
|
|
options to skip or update all <link
|
|
linkend="vacuum-for-wraparound">frozen</link> statistics (Tom Lane,
|
|
Nathan Bossart)
|
|
</para>
|
|
|
|
<para>
|
|
The options are <literal>SKIP_DATABASE_STATS</literal> and
|
|
<literal>ONLY_DATABASE_STATS</literal>.
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Michael Paquier <michael@paquier.xyz>
|
|
2022-07-19 [2cbc3c17a] Rework logic and simplify syntax of REINDEX DATABASE/SYS
|
|
Author: Michael Paquier <michael@paquier.xyz>
|
|
2022-07-26 [0a5f06b84] Fix a few issues with REINDEX grammar
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Change <link linkend="sql-reindex"><command>REINDEX
|
|
DATABASE</command></link> and <link
|
|
linkend="sql-reindex"><command>REINDEX SYSTEM</command></link>
|
|
to no longer require an argument (Simon Riggs)
|
|
</para>
|
|
|
|
<para>
|
|
Previously the database name had to be specified.
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Dean Rasheed <dean.a.rasheed@gmail.com>
|
|
2022-07-21 [624aa2a13] Make the name optional in CREATE STATISTICS.
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Allow <link linkend="sql-createstatistics"><command>CREATE
|
|
STATISTICS</command></link> to generate a statistics name if none
|
|
is specified (Simon Riggs)
|
|
</para>
|
|
</listitem>
|
|
|
|
</itemizedlist>
|
|
|
|
</sect3>
|
|
|
|
<sect3 id="release-16-datatypes">
|
|
<title>Data Types</title>
|
|
|
|
<itemizedlist>
|
|
|
|
<!--
|
|
Author: Peter Eisentraut <peter@eisentraut.org>
|
|
2022-12-14 [6fcda9aba] Non-decimal integer literals
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Allow non-decimal <link linkend="sql-syntax-bit-strings">integer
|
|
literals</link> (Peter Eisentraut)
|
|
</para>
|
|
|
|
<para>
|
|
For example, <literal>0x42F</literal>, <literal>0o273</literal>,
|
|
and <literal>0b100101</literal>.
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Dean Rasheed <dean.a.rasheed@gmail.com>
|
|
2023-01-23 [6dfacbf72] Add non-decimal integer support to type numeric.
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Allow <link linkend="datatype-numeric"><type>NUMERIC</type></link>
|
|
to process hexadecimal, octal, and binary integers of any size
|
|
(Dean Rasheed)
|
|
</para>
|
|
|
|
<para>
|
|
Previously only unquoted eight-byte integers were supported with
|
|
these non-decimal bases.
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Dean Rasheed <dean.a.rasheed@gmail.com>
|
|
2023-02-04 [faff8f8e4] Allow underscores in integer and numeric constants.
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Allow underscores in integer and numeric <link
|
|
linkend="sql-syntax-bit-strings">constants</link> (Peter Eisentraut,
|
|
Dean Rasheed)
|
|
</para>
|
|
|
|
<para>
|
|
This can improve readability for long strings of digits.
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
2023-01-01 [2ceea5adb] Accept "+infinity" in date and timestamp[tz] input.
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Accept the spelling <literal>+infinity</literal> in datetime input
|
|
(Vik Fearing)
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
2023-03-09 [bcc704b52] Reject combining "epoch" and "infinity" with other datet
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Prevent the specification of <literal>epoch</literal> and
|
|
<literal>infinity</literal> together with other fields in datetime
|
|
strings (Joseph Koshakow)
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
2023-03-16 [5b3c59535] Tighten error checks in datetime input, and remove bogus
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Remove undocumented support for date input in the form
|
|
<literal>Y<replaceable>year</replaceable>M<replaceable>month</replaceable>D<replaceable>day</replaceable></literal>
|
|
(Joseph Koshakow)
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
2022-12-09 [1939d2628] Add test scaffolding for soft error reporting from input
|
|
Author: Michael Paquier <michael@paquier.xyz>
|
|
2023-02-28 [b8da37b3a] Rework pg_input_error_message(), now renamed pg_input_er
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Add functions <link
|
|
linkend="functions-info-validity-table"><function>pg_input_is_valid()</function></link>
|
|
and <function>pg_input_error_info()</function> to check for type
|
|
conversion errors (Tom Lane)
|
|
</para>
|
|
</listitem>
|
|
|
|
</itemizedlist>
|
|
|
|
</sect3>
|
|
|
|
<sect3 id="release-16-general">
|
|
<title>General Queries</title>
|
|
|
|
<itemizedlist>
|
|
|
|
<!--
|
|
Author: Dean Rasheed <dean.a.rasheed@gmail.com>
|
|
2022-07-20 [bcedd8f5f] Make subquery aliases optional in the FROM clause.
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Allow subqueries in the <literal>FROM</literal> clause to omit
|
|
aliases (Dean Rasheed)
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Peter Eisentraut <peter@eisentraut.org>
|
|
2023-03-05 [102a5c164] SQL JSON path enhanced numeric literals
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Add support for enhanced numeric literals in
|
|
<acronym>SQL/JSON</acronym> paths (Peter Eisentraut)
|
|
</para>
|
|
|
|
<para>
|
|
For example, allow hexadecimal, octal, and binary integers and
|
|
underscores between digits.
|
|
</para>
|
|
</listitem>
|
|
|
|
</itemizedlist>
|
|
|
|
</sect3>
|
|
|
|
<sect3 id="release-16-functions">
|
|
<title>Functions</title>
|
|
|
|
<itemizedlist>
|
|
|
|
<!--
|
|
Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
|
|
2023-03-29 [7081ac46a] SQL/JSON: add standard JSON constructor functions
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Add <acronym>SQL/JSON</acronym> constructors (Nikita Glukhov,
|
|
Teodor Sigaev, Oleg Bartunov, Alexander Korotkov, Amit Langote)
|
|
</para>
|
|
|
|
<para>
|
|
The new functions <link
|
|
linkend="functions-json-creation-table"><function>JSON_ARRAY()</function></link>,
|
|
<link
|
|
linkend="functions-aggregate-table"><function>JSON_ARRAYAGG()</function></link>,
|
|
<function>JSON_OBJECT()</function>, and
|
|
<function>JSON_OBJECTAGG()</function> are part of the
|
|
<acronym>SQL</acronym> standard.
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
|
|
2023-03-31 [6ee30209a] SQL/JSON: support the IS JSON predicate
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Add <acronym>SQL/JSON</acronym> object checks (Nikita Glukhov,
|
|
Teodor Sigaev, Oleg Bartunov, Alexander Korotkov, Amit Langote,
|
|
Andrew Dunstan)
|
|
</para>
|
|
|
|
<para>
|
|
The <link linkend="functions-sqljson-misc"><literal>IS
|
|
JSON</literal></link> checks include checks for values, arrays,
|
|
objects, scalars, and unique keys.
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: John Naylor <john.naylor@postgresql.org>
|
|
2022-09-02 [0a8de93a4] Speed up lexing of long JSON strings
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Allow <acronym>JSON</acronym> string parsing to use vector
|
|
operations (John Naylor)
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
2023-01-19 [5a617d75d] Fix ts_headline() to handle ORs and phrase queries more
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Improve the handling of full text highlighting function <link
|
|
linkend="textsearch-functions-table"><function>ts_headline()</function></link>
|
|
for <literal>OR</literal> and <literal>NOT</literal> expressions
|
|
(Tom Lane)
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
2023-03-18 [75bd846b6] Add functions to do timestamptz arithmetic in a non-defa
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Add functions to add, subtract, and generate
|
|
<type>timestamptz</type> values in a specified time zone (Przemyslaw
|
|
Sztoch, Gurjeet Singh)
|
|
</para>
|
|
|
|
<para>
|
|
The functions are <link
|
|
linkend="functions-datetime-table"><function>date_add()</function></link>,
|
|
<function>date_subtract()</function>, and <link
|
|
linkend="functions-srf-series"><function>generate_series()</function></link>.
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
2022-11-12 [533e02e92] Fix volatility marking of timestamptz_trunc_zone.
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Change <link
|
|
linkend="functions-datetime-table"><function>date_trunc(unit,
|
|
timestamptz, time_zone)</function></link> to be an immutable
|
|
function (Przemyslaw Sztoch)
|
|
</para>
|
|
|
|
<para>
|
|
This allows the creation of expression indexes using this function.
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Michael Paquier <michael@paquier.xyz>
|
|
2022-09-29 [0823d061b] Introduce SYSTEM_USER
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Add server variable <link
|
|
linkend="functions-info-session-table"><literal>SYSTEM_USER</literal></link>
|
|
(Bertrand Drouvot)
|
|
</para>
|
|
|
|
<para>
|
|
This reports the authentication method and its authenticated user.
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
2023-04-07 [888f2ea0a] Add array_sample() and array_shuffle() functions.
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Add functions <link
|
|
linkend="array-functions-table"><function>array_sample()</function></link>
|
|
and <function>array_shuffle()</function> (Martin Kalcher)
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Peter Eisentraut <peter@eisentraut.org>
|
|
2023-02-22 [2ddab010c] Implement ANY_VALUE aggregate
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Add aggregate function <link
|
|
linkend="functions-aggregate-table"><function>ANY_VALUE()</function></link>
|
|
which returns any value from a set (Vik Fearing)
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
2023-01-09 [38d81760c] Invent random_normal() to provide normally-distributed r
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Add function <link
|
|
linkend="functions-math-random-table"><function>random_normal()</function></link>
|
|
to supply normally-distributed random numbers (Paul Ramsey)
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Dean Rasheed <dean.a.rasheed@gmail.com>
|
|
2023-03-14 [d5d574146] Add support for the error functions erf() and erfc().
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Add error function <link
|
|
linkend="functions-math-func-table"><function>erf()</function></link>
|
|
and its complement <function>erfc()</function> (Dean Rasheed)
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Dean Rasheed <dean.a.rasheed@gmail.com>
|
|
2022-10-20 [40c7fcbbe] Improve the accuracy of numeric power() for integer expo
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Improve the accuracy of numeric <link
|
|
linkend="functions-math-func-table"><function>power()</function></link>
|
|
for integer exponents (Dean Rasheed)
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
2023-03-15 [483bdb2af] Support [NO] INDENT option in XMLSERIALIZE().
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Add <link
|
|
linkend="datatype-xml-creating"><function>XMLSERIALIZE()</function></link>
|
|
option <literal>INDENT</literal> to pretty-print its output
|
|
(Jim Jones)
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Jeff Davis <jdavis@postgresql.org>
|
|
2022-10-31 [10932ed5e] Enable pg_collation_actual_version() to work on the defa
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Change <link
|
|
linkend="functions-admin-collation"><function>pg_collation_actual_version()</function></link>
|
|
to return a reasonable value for the default collation (Jeff Davis)
|
|
</para>
|
|
|
|
<para>
|
|
Previously it returned <literal>NULL</literal>.
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
2022-07-29 [283129e32] Support pg_read_[binary_]file (filename, missing_ok).
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Allow <link
|
|
linkend="functions-admin-genfile-table"><function>pg_read_file()</function></link>
|
|
and <function>pg_read_binary_file()</function> to ignore missing
|
|
files (Kyotaro Horiguchi)
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Peter Eisentraut <peter@eisentraut.org>
|
|
2023-03-07 [ce1215d9b] Add support for unit "B" to pg_size_bytes()
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Add byte specification (<literal>B</literal>) to <link
|
|
linkend="functions-admin-dbsize"><function>pg_size_bytes()</function></link>
|
|
(Peter Eisentraut)
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
2022-12-27 [3ea7329c9] Simplify the implementations of the to_reg* functions.
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Allow <link
|
|
linkend="functions-info-catalog-table"><function>to_reg</function></link>*
|
|
functions to accept numeric <acronym>OID</acronym>s as input
|
|
(Tom Lane)
|
|
</para>
|
|
</listitem>
|
|
|
|
</itemizedlist>
|
|
|
|
</sect3>
|
|
|
|
<sect3 id="release-16-plpgsql">
|
|
<title><link linkend="plpgsql">PL/pgSQL</link></title>
|
|
|
|
<itemizedlist>
|
|
|
|
<!--
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
2023-04-04 [d3d53f955] Add a way to get the current function's OID in pl/pgsql.
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Add the ability to get the current function's <acronym>OID</acronym>
|
|
in <application>PL/pgSQL</application> (Pavel Stehule)
|
|
</para>
|
|
|
|
<para>
|
|
This is accomplished with <link
|
|
linkend="plpgsql-statements-diagnostics"><command>GET DIAGNOSTICS
|
|
variable = PG_ROUTINE_OID</command></link>.
|
|
</para>
|
|
</listitem>
|
|
|
|
</itemizedlist>
|
|
|
|
</sect3>
|
|
|
|
<sect3 id="release-16-libpq">
|
|
<title><link linkend="libpq">libpq</link></title>
|
|
|
|
<itemizedlist>
|
|
|
|
<!--
|
|
Author: Michael Paquier <michael@paquier.xyz>
|
|
2023-03-14 [3a465cc67] libpq: Add support for require_auth to control authorize
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Add <application>libpq</application> connection option <link
|
|
linkend="libpq-connect-require-auth"><option>require_auth</option></link>
|
|
to specify a list of acceptable authentication methods (Jacob
|
|
Champion)
|
|
</para>
|
|
|
|
<para>
|
|
This can also be used to disallow certain authentication methods.
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Daniel Gustafsson <dgustafsson@postgresql.org>
|
|
2023-03-29 [7f5b19817] Support connection load balancing in libpq
|
|
Author: Fujii Masao <fujii@postgresql.org>
|
|
2023-04-21 [0a16512d4] doc: Add documentation for PGLOADBALANCEHOSTS environmen
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Allow multiple <application>libpq</application>-specified hosts
|
|
to be randomly selected (Jelte Fennema)
|
|
</para>
|
|
|
|
<para>
|
|
This is enabled with <link
|
|
linkend="libpq-connect-load-balance-hosts"><literal>load_balance_hosts=random</literal></link>
|
|
and can be used for load balancing.
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Michael Paquier <michael@paquier.xyz>
|
|
2023-03-24 [36f40ce2d] libpq: Add sslcertmode option to control client certific
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Add <application>libpq</application> option <link
|
|
linkend="libpq-connect-sslcertmode"><option>sslcertmode</option></link>
|
|
to control transmission of the client certificate (Jacob Champion)
|
|
</para>
|
|
|
|
<para>
|
|
The option values are <literal>disable</literal>,
|
|
<literal>allow</literal>, and <literal>require</literal>.
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Daniel Gustafsson <dgustafsson@postgresql.org>
|
|
2023-04-05 [8eda73146] Allow to use system CA pool for certificate verification
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Allow <application>libpq</application> to use the system certificate
|
|
pool for certificate verification (Jacob Champion, Thomas Habets)
|
|
</para>
|
|
|
|
<para>
|
|
This is enabled with <link
|
|
linkend="libpq-connect-sslrootcert"><literal>sslrootcert=system</literal></link>,
|
|
which also enables <link
|
|
linkend="libpq-connect-sslmode"><literal>sslmode=verify-full</literal></link>.
|
|
</para>
|
|
</listitem>
|
|
|
|
</itemizedlist>
|
|
|
|
</sect3>
|
|
|
|
<sect3 id="release-16-client-apps">
|
|
<title>Client Applications</title>
|
|
|
|
<itemizedlist>
|
|
|
|
<!--
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
2022-07-12 [83f1c7b74] Fix ECPG's handling of type names that match SQL keyword
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Allow <link linkend="ecpg"><command>ECPG</command></link>
|
|
variable declarations to use typedef names that match unreserved
|
|
<acronym>SQL</acronym> keywords (Tom Lane)
|
|
</para>
|
|
|
|
<para>
|
|
This change does prevent keywords which match C typedef names from
|
|
being processed as keywords in later <command>EXEC SQL</command>
|
|
blocks.
|
|
</para>
|
|
</listitem>
|
|
|
|
</itemizedlist>
|
|
|
|
<sect4 id="release-16-psql">
|
|
<title><xref linkend="app-psql"/></title>
|
|
|
|
<itemizedlist>
|
|
|
|
<!--
|
|
Author: Andrew Dunstan <andrew@dunslane.net>
|
|
2022-07-25 [a45388d6e] Add xheader_width pset option to psql
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Allow <application>psql</application> to control the maximum
|
|
width of header lines in expanded format (Platon Pronko)
|
|
</para>
|
|
|
|
<para>
|
|
This is controlled by <link
|
|
linkend="app-psql-meta-command-pset-xheader-width"><option>xheader_width</option></link>.
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Dean Rasheed <dean.a.rasheed@gmail.com>
|
|
2023-01-07 [d913928c9] psql: Add support for \dpS and \zS.
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
2023-07-19 [d65ddaca9] Add psql \drg command to display role
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Add <application>psql</application> command <link
|
|
linkend="app-psql-meta-command-drg"><command>\drg</command></link>
|
|
to show role membership details (Pavel Luzanov)
|
|
</para>
|
|
|
|
<para>
|
|
The <literal>Member of</literal> output column has been removed
|
|
from <command>\du</command> and <command>\dg</command> because
|
|
this new command displays this information in more detail.
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Dean Rasheed <dean.a.rasheed@gmail.com>
|
|
2023-01-07 [d913928c9] psql: Add support for \dpS and \zS.
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
2023-07-19 [d65ddaca9] Add psql \drg command to display role
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Allow <application>psql</application>'s access privilege commands
|
|
to show system objects (Nathan Bossart)
|
|
</para>
|
|
|
|
<para>
|
|
The options are <link
|
|
linkend="app-psql-meta-command-dp-lc"><command>\dpS</command></link>
|
|
and <link
|
|
linkend="app-psql-meta-command-z"><command>\zS</command></link>.
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Michael Paquier <michael@paquier.xyz>
|
|
2022-11-08 [bd95816f7] psql: Add information in \d+ about foreign partitions an
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Add <literal>FOREIGN</literal> designation
|
|
to <application>psql</application> <link
|
|
linkend="app-psql-meta-command-d"><command>\d+</command></link>
|
|
for foreign table children and partitions (Ian Lawrence Barwick)
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
2023-03-02 [3dfae91f7] Show "internal name" not "source code" in psql's \df+ co
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Prevent <link
|
|
linkend="app-psql-meta-command-df-uc"><command>\df+</command></link>
|
|
from showing function source code (Isaac Morland)
|
|
</para>
|
|
|
|
<para>
|
|
Function bodies are more easily viewed with <link
|
|
linkend="app-psql-meta-command-sf"><command>\sf</command></link>.
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Peter Eisentraut <peter@eisentraut.org>
|
|
2022-11-15 [5b66de343] psql: Add command to use extended query protocol
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Allow <application>psql</application> to submit queries using
|
|
the extended query protocol (Peter Eisentraut)
|
|
</para>
|
|
|
|
<para>
|
|
Passing arguments to such queries is done
|
|
using the new <application>psql</application> <link
|
|
linkend="app-psql-meta-command-bind"><command>\bind</command></link>
|
|
command.
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
2023-04-06 [00beecfe8] psql: add an optional execution-count limit to \watch.
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Allow <application>psql</application> <link
|
|
linkend="app-psql-meta-command-watch"><command>\watch</command></link>
|
|
to limit the number of executions (Andrey Borodin)
|
|
</para>
|
|
|
|
<para>
|
|
The <command>\watch</command> options can now be named when
|
|
specified.
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Michael Paquier <michael@paquier.xyz>
|
|
2023-03-16 [6f9ee74d4] Improve handling of psql \watch's interval argument
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Detect invalid values for <application>psql</application> <link
|
|
linkend="app-psql-meta-command-watch"><command>\watch</command></link>,
|
|
and allow zero to specify no delay (Andrey Borodin)
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
2023-03-21 [b0d8f2d98] Add SHELL_ERROR and SHELL_EXIT_CODE magic variables to p
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
2023-04-06 [31ae2aa9d] psql: set SHELL_ERROR and SHELL_EXIT_CODE in more places
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Allow <application>psql</application> scripts to obtain the exit
|
|
status of shell commands and queries
|
|
(Corey Huinker, Tom Lane)
|
|
</para>
|
|
|
|
<para>
|
|
The new <application>psql</application> control variables are <link
|
|
linkend="app-psql-variables-shell-error"><literal>SHELL_ERROR</literal></link>
|
|
and <link
|
|
linkend="app-psql-variables-shell-exit-code"><literal>SHELL_EXIT_CODE</literal></link>.
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Michael Paquier <michael@paquier.xyz>
|
|
2022-08-15 [f6c750d31] Improve tab completion of ALTER TYPE in psql
|
|
Author: Michael Paquier <michael@paquier.xyz>
|
|
2022-09-06 [4cbe57974] Add psql tab compression for SET COMPRESSION with ALTER
|
|
Author: Michael Paquier <michael@paquier.xyz>
|
|
2022-09-10 [6afcab6ac] Add psql tab compression for ALTER TABLE .. { OF | NOT O
|
|
Author: Michael Paquier <michael@paquier.xyz>
|
|
2022-10-05 [9aa58d48f] Add a few new patterns to the tab completion of psql
|
|
Author: Michael Paquier <michael@paquier.xyz>
|
|
2022-10-24 [3cf2f7af7] Improve tab completion for ALTER STATISTICS <name> SET i
|
|
Author: Peter Eisentraut <peter@eisentraut.org>
|
|
2022-11-01 [2ea5de296] psql: Improve tab completion for ALTER TABLE on identity
|
|
Author: Michael Paquier <michael@paquier.xyz>
|
|
2022-11-18 [07f7237c2] psql: Improve tab completion for GRANT/REVOKE
|
|
Author: Michael Paquier <michael@paquier.xyz>
|
|
2022-12-12 [9d0cf5749] Add support for GRANT SET in psql tab completion
|
|
Author: Dean Rasheed <dean.a.rasheed@gmail.com>
|
|
2023-01-06 [a3bc631ea] Improve tab completion for ALTER FUNCTION/PROCEDURE/ROUT
|
|
Author: Michael Paquier <michael@paquier.xyz>
|
|
2023-01-12 [2ff5ca86e] Add support for tab completion after ALTER EXTENSION ADD
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
2023-04-19 [9e1e9d656] Add missed case for tab completion of GRANT/REVOKE MAINT
|
|
Author: Amit Kapila <akapila@postgresql.org>
|
|
2023-04-07 [96c498d2f] Add tab-completion for newly added SUBSCRIPTION options.
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Various <application>psql</application> tab completion improvements
|
|
(Vignesh C, Aleksander Alekseev, Dagfinn Ilmari Mannsåker,
|
|
Shi Yu, Michael Paquier, Ken Kato, Peter Smith)
|
|
</para>
|
|
</listitem>
|
|
|
|
</itemizedlist>
|
|
|
|
</sect4>
|
|
|
|
<sect4 id="release-16-pgdump">
|
|
<title><link linkend="app-pgdump"><application>pg_dump</application></link></title>
|
|
|
|
<itemizedlist>
|
|
|
|
<!--
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
2023-03-14 [a563c24c9] Allow pg_dump to include/exclude child tables automatica
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Add <application>pg_dump</application> control of dumping child
|
|
tables and partitions (Gilles Darold)
|
|
</para>
|
|
|
|
<para>
|
|
The new options are <option>--table-and-children</option>,
|
|
<option>--exclude-table-and-children</option>, and
|
|
<option>--exclude-table-data-and-children</option>.
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Tomas Vondra <tomas.vondra@postgresql.org>
|
|
2023-02-23 [0da243fed] Add LZ4 compression to pg_dump
|
|
Author: Tomas Vondra <tomas.vondra@postgresql.org>
|
|
2023-04-01 [0070b66fe] pg_dump: Use only LZ4 frame format for compression
|
|
Author: Tomas Vondra <tomas.vondra@postgresql.org>
|
|
2023-04-05 [84adc8e20] pg_dump: Add support for zstd compression-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Add <application>LZ4</application> and
|
|
<application>Zstandard</application> compression to
|
|
<application>pg_dump</application> (Georgios Kokolatos, Justin
|
|
Pryzby)
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Tomas Vondra <tomas.vondra@postgresql.org>
|
|
2023-04-06 [2820adf77] Support long distance matching for zstd compression
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Allow <application>pg_dump</application> and <link
|
|
linkend="app-pgbasebackup"><application>pg_basebackup</application></link>
|
|
to use <literal>long</literal> mode for compression (Justin Pryzby)
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Michael Paquier <michael@paquier.xyz>
|
|
2022-12-02 [5e73a6048] Switch pg_dump to use compression specifications
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Improve <application>pg_dump</application> to accept a more
|
|
consistent compression syntax (Georgios Kokolatos)
|
|
</para>
|
|
|
|
<para>
|
|
Options like <option>--compress=gzip:5</option>.
|
|
</para>
|
|
</listitem>
|
|
|
|
</itemizedlist>
|
|
|
|
</sect4>
|
|
|
|
</sect3>
|
|
|
|
<sect3 id="release-16-server-apps">
|
|
<title>Server Applications</title>
|
|
|
|
<itemizedlist>
|
|
|
|
<!--
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us> 2023-03-22
|
|
[3e51b278d] Add "-c name=value" switch to initdb.
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Add <link
|
|
linkend="app-initdb"><application>initdb</application></link>
|
|
option to set server variables for the duration of
|
|
<application>initdb</application> and all future server starts
|
|
(Tom Lane)
|
|
</para>
|
|
|
|
<para>
|
|
The option is <option>-c name=value</option>.
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Michael Paquier <michael@paquier.xyz>
|
|
2022-07-13 [08951a7c9] createuser: Add support for more clause types through ne
|
|
Author: Nathan Bossart <nathan@postgresql.org>
|
|
2023-05-21 [2dcd1578c] Rename some createuser options.
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Add options to <link
|
|
linkend="app-createuser"><application>createuser</application></link>
|
|
to control more user options (Shinya Kato)
|
|
</para>
|
|
|
|
<para>
|
|
Specifically, the new options control the valid-until date,
|
|
bypassing of row-level security, and role membership.
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Nathan Bossart <nathan@postgresql.org>
|
|
2023-05-21 [2dcd1578c] Rename some createuser options.
|
|
Author: Nathan Bossart <nathan@postgresql.org>
|
|
2023-05-23 [381d19b3e] Document deprecated createuser option.
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Deprecate <link
|
|
linkend="app-createuser"><application>createuser</application></link>
|
|
option <option>--role</option> (Nathan Bossart)
|
|
</para>
|
|
|
|
<para>
|
|
This option could be easily confused with new
|
|
<application>createuser</application> role membership options,
|
|
so option <option>--member-of</option> has been added with the
|
|
same functionality. The <option>--role</option> option can still
|
|
be used.
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Andrew Dunstan <andrew@dunslane.net>
|
|
2022-07-31 [7781f4e3e] Add - -schema and - -exclude-schema options to vacuumdb.
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Allow control of <link
|
|
linkend="app-vacuumdb"><application>vacuumdb</application></link>
|
|
schema processing (Gilles Darold)
|
|
</para>
|
|
|
|
<para>
|
|
These are controlled by options <option>--schema</option> and
|
|
<option>--exclude-schema</option>.
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
2023-01-06 [a46a7011b] Add options to control whether VACUUM runs vac_update_da
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Use new <link linkend="sql-vacuum"><command>VACUUM</command></link>
|
|
options to improve the performance of <link
|
|
linkend="app-vacuumdb"><application>vacuumdb</application></link>
|
|
(Tom Lane, Nathan Bossart)
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Jeff Davis <jdavis@postgresql.org>
|
|
2023-03-09 [9637badd9] pg_upgrade: copy locale and encoding information to new
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Have <link
|
|
linkend="pgupgrade"><application>pg_upgrade</application></link>
|
|
set the new cluster's locale and encoding (Jeff Davis)
|
|
</para>
|
|
|
|
<para>
|
|
This removes the requirement that the new cluster be created with
|
|
the same locale and encoding settings.
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Peter Eisentraut <peter@eisentraut.org>
|
|
2022-12-16 [746915c68] pg_upgrade: Add - -copy option
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Add <link
|
|
linkend="pgupgrade"><application>pg_upgrade</application></link>
|
|
option to specify the default transfer mode (Peter Eisentraut)
|
|
</para>
|
|
|
|
<para>
|
|
The option is <option>--copy</option>.
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Michael Paquier <michael@paquier.xyz>
|
|
2022-11-30 [d18655cc0] Refactor code parsing compression option values (-Z/- -co
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Improve <link
|
|
linkend="app-pgbasebackup"><application>pg_basebackup</application></link>
|
|
to accept numeric compression options (Georgios Kokolatos,
|
|
Michael Paquier)
|
|
</para>
|
|
|
|
<para>
|
|
Options like <option>--compress=server-5</option> are now supported.
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Robert Haas <rhaas@postgresql.org>
|
|
2023-04-18 [363e8f911] Fix pg_basebackup with in-place tablespaces some more.
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Fix <link
|
|
linkend="app-pgbasebackup"><application>pg_basebackup</application></link>
|
|
to handle tablespaces stored in the <envar>PGDATA</envar> directory
|
|
(Robert Haas)
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Michael Paquier <michael@paquier.xyz>
|
|
2022-12-27 [d497093cb] pg_waldump: Add - -save-fullpage=PATH to save full page i
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Add <link
|
|
linkend="pgwaldump"><application>pg_waldump</application></link>
|
|
option <option>--save-fullpage</option> to dump full page images
|
|
(David Christensen)
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Peter Eisentraut <peter@eisentraut.org>
|
|
2023-03-21 [4c8044c04] pg_waldump: Allow hexadecimal values for -t/- -timeline o
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Allow <link
|
|
linkend="pgwaldump"><application>pg_waldump</application></link>
|
|
options <option>-t</option>/<option>--timeline</option> to accept
|
|
hexadecimal values (Peter Eisentraut)
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Michael Paquier <michael@paquier.xyz>
|
|
2023-02-06 [d07c2948b] Add support for progress reporting to pg_verifybackup
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Add support for progress reporting to <link
|
|
linkend="app-pgverifybackup"><application>pg_verifybackup</application></link>
|
|
(Masahiko Sawada)
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
|
|
2023-02-23 [009eeee74] pg_rewind: Fix determining TLI when server was just prom
|
|
Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
|
|
2023-02-27 [0a0500207] pg_rewind: Remove notice in docs about running CHECKPOIN
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Allow <link
|
|
linkend="app-pgrewind"><application>pg_rewind</application></link>
|
|
to properly track timeline changes (Heikki Linnakangas)
|
|
</para>
|
|
|
|
<para>
|
|
Previously if <application>pg_rewind</application> was run after
|
|
a timeline switch but before a checkpoint was issued, it might
|
|
incorrectly determine that a rewind was unnecessary.
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Daniel Gustafsson <dgustafsson@postgresql.org>
|
|
2022-09-14 [8b60db774] Handle SIGTERM in pg_receivewal and pg_recvlogical
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Have <link
|
|
linkend="app-pgreceivewal"><application>pg_receivewal</application></link>
|
|
and <link
|
|
linkend="app-pgrecvlogical"><application>pg_recvlogical</application></link>
|
|
cleanly exit on <literal>SIGTERM</literal> (Christoph Berg)
|
|
</para>
|
|
|
|
<para>
|
|
This signal is often used by <application>systemd</application>.
|
|
</para>
|
|
</listitem>
|
|
|
|
</itemizedlist>
|
|
|
|
</sect3>
|
|
|
|
<sect3 id="release-16-source-code">
|
|
<title>Source Code</title>
|
|
|
|
<itemizedlist>
|
|
|
|
<!--
|
|
Author: Jeff Davis <jdavis@postgresql.org>
|
|
2023-04-18 [fcb21b3ac] Build ICU support by default.
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Build <acronym>ICU</acronym> support by default (Jeff Davis)
|
|
</para>
|
|
|
|
<para>
|
|
This removes <link linkend="installation">build
|
|
flag</link> <option>--with-icu</option> and adds flag
|
|
<option>--without-icu</option>.
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: John Naylor <john.naylor@postgresql.org>
|
|
2022-08-04 [56f2c7b58] Support SSE2 intrinsics where available
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Add support for SSE2 (Streaming <acronym>SIMD</acronym> Extensions
|
|
2) vector operations on x86-64 architectures (John Naylor)
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: John Naylor <john.naylor@postgresql.org>
|
|
2022-08-29 [82739d4a8] Use ARM Advanced SIMD (NEON) intrinsics where available
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Add support for Advanced <acronym>SIMD</acronym> (Single
|
|
Instruction Multiple Data) (<acronym>NEON</acronym>) instructions
|
|
on <acronym>ARM</acronym> architectures (Nathan Bossart)
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Michael Paquier <michael@paquier.xyz>
|
|
2022-08-28 [36389a060] Enable RandomizedBaseAddress (ASLR) on Windows with MSVC
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Have <systemitem class="osname">Windows</systemitem>
|
|
binaries built with <productname>MSVC</productname> use
|
|
<literal>RandomizedBaseAddress</literal> (<acronym>ASLR</acronym>)
|
|
(Michael Paquier)
|
|
</para>
|
|
|
|
<para>
|
|
This was already enabled on <productname>MinGW</productname> builds.
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Andres Freund <andres@anarazel.de>
|
|
2022-07-17 [089480c07] Default to hidden visibility for extension libraries whe
|
|
Author: Andres Freund <andres@anarazel.de>
|
|
2022-07-17 [8cf64d35e] Mark all symbols exported from extension libraries PGDLL
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Prevent extension libraries from exporting their symbols by default
|
|
(Andres Freund, Tom Lane)
|
|
</para>
|
|
|
|
<para>
|
|
Functions that need to be called from the core backend
|
|
or other extensions must now be explicitly marked
|
|
<literal>PGDLLEXPORT</literal>.
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Michael Paquier <michael@paquier.xyz>
|
|
2022-07-07 [495ed0ef2] Make Windows 10 the minimal runtime requirement for WIN3
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Require <systemitem class="osname">Windows 10</systemitem> or
|
|
newer versions (Michael Paquier, Juan José Santamaría Flecha)
|
|
</para>
|
|
|
|
<para>
|
|
Previously <systemitem class="osname">Windows Vista</systemitem> and
|
|
<systemitem class="osname">Windows XP</systemitem> were supported.
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: John Naylor <john.naylor@postgresql.org>
|
|
2022-09-14 [4c1532763] Bump minimum Perl version to 5.14
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Require <productname>Perl</productname> version 5.14 or later
|
|
(John Naylor)
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: John Naylor <john.naylor@postgresql.org>
|
|
2022-09-09 [b086a47a2] Bump minimum version of Bison to 2.3
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Require <productname>Bison</productname> version 2.3 or later
|
|
(John Naylor)
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: John Naylor <john.naylor@postgresql.org>
|
|
2022-09-09 [8b878bffa] Bump minimum version of Flex to 2.5.35
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Require <productname>Flex</productname> version 2.5.35 or later
|
|
(John Naylor)
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Stephen Frost <sfrost@snowman.net>
|
|
2023-04-13 [f7431bca8] Explicitly require MIT Kerberos for GSSAPI
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Require <acronym>MIT</acronym> Kerberos for
|
|
<acronym>GSSAPI</acronym> support (Stephen Frost)
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Michael Paquier <michael@paquier.xyz>
|
|
2022-07-14 [6203583b7] Remove support for Visual Studio 2013
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Remove support for <productname>Visual Studio 2013</productname>
|
|
(Michael Paquier)
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Thomas Munro <tmunro@postgresql.org>
|
|
2022-07-08 [9db300ce6] Remove HP-UX port.
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Remove support for <systemitem class="osname">HP-UX</systemitem>
|
|
(Thomas Munro)
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Thomas Munro <tmunro@postgresql.org>
|
|
2022-07-08 [0ad5b48e5] Remove HP/Intel Itanium support.
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Remove support for <productname>HP/Intel Itanium</productname>
|
|
(Thomas Munro)
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Thomas Munro <tmunro@postgresql.org>
|
|
2022-07-12 [718aa43a4] Further tidy-up for old CPU architectures.
|
|
Author: Thomas Munro <tmunro@postgresql.org>
|
|
2022-07-12 [14168d3c6] Doc: Acknowledge historically supported CPUs and OSes.
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Remove support for <productname>M68K</productname>,
|
|
<productname>M88K</productname>, <productname>M32R</productname>,
|
|
and <productname>SuperH</productname> <acronym>CPU</acronym>
|
|
architectures (Thomas Munro)
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Michael Paquier <michael@paquier.xyz>
|
|
2023-03-17 [98ae2c84a] libpq: Remove code for SCM credential authentication
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Remove <link linkend="libpq"><application>libpq</application></link>
|
|
support for <acronym>SCM</acronym> credential authentication
|
|
(Michael Paquier)
|
|
</para>
|
|
|
|
<para>
|
|
Backend support for this authentication method was removed in
|
|
<productname>PostgresSQL</productname> 9.1.
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Andres Freund <andres@anarazel.de>
|
|
2022-09-21 [e6927270c] meson: Add initial version of meson based build system
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Add <link
|
|
linkend="install-meson"><application>meson</application></link>
|
|
build system (Andres Freund, Nazir Bilal Yavuz, Peter Eisentraut)
|
|
</para>
|
|
|
|
<para>
|
|
This eventually will replace the <productname>Autoconf</productname>
|
|
and <systemitem class="osname">Windows</systemitem>-based
|
|
<productname>MSVC</productname> build systems.
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Peter Eisentraut <peter@eisentraut.org>
|
|
2022-10-20 [c8e4030d1] Make finding openssl program a configure or meson option
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Allow control of the location of the
|
|
<application>openssl</application> binary used by the build system
|
|
(Peter Eisentraut)
|
|
</para>
|
|
|
|
<para>
|
|
Make finding <application>openssl</application>
|
|
program a <application>configure</application> or
|
|
<application>meson</application> option
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Andres Freund <andres@anarazel.de>
|
|
2022-12-07 [d3b111e32] Add option to specify segment size in blocks
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Add build option to allow testing of small table segment sizes
|
|
(Andres Freund)
|
|
</para>
|
|
|
|
<para>
|
|
The build options are <link
|
|
linkend="configure-option-with-segsize"><option>--with-segsize-blocks</option></link>
|
|
and <option>-Dsegsize_blocks</option>.
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Andrew Dunstan <andrew@dunslane.net>
|
|
2023-01-23 [b90f0b574] Add non-destructive modes to pgindent
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
2023-01-23 [62e1e28bf] Fix pgindent - -show-diff option.
|
|
Author: Andrew Dunstan <andrew@dunslane.net>
|
|
2023-01-24 [124937163] Improve exclude pattern file processing in pgindent
|
|
Author: Andrew Dunstan <andrew@dunslane.net>
|
|
2023-01-27 [a1c4cd6f2] Allow multiple - -excludes options in pgindent
|
|
Author: Andrew Dunstan <andrew@dunslane.net>
|
|
2023-02-08 [068a243b7] pgindent: more ways to find files to indent
|
|
Author: Andrew Dunstan <andrew@dunslane.net>
|
|
2023-02-12 [dab07e8c6] pgindent: filter files for the - -commit option
|
|
Author: Andrew Dunstan <andrew@dunslane.net>
|
|
2023-02-13 [b16259b3c] Remove obsolete pgindent options - -code-base and - -build
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Add <link
|
|
linkend="source"><application>pgindent</application></link> options
|
|
(Andrew Dunstan)
|
|
</para>
|
|
|
|
<para>
|
|
The new options are <option>--show-diff</option>,
|
|
<option>--silent-diff</option>, <option>--commit</option>,
|
|
and <option>--help</option>, and allow multiple
|
|
<option>--exclude</option> options. Also require the typedef file
|
|
to be explicitly specified. Options <option>--code-base</option>
|
|
and <option>--build</option> were also removed.
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
2023-02-12 [4e831f4ce] Import pg_bsd_indent sources.
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Add <link
|
|
linkend="source"><application>pg_bsd_indent</application></link>
|
|
source code to the main tree (Tom Lane)
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Tatsuo Ishii <ishii@postgresql.org>
|
|
2022-10-19 [d1e2a380c] Enhance make_ctags and make_etags.
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Improve <application>make_ctags</application> and
|
|
<application>make_etags</application> (Yugo Nagata)
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Peter Eisentraut <peter@eisentraut.org>
|
|
2023-03-28 [90189eefc] Save a few bytes in pg_attribute
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Adjust <link
|
|
linkend="catalog-pg-attribute"><structname>pg_attribute</structname></link>
|
|
columns for efficiency (Peter Eisentraut)
|
|
</para>
|
|
</listitem>
|
|
|
|
</itemizedlist>
|
|
|
|
</sect3>
|
|
|
|
<sect3 id="release-16-modules">
|
|
<title>Additional Modules</title>
|
|
|
|
<itemizedlist>
|
|
|
|
<!--
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
2022-09-02 [ff720a597] Fix planner to consider matches to boolean columns in ex
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Improve use of extension-based indexes on boolean columns (Zongliang
|
|
Quan, Tom Lane)
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
2023-04-07 [a290378a3] Add support for Daitch-Mokotoff Soundex in contrib/fuzzy
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Add support for Daitch-Mokotoff Soundex to <link
|
|
linkend="fuzzystrmatch"><application>fuzzystrmatch</application></link>
|
|
(Dag Lem)
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Michael Paquier <michael@paquier.xyz>
|
|
2022-07-06 [d4bfe4128] autho_explain: Add GUC to log query parameters
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Allow <link
|
|
linkend="auto-explain"><application>auto_explain</application></link>
|
|
to log values passed to parameterized statements (Dagfinn Ilmari
|
|
Mannsåker)
|
|
</para>
|
|
|
|
<para>
|
|
This affects queries using server-side <link
|
|
linkend="sql-prepare"><command>PREPARE</command></link>/<link
|
|
linkend="sql-execute"><command>EXECUTE</command></link>
|
|
and client-side parse/bind. Logging is controlled by <link
|
|
linkend="auto-explain-configuration-parameters-log-parameter-max-length"><literal>auto_explain.log_parameter_max_length</literal></link>;
|
|
by default query parameters will be logged with no length
|
|
restriction.
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Michael Paquier <michael@paquier.xyz>
|
|
2023-01-26 [9d2d9728b] Make auto_explain print the query identifier in verbose
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Have <link
|
|
linkend="auto-explain"><application>auto_explain</application></link>'s
|
|
<option>log_verbose</option> mode honor the value of <link
|
|
linkend="guc-compute-query-id"><varname>compute_query_id</varname></link>
|
|
(Atsushi Torikoshi)
|
|
</para>
|
|
|
|
<para>
|
|
Previously even if
|
|
<varname>compute_query_id</varname> was enabled, <link
|
|
linkend="auto-explain-configuration-parameters-log-verbose"><option>log_verbose</option></link>
|
|
was not showing the query identifier.
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Andrew Dunstan <andrew@dunslane.net>
|
|
2023-01-06 [b1665bf01] Allow hyphens in ltree labels
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Change the maximum length of <link
|
|
linkend="ltree"><application>ltree</application></link> labels
|
|
from 256 to 1000 and allow hyphens (Garen Torikian)
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Michael Paquier <michael@paquier.xyz>
|
|
2023-03-08 [daa8365a9] Reflect normalization of query strings for utilities in
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Have <link
|
|
linkend="pgstatstatements"><structname>pg_stat_statements</structname></link>
|
|
normalize constants used in utility commands (Michael Paquier)
|
|
</para>
|
|
|
|
<para>
|
|
Previously constants appeared instead of placeholders, e.g.,
|
|
<literal>$1</literal>.
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Michael Paquier <michael@paquier.xyz>
|
|
2023-01-23 [c31cf1c03] pg_walinspect: Add pg_get_wal_fpi_info()
|
|
Author: Michael Paquier <michael@paquier.xyz>
|
|
2023-03-10 [9ecb134a9] pg_walinspect: pg_get_wal_fpi_info() -> pg_get_wal_block
|
|
Author: Peter Geoghegan <pg@bowt.ie>
|
|
2023-03-30 [122376f02] Show record information in pg_get_wal_block_info.
|
|
Author: Peter Geoghegan <pg@bowt.ie>
|
|
2023-03-31 [df4f3ab51] Add show_data option to pg_get_wal_block_info.
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Add <link
|
|
linkend="pgwalinspect"><application>pg_walinspect</application></link>
|
|
function <link
|
|
linkend="pgwalinspect-funcs-pg-get-wal-block-info"><function>pg_get_wal_block_info()</function></link>
|
|
to report <acronym>WAL</acronym> block information (Michael Paquier,
|
|
Melanie Plageman, Bharath Rupireddy)
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Michael Paquier <michael@paquier.xyz>
|
|
2023-03-14 [5c1b66280] Rework design of functions in pg_walinspect
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Change how <link
|
|
linkend="pgwalinspect"><application>pg_walinspect</application></link>
|
|
functions <link
|
|
linkend="pgwalinspect-funcs-pg-get-wal-records-info"><function>pg_get_wal_records_info()</function></link>
|
|
and <link
|
|
linkend="pgwalinspect-funcs-pg-get-wal-stats"><function>pg_get_wal_stats()</function></link>
|
|
interpret ending <acronym>LSN</acronym>s (Bharath Rupireddy)
|
|
</para>
|
|
|
|
<para>
|
|
Previously ending <acronym>LSN</acronym>s which represent
|
|
nonexistent <acronym>WAL</acronym> locations would generate
|
|
an error, while they will now be interpreted as the end of the
|
|
<acronym>WAL</acronym>.
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Peter Geoghegan <pg@bowt.ie>
|
|
2023-04-07 [7d8219a44] Show more detail in heapam rmgr descriptions.
|
|
Author: Peter Geoghegan <pg@bowt.ie>
|
|
2023-04-07 [1c453cfd8] Show more detail in nbtree rmgr descriptions.
|
|
Author: Peter Geoghegan <pg@bowt.ie>
|
|
2023-04-11 [96149a180] Fix Heap rmgr's desc output for infobits arrays.
|
|
Author: Peter Geoghegan <pg@bowt.ie>
|
|
2023-04-19 [50547a3fa] Fix wal_consistency_checking enhanced desc output.
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Add detailed descriptions of <acronym>WAL</acronym> records in <link
|
|
linkend="pgwalinspect"><application>pg_walinspect</application></link>
|
|
and <link
|
|
linkend="pgwaldump"><application>pg_waldump</application></link>
|
|
(Melanie Plageman, Peter Geoghegan)
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
2023-01-02 [1fd3dd204] Add bt_multi_page_stats() function to contrib/pageinspec
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Add <link
|
|
linkend="pageinspect"><application>pageinspect</application></link>
|
|
function <link
|
|
linkend="pageinspect-b-tree-funcs"><function>bt_multi_page_stats()</function></link>
|
|
to report statistics on multiple pages (Hamid Akhtar)
|
|
</para>
|
|
|
|
<para>
|
|
This is similar to <function>bt_page_stats()</function> except it
|
|
can report on a range of pages.
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
2023-01-02 [1fd3dd204] Add bt_multi_page_stats() function to contrib/pageinspec
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Add empty range output column to <link
|
|
linkend="pageinspect"><application>pageinspect</application></link>
|
|
function <link
|
|
linkend="pageinspect-brin-funcs"><function>brin_page_items()</function></link>
|
|
(Tomas Vondra)
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Michael Paquier <michael@paquier.xyz>
|
|
2023-02-17 [35739b87d] Redesign archive modules
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Redesign archive modules to be more flexible (Nathan Bossart)
|
|
</para>
|
|
|
|
<para>
|
|
Initialization changes will require modules written for older
|
|
versions of Postgres to be updated.
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Michael Paquier <michael@paquier.xyz>
|
|
2023-04-06 [1d477a907] Fix row tracking in pg_stat_statements with extended que
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Correct inaccurate <link
|
|
linkend="pgstatstatements"><application>pg_stat_statements</application></link>
|
|
row tracking extended query protocol statements (Sami Imseih)
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
2023-04-07 [f3fa31327] Add pg_buffercache_usage_counts() to contrib/pg_bufferca
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Add <link
|
|
linkend="pgbuffercache"><application>pg_buffercache</application></link>
|
|
function <function>pg_buffercache_usage_counts()</function> to
|
|
report usage totals (Nathan Bossart)
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Andres Freund <andres@anarazel.de>
|
|
2022-10-13 [2589434ae] pg_buffercache: Add pg_buffercache_summary()
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Add <link
|
|
linkend="pgbuffercache"><application>pg_buffercache</application></link>
|
|
function <function>pg_buffercache_summary()</function> to report
|
|
summarized buffer statistics (Melih Mutlu)
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
2023-03-20 [72a5b1fc8] Add @extschema:name@ and no_relocate options to extensio
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Allow the schemas of required extensions to be
|
|
referenced in extension scripts using the new syntax
|
|
<literal>@extschema:referenced_extension_name@</literal>
|
|
(Regina Obe)
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
2023-03-20 [72a5b1fc8] Add @extschema:name@ and no_relocate options to extensio
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Allow required extensions to
|
|
be marked as non-relocatable using <link
|
|
linkend="extend-extensions-files-no-relocate"><literal>no_relocate</literal></link>
|
|
(Regina Obe)
|
|
</para>
|
|
|
|
<para>
|
|
This allows <literal>@extschema:referenced_extension_name@</literal>
|
|
to be treated as a constant for the lifetime of the extension.
|
|
</para>
|
|
</listitem>
|
|
|
|
</itemizedlist>
|
|
|
|
<sect4 id="release-16-pgfdw">
|
|
<title><link linkend="postgres-fdw"><application>postgres_fdw</application></link></title>
|
|
|
|
<itemizedlist>
|
|
|
|
<!--
|
|
Author: Etsuro Fujita <efujita@postgresql.org>
|
|
2023-04-06 [983ec2300] postgres_fdw: Add support for parallel abort.
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Allow <application>postgres_fdw</application> to do aborts in
|
|
parallel (Etsuro Fujita)
|
|
</para>
|
|
|
|
<para>
|
|
This is enabled with
|
|
<application>postgres_fdw</application> option <link
|
|
linkend="postgres-fdw-options-transaction-management"><option>parallel_abort</option></link>.
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Tomas Vondra <tomas.vondra@postgresql.org>
|
|
2022-12-30 [8ad51b5f4] Sample postgres_fdw tables remotely during ANALYZE
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Make <link linkend="sql-analyze"><command>ANALYZE</command></link>
|
|
on foreign <application>postgres_fdw</application> tables more
|
|
efficient (Tomas Vondra)
|
|
</para>
|
|
|
|
<para>
|
|
The <application>postgres_fdw</application> option <link
|
|
linkend="postgres-fdw-options-cost-estimation"><option>analyze_sampling</option></link>
|
|
controls the sampling method.
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
2022-07-17 [31e5b5029] postgres_fdw: be more wary about shippability of reg* co
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Restrict shipment of <link
|
|
linkend="datatype-oid"><type>reg</type></link>* type constants
|
|
in <application>postgres_fdw</application> to those referencing
|
|
built-in objects or extensions marked as shippable (Tom Lane)
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Andres Freund <andres@anarazel.de>
|
|
2023-01-23 [e4602483e] dblink, postgres_fdw: Handle interrupts during connectio
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Have <application>postgres_fdw</application> and <link
|
|
linkend="dblink"><application>dblink</application></link> handle
|
|
interrupts during connection establishment (Andres Freund)
|
|
</para>
|
|
</listitem>
|
|
|
|
</itemizedlist>
|
|
|
|
</sect4>
|
|
|
|
</sect3>
|
|
|
|
</sect2>
|
|
|
|
<sect2 id="release-16-acknowledgements">
|
|
<title>Acknowledgments</title>
|
|
|
|
<para>
|
|
The following individuals (in alphabetical order) have contributed
|
|
to this release as patch authors, committers, reviewers, testers,
|
|
or reporters of issues.
|
|
</para>
|
|
|
|
<simplelist>
|
|
<member>Abhijit Menon-Sen</member>
|
|
<member>Adam Mackler</member>
|
|
<member>Adrian Klaver</member>
|
|
<member>Ahsan Hadi</member>
|
|
<member>Ajin Cherian</member>
|
|
<member>Ajit Awekar</member>
|
|
<member>Alan Hodgson</member>
|
|
<member>Aleksander Alekseev</member>
|
|
<member>Alex Denman</member>
|
|
<member>Alex Kozhemyakin</member>
|
|
<member>Alexander Korolev</member>
|
|
<member>Alexander Korotkov</member>
|
|
<member>Alexander Lakhin</member>
|
|
<member>Alexander Pyhalov</member>
|
|
<member>Alexey Borzov</member>
|
|
<member>Alexey Ermakov</member>
|
|
<member>Alexey Makhmutov</member>
|
|
<member>Álvaro Herrera</member>
|
|
<member>Amit Kapila</member>
|
|
<member>Amit Khandekar</member>
|
|
<member>Amit Langote</member>
|
|
<member>Amul Sul</member>
|
|
<member>Anastasia Lubennikova</member>
|
|
<member>Anban Company</member>
|
|
<member>Andreas Dijkman</member>
|
|
<member>Andreas Karlsson</member>
|
|
<member>Andreas Scherbaum</member>
|
|
<member>Andrei Zubkov</member>
|
|
<member>Andres Freund</member>
|
|
<member>Andrew Alsup</member>
|
|
<member>Andrew Bille</member>
|
|
<member>Andrew Dunstan</member>
|
|
<member>Andrew Gierth</member>
|
|
<member>Andrew Kesper</member>
|
|
<member>Andrey Borodin</member>
|
|
<member>Andrey Lepikhov</member>
|
|
<member>Andrey Sokolov</member>
|
|
<member>Ankit Kumar Pandey</member>
|
|
<member>Ante Kresic</member>
|
|
<member>Anton Melnikov</member>
|
|
<member>Anton Sidyakin</member>
|
|
<member>Anton Voloshin</member>
|
|
<member>Antonin Houska</member>
|
|
<member>Arne Roland</member>
|
|
<member>Artem Anisimov</member>
|
|
<member>Arthur Zakirov</member>
|
|
<member>Ashutosh Bapat</member>
|
|
<member>Ashutosh Sharma</member>
|
|
<member>Asim Praveen</member>
|
|
<member>Atsushi Torikoshi</member>
|
|
<member>Ayaki Tachikake</member>
|
|
<member>Balazs Szilfai</member>
|
|
<member>Benoit Lobréau</member>
|
|
<member>Bernd Helmle</member>
|
|
<member>Bertrand Drouvot</member>
|
|
<member>Bharath Rupireddy</member>
|
|
<member>Bilva Sanaba</member>
|
|
<member>Bob Krier</member>
|
|
<member>Boris Zentner</member>
|
|
<member>Brad Nicholson</member>
|
|
<member>Brar Piening</member>
|
|
<member>Bruce Momjian</member>
|
|
<member>Bruno da Silva</member>
|
|
<member>Carl Sopchak</member>
|
|
<member>Cary Huang</member>
|
|
<member>Changhong Fei</member>
|
|
<member>Chris Travers</member>
|
|
<member>Christoph Berg</member>
|
|
<member>Christophe Pettus</member>
|
|
<member>Corey Huinker</member>
|
|
<member>Craig Ringer</member>
|
|
<member>Curt Kolovson</member>
|
|
<member>Dag Lem</member>
|
|
<member>Dagfinn Ilmari Mannsåker</member>
|
|
<member>Daniel Gustafsson</member>
|
|
<member>Daniel Vérité</member>
|
|
<member>Daniel Watzinger</member>
|
|
<member>Daniel Westermann</member>
|
|
<member>Daniele Varrazzo</member>
|
|
<member>Daniil Anisimov</member>
|
|
<member>Danny Shemesh</member>
|
|
<member>Dave Page</member>
|
|
<member>David Christensen</member>
|
|
<member>David G. Johnston</member>
|
|
<member>David Geier</member>
|
|
<member>David Gilman</member>
|
|
<member>David Kimura</member>
|
|
<member>David Rowley</member>
|
|
<member>David Steele</member>
|
|
<member>David Turon</member>
|
|
<member>David Zhang</member>
|
|
<member>Davinder Singh</member>
|
|
<member>Dean Rasheed</member>
|
|
<member>Denis Laxalde</member>
|
|
<member>Dilip Kumar</member>
|
|
<member>Dimos Stamatakis</member>
|
|
<member>Dmitriy Kuzmin</member>
|
|
<member>Dmitry Astapov</member>
|
|
<member>Dmitry Dolgov</member>
|
|
<member>Dmitry Koval</member>
|
|
<member>Dong Wook Lee</member>
|
|
<member>Dongming Liu</member>
|
|
<member>Drew DeVault</member>
|
|
<member>Duncan Sands</member>
|
|
<member>Ed Maste</member>
|
|
<member>Egor Chindyaskin</member>
|
|
<member>Ekaterina Kiryanova</member>
|
|
<member>Elena Indrupskaya</member>
|
|
<member>Emmanuel Quincerot</member>
|
|
<member>Eric Mutta</member>
|
|
<member>Erik Rijkers</member>
|
|
<member>Erki Eessaar</member>
|
|
<member>Erwin Brandstetter</member>
|
|
<member>Etsuro Fujita</member>
|
|
<member>Eugeny Zhuzhnev</member>
|
|
<member>Euler Taveira</member>
|
|
<member>Evan Jones</member>
|
|
<member>Evgeny Morozov</member>
|
|
<member>Fabrízio de Royes Mello</member>
|
|
<member>Farias de Oliveira</member>
|
|
<member>Florin Irion</member>
|
|
<member>Franz-Josef Färber</member>
|
|
<member>Garen Torikian</member>
|
|
<member>Georgios Kokolatos</member>
|
|
<member>Gilles Darold</member>
|
|
<member>Greg Stark</member>
|
|
<member>Guillaume Lelarge</member>
|
|
<member>Gunnar Bluth</member>
|
|
<member>Gunnar Morling</member>
|
|
<member>Gurjeet Singh</member>
|
|
<member>Haiyang Wang</member>
|
|
<member>Haiying Tang</member>
|
|
<member>Hamid Akhtar</member>
|
|
<member>Hans Buschmann</member>
|
|
<member>Hao Wu</member>
|
|
<member>Hayato Kuroda</member>
|
|
<member>Heath Lord</member>
|
|
<member>Heikki Linnakangas</member>
|
|
<member>Himanshu Upadhyaya</member>
|
|
<member>Hisahiro Kauchi</member>
|
|
<member>Hongyu Song</member>
|
|
<member>Hubert Lubaczewski</member>
|
|
<member>Hung Nguyen</member>
|
|
<member>Ian Barwick</member>
|
|
<member>Ibrar Ahmed</member>
|
|
<member>Ilya Gladyshev</member>
|
|
<member>Ilya Nenashev</member>
|
|
<member>Isaac Morland</member>
|
|
<member>Israel Barth Rubio</member>
|
|
<member>Jacob Champion</member>
|
|
<member>Jacob Speidel</member>
|
|
<member>Jaime Casanova</member>
|
|
<member>Jakub Wartak</member>
|
|
<member>James Coleman</member>
|
|
<member>James Inform</member>
|
|
<member>James Vanns</member>
|
|
<member>Jan Wieck</member>
|
|
<member>Japin Li</member>
|
|
<member>Jeevan Ladhe</member>
|
|
<member>Jeff Davis</member>
|
|
<member>Jeff Janes</member>
|
|
<member>Jehan-Guillaume de Rorthais</member>
|
|
<member>Jelte Fennema</member>
|
|
<member>Jian He</member>
|
|
<member>Jim Jones</member>
|
|
<member>Jinbao Chen</member>
|
|
<member>Joe Conway</member>
|
|
<member>Joel Jacobson</member>
|
|
<member>John Naylor</member>
|
|
<member>Jonathan Katz</member>
|
|
<member>Josef Simanek</member>
|
|
<member>Joseph Koshakow</member>
|
|
<member>Juan José Santamaría Flecha</member>
|
|
<member>Julien Rouhaud</member>
|
|
<member>Julien Roze</member>
|
|
<member>Junwang Zhao</member>
|
|
<member>Justin Pryzby</member>
|
|
<member>Justin Zhang</member>
|
|
<member>Karina Litskevich</member>
|
|
<member>Karl O. Pinc</member>
|
|
<member>Keisuke Kuroda</member>
|
|
<member>Ken Kato</member>
|
|
<member>Kevin McKibbin</member>
|
|
<member>Kieran McCusker</member>
|
|
<member>Kirk Wolak</member>
|
|
<member>Konstantin Knizhnik</member>
|
|
<member>Koshi Shibagaki</member>
|
|
<member>Kotaro Kawamoto</member>
|
|
<member>Kui Liu</member>
|
|
<member>Kyotaro Horiguchi</member>
|
|
<member>Lakshmi Narayanan Sreethar</member>
|
|
<member>Laurence Parry</member>
|
|
<member>Laurenz Albe</member>
|
|
<member>Luca Ferrari</member>
|
|
<member>Lukas Fittl</member>
|
|
<member>Maciek Sakrejda</member>
|
|
<member>Magnus Hagander</member>
|
|
<member>Maja Zaloznik</member>
|
|
<member>Marcel Hofstetter</member>
|
|
<member>Marina Polyakova</member>
|
|
<member>Mark Dilger</member>
|
|
<member>Marko Tiikkaja</member>
|
|
<member>Markus Winand</member>
|
|
<member>Martijn van Oosterhout</member>
|
|
<member>Martin Jurca</member>
|
|
<member>Martin Kalcher</member>
|
|
<member>Mary Xu</member>
|
|
<member>Masahiko Sawada</member>
|
|
<member>Masahiro Ikeda</member>
|
|
<member>Masao Fujii</member>
|
|
<member>Mason Sharp</member>
|
|
<member>Matheus Alcantara</member>
|
|
<member>Mats Kindahl</member>
|
|
<member>Matthias van de Meent</member>
|
|
<member>Matthijs van der Vleuten</member>
|
|
<member>Maxim Orlov</member>
|
|
<member>Maxim Yablokov</member>
|
|
<member>Mehmet Emin Karakas</member>
|
|
<member>Melanie Plageman</member>
|
|
<member>Melih Mutlu</member>
|
|
<member>Micah Gates</member>
|
|
<member>Michael Banck</member>
|
|
<member>Michael Paquier</member>
|
|
<member>Michail Nikolaev</member>
|
|
<member>Michel Pelletier</member>
|
|
<member>Mike Oh</member>
|
|
<member>Mikhail Gribkov</member>
|
|
<member>Mingli Zhang</member>
|
|
<member>Miroslav Bendik</member>
|
|
<member>Mitsuru Hinata</member>
|
|
<member>Myo Wai Thant</member>
|
|
<member>Naeem Akhter</member>
|
|
<member>Naoki Okano</member>
|
|
<member>Nathan Bossart</member>
|
|
<member>Nazir Bilal Yavuz</member>
|
|
<member>Neha Sharma</member>
|
|
<member>Nick Babadzhanian</member>
|
|
<member>Nicola Contu</member>
|
|
<member>Nikhil Shetty</member>
|
|
<member>Nikita Glukhov</member>
|
|
<member>Nikolay Samokhvalov</member>
|
|
<member>Nikolay Shaplov</member>
|
|
<member>Nishant Sharma</member>
|
|
<member>Nitin Jadhav</member>
|
|
<member>Noah Misch</member>
|
|
<member>Noboru Saito</member>
|
|
<member>Noriyoshi Shinoda</member>
|
|
<member>Nuko Yokohama</member>
|
|
<member>Oleg Bartunov</member>
|
|
<member>Oleg Tselebrovskiy</member>
|
|
<member>Olly Betts</member>
|
|
<member>Onder Kalaci</member>
|
|
<member>Onur Tirtir</member>
|
|
<member>Pablo Federico</member>
|
|
<member>Palle Girgensohn</member>
|
|
<member>Paul Guo</member>
|
|
<member>Paul Jungwirth</member>
|
|
<member>Paul Ramsey</member>
|
|
<member>Pavel Borisov</member>
|
|
<member>Pavel Kulakov</member>
|
|
<member>Pavel Luzanov</member>
|
|
<member>Pavel Stehule</member>
|
|
<member>Peifeng Qiu</member>
|
|
<member>Peter Eisentraut</member>
|
|
<member>Peter Geoghegan</member>
|
|
<member>Peter Smith</member>
|
|
<member>Phil Florent</member>
|
|
<member>Philippe Godfrin</member>
|
|
<member>Platon Pronko</member>
|
|
<member>Przemyslaw Sztoch</member>
|
|
<member>Rachel Heaton</member>
|
|
<member>Ranier Vilela</member>
|
|
<member>Regina Obe</member>
|
|
<member>Reid Thompson</member>
|
|
<member>Reiner Peterke</member>
|
|
<member>Richard Guo</member>
|
|
<member>Riivo Kolka</member>
|
|
<member>Rishu Bagga</member>
|
|
<member>Robert Haas</member>
|
|
<member>Robert Sjöblom</member>
|
|
<member>Robert Treat</member>
|
|
<member>Roberto Mello</member>
|
|
<member>Robins Tharakan</member>
|
|
<member>Roman Zharkov</member>
|
|
<member>Ronan Dunklau</member>
|
|
<member>Rushabh Lathia</member>
|
|
<member>Ryo Matsumura</member>
|
|
<member>Samay Sharma</member>
|
|
<member>Sami Imseih</member>
|
|
<member>Sandeep Thakkar</member>
|
|
<member>Sandro Santilli</member>
|
|
<member>Sebastien Flaesch</member>
|
|
<member>Sébastien Lardière</member>
|
|
<member>Sehrope Sarkuni</member>
|
|
<member>Sergey Belyashov</member>
|
|
<member>Sergey Pankov</member>
|
|
<member>Sergey Shinderuk</member>
|
|
<member>Shi Yu</member>
|
|
<member>Shinya Kato</member>
|
|
<member>Sho Kato</member>
|
|
<member>Shruthi Gowda</member>
|
|
<member>Shveta Mallik</member>
|
|
<member>Simon Riggs</member>
|
|
<member>Sindy Senorita</member>
|
|
<member>Sirisha Chamarthi</member>
|
|
<member>Sravan Kumar</member>
|
|
<member>Stéphane Tachoires</member>
|
|
<member>Stephen Frost</member>
|
|
<member>Steve Chavez</member>
|
|
<member>Stone Tickle</member>
|
|
<member>Sven Klemm</member>
|
|
<member>Takamichi Osumi</member>
|
|
<member>Takeshi Ideriha</member>
|
|
<member>Tatsuhiro Nakamori</member>
|
|
<member>Tatsuo Ishii</member>
|
|
<member>Teja Mupparti</member>
|
|
<member>Tender Wang</member>
|
|
<member>Teodor Sigaev</member>
|
|
<member>Thiago Nunes</member>
|
|
<member>Thom Brown</member>
|
|
<member>Thomas Habets</member>
|
|
<member>Thomas Mc Kay</member>
|
|
<member>Thomas Munro</member>
|
|
<member>Tim Carey-Smith</member>
|
|
<member>Tim Field</member>
|
|
<member>Timo Stolz</member>
|
|
<member>Tom Lane</member>
|
|
<member>Tomas Vondra</member>
|
|
<member>Tor Erik Linnerud</member>
|
|
<member>Torsten Förtsch</member>
|
|
<member>Tristan Partin</member>
|
|
<member>Troy Frericks</member>
|
|
<member>Tushar Ahuja</member>
|
|
<member>Valerie Woolard</member>
|
|
<member>Vibhor Kumar</member>
|
|
<member>Victor Spirin</member>
|
|
<member>Victoria Shepard</member>
|
|
<member>Vignesh C</member>
|
|
<member>Vik Fearing</member>
|
|
<member>Vitaly Burovoy</member>
|
|
<member>Vitaly Davydov</member>
|
|
<member>Wang Wei</member>
|
|
<member>Wenjing Zeng</member>
|
|
<member>Whale Song</member>
|
|
<member>Will Mortensen</member>
|
|
<member>Wolfgang Walther</member>
|
|
<member>Xin Wen</member>
|
|
<member>Xing Guo</member>
|
|
<member>Xingwang Xu</member>
|
|
<member>XueJing Zhao</member>
|
|
<member>Yanliang Lei</member>
|
|
<member>Youmiu Mo</member>
|
|
<member>Yugo Nagata</member>
|
|
<member>Yura Sokolov</member>
|
|
<member>Yuta Katsuragi</member>
|
|
<member>Zhen Mingyang</member>
|
|
<member>Zheng Li</member>
|
|
<member>Zhihong Yu</member>
|
|
<member>Zhijie Hou</member>
|
|
<member>Zongliang Quan</member>
|
|
<member>Zuming Jiang</member>
|
|
</simplelist>
|
|
</sect2>
|
|
|
|
</sect1>
|