mirror of
https://github.com/postgres/postgres.git
synced 2026-01-05 23:38:41 +03:00
5972 lines
194 KiB
Plaintext
5972 lines
194 KiB
Plaintext
<!-- doc/src/sgml/release-18.sgml -->
|
|
<!-- See header comment in release.sgml about typical markup -->
|
|
|
|
<sect1 id="release-18-1">
|
|
<title>Release 18.1</title>
|
|
|
|
<formalpara>
|
|
<title>Release date:</title>
|
|
<para>2025-11-13</para>
|
|
</formalpara>
|
|
|
|
<para>
|
|
This release contains a variety of fixes from 18.0.
|
|
For information about new features in major release 18, see
|
|
<xref linkend="release-18"/>.
|
|
</para>
|
|
|
|
<sect2 id="release-18-1-migration">
|
|
<title>Migration to Version 18.1</title>
|
|
|
|
<para>
|
|
A dump/restore is not required for those running 18.X.
|
|
</para>
|
|
</sect2>
|
|
|
|
<sect2 id="release-18-1-changes">
|
|
<title>Changes</title>
|
|
|
|
<itemizedlist>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Nathan Bossart <nathan@postgresql.org>
|
|
Branch: master [5e4fcbe53] 2025-11-10 09:00:00 -0600
|
|
Branch: REL_18_STABLE [00eb646ea] 2025-11-10 09:00:00 -0600
|
|
Branch: REL_17_STABLE [e2fb3dfa8] 2025-11-10 09:00:00 -0600
|
|
Branch: REL_16_STABLE [d20abb587] 2025-11-10 09:00:00 -0600
|
|
Branch: REL_15_STABLE [2393d374a] 2025-11-10 09:00:00 -0600
|
|
Branch: REL_14_STABLE [95cce5669] 2025-11-10 09:00:00 -0600
|
|
Branch: REL_13_STABLE [8a2530ebc] 2025-11-10 09:00:00 -0600
|
|
-->
|
|
<para>
|
|
Check for <literal>CREATE</literal> privileges on the schema
|
|
in <command>CREATE STATISTICS</command> (Jelte Fennema-Nio)
|
|
<ulink url="&commit_baseurl;00eb646ea">§</ulink>
|
|
</para>
|
|
|
|
<para>
|
|
This omission allowed table owners to create statistics in any
|
|
schema, potentially leading to unexpected naming conflicts.
|
|
</para>
|
|
|
|
<para>
|
|
The <productname>PostgreSQL</productname> Project thanks
|
|
Jelte Fennema-Nio for reporting this problem.
|
|
(CVE-2025-12817)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Jacob Champion <jchampion@postgresql.org>
|
|
Branch: master [600086f47] 2025-11-10 06:20:33 -0800
|
|
Branch: REL_18_STABLE [7eb8fcad8] 2025-11-10 06:03:01 -0800
|
|
Branch: REL_17_STABLE [f5999f018] 2025-11-10 06:03:03 -0800
|
|
Branch: REL_16_STABLE [585fd9b3c] 2025-11-10 06:03:04 -0800
|
|
Branch: REL_15_STABLE [91421565f] 2025-11-10 06:03:05 -0800
|
|
Branch: REL_14_STABLE [96d2c7e96] 2025-11-10 06:03:05 -0800
|
|
Branch: REL_13_STABLE [d6f0c0d6d] 2025-11-10 06:03:06 -0800
|
|
-->
|
|
<para>
|
|
Avoid integer overflow in allocation-size calculations
|
|
within <application>libpq</application> (Jacob Champion)
|
|
<ulink url="&commit_baseurl;7eb8fcad8">§</ulink>
|
|
</para>
|
|
|
|
<para>
|
|
Several places in <application>libpq</application> were not
|
|
sufficiently careful about computing the required size of a memory
|
|
allocation. Sufficiently large inputs could cause integer overflow,
|
|
resulting in an undersized buffer, which would then lead to writing
|
|
past the end of the buffer.
|
|
</para>
|
|
|
|
<para>
|
|
The <productname>PostgreSQL</productname> Project thanks Aleksey
|
|
Solovev of Positive Technologies for reporting this problem.
|
|
(CVE-2025-12818)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Amit Langote <amitlan@postgresql.org>
|
|
Branch: master [ef5e60a9d] 2025-10-09 01:07:59 -0400
|
|
Branch: REL_18_STABLE [dc9125111] 2025-10-09 01:07:52 -0400
|
|
Branch: REL_17_STABLE [09f86a42f] 2025-10-09 01:07:36 -0400
|
|
Author: Peter Eisentraut <peter@eisentraut.org>
|
|
Branch: master [c09a06918] 2025-11-04 12:25:04 +0100
|
|
Branch: REL_18_STABLE [1baae827e] 2025-11-04 12:25:14 +0100
|
|
Branch: REL_17_STABLE [1e6dfdaa0] 2025-11-04 12:25:20 +0100
|
|
-->
|
|
<para>
|
|
Prevent <quote>unrecognized node type</quote> errors when a SQL/JSON
|
|
function such as <function>JSON_VALUE</function> has
|
|
a <literal>DEFAULT</literal> clause containing
|
|
a <literal>COLLATE</literal> expression (Jian He)
|
|
<ulink url="&commit_baseurl;dc9125111">§</ulink>
|
|
<ulink url="&commit_baseurl;1baae827e">§</ulink>
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Richard Guo <rguo@postgresql.org>
|
|
Branch: master [18d261409] 2025-10-21 12:35:36 +0900
|
|
Branch: REL_18_STABLE [40c242830] 2025-10-21 12:38:16 +0900
|
|
Branch: REL_18_STABLE [ee49f2cf4] 2025-10-21 14:12:13 +0900
|
|
-->
|
|
<para>
|
|
Avoid incorrect optimization of
|
|
variable-free <literal>HAVING</literal> clauses with grouping sets
|
|
(Richard Guo)
|
|
<ulink url="&commit_baseurl;40c242830">§</ulink>
|
|
<ulink url="&commit_baseurl;ee49f2cf4">§</ulink>
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Richard Guo <rguo@postgresql.org>
|
|
Branch: master [257ee7834] 2025-10-30 11:58:45 +0900
|
|
Branch: REL_18_STABLE [ef6168baf] 2025-10-30 12:03:15 +0900
|
|
-->
|
|
<para>
|
|
Do not use parallelism in hash right semi joins (Richard Guo)
|
|
<ulink url="&commit_baseurl;ef6168baf">§</ulink>
|
|
</para>
|
|
|
|
<para>
|
|
The case does not work reliably due to a race condition in updating
|
|
the join's shared hash table.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Richard Guo <rguo@postgresql.org>
|
|
Branch: master [c1777f2d6] 2025-11-05 18:09:21 +0900
|
|
Branch: REL_18_STABLE [500f64636] 2025-11-05 18:15:02 +0900
|
|
-->
|
|
<para>
|
|
Avoid possible division-by-zero when creating ordered-append plans
|
|
(Richard Guo)
|
|
<ulink url="&commit_baseurl;500f64636">§</ulink>
|
|
</para>
|
|
|
|
<para>
|
|
This mistake could result in incorrect selection of the cheapest
|
|
path, or in an assertion failure in debug builds.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Peter Eisentraut <peter@eisentraut.org>
|
|
Branch: master [35e53b684] 2025-10-28 10:07:29 +0100
|
|
Branch: REL_18_STABLE [74197bdc8] 2025-10-28 10:11:35 +0100
|
|
-->
|
|
<para>
|
|
Fix planner failure with index types that can do ordered access but
|
|
not index-only scans (Maxime Schoemans)
|
|
<ulink url="&commit_baseurl;74197bdc8">§</ulink>
|
|
</para>
|
|
|
|
<para>
|
|
This oversight resulted in errors like <quote>no data returned for
|
|
index-only scan</quote>. The case does not arise with any in-core
|
|
index type, but some extensions encountered the problem.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Peter Geoghegan <pg@bowt.ie>
|
|
Branch: master [843e50208] 2025-10-10 14:52:25 -0400
|
|
Branch: REL_18_STABLE [61de81a49] 2025-10-10 14:52:23 -0400
|
|
Branch: REL_17_STABLE [ae15cebc2] 2025-10-10 14:52:21 -0400
|
|
Branch: REL_16_STABLE [c160fd469] 2025-10-10 14:52:19 -0400
|
|
Branch: REL_15_STABLE [ca0c93908] 2025-10-10 14:52:17 -0400
|
|
Branch: REL_14_STABLE [314004021] 2025-10-10 14:52:14 -0400
|
|
Branch: REL_13_STABLE [af302ff6b] 2025-10-10 14:52:12 -0400
|
|
-->
|
|
<para>
|
|
Remove faulty assertion in btree index cleanup (Peter Geoghegan)
|
|
<ulink url="&commit_baseurl;61de81a49">§</ulink>
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Tomas Vondra <tomas.vondra@postgresql.org>
|
|
Branch: master [c98dffcb7] 2025-11-04 18:51:17 +0100
|
|
Branch: REL_18_STABLE [a26b753a0] 2025-11-04 18:47:14 +0100
|
|
-->
|
|
<para>
|
|
Avoid possible out-of-memory or <quote>invalid memory alloc request
|
|
size</quote> failures during parallel GIN index build (Tomas Vondra)
|
|
<ulink url="&commit_baseurl;a26b753a0">§</ulink>
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Álvaro Herrera <alvherre@kurilemu.de>
|
|
Branch: master [a95e3d84c] 2025-11-04 13:23:26 +0100
|
|
Branch: REL_18_STABLE [419ffde23] 2025-11-04 13:23:26 +0100
|
|
Branch: REL_17_STABLE [f4b68b033] 2025-11-04 13:23:26 +0100
|
|
Branch: REL_16_STABLE [6ef33c805] 2025-11-04 13:23:26 +0100
|
|
Branch: REL_15_STABLE [23ddadf68] 2025-11-04 13:23:26 +0100
|
|
Branch: REL_14_STABLE [f0ad41716] 2025-11-04 13:23:26 +0100
|
|
Branch: REL_13_STABLE [3c7b47974] 2025-11-04 13:23:26 +0100
|
|
Branch: master [0a3d27bfe] 2025-11-04 20:31:43 +0100
|
|
Branch: REL_18_STABLE [8733f0b54] 2025-11-04 20:31:43 +0100
|
|
Branch: REL_17_STABLE [3b5007347] 2025-11-04 20:31:43 +0100
|
|
Branch: REL_16_STABLE [20442cf50] 2025-11-04 20:31:43 +0100
|
|
Branch: REL_15_STABLE [bcfbd3f74] 2025-11-04 20:31:43 +0100
|
|
Branch: REL_14_STABLE [65b0d1f74] 2025-11-04 20:31:43 +0100
|
|
Branch: REL_13_STABLE [ef81697fe] 2025-11-04 20:31:43 +0100
|
|
-->
|
|
<para>
|
|
Ensure that BRIN autosummarization provides a snapshot for index
|
|
expressions that need one (Álvaro Herrera)
|
|
<ulink url="&commit_baseurl;419ffde23">§</ulink>
|
|
<ulink url="&commit_baseurl;8733f0b54">§</ulink>
|
|
</para>
|
|
|
|
<para>
|
|
Previously, autosummarization would fail for such indexes, and then
|
|
leave placeholder index tuples behind, causing the index to bloat
|
|
over time.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: David Rowley <drowley@postgresql.org>
|
|
Branch: master [9fd29d7ff] 2025-10-21 20:46:14 +1300
|
|
Branch: REL_18_STABLE [715983a81] 2025-10-21 20:46:49 +1300
|
|
Branch: REL_17_STABLE [c4f5a59ab] 2025-10-21 20:47:10 +1300
|
|
Branch: REL_16_STABLE [ef915bf93] 2025-10-21 20:47:35 +1300
|
|
Branch: REL_15_STABLE [810aaf7f2] 2025-10-21 20:48:06 +1300
|
|
Branch: REL_14_STABLE [eea24eb0a] 2025-10-21 20:48:34 +1300
|
|
Branch: REL_13_STABLE [c28f8ca29] 2025-10-21 20:49:00 +1300
|
|
-->
|
|
<para>
|
|
Fix integer-overflow hazard in BRIN index scans when the table
|
|
contains close to 2<superscript>32</superscript> pages (Sunil S)
|
|
<ulink url="&commit_baseurl;715983a81">§</ulink>
|
|
</para>
|
|
|
|
<para>
|
|
This oversight could result in an infinite loop or scanning of
|
|
unneeded table pages.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: David Rowley <drowley@postgresql.org>
|
|
Branch: master [6911f8037] 2025-10-23 13:11:02 +1300
|
|
Branch: REL_18_STABLE [ceb51d09b] 2025-10-23 13:12:03 +1300
|
|
Branch: REL_17_STABLE [10945148e] 2025-10-23 13:12:49 +1300
|
|
Branch: REL_16_STABLE [3398b0d02] 2025-10-23 13:13:19 +1300
|
|
Branch: REL_15_STABLE [b8ecfbe5a] 2025-10-23 13:13:44 +1300
|
|
Branch: REL_14_STABLE [e4316ec4d] 2025-10-23 13:14:08 +1300
|
|
Branch: REL_13_STABLE [4afab175b] 2025-10-23 13:14:33 +1300
|
|
-->
|
|
<para>
|
|
Fix incorrect zero-extension of stored values in JIT-generated tuple
|
|
deforming code (David Rowley)
|
|
<ulink url="&commit_baseurl;ceb51d09b">§</ulink>
|
|
</para>
|
|
|
|
<para>
|
|
When not using JIT, the equivalent code does sign-extension not
|
|
zero-extension, leading to a different Datum representation of small
|
|
integer data types. This inconsistency was masked in most cases,
|
|
but it is known to lead to <quote>could not find memoization table
|
|
entry</quote> errors when using Memoize plan nodes, and there might
|
|
be other symptoms.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: David Rowley <drowley@postgresql.org>
|
|
Branch: master [5c0a20003] 2025-10-18 16:07:04 +1300
|
|
Branch: REL_18_STABLE [0b6a02f03] 2025-10-18 16:07:41 +1300
|
|
-->
|
|
<para>
|
|
Fix rare crash when processing hashed <literal>GROUPING
|
|
SETS</literal> queries (David Rowley)
|
|
<ulink url="&commit_baseurl;0b6a02f03">§</ulink>
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Tomas Vondra <tomas.vondra@postgresql.org>
|
|
Branch: master [b85c4700f] 2025-10-17 22:21:50 +0200
|
|
Branch: REL_18_STABLE [aa151022e] 2025-10-17 22:27:49 +0200
|
|
-->
|
|
<para>
|
|
Repair faulty hash-table-size-choosing logic in hash joins
|
|
(Tomas Vondra)
|
|
<ulink url="&commit_baseurl;aa151022e">§</ulink>
|
|
</para>
|
|
|
|
<para>
|
|
Hash joins sometimes used more memory than intended, or failed to
|
|
divide it in an efficient way.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Nathan Bossart <nathan@postgresql.org>
|
|
Branch: master [688dc6299] 2025-10-15 12:47:33 -0500
|
|
Branch: REL_18_STABLE [c8af5019b] 2025-10-15 12:47:33 -0500
|
|
Branch: REL_18_STABLE [15d7dded0] 2025-10-15 13:14:00 -0500
|
|
-->
|
|
<para>
|
|
Improve relation lookup logic in statistics manipulation functions
|
|
(Nathan Bossart)
|
|
<ulink url="&commit_baseurl;c8af5019b">§</ulink>
|
|
<ulink url="&commit_baseurl;15d7dded0">§</ulink>
|
|
</para>
|
|
|
|
<para>
|
|
Fix <function>pg_restore_relation_stats()</function>,
|
|
<function>pg_clear_relation_stats()</function>,
|
|
<function>pg_restore_attribute_stats()</function>, and
|
|
<function>pg_clear_attribute_stats()</function> to check
|
|
privileges before acquiring lock on the target relation
|
|
rather than after.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: David Rowley <drowley@postgresql.org>
|
|
Branch: master [39dcfda2d] 2025-10-26 10:59:50 +1300
|
|
Branch: REL_18_STABLE [a2387c32f] 2025-10-26 11:01:32 +1300
|
|
Branch: REL_17_STABLE [0d3074615] 2025-10-26 11:01:53 +1300
|
|
Branch: REL_16_STABLE [a546964db] 2025-10-26 11:02:15 +1300
|
|
Branch: REL_15_STABLE [2992b9a07] 2025-10-26 11:02:36 +1300
|
|
-->
|
|
<para>
|
|
Fix incorrect logic for caching result-relation information for
|
|
triggers (David Rowley, Amit Langote)
|
|
<ulink url="&commit_baseurl;a2387c32f">§</ulink>
|
|
</para>
|
|
|
|
<para>
|
|
In cases where partitions' column sets aren't physically identical
|
|
to their parent partitioned tables' column sets, this oversight
|
|
could lead to crashes.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Amit Langote <amitlan@postgresql.org>
|
|
Branch: master [905e932f0] 2025-10-16 14:01:44 +0900
|
|
Branch: REL_18_STABLE [1296dcf18] 2025-10-16 14:01:50 +0900
|
|
-->
|
|
<para>
|
|
Fix crash during EvalPlanQual rechecks on partitioned tables (David
|
|
Rowley, Amit Langote)
|
|
<ulink url="&commit_baseurl;1296dcf18">§</ulink>
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Etsuro Fujita <efujita@postgresql.org>
|
|
Branch: master [12609fbac] 2025-10-15 17:15:00 +0900
|
|
Branch: REL_18_STABLE [b14144325] 2025-10-15 17:15:01 +0900
|
|
Branch: REL_17_STABLE [2bb84ea7e] 2025-10-15 17:15:02 +0900
|
|
Branch: REL_16_STABLE [5a9af4868] 2025-10-15 17:15:03 +0900
|
|
Branch: REL_15_STABLE [4a08603a2] 2025-10-15 17:15:04 +0900
|
|
Branch: REL_14_STABLE [24e74b962] 2025-10-15 17:15:05 +0900
|
|
Branch: REL_13_STABLE [12b0c0e51] 2025-10-15 17:15:05 +0900
|
|
-->
|
|
<para>
|
|
Fix EvalPlanQual handling of foreign or custom joins that do not
|
|
have an alternative local-join plan prepared for EPQ (Masahiko
|
|
Sawada, Etsuro Fujita)
|
|
<ulink url="&commit_baseurl;b14144325">§</ulink>
|
|
</para>
|
|
|
|
<para>
|
|
In such cases the foreign or custom access method should be invoked
|
|
normally, but that did not happen, typically leading to a crash.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Álvaro Herrera <alvherre@kurilemu.de>
|
|
Branch: master [3231fd045] 2025-10-11 20:30:12 +0200
|
|
Branch: REL_18_STABLE [08c037dff] 2025-10-11 20:30:12 +0200
|
|
Branch: REL_17_STABLE [ea06f97ee] 2025-10-11 20:30:12 +0200
|
|
Branch: REL_16_STABLE [b835759ec] 2025-10-11 20:30:12 +0200
|
|
Branch: REL_15_STABLE [bdae98495] 2025-10-11 20:30:12 +0200
|
|
Branch: REL_14_STABLE [b753be38a] 2025-10-11 20:30:12 +0200
|
|
-->
|
|
<para>
|
|
Avoid duplicating hash partition constraints during <literal>DETACH
|
|
CONCURRENTLY</literal> (Haiyang Li)
|
|
<ulink url="&commit_baseurl;08c037dff">§</ulink>
|
|
</para>
|
|
|
|
<para>
|
|
<command>ALTER TABLE DETACH PARTITION CONCURRENTLY</command> was
|
|
written to add a copy of the partitioning constraint to the
|
|
now-detached partition. This was misguided, partially because
|
|
non-concurrent <literal>DETACH</literal> doesn't do that, but mostly
|
|
because in the case of hash partitioning the constraint expression
|
|
contains references to the parent table's OID. That causes problems
|
|
during dump/restore, or if the parent table is dropped
|
|
after <literal>DETACH</literal>. In v19 and later, we'll no longer
|
|
create any such copied constraints at all. In released branches, to
|
|
minimize the risk of unforeseen consequences, only skip adding a
|
|
copied constraint if it is for hash partitioning.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Peter Eisentraut <peter@eisentraut.org>
|
|
Branch: master [040cc5f3c] 2025-11-04 14:46:58 +0100
|
|
Branch: REL_18_STABLE [ba99c9491] 2025-11-04 14:47:15 +0100
|
|
Branch: REL_17_STABLE [0b44f2443] 2025-11-04 15:18:09 +0100
|
|
Branch: REL_16_STABLE [7180d56c5] 2025-11-04 15:22:17 +0100
|
|
Branch: REL_15_STABLE [643a5e96c] 2025-11-04 15:28:46 +0100
|
|
Branch: REL_14_STABLE [04345d7a4] 2025-11-04 15:37:08 +0100
|
|
Branch: REL_13_STABLE [7f239c72a] 2025-11-04 15:37:19 +0100
|
|
-->
|
|
<para>
|
|
Disallow generated columns in partition keys
|
|
(Jian He, Ashutosh Bapat)
|
|
<ulink url="&commit_baseurl;ba99c9491">§</ulink>
|
|
</para>
|
|
|
|
<para>
|
|
This was already not allowed, but the check missed some cases, such
|
|
as where the column reference is implicit in a whole-row reference.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Peter Eisentraut <peter@eisentraut.org>
|
|
Branch: master [aa606b931] 2025-11-06 13:54:42 +0100
|
|
Branch: REL_18_STABLE [0f9e0068b] 2025-11-06 13:55:08 +0100
|
|
Branch: REL_17_STABLE [07f787e57] 2025-11-06 14:01:42 +0100
|
|
Branch: REL_16_STABLE [26958f4d9] 2025-11-06 14:01:57 +0100
|
|
Branch: REL_15_STABLE [8278737bf] 2025-11-06 14:02:03 +0100
|
|
Branch: REL_14_STABLE [ccfe28eb4] 2025-11-06 14:02:09 +0100
|
|
Branch: REL_13_STABLE [3717849e6] 2025-11-06 14:02:13 +0100
|
|
-->
|
|
<para>
|
|
Disallow generated columns in <literal>COPY ... FROM
|
|
... WHERE</literal> clauses (Peter Eisentraut, Jian He)
|
|
<ulink url="&commit_baseurl;0f9e0068b">§</ulink>
|
|
</para>
|
|
|
|
<para>
|
|
Previously, incorrect behavior or an obscure error message resulted
|
|
from attempting to reference such a column, since generated columns
|
|
have not yet been computed at the point
|
|
where <literal>WHERE</literal> filtering is done.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Álvaro Herrera <alvherre@kurilemu.de>
|
|
Branch: master [cf8be0225] 2025-11-03 15:58:19 +0100
|
|
Branch: REL_18_STABLE [d9ffc2729] 2025-11-03 15:58:19 +0100
|
|
-->
|
|
<para>
|
|
Prevent setting a column as identity if it has a not-null constraint
|
|
but the constraint is marked as invalid (Jian He)
|
|
<ulink url="&commit_baseurl;d9ffc2729">§</ulink>
|
|
</para>
|
|
|
|
<para>
|
|
Identity columns must be not-null, but the check for that missed
|
|
this edge case.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: John Naylor <john.naylor@postgresql.org>
|
|
Branch: master [54ab74865] 2025-10-03 16:05:02 +0700
|
|
Branch: REL_18_STABLE [76613b539] 2025-10-03 16:07:42 +0700
|
|
Branch: REL_17_STABLE [3549ffb6a] 2025-10-03 16:07:34 +0700
|
|
-->
|
|
<para>
|
|
Avoid potential use-after-free in parallel vacuum (Kevin Oommen
|
|
Anish)
|
|
<ulink url="&commit_baseurl;76613b539">§</ulink>
|
|
</para>
|
|
|
|
<para>
|
|
This bug seems to have no consequences in standard builds, but it's
|
|
theoretically a hazard.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Noah Misch <noah@leadboat.com>
|
|
Branch: master [a95393ecd] 2025-09-29 11:15:44 -0700
|
|
Branch: REL_18_STABLE [d024160ff] 2025-09-29 11:15:47 -0700
|
|
Branch: REL_17_STABLE [6778fbca6] 2025-09-29 11:15:48 -0700
|
|
Branch: REL_16_STABLE [ab16418ee] 2025-09-29 11:15:48 -0700
|
|
Branch: REL_15_STABLE [d202ec1fb] 2025-09-29 11:15:48 -0700
|
|
Branch: REL_14_STABLE [5816baa9b] 2025-09-29 11:15:49 -0700
|
|
Branch: REL_13_STABLE [afb2cce74] 2025-09-29 11:15:49 -0700
|
|
-->
|
|
<para>
|
|
Fix visibility checking for statistics objects
|
|
in <literal>pg_temp</literal> (Noah Misch)
|
|
<ulink url="&commit_baseurl;d024160ff">§</ulink>
|
|
</para>
|
|
|
|
<para>
|
|
A statistics object located in a temporary schema cannot be named
|
|
without schema qualification,
|
|
but <function>pg_statistics_obj_is_visible()</function> missed that
|
|
memo and could return <quote>true</quote> regardless. In turn,
|
|
functions such as <function>pg_describe_object()</function> could
|
|
fail to schema-qualify the object's name as expected.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Álvaro Herrera <alvherre@kurilemu.de>
|
|
Branch: master [ff47f9c16] 2025-10-11 16:39:22 +0200
|
|
Branch: REL_18_STABLE [33e7b4a7c] 2025-10-11 16:39:22 +0200
|
|
Branch: REL_17_STABLE [f9993ac64] 2025-10-11 16:39:22 +0200
|
|
Branch: REL_16_STABLE [c72b5c536] 2025-10-11 16:39:22 +0200
|
|
Branch: REL_15_STABLE [23b316c36] 2025-10-11 16:39:22 +0200
|
|
-->
|
|
<para>
|
|
Fix minor memory leak during WAL replay of database creation
|
|
(Nathan Bossart)
|
|
<ulink url="&commit_baseurl;33e7b4a7c">§</ulink>
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Fujii Masao <fujii@postgresql.org>
|
|
Branch: master [883a95646] 2025-10-22 11:27:15 +0900
|
|
Branch: REL_18_STABLE [9670032cc] 2025-10-22 11:28:48 +0900
|
|
Branch: REL_17_STABLE [62d5ee75b] 2025-10-22 11:28:57 +0900
|
|
Branch: REL_16_STABLE [2e55cf4ef] 2025-10-22 11:29:02 +0900
|
|
Branch: REL_15_STABLE [59b215f72] 2025-10-22 11:29:07 +0900
|
|
Branch: REL_14_STABLE [a7ab6ce6a] 2025-10-22 11:29:13 +0900
|
|
Branch: REL_13_STABLE [7d7ebdb80] 2025-10-22 11:29:18 +0900
|
|
-->
|
|
<para>
|
|
Fix incorrect reporting of replication lag
|
|
in <structname>pg_stat_replication</structname> view (Fujii Masao)
|
|
<ulink url="&commit_baseurl;9670032cc">§</ulink>
|
|
</para>
|
|
|
|
<para>
|
|
If any standby server's replay LSN stopped advancing,
|
|
the <structfield>write_lag</structfield>
|
|
and <structfield>flush_lag</structfield> columns would eventually
|
|
stop updating.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Fujii Masao <fujii@postgresql.org>
|
|
Branch: master [f33e60a53] 2025-10-22 20:09:43 +0900
|
|
Branch: REL_18_STABLE [6ff7ba9fe] 2025-10-22 20:10:58 +0900
|
|
Branch: REL_17_STABLE [1db2870bb] 2025-10-22 20:11:47 +0900
|
|
Branch: REL_16_STABLE [4fd916eab] 2025-10-22 20:12:36 +0900
|
|
Branch: REL_15_STABLE [caf529aba] 2025-10-22 20:13:15 +0900
|
|
Branch: REL_14_STABLE [f106f53df] 2025-10-22 20:14:02 +0900
|
|
Branch: REL_13_STABLE [b00a16bae] 2025-10-22 20:14:07 +0900
|
|
-->
|
|
<para>
|
|
Avoid duplicative log messages about
|
|
invalid <varname>primary_slot_name</varname> settings (Fujii Masao)
|
|
<ulink url="&commit_baseurl;6ff7ba9fe">§</ulink>
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Amit Kapila <akapila@postgresql.org>
|
|
Branch: master [e0dc4bbfb] 2025-10-27 06:48:32 +0000
|
|
Branch: REL_18_STABLE [b45a8d7d8] 2025-10-27 06:37:35 +0000
|
|
Branch: REL_17_STABLE [0024f5a10] 2025-10-27 06:34:29 +0000
|
|
-->
|
|
<para>
|
|
Avoid failures when <varname>synchronized_standby_slots</varname>
|
|
references nonexistent replication slots (Shlok Kyal)
|
|
<ulink url="&commit_baseurl;b45a8d7d8">§</ulink>
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Michael Paquier <michael@paquier.xyz>
|
|
Branch: master [912af1c7e] 2025-10-10 09:23:59 +0900
|
|
Branch: REL_18_STABLE [9a6ea00ac] 2025-10-10 09:24:48 +0900
|
|
Branch: REL_17_STABLE [42348839d] 2025-10-10 09:24:50 +0900
|
|
Branch: REL_16_STABLE [bfdd1a12d] 2025-10-10 09:24:53 +0900
|
|
Branch: REL_15_STABLE [0adf424b4] 2025-10-10 09:24:54 +0900
|
|
Branch: REL_14_STABLE [f57f2760e] 2025-10-10 09:24:57 +0900
|
|
Branch: REL_13_STABLE [c878d9808] 2025-10-10 09:24:59 +0900
|
|
-->
|
|
<para>
|
|
Remove the unfinished slot state file after failing to write a
|
|
replication slot's state to disk (Michael Paquier)
|
|
<ulink url="&commit_baseurl;9a6ea00ac">§</ulink>
|
|
</para>
|
|
|
|
<para>
|
|
Previously, a failure such as out-of-disk-space resulted in leaving
|
|
a temporary <filename>state.tmp</filename> file behind. That's
|
|
problematic because it would block all subsequent attempts to
|
|
write the state, requiring manual intervention to clean up.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Amit Kapila <akapila@postgresql.org>
|
|
Branch: master [e41d954da] 2025-09-24 04:11:53 +0000
|
|
Branch: REL_18_STABLE [37fc5de43] 2025-09-24 04:00:15 +0000
|
|
Branch: REL_17_STABLE [2f6e1a490] 2025-09-24 03:49:02 +0000
|
|
Branch: REL_16_STABLE [a54c7a113] 2025-09-24 03:38:27 +0000
|
|
-->
|
|
<para>
|
|
Fix mishandling of lock timeout signals in parallel apply workers
|
|
for logical replication (Hayato Kuroda)
|
|
<ulink url="&commit_baseurl;37fc5de43">§</ulink>
|
|
</para>
|
|
|
|
<para>
|
|
The same signal number was being used for both worker shutdown and
|
|
lock timeout, leading to confusion.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Michael Paquier <michael@paquier.xyz>
|
|
Branch: master [17b2d5ec7] 2025-11-04 10:47:38 +0900
|
|
Branch: REL_18_STABLE [a14201073] 2025-11-04 10:52:33 +0900
|
|
Branch: REL_17_STABLE [e7340b484] 2025-11-04 10:52:35 +0900
|
|
Branch: REL_16_STABLE [9b6109607] 2025-11-04 10:52:38 +0900
|
|
Branch: REL_15_STABLE [da5ea6c70] 2025-11-04 10:52:41 +0900
|
|
Branch: REL_14_STABLE [a1b8b3b2e] 2025-11-04 10:52:42 +0900
|
|
Branch: REL_13_STABLE [25b484080] 2025-11-04 10:52:44 +0900
|
|
-->
|
|
<para>
|
|
Avoid unwanted WAL receiver shutdown when switching from streaming
|
|
to archive WAL source (Xuneng Zhou)
|
|
<ulink url="&commit_baseurl;a14201073">§</ulink>
|
|
</para>
|
|
|
|
<para>
|
|
During a timeline change, a standby server's WAL receiver should
|
|
remain alive, waiting for a new WAL streaming start point. Instead
|
|
it was repeatedly shutting down and immediately getting restarted,
|
|
which could confuse status monitoring code.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Masahiko Sawada <msawada@postgresql.org>
|
|
Branch: master [b46efe904] 2025-10-09 10:59:27 -0700
|
|
Branch: REL_18_STABLE [32b95fc71] 2025-10-09 10:59:29 -0700
|
|
Branch: REL_17_STABLE [a61592253] 2025-10-09 10:59:31 -0700
|
|
Branch: REL_16_STABLE [b07682bce] 2025-10-09 10:59:34 -0700
|
|
Branch: REL_15_STABLE [c40761759] 2025-10-09 10:59:36 -0700
|
|
-->
|
|
<para>
|
|
Fix use-after-free issue in the relation synchronization cache
|
|
maintained by the <application>pgoutput</application> logical
|
|
decoding plugin (Vignesh C, Masahiko Sawada)
|
|
<ulink url="&commit_baseurl;32b95fc71">§</ulink>
|
|
</para>
|
|
|
|
<para>
|
|
An error during logical decoding could result in crashes in
|
|
subsequent logical decoding attempts in the same session.
|
|
The case is only reachable when <application>pgoutput</application>
|
|
is invoked via SQL functions.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Michael Paquier <michael@paquier.xyz>
|
|
Branch: master [d43209468] 2025-10-30 13:13:28 +0900
|
|
Branch: REL_18_STABLE [bf3dba508] 2025-10-30 13:13:31 +0900
|
|
Branch: REL_17_STABLE [f3fb6bc9f] 2025-10-30 13:13:34 +0900
|
|
Branch: REL_16_STABLE [e3714dc05] 2025-10-30 13:13:37 +0900
|
|
-->
|
|
<para>
|
|
Avoid unnecessary invalidation of logical replication slots
|
|
(Bertrand Drouvot)
|
|
<ulink url="&commit_baseurl;bf3dba508">§</ulink>
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Jeff Davis <jdavis@postgresql.org>
|
|
Branch: master [d115de9d8] 2025-11-04 16:48:16 -0800
|
|
Branch: REL_18_STABLE [3ebea75f9] 2025-11-04 16:49:00 -0800
|
|
-->
|
|
<para>
|
|
Re-establish special case for <literal>C</literal> collation in
|
|
locale setup (Jeff Davis)
|
|
<ulink url="&commit_baseurl;3ebea75f9">§</ulink>
|
|
</para>
|
|
|
|
<para>
|
|
This fixes a regression in access to shared catalogs early in
|
|
backend startup, before a database has been selected. It is not
|
|
known to be a problem for any
|
|
core <productname>PostgreSQL</productname> code, but some extensions
|
|
were broken.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
Branch: master [03bf7a12c] 2025-10-13 17:56:45 -0400
|
|
Branch: REL_18_STABLE [b48ae226e] 2025-10-13 17:56:45 -0400
|
|
Branch: REL_17_STABLE [4c53519e1] 2025-10-13 17:56:45 -0400
|
|
Branch: REL_16_STABLE [9883e3cd1] 2025-10-13 17:56:45 -0400
|
|
Branch: REL_15_STABLE [f91666c83] 2025-10-13 17:56:45 -0400
|
|
Branch: REL_14_STABLE [e91eb4ad6] 2025-10-13 17:56:45 -0400
|
|
Branch: REL_13_STABLE [75a555d61] 2025-10-13 17:56:45 -0400
|
|
-->
|
|
<para>
|
|
Fix incorrect printing of messages about failures in checking
|
|
whether the user has Windows administrator privilege (Bryan Green)
|
|
<ulink url="&commit_baseurl;b48ae226e">§</ulink>
|
|
</para>
|
|
|
|
<para>
|
|
This code would have crashed or at least printed garbage.
|
|
No such cases have been reported though, indicating that failure of
|
|
these system calls is extremely rare.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
Branch: master [d4baa327a] 2025-11-05 11:09:45 -0500
|
|
Branch: REL_18_STABLE [6d8acb777] 2025-11-05 11:09:30 -0500
|
|
Branch: REL_17_STABLE [a9515f294] 2025-11-05 11:09:30 -0500
|
|
Branch: REL_16_STABLE [c775bf048] 2025-11-05 11:09:30 -0500
|
|
-->
|
|
<para>
|
|
Avoid crash when attempting to
|
|
test <productname>PostgreSQL</productname> with certain libsanitizer
|
|
options (Emmanuel Sibi, Jacob Champion)
|
|
<ulink url="&commit_baseurl;6d8acb777">§</ulink>
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: David Rowley <drowley@postgresql.org>
|
|
Branch: master [50eb4e118] 2025-10-30 14:48:10 +1300
|
|
Branch: REL_18_STABLE [af3a79e08] 2025-10-30 14:49:07 +1300
|
|
Branch: REL_17_STABLE [bd6f986c9] 2025-10-30 14:49:42 +1300
|
|
Branch: REL_16_STABLE [cdc04a6c3] 2025-10-30 14:50:05 +1300
|
|
Branch: REL_15_STABLE [f3420e006] 2025-10-30 14:50:26 +1300
|
|
Branch: REL_14_STABLE [86bd9497f] 2025-10-30 14:50:46 +1300
|
|
Branch: REL_13_STABLE [7b955c227] 2025-10-30 14:51:08 +1300
|
|
-->
|
|
<para>
|
|
Fix false memory-context-checking warnings in debug builds
|
|
on 64-bit Windows (David Rowley)
|
|
<ulink url="&commit_baseurl;af3a79e08">§</ulink>
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
Branch: master [7504d2be9] 2025-09-27 14:29:41 -0400
|
|
Branch: REL_18_STABLE [78a284b0b] 2025-09-27 14:29:41 -0400
|
|
Branch: REL_17_STABLE [3fc9aa5b0] 2025-09-27 14:29:41 -0400
|
|
Branch: REL_16_STABLE [b7f6798c0] 2025-09-27 14:29:41 -0400
|
|
Branch: REL_15_STABLE [9ca79896a] 2025-09-27 14:29:41 -0400
|
|
Branch: REL_14_STABLE [0be39b4b1] 2025-09-27 14:29:41 -0400
|
|
-->
|
|
<para>
|
|
Correctly handle <literal>GROUP BY DISTINCT</literal> in PL/pgSQL
|
|
assignment statements (Tom Lane)
|
|
<ulink url="&commit_baseurl;78a284b0b">§</ulink>
|
|
</para>
|
|
|
|
<para>
|
|
The parser failed to record the <literal>DISTINCT</literal> option
|
|
in this context, so that the command would act as if it were
|
|
plain <literal>GROUP BY</literal>.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
Branch: master [798b19d27] 2025-10-23 11:47:46 -0400
|
|
Branch: REL_18_STABLE [447a794f6] 2025-10-23 11:47:46 -0400
|
|
Branch: REL_17_STABLE [fbc41a145] 2025-10-23 11:47:46 -0400
|
|
Branch: REL_16_STABLE [cbfd4d0f8] 2025-10-23 11:47:46 -0400
|
|
Branch: REL_15_STABLE [4cde73259] 2025-10-23 11:47:46 -0400
|
|
Branch: REL_14_STABLE [7fb8c9240] 2025-10-23 11:47:46 -0400
|
|
Branch: REL_13_STABLE [d90c92d1c] 2025-10-23 11:47:46 -0400
|
|
-->
|
|
<para>
|
|
Avoid leaking memory when handling a SQL error within PL/Python
|
|
(Tom Lane)
|
|
<ulink url="&commit_baseurl;447a794f6">§</ulink>
|
|
</para>
|
|
|
|
<para>
|
|
This fixes a session-lifespan memory leak introduced in our previous
|
|
minor releases.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
Branch: master [ea78bd6d5] 2025-10-05 16:27:47 -0400
|
|
Branch: REL_18_STABLE [d83879a32] 2025-10-05 16:27:47 -0400
|
|
Branch: REL_17_STABLE [1c4671f7b] 2025-10-05 16:27:47 -0400
|
|
Branch: REL_16_STABLE [46c4478db] 2025-10-05 16:27:47 -0400
|
|
Branch: REL_15_STABLE [771b106d1] 2025-10-05 16:27:47 -0400
|
|
Branch: REL_14_STABLE [f46d77377] 2025-10-05 16:27:47 -0400
|
|
Branch: REL_13_STABLE [fc287cf3c] 2025-10-05 16:27:47 -0400
|
|
-->
|
|
<para>
|
|
Fix <application>libpq</application>'s handling of socket-related
|
|
errors on Windows within its GSSAPI logic (Ning Wu, Tom Lane)
|
|
<ulink url="&commit_baseurl;d83879a32">§</ulink>
|
|
</para>
|
|
|
|
<para>
|
|
The code for encrypting/decrypting transmitted data using GSSAPI did
|
|
not correctly recognize error conditions on the connection socket,
|
|
since Windows reports those differently than other platforms. This
|
|
led to failure to make such connections on Windows.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Álvaro Herrera <alvherre@kurilemu.de>
|
|
Branch: master [615ff828e] 2025-10-18 18:18:19 +0200
|
|
Branch: REL_18_STABLE [0fe07fa11] 2025-10-18 18:18:19 +0200
|
|
Branch: REL_17_STABLE [c945b06d5] 2025-10-18 18:18:19 +0200
|
|
-->
|
|
<para>
|
|
Fix dumping of non-inherited not-null constraints on inherited table
|
|
columns (Dilip Kumar)
|
|
<ulink url="&commit_baseurl;0fe07fa11">§</ulink>
|
|
</para>
|
|
|
|
<para>
|
|
<application>pg_dump</application> failed to preserve such
|
|
constraints when dumping from a pre-v18 server.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Álvaro Herrera <alvherre@kurilemu.de>
|
|
Branch: master [4921a5972] 2025-10-18 17:50:10 +0200
|
|
Branch: REL_18_STABLE [162e70ea0] 2025-10-18 17:50:10 +0200
|
|
Branch: REL_17_STABLE [7419c99a2] 2025-10-18 17:50:10 +0200
|
|
Branch: REL_16_STABLE [06c1ee6b7] 2025-10-18 17:50:10 +0200
|
|
Branch: REL_15_STABLE [4cc3b4445] 2025-10-18 17:50:10 +0200
|
|
Branch: REL_14_STABLE [6062c3db3] 2025-10-18 17:50:10 +0200
|
|
Branch: REL_13_STABLE [d20df9590] 2025-10-18 17:50:10 +0200
|
|
-->
|
|
<para>
|
|
Fix <application>pg_dump</application>'s sorting of
|
|
foreign key constraints (Álvaro Herrera)
|
|
<ulink url="&commit_baseurl;162e70ea0">§</ulink>
|
|
</para>
|
|
|
|
<para>
|
|
Ensure consistent ordering of these database objects, as was
|
|
already done for other object types.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Daniel Gustafsson <dgustafsson@postgresql.org>
|
|
Branch: master [e686010c5] 2025-08-29 19:28:46 +0200
|
|
Branch: REL_18_STABLE Release: REL_18_0 [8980c724b] 2025-08-29 19:28:46 +0200
|
|
Branch: REL_17_STABLE [92268b35d] 2025-08-29 19:28:46 +0200
|
|
Branch: REL_16_STABLE [ec017a305] 2025-08-29 19:28:46 +0200
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
Branch: master [a239c4a0c] 2025-10-13 12:44:20 -0400
|
|
Branch: REL_18_STABLE [6a4009747] 2025-10-13 12:44:20 -0400
|
|
Branch: REL_17_STABLE [bf18e9bd7] 2025-10-13 12:44:20 -0400
|
|
Branch: REL_16_STABLE [1518b7d76] 2025-10-13 12:44:20 -0400
|
|
Branch: master [277dec651] 2025-10-19 14:36:58 -0400
|
|
Branch: REL_18_STABLE [aa1fcd087] 2025-10-19 14:36:58 -0400
|
|
Branch: REL_17_STABLE [2efca1633] 2025-10-19 14:36:58 -0400
|
|
Branch: REL_16_STABLE [c865f5b9f] 2025-10-19 14:36:58 -0400
|
|
Branch: REL_15_STABLE [8b9924bce] 2025-10-19 14:36:58 -0400
|
|
Branch: REL_14_STABLE [40dc710a6] 2025-10-19 14:36:58 -0400
|
|
Branch: REL_13_STABLE [33276cd02] 2025-10-19 14:36:58 -0400
|
|
-->
|
|
<para>
|
|
Fix assorted errors in the data compression logic
|
|
in <application>pg_dump</application>
|
|
and <application>pg_restore</application>
|
|
(Daniel Gustafsson, Tom Lane)
|
|
<ulink url="&commit_baseurl;8980c724b">§</ulink>
|
|
<ulink url="&commit_baseurl;6a4009747">§</ulink>
|
|
<ulink url="&commit_baseurl;aa1fcd087">§</ulink>
|
|
</para>
|
|
|
|
<para>
|
|
Error checking was missing or incorrect in several places, and there
|
|
were also portability issues that would manifest on big-endian
|
|
hardware. These problems had been missed because this code is only
|
|
used to read compressed TOC files within directory-format
|
|
dumps. <application>pg_dump</application> never produces such a
|
|
dump; the case can be reached only by manually compressing the TOC
|
|
file after the fact, which is a supported thing to do but very
|
|
uncommon.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Michael Paquier <michael@paquier.xyz>
|
|
Branch: master [902c08887] 2025-10-03 14:03:55 +0900
|
|
Branch: REL_18_STABLE [c00637b5f] 2025-10-03 14:04:00 +0900
|
|
Branch: REL_17_STABLE [de6de069d] 2025-10-03 14:04:01 +0900
|
|
Branch: REL_16_STABLE [640590bb4] 2025-10-03 14:04:03 +0900
|
|
Branch: REL_15_STABLE [b5cefc197] 2025-10-03 14:04:05 +0900
|
|
Branch: REL_14_STABLE [9b3beb7c6] 2025-10-03 14:04:06 +0900
|
|
Branch: REL_13_STABLE [f1a2f3a0c] 2025-10-03 14:04:08 +0900
|
|
-->
|
|
<para>
|
|
Fix <application>pgbench</application> to error out cleanly if
|
|
a <literal>COPY</literal> operation is started (Anthonin Bonnefoy)
|
|
<ulink url="&commit_baseurl;c00637b5f">§</ulink>
|
|
</para>
|
|
|
|
<para>
|
|
<application>pgbench</application> doesn't intend to support this
|
|
case, but previously it went into an infinite loop.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Fujii Masao <fujii@postgresql.org>
|
|
Branch: master [19d4f9ffc] 2025-09-30 23:52:28 +0900
|
|
Branch: REL_18_STABLE [29aabbc43] 2025-09-30 23:53:32 +0900
|
|
Branch: REL_17_STABLE [a912118c6] 2025-09-30 23:53:46 +0900
|
|
Branch: REL_16_STABLE [36c4d30c8] 2025-09-30 23:53:53 +0900
|
|
Branch: REL_15_STABLE [bdccb6302] 2025-09-30 23:54:01 +0900
|
|
Branch: REL_14_STABLE [cb21e1f92] 2025-09-30 23:55:02 +0900
|
|
Branch: REL_13_STABLE [7d7e81d1e] 2025-09-30 23:55:33 +0900
|
|
-->
|
|
<para>
|
|
Fix <application>pgbench</application>'s reporting of multiple
|
|
errors (Yugo Nagata)
|
|
<ulink url="&commit_baseurl;29aabbc43">§</ulink>
|
|
</para>
|
|
|
|
<para>
|
|
In cases where two successive <function>PQgetResult</function> calls
|
|
both fail, <application>pgbench</application> might report the wrong
|
|
error message.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Fujii Masao <fujii@postgresql.org>
|
|
Branch: master [8bb174295] 2025-09-26 21:23:43 +0900
|
|
Branch: REL_18_STABLE [c736808e0] 2025-09-26 21:24:59 +0900
|
|
Branch: REL_17_STABLE [f39d9164b] 2025-09-26 21:25:05 +0900
|
|
Branch: REL_16_STABLE [8b2e290bd] 2025-09-26 21:25:11 +0900
|
|
Branch: REL_15_STABLE [704f51771] 2025-09-26 21:25:17 +0900
|
|
-->
|
|
<para>
|
|
In <application>pgbench</application>, fix faulty assertion about
|
|
errors in pipeline mode (Yugo Nagata)
|
|
<ulink url="&commit_baseurl;c736808e0">§</ulink>
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
Branch: master [9224c3025] 2025-10-22 13:38:40 -0400
|
|
Branch: REL_18_STABLE [e2072b47b] 2025-10-22 13:38:37 -0400
|
|
Branch: REL_17_STABLE [4eb6992af] 2025-10-22 13:38:37 -0400
|
|
-->
|
|
<para>
|
|
Fix per-file memory leakage
|
|
in <application>pg_combinebackup</application> (Tom Lane)
|
|
<ulink url="&commit_baseurl;e2072b47b">§</ulink>
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Masahiko Sawada <msawada@postgresql.org>
|
|
Branch: master [8ae0f6a0c] 2025-11-04 15:47:25 -0800
|
|
Branch: REL_18_STABLE [71aa2e114] 2025-11-04 15:47:22 -0800
|
|
Branch: master [eab9e4e27] 2025-08-19 12:11:42 -0700
|
|
Branch: REL_18_STABLE Release: REL_18_0 [0beb7e933] 2025-08-19 12:11:39 -0700
|
|
Branch: REL_17_STABLE [b6090ed96] 2025-08-19 12:11:37 -0700
|
|
Branch: REL_16_STABLE [815fcfb20] 2025-08-19 12:11:34 -0700
|
|
Branch: REL_15_STABLE [eb9ee4d18] 2025-08-19 12:11:32 -0700
|
|
Branch: REL_14_STABLE [79643105a] 2025-08-19 12:11:29 -0700
|
|
Branch: REL_13_STABLE [7d8d36289] 2025-08-19 12:11:25 -0700
|
|
-->
|
|
<para>
|
|
Ensure that <filename>contrib/pg_buffercache</filename> functions
|
|
can be canceled (Satyanarayana Narlapuram, Yuhang Qiu)
|
|
<ulink url="&commit_baseurl;71aa2e114">§</ulink>
|
|
<ulink url="&commit_baseurl;0beb7e933">§</ulink>
|
|
</para>
|
|
|
|
<para>
|
|
Some code paths were capable of running for a long time without
|
|
checking for interrupts.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Nathan Bossart <nathan@postgresql.org>
|
|
Branch: master [208927e65] 2025-10-17 11:36:50 -0500
|
|
Branch: REL_18_STABLE [3ccf8e9ac] 2025-10-17 11:36:50 -0500
|
|
Branch: REL_17_STABLE [a0551bc57] 2025-10-17 11:36:50 -0500
|
|
Branch: REL_16_STABLE [fae0ce5e3] 2025-10-17 11:36:50 -0500
|
|
Branch: REL_15_STABLE [6c03ae8d6] 2025-10-17 11:36:50 -0500
|
|
Branch: REL_14_STABLE [f146eb45c] 2025-10-17 11:36:50 -0500
|
|
Branch: REL_13_STABLE [19a64f567] 2025-10-17 11:36:50 -0500
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
Branch: master [da44d71e7] 2025-10-18 18:36:21 -0400
|
|
Branch: REL_18_STABLE [c29d32d27] 2025-10-18 18:36:21 -0400
|
|
Branch: REL_17_STABLE [d4e8c37cc] 2025-10-18 18:36:21 -0400
|
|
Branch: REL_16_STABLE [c26a8eaf6] 2025-10-18 18:36:21 -0400
|
|
-->
|
|
<para>
|
|
Fix <filename>contrib/pg_prewarm</filename>'s privilege checks for
|
|
indexes (Ayush Vatsa, Nathan Bossart)
|
|
<ulink url="&commit_baseurl;3ccf8e9ac">§</ulink>
|
|
<ulink url="&commit_baseurl;c29d32d27">§</ulink>
|
|
</para>
|
|
|
|
<para>
|
|
<function>pg_prewarm()</function> requires <literal>SELECT</literal>
|
|
privilege on relations to be prewarmed. However, since indexes have
|
|
no SQL privileges of their own, this resulted in non-superusers
|
|
being unable to prewarm indexes. Instead, check
|
|
for <literal>SELECT</literal> privilege on the index's table.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Álvaro Herrera <alvherre@kurilemu.de>
|
|
Branch: master [16edc1b94] 2025-10-29 12:35:02 +0100
|
|
Branch: REL_18_STABLE [b1635c166] 2025-10-29 12:35:02 +0100
|
|
-->
|
|
<para>
|
|
In <filename>contrib/pg_stat_statements</filename>, avoid
|
|
crash when two or more constants are marked as having the same
|
|
location in the SQL statement text (Sami Imseih, Dmitry Dolgov)
|
|
<ulink url="&commit_baseurl;b1635c166">§</ulink>
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Michael Paquier <michael@paquier.xyz>
|
|
Branch: master [684a745f5] 2025-10-02 11:07:30 +0900
|
|
Branch: REL_18_STABLE [fc295beb7] 2025-10-02 11:09:10 +0900
|
|
Branch: REL_17_STABLE [036decbba] 2025-10-02 11:09:12 +0900
|
|
Branch: REL_16_STABLE [c0f9fe877] 2025-10-02 11:09:13 +0900
|
|
Branch: REL_15_STABLE [49b5f0b53] 2025-10-02 11:09:15 +0900
|
|
Branch: REL_14_STABLE [ee2dbcad0] 2025-10-02 11:09:17 +0900
|
|
Branch: REL_13_STABLE [c207bf473] 2025-10-02 11:09:19 +0900
|
|
-->
|
|
<para>
|
|
Make <filename>contrib/pgstattuple</filename> more robust about
|
|
empty or invalid index pages (Nitin Motiani)
|
|
<ulink url="&commit_baseurl;fc295beb7">§</ulink>
|
|
</para>
|
|
|
|
<para>
|
|
Count all-zero pages as free space, and ignore pages that are
|
|
invalid according to a check of the page's special-space size.
|
|
The code for btree indexes already counted all-zero pages as free,
|
|
but the hash and gist code would error out, which has been found to
|
|
be much less user-friendly. Similarly, make all three cases agree
|
|
on ignoring corrupted pages rather than throwing errors.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Thomas Munro <tmunro@postgresql.org>
|
|
Branch: master [c5d34f4a5] 2025-11-08 12:26:43 +1300
|
|
Branch: REL_18_STABLE [f8ccab0e9] 2025-11-08 12:28:15 +1300
|
|
Branch: REL_17_STABLE [03d9140cb] 2025-11-08 12:28:52 +1300
|
|
Branch: REL_16_STABLE [2f76ffe5e] 2025-11-08 12:29:15 +1300
|
|
Branch: REL_15_STABLE [1c7cba4c5] 2025-11-08 12:30:08 +1300
|
|
Branch: REL_14_STABLE [d8ba910b0] 2025-11-08 12:32:42 +1300
|
|
Branch: REL_13_STABLE [77b5b2c6f] 2025-11-08 12:33:01 +1300
|
|
-->
|
|
<para>
|
|
Harden our read and write barrier macros to satisfy Clang
|
|
(Thomas Munro)
|
|
<ulink url="&commit_baseurl;f8ccab0e9">§</ulink>
|
|
</para>
|
|
|
|
<para>
|
|
We supposed that <function>__atomic_thread_fence()</function> is a
|
|
sufficient barrier to prevent the C compiler from re-ordering memory
|
|
accesses around it, but it appears that that's not true for Clang,
|
|
allowing it to generate incorrect code for at least RISC-V, MIPS,
|
|
and LoongArch machines. Add explicit compiler barriers to fix that.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Álvaro Herrera <alvherre@kurilemu.de>
|
|
Branch: master [6ad9378c9] 2025-10-16 20:21:05 +0200
|
|
Branch: REL_18_STABLE [6aa04a60c] 2025-10-16 20:21:05 +0200
|
|
Branch: REL_17_STABLE [a8933194e] 2025-10-16 20:21:05 +0200
|
|
Branch: REL_16_STABLE [a506b0c0a] 2025-10-16 20:21:05 +0200
|
|
Branch: REL_15_STABLE [33202cba8] 2025-10-16 20:21:05 +0200
|
|
Branch: REL_14_STABLE [56cd332f8] 2025-10-16 20:21:05 +0200
|
|
Branch: REL_13_STABLE [f768f5a7d] 2025-10-16 20:21:05 +0200
|
|
-->
|
|
<para>
|
|
Fix PGXS build infrastructure to support building
|
|
NLS <filename>po</filename> files for extensions (Ryo Matsumura)
|
|
<ulink url="&commit_baseurl;6aa04a60c">§</ulink>
|
|
</para>
|
|
</listitem>
|
|
|
|
</itemizedlist>
|
|
|
|
</sect2>
|
|
</sect1>
|
|
|
|
<sect1 id="release-18">
|
|
<title>Release 18</title>
|
|
|
|
<formalpara>
|
|
<title>Release date:</title>
|
|
<para>2025-09-25</para>
|
|
</formalpara>
|
|
|
|
<sect2 id="release-18-highlights">
|
|
<title>Overview</title>
|
|
|
|
<para>
|
|
<productname>PostgreSQL</productname> 18 contains many new features
|
|
and enhancements, including:
|
|
</para>
|
|
|
|
<itemizedlist>
|
|
|
|
<listitem>
|
|
<para>
|
|
An asynchronous I/O (AIO) subsystem that can improve performance of
|
|
sequential scans, bitmap heap scans, vacuums, and other operations.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
<link linkend="pgupgrade"><application>pg_upgrade</application></link>
|
|
now retains optimizer statistics.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Support for "skip scan" lookups that allow using
|
|
<link linkend="indexes-multicolumn">multicolumn B-tree indexes</link> in
|
|
more cases.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
<link linkend="func_uuid_gen_table"><function>uuidv7()</function></link>
|
|
function for generating timestamp-ordered
|
|
<link linkend="datatype-uuid">UUIDs</link>.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Virtual
|
|
<link linkend="sql-createtable-parms-generated-stored">generated columns</link>
|
|
that compute their values during read operations. This is now the
|
|
default for generated columns.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
<link linkend="auth-oauth">OAuth authentication</link> support.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
<literal>OLD</literal> and <literal>NEW</literal> support for
|
|
<link linkend="dml-returning"><literal>RETURNING</literal></link> clauses
|
|
in <xref linkend="sql-insert"/>, <xref linkend="sql-update"/>,
|
|
<xref linkend="sql-delete"/>, and <xref linkend="sql-merge"/> commands.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Temporal constraints, or constraints over ranges, for
|
|
<link linkend="sql-createtable-parms-primary-key">PRIMARY KEY</link>,
|
|
<link linkend="sql-createtable-parms-unique">UNIQUE</link>, and
|
|
<link linkend="sql-createtable-parms-references">FOREIGN KEY</link>
|
|
constraints.
|
|
</para>
|
|
</listitem>
|
|
</itemizedlist>
|
|
|
|
<para>
|
|
The above items and other new features of
|
|
<productname>PostgreSQL</productname> 18 are explained in more detail
|
|
in the sections below.
|
|
</para>
|
|
|
|
</sect2>
|
|
|
|
<sect2 id="release-18-migration">
|
|
|
|
<title>Migration to Version 18</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 18 contains a number of changes that may affect compatibility
|
|
with previous releases. Observe the following incompatibilities:
|
|
</para>
|
|
|
|
<itemizedlist>
|
|
|
|
<!--
|
|
Author: Peter Eisentraut <peter@eisentraut.org>
|
|
2024-10-16 [04bec894a04] initdb: Change default to using data checksums.
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Change <xref linkend="app-initdb"/> default to enable data checksums
|
|
(Greg Sabino Mullane)
|
|
<ulink url="&commit_baseurl;04bec894a04">§</ulink>
|
|
</para>
|
|
|
|
<para>
|
|
Checksums can be disabled with the
|
|
new <application>initdb</application> option
|
|
<option>--no-data-checksums</option>. <xref linkend="pgupgrade"/>
|
|
requires matching cluster checksum settings, so this new option can
|
|
be useful to upgrade non-checksum old clusters.
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
2025-01-16 [d7674c9fa] Seek zone abbreviations in the IANA data before timezone
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Change time zone abbreviation handling (Tom Lane)
|
|
<ulink url="&commit_baseurl;d7674c9fa">§</ulink>
|
|
</para>
|
|
|
|
<para>
|
|
The system will now favor the current session's time
|
|
zone abbreviations before checking the server variable
|
|
<xref linkend="guc-timezone-abbreviations"/>. Previously
|
|
<varname>timezone_abbreviations</varname> was checked first.
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Nathan Bossart <nathan@postgresql.org>
|
|
2024-12-02 [db6a4a985] Deprecate MD5 passwords.
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Deprecate <link linkend="auth-password">MD5 password</link>
|
|
authentication (Nathan Bossart)
|
|
<ulink url="&commit_baseurl;db6a4a985">§</ulink>
|
|
</para>
|
|
|
|
<para>
|
|
Support for MD5 passwords will be removed in a future major
|
|
version release. <xref linkend="sql-createrole"/> and <xref
|
|
linkend="sql-alterrole"/> now emit deprecation warnings when
|
|
setting MD5 passwords. These warnings can be disabled by setting
|
|
the <xref linkend="guc-md5-password-warnings"/> parameter to
|
|
<literal>off</literal>.
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: David Rowley <drowley@postgresql.org>
|
|
2024-09-24 [62ddf7ee9] Add ONLY support for VACUUM and ANALYZE
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Change <xref linkend="sql-vacuum"/> and <xref linkend="sql-analyze"/>
|
|
to process the inheritance children of a parent (Michael Harris)
|
|
<ulink url="&commit_baseurl;62ddf7ee9">§</ulink>
|
|
</para>
|
|
|
|
<para>
|
|
The previous behavior can be performed by using the new
|
|
<literal>ONLY</literal> option.
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
2024-09-30 [770233748] Do not treat \. as an EOF marker in CSV mode for COPY IN
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
2024-10-01 [da8a4c166] Reject a copy EOF marker that has data ahead of it on th
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Prevent <link linkend="sql-copy"><command>COPY FROM</command></link>
|
|
from treating <literal>\.</literal> as an end-of-file marker when
|
|
reading <acronym>CSV</acronym> files (Daniel Vérité, Tom Lane)
|
|
<ulink url="&commit_baseurl;770233748">§</ulink>
|
|
<ulink url="&commit_baseurl;da8a4c166">§</ulink>
|
|
</para>
|
|
|
|
<para>
|
|
<xref linkend="app-psql"/> will still treat
|
|
<literal>\.</literal> as an end-of-file marker when reading
|
|
<acronym>CSV</acronym> files from <literal>STDIN</literal>.
|
|
Older <application>psql</application> clients connecting to
|
|
<productname>PostgreSQL</productname> 18 servers might experience <link
|
|
linkend="app-psql-meta-commands-copy"><literal>\copy</literal></link>
|
|
problems. This release also enforces that <literal>\.</literal>
|
|
must appear alone on a line.
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Michael Paquier <michael@paquier.xyz>
|
|
2024-10-03 [e2bab2d79] Remove support for unlogged on partitioned tables
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Disallow unlogged partitioned tables (Michael Paquier)
|
|
<ulink url="&commit_baseurl;e2bab2d79">§</ulink>
|
|
</para>
|
|
|
|
<para>
|
|
Previously <link linkend="sql-altertable"><command>ALTER TABLE SET
|
|
[UN]LOGGED</command></link> did nothing, and the creation of an
|
|
unlogged partitioned table did not cause its children to be unlogged.
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
2025-01-23 [01463e1cc] Ensure that AFTER triggers run as the instigating user.
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Execute <literal>AFTER</literal> <link
|
|
linkend="triggers">triggers</link> as the role that was active when
|
|
trigger events were queued (Laurenz Albe)
|
|
<ulink url="&commit_baseurl;01463e1cc">§</ulink>
|
|
</para>
|
|
|
|
<para>
|
|
Previously such triggers were run as the role that was active at
|
|
trigger execution time (e.g., at <xref linkend="sql-commit"/>).
|
|
This is significant for cases where the role is changed between queue
|
|
time and transaction commit.
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Fujii Masao <fujii@postgresql.org>
|
|
2024-09-12 [fefa76f70] Remove old RULE privilege completely.
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Remove non-functional support for rule privileges in <xref
|
|
linkend="sql-grant"/>/<xref linkend="sql-revoke"/> (Fujii Masao)
|
|
<ulink url="&commit_baseurl;fefa76f70">§</ulink>
|
|
</para>
|
|
|
|
<para>
|
|
These have been non-functional since
|
|
<productname>PostgreSQL</productname> 8.2.
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: David Rowley <drowley@postgresql.org>
|
|
2024-08-12 [f0d112759] Remove "parent" column from pg_backend_memory_contexts
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Remove column <link
|
|
linkend="view-pg-backend-memory-contexts"><structname>pg_backend_memory_contexts</structname></link>.<structfield>parent</structfield>
|
|
(Melih Mutlu)
|
|
<ulink url="&commit_baseurl;f0d112759">§</ulink>
|
|
</para>
|
|
|
|
<para>
|
|
This is no longer needed since
|
|
<structname>pg_backend_memory_contexts</structname>.<structfield>path</structfield>
|
|
was added.
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: David Rowley <drowley@postgresql.org>
|
|
2024-07-25 [32d3ed816] Add path column to pg_backend_memory_contexts view
|
|
Author: David Rowley <drowley@postgresql.org>
|
|
2025-04-18 [d9e03864b] Make levels 1-based in
|
|
pg_log_backend_memory_contexts()
|
|
Author: Fujii Masao <fujii@postgresql.org>
|
|
2025-04-21 [706cbed35] doc: Fix memory context level in pg_log_backend_memory_c
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Change
|
|
<structname>pg_backend_memory_contexts</structname>.<structfield>level</structfield>
|
|
and <link
|
|
linkend="functions-admin-signal-table"><function>pg_log_backend_memory_contexts()</function></link>
|
|
to be one-based (Melih Mutlu, Atsushi Torikoshi, David Rowley,
|
|
Fujii Masao)
|
|
<ulink url="&commit_baseurl;32d3ed816">§</ulink>
|
|
<ulink url="&commit_baseurl;d9e03864b">§</ulink>
|
|
<ulink url="&commit_baseurl;706cbed35">§</ulink>
|
|
</para>
|
|
|
|
<para>
|
|
These were previously zero-based.
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Peter Eisentraut <peter@eisentraut.org>
|
|
2024-12-17 [fb1a18810f0] Remove ts_locale.c's lowerstr()
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Change <link linkend="textsearch">full text search</link> to use the
|
|
default collation provider of the cluster to read configuration files
|
|
and dictionaries, rather than always using libc (Peter Eisentraut)
|
|
<ulink url="&commit_baseurl;fb1a18810f0">§</ulink>
|
|
</para>
|
|
|
|
<para>
|
|
Clusters that default to non-libc collation providers (e.g., ICU,
|
|
builtin) that behave differently than libc for characters processed
|
|
by LC_CTYPE could observe changes in behavior of some full-text
|
|
search functions, as well as the <xref linkend="pgtrgm"/> extension.
|
|
When upgrading such clusters using <xref linkend="pgupgrade"/>, it
|
|
is recommended to reindex all indexes related to full-text search
|
|
and <application>pg_trgm</application> after the upgrade.
|
|
</para>
|
|
</listitem>
|
|
|
|
</itemizedlist>
|
|
|
|
</sect2>
|
|
|
|
<sect2 id="release-18-changes">
|
|
<title>Changes</title>
|
|
|
|
<para>
|
|
Below you will find a detailed account of the changes between
|
|
<productname>PostgreSQL</productname> 18 and the previous major
|
|
release.
|
|
</para>
|
|
|
|
<sect3 id="release-18-server">
|
|
<title>Server</title>
|
|
|
|
<sect4 id="release-18-optimizer">
|
|
<title>Optimizer</title>
|
|
|
|
<itemizedlist>
|
|
|
|
<!--
|
|
Author: Alexander Korotkov <akorotkov@postgresql.org>
|
|
2025-02-17 [fc069a3a6] Implement Self-Join Elimination
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Automatically remove some unnecessary table self-joins (Andrey
|
|
Lepikhov, Alexander Kuzmenkov, Alexander Korotkov, Alena Rybakina)
|
|
<ulink url="&commit_baseurl;fc069a3a6">§</ulink>
|
|
</para>
|
|
|
|
<para>
|
|
This optimization can be disabled using server variable <xref
|
|
linkend="guc-enable-self-join-elimination"/>.
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Alexander Korotkov <akorotkov@postgresql.org>
|
|
2025-04-04 [c0962a113] Convert 'x IN (VALUES ...)' to 'x = ANY ...' then approp
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Convert some <link
|
|
linkend="functions-comparisons-in-scalar"><literal>IN (VALUES
|
|
...)</literal></link> to <literal>x = ANY ...</literal> for better
|
|
optimizer statistics (Alena Rybakina, Andrei Lepikhov)
|
|
<ulink url="&commit_baseurl;c0962a113">§</ulink>
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Alexander Korotkov <akorotkov@postgresql.org>
|
|
2024-11-24 [ae4569161] Teach bitmap path generation about transforming OR-claus
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Allow transforming <link
|
|
linkend="functions-logical"><literal>OR</literal></link>-clauses
|
|
to arrays for faster index processing (Alexander Korotkov, Andrey
|
|
Lepikhov)
|
|
<ulink url="&commit_baseurl;ae4569161">§</ulink>
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
2024-09-10 [52c707483] Use a hash table to de-duplicate column names in ruleuti
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
2024-12-19 [276279295] Convert SetOp to read its inputs as outerPlan and innerP
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
2024-12-19 [8d96f57d5] Improve planner's handling of SetOp plans.
|
|
Author: David Rowley <drowley@postgresql.org>
|
|
2024-09-05 [908a96861] Optimize WindowAgg's use of tuplestores
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Speed up the processing of <link
|
|
linkend="sql-intersect"><literal>INTERSECT</literal></link>,
|
|
<link linkend="sql-except"><literal>EXCEPT</literal></link>, <link
|
|
linkend="tutorial-window">window aggregates</link>, and <link
|
|
linkend="sql-createview">view column aliases</link> (Tom Lane,
|
|
David Rowley)
|
|
<ulink url="&commit_baseurl;52c707483">§</ulink>
|
|
<ulink url="&commit_baseurl;276279295">§</ulink>
|
|
<ulink url="&commit_baseurl;8d96f57d5">§</ulink>
|
|
<ulink url="&commit_baseurl;908a96861">§</ulink>
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Richard Guo <rguo@postgresql.org>
|
|
2024-11-26 [a8ccf4e93] Reordering DISTINCT keys to match input path's pathkeys
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Allow the keys of <link linkend="sql-distinct"><command>SELECT
|
|
DISTINCT</command></link> to be internally reordered to avoid sorting
|
|
(Richard Guo)
|
|
<ulink url="&commit_baseurl;a8ccf4e93">§</ulink>
|
|
</para>
|
|
|
|
<para>
|
|
This optimization can be disabled using <xref
|
|
linkend="guc-enable-distinct-reordering"/>.
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: David Rowley <drowley@postgresql.org>
|
|
2024-12-12 [bd10ec529] Detect redundant GROUP BY columns using UNIQUE indexes
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Ignore <link linkend="sql-groupby"><literal>GROUP BY</literal></link>
|
|
columns that are functionally dependent on other columns (Zhang
|
|
Mingli, Jian He, David Rowley)
|
|
<ulink url="&commit_baseurl;bd10ec529">§</ulink>
|
|
</para>
|
|
|
|
<para>
|
|
If a <literal>GROUP BY</literal> clause includes all columns of
|
|
a unique index, as well as other columns of the same table, those
|
|
other columns are redundant and can be dropped from the grouping.
|
|
This was already true for non-deferred primary keys.
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Richard Guo <rguo@postgresql.org>
|
|
2024-10-09 [67a54b9e8] Allow pushdown of HAVING clauses with grouping sets
|
|
Author: Richard Guo <rguo@postgresql.org>
|
|
2024-09-10 [247dea89f] Introduce an RTE for the grouping step
|
|
Author: Richard Guo <rguo@postgresql.org>
|
|
2024-09-10 [f5050f795] Mark expressions nullable by grouping sets
|
|
Author: Richard Guo <rguo@postgresql.org>
|
|
2025-03-13 [cc5d98525] Fix incorrect handling of subquery pullup
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Allow some <link
|
|
linkend="sql-having"><literal>HAVING</literal></link> clauses
|
|
on <link linkend="queries-grouping-sets"><literal>GROUPING
|
|
SETS</literal></link> to be pushed to <link
|
|
linkend="sql-where"><literal>WHERE</literal></link> clauses
|
|
(Richard Guo)
|
|
<ulink url="&commit_baseurl;67a54b9e8">§</ulink>
|
|
<ulink url="&commit_baseurl;247dea89f">§</ulink>
|
|
<ulink url="&commit_baseurl;f5050f795">§</ulink>
|
|
<ulink url="&commit_baseurl;cc5d98525">§</ulink>
|
|
</para>
|
|
|
|
<para>
|
|
This allows earlier row filtering. This release also fixes some
|
|
<literal>GROUPING SETS</literal> queries that used to return
|
|
incorrect results.
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: David Rowley <drowley@postgresql.org>
|
|
2024-07-09 [036bdcec9] Teach planner how to estimate rows for timestamp generat
|
|
Author: Dean Rasheed <dean.a.rasheed@gmail.com>
|
|
2024-12-02 [97173536e] Add a planner support function for numeric generate_seri
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Improve row estimates for <link
|
|
linkend="functions-srf-series"><function>generate_series()</function></link>
|
|
using <link linkend="datatype-numeric"><type>numeric</type></link>
|
|
and <link linkend="datatype-datetime"><type>timestamp</type></link>
|
|
values (David Rowley, Song Jinzhou)
|
|
<ulink url="&commit_baseurl;036bdcec9">§</ulink>
|
|
<ulink url="&commit_baseurl;97173536e">§</ulink>
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Richard Guo <rguo@postgresql.org>
|
|
2024-07-05 [aa86129e1] Support "Right Semi Join" plan shapes
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Allow the optimizer to use <literal>Right Semi Join</literal> plans
|
|
(Richard Guo)
|
|
<ulink url="&commit_baseurl;aa86129e1">§</ulink>
|
|
</para>
|
|
|
|
<para>
|
|
Semi-joins are used when needing to find if there is at least
|
|
one match.
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Richard Guo <rguo@postgresql.org>
|
|
2024-10-09 [828e94c9d] Consider explicit incremental sort for mergejoins
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Allow merge joins to use <link
|
|
linkend="guc-enable-incremental-sort">incremental sorts</link>
|
|
(Richard Guo)
|
|
<ulink url="&commit_baseurl;828e94c9d">§</ulink>
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Amit Langote <amitlan@postgresql.org>
|
|
2025-04-04 [88f55bc97] Make derived clause lookup in EquivalenceClass more effi
|
|
Author: David Rowley <drowley@postgresql.org>
|
|
2025-04-08 [d69d45a5a] Speedup child EquivalenceMember lookup in planner
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Improve the efficiency of planning queries accessing many partitions
|
|
(Ashutosh Bapat, Yuya Watari, David Rowley)
|
|
<ulink url="&commit_baseurl;88f55bc97">§</ulink>
|
|
<ulink url="&commit_baseurl;d69d45a5a">§</ulink>
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Richard Guo <rguo@postgresql.org>
|
|
2024-07-30 [9b282a935] Fix partitionwise join with partially-redundant join cla
|
|
Author: Richard Guo <rguo@postgresql.org>
|
|
2024-07-29 [513f4472a] Reduce memory used by partitionwise joins
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Allow <link linkend="guc-enable-partitionwise-join">partitionwise
|
|
joins</link> in more cases, and reduce its memory usage (Richard Guo,
|
|
Tom Lane, Ashutosh Bapat)
|
|
<ulink url="&commit_baseurl;9b282a935">§</ulink>
|
|
<ulink url="&commit_baseurl;513f4472a">§</ulink>
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Alexander Korotkov <akorotkov@postgresql.org>
|
|
2025-03-10 [fae535da0] Teach Append to consider tuple_fraction when accumulatin
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Improve cost estimates of partition queries (Nikita Malakhov,
|
|
Andrei Lepikhov)
|
|
<ulink url="&commit_baseurl;fae535da0">§</ulink>
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
2025-04-02 [0dca5d68d] Change SQL-language functions to use the plan cache.
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
2025-04-17 [09b07c295] Minor performance improvement for SQL-language functions
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Improve <link linkend="xfunc-sql"><acronym>SQL</acronym>-language
|
|
function</link> plan caching (Alexander Pyhalov, Tom Lane)
|
|
<ulink url="&commit_baseurl;0dca5d68d">§</ulink>
|
|
<ulink url="&commit_baseurl;09b07c295">§</ulink>
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Robert Haas <rhaas@postgresql.org>
|
|
2024-08-21 [e22253467] Treat number of disabled nodes in a path as a separate c
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Improve handling of disabled optimizer features (Robert Haas)
|
|
<ulink url="&commit_baseurl;e22253467">§</ulink>
|
|
</para>
|
|
</listitem>
|
|
|
|
</itemizedlist>
|
|
|
|
</sect4>
|
|
|
|
<sect4 id="release-18-indexes">
|
|
<title>Indexes</title>
|
|
|
|
<itemizedlist>
|
|
|
|
<!--
|
|
Author: Peter Geoghegan <pg@bowt.ie>
|
|
2025-04-04 [92fe23d93] Add nbtree skip scan optimization.
|
|
Author: Peter Geoghegan <pg@bowt.ie>
|
|
2025-04-04 [8a510275d] Further optimize nbtree search scan key comparisons.
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Allow skip scans of <link linkend="xfunc-sql">btree</link> indexes
|
|
(Peter Geoghegan)
|
|
<ulink url="&commit_baseurl;92fe23d93">§</ulink>
|
|
<ulink url="&commit_baseurl;8a510275d">§</ulink>
|
|
</para>
|
|
|
|
<para>
|
|
This allows multi-column btree indexes to be used in more cases such
|
|
as when there are no restrictions on the first or early indexed
|
|
columns (or there are non-equality ones), and there are useful
|
|
restrictions on later indexed columns.
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Peter Eisentraut <peter@eisentraut.org>
|
|
2025-03-18 [f278e1fe3] Allow non-btree unique indexes for partition keys
|
|
Author: Peter Eisentraut <peter@eisentraut.org>
|
|
2025-03-18 [9d6db8bec] Allow non-btree unique indexes for matviews
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Allow non-btree unique indexes to be used as partition keys and in
|
|
materialized views (Mark Dilger)
|
|
<ulink url="&commit_baseurl;f278e1fe3">§</ulink>
|
|
<ulink url="&commit_baseurl;9d6db8bec">§</ulink>
|
|
</para>
|
|
|
|
<para>
|
|
The index type must still support equality.
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Tomas Vondra <tomas.vondra@postgresql.org>
|
|
2025-03-03 [8492feb98] Allow parallel CREATE INDEX for GIN indexes
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Allow <link linkend="gin"><literal>GIN</literal></link> indexes to
|
|
be created in parallel (Tomas Vondra, Matthias van de Meent)
|
|
<ulink url="&commit_baseurl;8492feb98">§</ulink>
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
|
|
2025-04-02 [e9e7b6604] Add GiST and btree sortsupport routines for range types
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Allow values to be sorted to speed range-type <link
|
|
linkend="gist">GiST</link> and <link linkend="btree">btree</link>
|
|
index builds (Bernd Helmle)
|
|
<ulink url="&commit_baseurl;e9e7b6604">§</ulink>
|
|
</para>
|
|
</listitem>
|
|
|
|
</itemizedlist>
|
|
|
|
</sect4>
|
|
|
|
<sect4 id="release-18-performance">
|
|
<title>General Performance</title>
|
|
|
|
<itemizedlist>
|
|
|
|
<!--
|
|
Author: Andres Freund <andres@anarazel.de>
|
|
2025-03-17 [02844012b] aio: Basic subsystem initialization
|
|
Author: Andres Freund <andres@anarazel.de>
|
|
2025-03-17 [da7226993] aio: Add core asynchronous I/O infrastructure
|
|
Author: Andres Freund <andres@anarazel.de>
|
|
2025-03-18 [55b454d0e] aio: Infrastructure for io_method=worker
|
|
Author: Andres Freund <andres@anarazel.de>
|
|
2025-03-18 [247ce06b8] aio: Add io_method=worker
|
|
Author: Thomas Munro <tmunro@postgresql.org>
|
|
2025-03-19 [10f664684] Introduce io_max_combine_limit.
|
|
Author: Thomas Munro <tmunro@postgresql.org>
|
|
2025-03-19 [06fb5612c] Increase io_combine_limit range to 1MB.
|
|
Author: Andres Freund <andres@anarazel.de>
|
|
2025-03-26 [c325a7633] aio: Add io_method=io_uring
|
|
Author: Andres Freund <andres@anarazel.de>
|
|
2025-03-29 [50cb7505b] aio: Implement support for reads in smgr/md/fd
|
|
Author: Andres Freund <andres@anarazel.de>
|
|
2025-03-30 [047cba7fa] bufmgr: Implement AIO read support
|
|
Author: Andres Freund <andres@anarazel.de>
|
|
2025-03-30 [12ce89fd0] bufmgr: Use AIO in StartReadBuffers()
|
|
Author: Andres Freund <andres@anarazel.de>
|
|
2025-03-30 [2a5e709e7] Enable IO concurrency on all systems
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Add an asynchronous I/O subsystem (Andres Freund, Thomas Munro,
|
|
Nazir Bilal Yavuz, Melanie Plageman)
|
|
<ulink url="&commit_baseurl;02844012b">§</ulink>
|
|
<ulink url="&commit_baseurl;da7226993">§</ulink>
|
|
<ulink url="&commit_baseurl;55b454d0e">§</ulink>
|
|
<ulink url="&commit_baseurl;247ce06b8">§</ulink>
|
|
<ulink url="&commit_baseurl;10f664684">§</ulink>
|
|
<ulink url="&commit_baseurl;06fb5612c">§</ulink>
|
|
<ulink url="&commit_baseurl;c325a7633">§</ulink>
|
|
<ulink url="&commit_baseurl;50cb7505b">§</ulink>
|
|
<ulink url="&commit_baseurl;047cba7fa">§</ulink>
|
|
<ulink url="&commit_baseurl;12ce89fd0">§</ulink>
|
|
<ulink url="&commit_baseurl;2a5e709e7">§</ulink>
|
|
</para>
|
|
|
|
<para>
|
|
This feature allows backends to queue multiple read requests,
|
|
which allows for more efficient sequential scans, bitmap
|
|
heap scans, vacuums, etc. This is enabled by server
|
|
variable <xref linkend="guc-io-method"/>, with server
|
|
variables <xref linkend="guc-io-combine-limit"/> and <xref
|
|
linkend="guc-io-max-combine-limit"/> added to control it.
|
|
This also enables <xref linkend="guc-effective-io-concurrency"/>
|
|
and <xref linkend="guc-maintenance-io-concurrency"/>
|
|
values greater than zero for systems without
|
|
<function>fadvise()</function> support. The new system view <link
|
|
linkend="view-pg-aios"><structname>pg_aios</structname></link>
|
|
shows the file handles being used for asynchronous I/O.
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Tomas Vondra <tomas.vondra@postgresql.org>
|
|
2024-09-21 [c4d5cb71d] Increase the number of fast-path lock slots
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Improve the locking performance of queries that access many relations
|
|
(Tomas Vondra)
|
|
<ulink url="&commit_baseurl;c4d5cb71d">§</ulink>
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: David Rowley <drowley@postgresql.org>
|
|
2024-08-20 [adf97c156] Speed up Hash Join by making ExprStates support hashing
|
|
Author: David Rowley <drowley@postgresql.org>
|
|
2024-12-11 [0f5738202] Use ExprStates for hashing in GROUP BY and SubPlans
|
|
Author: Jeff Davis <jdavis@postgresql.org>
|
|
2025-03-24 [4d143509c] Create accessor functions for TupleHashEntry.
|
|
Author: Jeff Davis <jdavis@postgresql.org>
|
|
2025-03-24 [a0942f441] Add ExecCopySlotMinimalTupleExtra().
|
|
Author: Jeff Davis <jdavis@postgresql.org>
|
|
2025-03-24 [626df47ad] Remove 'additional' pointer from TupleHashEntryData.
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Improve the performance and reduce memory usage of hash joins and
|
|
<link linkend="sql-groupby"><literal>GROUP BY</literal></link>
|
|
(David Rowley, Jeff Davis)
|
|
<ulink url="&commit_baseurl;adf97c156">§</ulink>
|
|
<ulink url="&commit_baseurl;0f5738202">§</ulink>
|
|
<ulink url="&commit_baseurl;4d143509c">§</ulink>
|
|
<ulink url="&commit_baseurl;a0942f441">§</ulink>
|
|
<ulink url="&commit_baseurl;626df47ad">§</ulink>
|
|
</para>
|
|
|
|
<para>
|
|
This also improves hash set operations used by <link
|
|
linkend="sql-except"><literal>EXCEPT</literal></link>, and hash
|
|
lookups of subplan values.
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Melanie Plageman <melanieplageman@gmail.com>
|
|
2025-02-11 [052026c9b] Eagerly scan all-visible pages to amortize aggressive va
|
|
Author: Melanie Plageman <melanieplageman@gmail.com>
|
|
2025-03-03 [06eae9e62] Trigger more frequent autovacuums with relallfrozen
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Allow normal vacuums to freeze some pages, even though they are
|
|
all-visible (Melanie Plageman)
|
|
<ulink url="&commit_baseurl;052026c9b">§</ulink>
|
|
<ulink url="&commit_baseurl;06eae9e62">§</ulink>
|
|
</para>
|
|
|
|
<para>
|
|
This reduces the overhead of later full-relation
|
|
freezing. The aggressiveness of this can be
|
|
controlled by server variable and per-table setting <xref
|
|
linkend="guc-vacuum-max-eager-freeze-failure-rate"/>. Previously
|
|
vacuum never processed all-visible pages until freezing was required.
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Nathan Bossart <nathan@postgresql.org>
|
|
2025-03-20 [0164a0f9e] Add vacuum_truncate configuration parameter.
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Add server variable <xref linkend="guc-vacuum-truncate"/> to control
|
|
file truncation during <xref linkend="sql-vacuum"/> (Nathan Bossart,
|
|
Gurjeet Singh)
|
|
<ulink url="&commit_baseurl;0164a0f9e">§</ulink>
|
|
</para>
|
|
|
|
<para>
|
|
A storage-level parameter with the same name and behavior already
|
|
existed.
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Melanie Plageman <melanieplageman@gmail.com>
|
|
2025-03-12 [ff79b5b2a] Increase default effective_io_concurrency to 16
|
|
Author: Melanie Plageman <melanieplageman@gmail.com>
|
|
2025-03-18 [cc6be07eb] Increase default maintenance_io_concurrency to 16
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Increase server variables <xref
|
|
linkend="guc-effective-io-concurrency"/>'s and <xref
|
|
linkend="guc-maintenance-io-concurrency"/>'s default values to 16
|
|
(Melanie Plageman)
|
|
<ulink url="&commit_baseurl;ff79b5b2a">§</ulink>
|
|
<ulink url="&commit_baseurl;cc6be07eb">§</ulink>
|
|
</para>
|
|
|
|
<para>
|
|
This more accurately reflects modern hardware.
|
|
</para>
|
|
</listitem>
|
|
|
|
</itemizedlist>
|
|
|
|
</sect4>
|
|
|
|
<sect4 id="release-18-monitoring">
|
|
<title>Monitoring</title>
|
|
|
|
<itemizedlist>
|
|
|
|
<!--
|
|
Author: Melanie Plageman <melanieplageman@gmail.com>
|
|
2025-03-12 [9219093ca] Modularize log_connections output
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Increase the logging granularity of server variable <xref
|
|
linkend="guc-log-connections"/> (Melanie Plageman)
|
|
<ulink url="&commit_baseurl;9219093ca">§</ulink>
|
|
</para>
|
|
|
|
<para>
|
|
This server variable was previously only boolean, which is still
|
|
supported.
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Melanie Plageman <melanieplageman@gmail.com>
|
|
2025-03-12 [18cd15e70] Add connection establishment duration logging
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Add <varname>log_connections</varname> option to report the duration
|
|
of connection stages (Melanie Plageman)
|
|
<ulink url="&commit_baseurl;18cd15e70">§</ulink>
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
2025-04-07 [3516ea768] Add local-address escape "%L" to log_line_prefix.
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Add <xref linkend="guc-log-line-prefix"/> escape
|
|
<literal>%L</literal> to output the client <acronym>IP</acronym>
|
|
address (Greg Sabino Mullane)
|
|
<ulink url="&commit_baseurl;3516ea768">§</ulink>
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Fujii Masao <fujii@postgresql.org>
|
|
2025-03-14 [6d376c3b0] Add GUC option to log lock acquisition failures.
|
|
Author: Fujii Masao <fujii@postgresql.org>
|
|
2025-06-03 [73bdcfab3] Rename log_lock_failure GUC to log_lock_failures for con
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Add server variable <xref linkend="guc-log-lock-failures"/> to log
|
|
lock acquisition failures (Yuki Seino, Fujii Masao)
|
|
<ulink url="&commit_baseurl;6d376c3b0">§</ulink>
|
|
<ulink url="&commit_baseurl;73bdcfab3">§</ulink>
|
|
</para>
|
|
|
|
<para>
|
|
Specifically it reports <link
|
|
linkend="sql-for-update-share"><command>SELECT
|
|
... NOWAIT</command></link> lock failures.
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Michael Paquier <michael@paquier.xyz>
|
|
2025-01-28 [30a6ed0ce] Track per-relation cumulative time spent in [auto]vacuum
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Modify <link
|
|
linkend="monitoring-pg-stat-all-tables-view"><structname>pg_stat_all_tables</structname></link>
|
|
and its variants to report the time spent in <xref
|
|
linkend="sql-vacuum"/>, <xref linkend="sql-analyze"/>, and their
|
|
<link linkend="autovacuum">automatic</link> variants (Sami Imseih)
|
|
<ulink url="&commit_baseurl;30a6ed0ce">§</ulink>
|
|
</para>
|
|
|
|
<para>
|
|
The new columns are <structfield>total_vacuum_time</structfield>,
|
|
<structfield>total_autovacuum_time</structfield>,
|
|
<structfield>total_analyze_time</structfield>, and
|
|
<structfield>total_autoanalyze_time</structfield>.
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Nathan Bossart <nathan@postgresql.org>
|
|
2025-02-11 [bb8dff999] Add cost-based vacuum delay time to progress views.
|
|
Author: Nathan Bossart <nathan@postgresql.org>
|
|
2025-02-14 [7720082ae] Add delay time to VACUUM/ANALYZE (VERBOSE) and autovacuu
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Add delay time reporting to <xref linkend="sql-vacuum"/> and <xref
|
|
linkend="sql-analyze"/> (Bertrand Drouvot, Nathan Bossart)
|
|
<ulink url="&commit_baseurl;bb8dff999">§</ulink>
|
|
<ulink url="&commit_baseurl;7720082ae">§</ulink>
|
|
</para>
|
|
|
|
<para>
|
|
This information appears in the server log, the system views <link
|
|
linkend="vacuum-progress-reporting"><structname>pg_stat_progress_vacuum</structname></link>
|
|
and <link
|
|
linkend="pg-stat-progress-analyze-view"><structname>pg_stat_progress_analyze</structname></link>,
|
|
and the output of <xref linkend="sql-vacuum"/> and <xref
|
|
linkend="sql-analyze"/> when in <literal>VERBOSE</literal>
|
|
mode; tracking must be enabled with the server variable <xref
|
|
linkend="guc-track-cost-delay-timing"/>.
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Masahiko Sawada <msawada@postgresql.org>
|
|
2024-08-13 [4c1b4cdb8] Add resource statistics reporting to ANALYZE VERBOSE.
|
|
Author: Masahiko Sawada <msawada@postgresql.org>
|
|
2024-09-09 [bb7775234] Add WAL usage reporting to ANALYZE VERBOSE output.
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Add <acronym>WAL</acronym>, <acronym>CPU</acronym>, and average
|
|
read statistics output to <command>ANALYZE VERBOSE</command>
|
|
(Anthonin Bonnefoy)
|
|
<ulink url="&commit_baseurl;4c1b4cdb8">§</ulink>
|
|
<ulink url="&commit_baseurl;bb7775234">§</ulink>
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Michael Paquier <michael@paquier.xyz>
|
|
2025-02-17 [6a8a7ce47] Add information about WAL buffers full to VACUUM/ANALYZE
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Add full <acronym>WAL</acronym> buffer count to
|
|
<command>VACUUM</command>/<command>ANALYZE (VERBOSE)</command>
|
|
and autovacuum log output (Bertrand Drouvot)
|
|
<ulink url="&commit_baseurl;6a8a7ce47">§</ulink>
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Michael Paquier <michael@paquier.xyz>
|
|
2024-12-19 [9aea73fc6] Add backend-level statistics to pgstats
|
|
Author: Michael Paquier <michael@paquier.xyz>
|
|
2025-03-03 [3f1db99bf] Handle auxiliary processes in SQL functions of backend s
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Add per-backend I/O statistics reporting (Bertrand Drouvot)
|
|
<ulink url="&commit_baseurl;9aea73fc6">§</ulink>
|
|
<ulink url="&commit_baseurl;3f1db99bf">§</ulink>
|
|
</para>
|
|
|
|
<para>
|
|
The statistics are accessed via <link
|
|
linkend="pg-stat-get-backend-io"><function>pg_stat_get_backend_io()</function></link>.
|
|
Per-backend I/O statistics can be cleared via <link
|
|
linkend="monitoring-stats-funcs-table"><function>pg_stat_reset_backend_stats()</function></link>.
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Michael Paquier <michael@paquier.xyz>
|
|
2025-01-14 [f92c854cf] Make pg_stat_io count IOs as bytes instead of blocks for
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Add <link
|
|
linkend="monitoring-pg-stat-io-view"><structname>pg_stat_io</structname></link>
|
|
columns to report I/O activity in bytes (Nazir Bilal Yavuz)
|
|
<ulink url="&commit_baseurl;f92c854cf">§</ulink>
|
|
</para>
|
|
|
|
<para>
|
|
The new columns are <structfield>read_bytes</structfield>,
|
|
<structfield>write_bytes</structfield>, and
|
|
<structfield>extend_bytes</structfield>. The
|
|
<structfield>op_bytes</structfield> column, which always equaled
|
|
<link linkend="guc-block-size"><varname>BLCKSZ</varname></link>,
|
|
has been removed.
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Michael Paquier <michael@paquier.xyz>
|
|
2025-02-04 [a051e71e2] Add data for WAL in pg_stat_io and backend statistics
|
|
Author: Michael Paquier <michael@paquier.xyz>
|
|
2025-02-20 [4538bd3f1] doc: Add details about object "wal" in pg_stat_io
|
|
Author: Michael Paquier <michael@paquier.xyz>
|
|
2025-03-06 [7f7f324eb] Add more monitoring data for WAL writes in the WAL recei
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Add <acronym>WAL</acronym> I/O activity rows to
|
|
<structname>pg_stat_io</structname> (Nazir Bilal Yavuz, Bertrand
|
|
Drouvot, Michael Paquier)
|
|
<ulink url="&commit_baseurl;a051e71e2">§</ulink>
|
|
<ulink url="&commit_baseurl;4538bd3f1">§</ulink>
|
|
<ulink url="&commit_baseurl;7f7f324eb">§</ulink>
|
|
</para>
|
|
|
|
<para>
|
|
This includes <acronym>WAL</acronym> receiver activity and a wait
|
|
event for such writes.
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Michael Paquier <michael@paquier.xyz>
|
|
2025-02-26 [6c349d83b] Re-add GUC track_wal_io_timing
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Change server variable <xref linkend="guc-track-wal-io-timing"/>
|
|
to control tracking <acronym>WAL</acronym> timing
|
|
in <structname>pg_stat_io</structname> instead of <link
|
|
linkend="pg-stat-wal-view"><structname>pg_stat_wal</structname></link>
|
|
(Bertrand Drouvot)
|
|
<ulink url="&commit_baseurl;6c349d83b">§</ulink>
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Michael Paquier <michael@paquier.xyz>
|
|
2025-02-24 [2421e9a51] Remove read/sync fields from pg_stat_wal and GUC track_w
|
|
Author: Michael Paquier <michael@paquier.xyz>
|
|
2025-02-26 [6c349d83b] Re-add GUC track_wal_io_timing
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Remove read/sync columns from <structname>pg_stat_wal</structname>
|
|
(Bertrand Drouvot)
|
|
<ulink url="&commit_baseurl;2421e9a51">§</ulink>
|
|
<ulink url="&commit_baseurl;6c349d83b">§</ulink>
|
|
</para>
|
|
|
|
<para>
|
|
This removes columns <structfield>wal_write</structfield>,
|
|
<structfield>wal_sync</structfield>,
|
|
<structfield>wal_write_time</structfield>, and
|
|
<structfield>wal_sync_time</structfield>.
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Michael Paquier <michael@paquier.xyz>
|
|
2025-03-11 [76def4cdd] Add WAL data to backend statistics
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Add function <link
|
|
linkend="pg-stat-get-backend-wal"><function>pg_stat_get_backend_wal()</function></link>
|
|
to return per-backend <acronym>WAL</acronym> statistics (Bertrand
|
|
Drouvot)
|
|
<ulink url="&commit_baseurl;76def4cdd">§</ulink>
|
|
</para>
|
|
|
|
<para>
|
|
Per-backend <acronym>WAL</acronym>
|
|
statistics can be cleared via <link
|
|
linkend="monitoring-stats-funcs-table"><function>pg_stat_reset_backend_stats()</function></link>.
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Nathan Bossart <nathan@postgresql.org>
|
|
2024-10-11 [4e1fad378] Add pg_ls_summariesdir().
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Add function <link
|
|
linkend="functions-admin-genfile-table"><function>pg_ls_summariesdir()</function></link>
|
|
to specifically list the contents of <link
|
|
linkend="storage-file-layout"><envar>PGDATA</envar></link>/<link
|
|
linkend="guc-wal-summary-keep-time"><filename>pg_wal/summaries</filename></link>
|
|
(Yushi Ogiwara)
|
|
<ulink url="&commit_baseurl;4e1fad378">§</ulink>
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Fujii Masao <fujii@postgresql.org>
|
|
2024-09-30 [559efce1d] Add num_done counter to the pg_stat_checkpointer view.
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Add column <link
|
|
linkend="monitoring-pg-stat-checkpointer-view"><structname>pg_stat_checkpointer</structname></link>.<structfield>num_done</structfield>
|
|
to report the number of completed checkpoints (Anton A. Melnikov)
|
|
<ulink url="&commit_baseurl;559efce1d">§</ulink>
|
|
</para>
|
|
|
|
<para>
|
|
Columns <structfield>num_timed</structfield> and
|
|
<structfield>num_requested</structfield> count both completed and
|
|
skipped checkpoints.
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Fujii Masao <fujii@postgresql.org>
|
|
2024-10-02 [17cc5f666] Fix inconsistent reporting of checkpointer stats.
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Add column
|
|
<structname>pg_stat_checkpointer</structname>.<structfield>slru_written</structfield>
|
|
to report <acronym>SLRU</acronym> buffers written (Nitin Jadhav)
|
|
<ulink url="&commit_baseurl;17cc5f666">§</ulink>
|
|
</para>
|
|
|
|
<para>
|
|
Also, modify the checkpoint server log message to report separate
|
|
shared buffer and <acronym>SLRU</acronym> buffer values.
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Michael Paquier <michael@paquier.xyz>
|
|
2024-11-11 [e7a9496de] Add two attributes to pg_stat_database for parallel work
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Add columns to <link
|
|
linkend="monitoring-pg-stat-database-view"><structname>pg_stat_database</structname></link>
|
|
to report parallel worker activity (Benoit Lobréau)
|
|
<ulink url="&commit_baseurl;e7a9496de">§</ulink>
|
|
</para>
|
|
|
|
<para>
|
|
The new columns are
|
|
<structfield>parallel_workers_to_launch</structfield> and
|
|
<structfield>parallel_workers_launched</structfield>.
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Álvaro Herrera <alvherre@alvh.no-ip.org>
|
|
2025-03-18 [62d712ecf] Introduce squashing of constant lists in query jumbling
|
|
Author: Álvaro Herrera <alvherre@alvh.no-ip.org>
|
|
2025-03-27 [9fbd53dea] Remove the query_id_squash_values GUC
|
|
Author: Álvaro Herrera <alvherre@kurilemu.de>
|
|
Branch: master Release: REL_18_BR [c2da1a5d6] 2025-06-24 19:36:32 +0200
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Have <link linkend="guc-compute-query-id">query id</link> computation
|
|
of constant lists consider only the first and last constants (Dmitry
|
|
Dolgov, Sami Imseih)
|
|
<ulink url="&commit_baseurl;62d712ecf">§</ulink>
|
|
<ulink url="&commit_baseurl;9fbd53dea">§</ulink>
|
|
<ulink url="&commit_baseurl;c2da1a5d6">§</ulink>
|
|
</para>
|
|
|
|
<para>
|
|
Jumbling is used by <xref linkend="pgstatstatements"/>.
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Michael Paquier <michael@paquier.xyz>
|
|
2025-03-26 [787514b30] Use relation name instead of OID in query jumbling for R
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Adjust query id computations to group together queries using the
|
|
same relation name (Michael Paquier, Sami Imseih)
|
|
<ulink url="&commit_baseurl;787514b30">§</ulink>
|
|
</para>
|
|
|
|
<para>
|
|
This is true even if the tables in different schemas have different
|
|
column names.
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: David Rowley <drowley@postgresql.org>
|
|
2024-07-01 [12227a1d5] Add context type field to pg_backend_memory_contexts
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Add column <link
|
|
linkend="view-pg-backend-memory-contexts"><structname>pg_backend_memory_contexts</structname></link>.<structfield>type</structfield>
|
|
to report the type of memory context (David Rowley)
|
|
<ulink url="&commit_baseurl;12227a1d5">§</ulink>
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: David Rowley <drowley@postgresql.org>
|
|
2024-07-25 [32d3ed816] Add path column to pg_backend_memory_contexts view
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Add column
|
|
<structname>pg_backend_memory_contexts</structname>.<structfield>path</structfield>
|
|
to show memory context parents (Melih Mutlu)
|
|
<ulink url="&commit_baseurl;32d3ed816">§</ulink>
|
|
</para>
|
|
</listitem>
|
|
|
|
</itemizedlist>
|
|
|
|
</sect4>
|
|
|
|
<sect4 id="release-18-privileges">
|
|
<title>Privileges</title>
|
|
|
|
<itemizedlist>
|
|
|
|
<!--
|
|
Author: Michael Paquier <michael@paquier.xyz>
|
|
2024-07-04 [4564f1ceb] Add pg_get_acl() to get the ACL for a database object
|
|
Author: Michael Paquier <michael@paquier.xyz>
|
|
2024-07-10 [d898665bf] Extend pg_get_acl() to handle sub-object IDs
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Add function <link
|
|
linkend="functions-info-object-table"><function>pg_get_acl()</function></link>
|
|
to retrieve database access control details (Joel Jacobson)
|
|
<ulink url="&commit_baseurl;4564f1ceb">§</ulink>
|
|
<ulink url="&commit_baseurl;d898665bf">§</ulink>
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Fujii Masao <fujii@postgresql.org>
|
|
2024-09-12 [4eada203a] Add has_largeobject_privilege function.
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Add function <link
|
|
linkend="functions-info-access-table"><function>has_largeobject_privilege()</function></link>
|
|
to check large object privileges (Yugo Nagata)
|
|
<ulink url="&commit_baseurl;4eada203a">§</ulink>
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Fujii Masao <fujii@postgresql.org>
|
|
2025-04-04 [0d6c47766] Extend ALTER DEFAULT PRIVILEGES to define default privil
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Allow <xref linkend="sql-alterdefaultprivileges"/> to define
|
|
large object default privileges (Takatsuka Haruka, Yugo Nagata,
|
|
Laurenz Albe)
|
|
<ulink url="&commit_baseurl;0d6c47766">§</ulink>
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Nathan Bossart <nathan@postgresql.org>
|
|
2024-07-09 [ccd38024b] Introduce pg_signal_autovacuum_worker.
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Add predefined role <link
|
|
linkend="predefined-roles"><literal>pg_signal_autovacuum_worker</literal></link>
|
|
(Kirill Reshke)
|
|
<ulink url="&commit_baseurl;ccd38024b">§</ulink>
|
|
</para>
|
|
|
|
<para>
|
|
This allows sending signals to autovacuum workers.
|
|
</para>
|
|
</listitem>
|
|
|
|
</itemizedlist>
|
|
|
|
</sect4>
|
|
|
|
<sect4 id="release-18-server-config">
|
|
<title>Server Configuration</title>
|
|
|
|
<itemizedlist>
|
|
|
|
<!--
|
|
Author: Daniel Gustafsson <dgustafsson@postgresql.org>
|
|
2025-02-20 [b3f0be788] Add support for OAUTHBEARER SASL mechanism
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Add support for the <link linkend="auth-oauth">OAuth authentication
|
|
method</link> (Jacob Champion, Daniel Gustafsson, Thomas Munro)
|
|
<ulink url="&commit_baseurl;b3f0be788">§</ulink>
|
|
</para>
|
|
|
|
<para>
|
|
This adds an <literal>oauth</literal> authentication method to <link
|
|
linkend="auth-pg-hba-conf"><filename>pg_hba.conf</filename></link>,
|
|
libpq OAuth options, a server variable <xref
|
|
linkend="guc-oauth-validator-libraries"/> to load
|
|
token validation libraries, and a configure flag <link
|
|
linkend="configure-option-with-libcurl"><option>--with-libcurl</option></link>
|
|
to add the required compile-time libraries.
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Daniel Gustafsson <dgustafsson@postgresql.org>
|
|
2024-10-24 [45188c2ea] Support configuring TLSv1.3 cipher suites
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Add server variable <xref linkend="guc-ssl-tls13-ciphers"/> to allow
|
|
specification of multiple colon-separated TLSv1.3 cipher suites
|
|
(Erica Zhang, Daniel Gustafsson)
|
|
<ulink url="&commit_baseurl;45188c2ea">§</ulink>
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Daniel Gustafsson <dgustafsson@postgresql.org>
|
|
2025-03-18 [daa02c6bd] Add X25519 to the default set of curves
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Change server variable <xref linkend="guc-ssl-groups"/>'s default
|
|
to include elliptic curve X25519 (Daniel Gustafsson, Jacob Champion)
|
|
<ulink url="&commit_baseurl;daa02c6bd">§</ulink>
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Daniel Gustafsson <dgustafsson@postgresql.org>
|
|
2024-10-24 [3d1ef3a15] Support configuring multiple ECDH curves
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Rename server variable <varname>ssl_ecdh_curve</varname> to <xref
|
|
linkend="guc-ssl-groups"/> and allow multiple colon-separated
|
|
<acronym>ECDH</acronym> curves to be specified (Erica Zhang,
|
|
Daniel Gustafsson)
|
|
<ulink url="&commit_baseurl;3d1ef3a15">§</ulink>
|
|
</para>
|
|
|
|
<para>
|
|
The previous name still works.
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
|
|
2025-04-02 [a460251f0] Make cancel request keys longer
|
|
Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
|
|
2024-07-29 [9d9b9d46f] Move cancel key generation to after forking the backend
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Make <link linkend="functions-admin-signal-table">cancel request
|
|
keys</link> 256 bits (Heikki Linnakangas, Jelte Fennema-Nio)
|
|
<ulink url="&commit_baseurl;a460251f0">§</ulink>
|
|
<ulink url="&commit_baseurl;9d9b9d46f">§</ulink>
|
|
</para>
|
|
|
|
<para>
|
|
This is only possible when the server and client support wire
|
|
protocol version 3.2, introduced in this release.
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Nathan Bossart <nathan@postgresql.org>
|
|
2025-01-06 [c758119e5] Allow changing autovacuum_max_workers without restarting
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Add server variable <xref linkend="guc-autovacuum-worker-slots"/>
|
|
to specify the maximum number of background workers (Nathan Bossart)
|
|
<ulink url="&commit_baseurl;c758119e5">§</ulink>
|
|
</para>
|
|
|
|
<para>
|
|
With this variable set, <xref linkend="guc-autovacuum-max-workers"/>
|
|
can be adjusted at runtime up to this maximum without a server
|
|
restart.
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Nathan Bossart <nathan@postgresql.org>
|
|
2025-02-05 [306dc520b] Introduce autovacuum_vacuum_max_threshold.
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Allow specification of the fixed number of dead tuples that will
|
|
trigger an <link linkend="autovacuum">autovacuum</link> (Nathan
|
|
Bossart, Frédéric Yhuel)
|
|
<ulink url="&commit_baseurl;306dc520b">§</ulink>
|
|
</para>
|
|
|
|
<para>
|
|
The server variable is <xref
|
|
linkend="guc-autovacuum-vacuum-max-threshold"/>. Percentages are
|
|
still used for triggering.
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Andres Freund <andres@anarazel.de>
|
|
2025-03-24 [adb5f85fa] Redefine max_files_per_process to control additionally o
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Change server variable <xref linkend="guc-max-files-per-process"/>
|
|
to limit only files opened by a backend (Andres Freund)
|
|
<ulink url="&commit_baseurl;adb5f85fa">§</ulink>
|
|
</para>
|
|
|
|
<para>
|
|
Previously files opened by the postmaster were also counted toward
|
|
this limit.
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Nathan Bossart <nathan@postgresql.org>
|
|
2024-07-26 [0dcaea569] Introduce num_os_semaphores GUC.
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Add server variable <xref linkend="guc-num-os-semaphores"/> to
|
|
report the required number of semaphores (Nathan Bossart)
|
|
<ulink url="&commit_baseurl;0dcaea569">§</ulink>
|
|
</para>
|
|
|
|
<para>
|
|
This is useful for operating system configuration.
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Peter Eisentraut <peter@eisentraut.org>
|
|
2025-03-19 [4f7f7b037] extension_control_path
|
|
Author: Peter Eisentraut <peter@eisentraut.org>
|
|
2025-05-02 [81eaaa2c4] Make "directory" setting work with extension_control_pat
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Add server variable <xref linkend="guc-extension-control-path"/> to
|
|
specify the location of extension control files (Peter Eisentraut,
|
|
Matheus Alcantara)
|
|
<ulink url="&commit_baseurl;4f7f7b037">§</ulink>
|
|
<ulink url="&commit_baseurl;81eaaa2c4">§</ulink>
|
|
</para>
|
|
</listitem>
|
|
|
|
</itemizedlist>
|
|
|
|
</sect4>
|
|
|
|
<sect4 id="release-18-replication">
|
|
<title>Streaming Replication and Recovery</title>
|
|
|
|
<itemizedlist>
|
|
|
|
<!--
|
|
Author: Amit Kapila <akapila@postgresql.org>
|
|
2025-02-19 [ac0e33136] Invalidate inactive replication slots.
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Allow inactive replication slots to be automatically invalidated using
|
|
server variable <xref linkend="guc-idle-replication-slot-timeout"/>
|
|
(Nisha Moond, Bharath Rupireddy)
|
|
<ulink url="&commit_baseurl;ac0e33136">§</ulink>
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Masahiko Sawada <msawada@postgresql.org>
|
|
2025-03-21 [04ff636cb] Add GUC option to control maximum active replication ori
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Add server variable <xref
|
|
linkend="guc-max-active-replication-origins"/> to control the
|
|
maximum active replication origins (Euler Taveira)
|
|
<ulink url="&commit_baseurl;04ff636cb">§</ulink>
|
|
</para>
|
|
|
|
<para>
|
|
This was previously controlled by <xref
|
|
linkend="guc-max-replication-slots"/>, but this new setting allows
|
|
a higher origin count in cases where fewer slots are required.
|
|
</para>
|
|
</listitem>
|
|
|
|
</itemizedlist>
|
|
|
|
</sect4>
|
|
|
|
<sect4 id="release-18-logical">
|
|
<title><link linkend="logical-replication">Logical Replication</link></title>
|
|
|
|
<itemizedlist>
|
|
|
|
<!--
|
|
Author: Amit Kapila <akapila@postgresql.org>
|
|
2024-10-30 [745217a05] Replicate generated columns when specified in the column
|
|
Author: Amit Kapila <akapila@postgresql.org>
|
|
2024-11-07 [7054186c4] Replicate generated columns when 'publish_generated_colu
|
|
Author: Amit Kapila <akapila@postgresql.org>
|
|
2024-12-04 [87ce27de6] Ensure stored generated columns must be published when r
|
|
Author: Amit Kapila <akapila@postgresql.org>
|
|
2025-01-30 [6252b1eaf] Doc: Generated column replication.
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Allow the values of <link
|
|
linkend="sql-createtable-parms-generated-stored">generated
|
|
columns</link> to be logically replicated (Shubham Khanna, Vignesh C,
|
|
Zhijie Hou, Shlok Kyal, Peter Smith)
|
|
<ulink url="&commit_baseurl;745217a05">§</ulink>
|
|
<ulink url="&commit_baseurl;7054186c4">§</ulink>
|
|
<ulink url="&commit_baseurl;87ce27de6">§</ulink>
|
|
<ulink url="&commit_baseurl;6252b1eaf">§</ulink>
|
|
</para>
|
|
|
|
<para>
|
|
If the publication specifies a column list, all specified
|
|
columns, generated and non-generated, are published.
|
|
Without a specified column list, publication option
|
|
<literal>publish_generated_columns</literal> controls whether
|
|
generated columns are published. Previously generated columns
|
|
were not replicated and the subscriber had to compute
|
|
the values if possible; this is particularly useful for
|
|
non-<productname>PostgreSQL</productname> subscribers which lack
|
|
such a capability.
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Amit Kapila <akapila@postgresql.org>
|
|
2024-10-28 [1bf1140be] Change the default value of the streaming option to 'par
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Change the default <xref linkend="sql-createsubscription"/> streaming
|
|
option from <literal>off</literal> to <literal>parallel</literal>
|
|
(Vignesh C)
|
|
<ulink url="&commit_baseurl;1bf1140be">§</ulink>
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Amit Kapila <akapila@postgresql.org>
|
|
2024-07-24 [1462aad2e] Allow altering of two_phase option of a SUBSCRIPTION.
|
|
Author: Amit Kapila <akapila@postgresql.org>
|
|
2025-04-03 [4868c96bc] Fix slot synchronization for two_phase enabled slots.
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Allow <xref linkend="sql-altersubscription"/> to change the
|
|
replication slot's two-phase commit behavior (Hayato Kuroda, Ajin
|
|
Cherian, Amit Kapila, Zhijie Hou)
|
|
<ulink url="&commit_baseurl;1462aad2e">§</ulink>
|
|
<ulink url="&commit_baseurl;4868c96bc">§</ulink>
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Amit Kapila <akapila@postgresql.org>
|
|
2024-08-20 [9758174e2] Log the conflicts while applying changes in logical repl
|
|
Author: Amit Kapila <akapila@postgresql.org>
|
|
2024-08-22 [edcb71258] Doc: explain the log format of logical replication confl
|
|
Author: Amit Kapila <akapila@postgresql.org>
|
|
2024-08-29 [640178c92] Rename the conflict types for the origin differ cases.
|
|
Author: Amit Kapila <akapila@postgresql.org>
|
|
2024-09-04 [6c2b5edec] Collect statistics about conflicts in logical replicatio
|
|
Author: Amit Kapila <akapila@postgresql.org>
|
|
2025-03-24 [73eba5004] Detect and Log multiple_unique_conflicts type conflict.
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Log <link linkend="hot-standby-conflict">conflicts</link> while
|
|
applying logical replication changes (Zhijie Hou, Nisha Moond)
|
|
<ulink url="&commit_baseurl;9758174e2">§</ulink>
|
|
<ulink url="&commit_baseurl;edcb71258">§</ulink>
|
|
<ulink url="&commit_baseurl;640178c92">§</ulink>
|
|
<ulink url="&commit_baseurl;6c2b5edec">§</ulink>
|
|
<ulink url="&commit_baseurl;73eba5004">§</ulink>
|
|
</para>
|
|
|
|
<para>
|
|
Also report in new columns of <link
|
|
linkend="monitoring-pg-stat-subscription-stats"><structname>pg_stat_subscription_stats</structname></link>.
|
|
</para>
|
|
</listitem>
|
|
|
|
</itemizedlist>
|
|
|
|
</sect4>
|
|
|
|
</sect3>
|
|
|
|
<sect3 id="release-18-utility">
|
|
<title>Utility Commands</title>
|
|
|
|
<itemizedlist>
|
|
|
|
<!--
|
|
Author: Peter Eisentraut <peter@eisentraut.org>
|
|
2025-02-07 [83ea6c540] Virtual generated columns
|
|
Author: Peter Eisentraut <peter@eisentraut.org>
|
|
2025-03-28 [cdc168ad4] Add support for not-null constraints on virtual generate
|
|
Author: Richard Guo <rguo@postgresql.org>
|
|
2025-02-25 [1e4351af3] Expand virtual generated columns in the planner
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Allow <link linkend="sql-createtable-parms-generated-stored">generated
|
|
columns</link> to be virtual, and make them the default (Peter
|
|
Eisentraut, Jian He, Richard Guo, Dean Rasheed)
|
|
<ulink url="&commit_baseurl;83ea6c540">§</ulink>
|
|
<ulink url="&commit_baseurl;cdc168ad4">§</ulink>
|
|
<ulink url="&commit_baseurl;1e4351af3">§</ulink>
|
|
</para>
|
|
|
|
<para>
|
|
Virtual generated columns generate their values when the columns
|
|
are read, not written. The write behavior can still be specified
|
|
via the <literal>STORED</literal> option.
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Dean Rasheed <dean.a.rasheed@gmail.com>
|
|
2025-01-16 [80feb727c] Add OLD/NEW support to RETURNING in DML queries.
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Add <literal>OLD</literal>/<literal>NEW</literal> support to <link
|
|
linkend="dml-returning"><literal>RETURNING</literal></link> in
|
|
<acronym>DML</acronym> queries (Dean Rasheed)
|
|
<ulink url="&commit_baseurl;80feb727c">§</ulink>
|
|
</para>
|
|
|
|
<para>
|
|
Previously <literal>RETURNING</literal> only returned new values for
|
|
<xref linkend="sql-insert"/> and <xref linkend="sql-update"/>, and old
|
|
values for <xref linkend="sql-delete"/>; <xref linkend="sql-merge"/>
|
|
would return the appropriate value for the internal query executed.
|
|
This new syntax allows the <literal>RETURNING</literal> list of
|
|
<command>INSERT</command>/<command>UPDATE</command>/<command>DELETE</command>/<command>MERGE</command>
|
|
to explicitly return old and new values by using the special aliases
|
|
<literal>old</literal> and <literal>new</literal>. These aliases
|
|
can be renamed to avoid identifier conflicts.
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Michael Paquier <michael@paquier.xyz>
|
|
2025-02-19 [302cf1575] Add support for LIKE in CREATE FOREIGN TABLE
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Allow foreign tables to be created like existing local tables
|
|
(Zhang Mingli)
|
|
<ulink url="&commit_baseurl;302cf1575">§</ulink>
|
|
</para>
|
|
|
|
<para>
|
|
The syntax is <link linkend="sql-createforeigntable"><command>CREATE
|
|
FOREIGN TABLE ... LIKE</command></link>.
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Peter Eisentraut <peter@eisentraut.org>
|
|
2024-11-27 [85b7efa1c] Support LIKE with nondeterministic collations
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Allow <link linkend="functions-like"><literal>LIKE</literal></link>
|
|
with <link linkend="collation-nondeterministic">nondeterministic
|
|
collations</link> (Peter Eisentraut)
|
|
<ulink url="&commit_baseurl;85b7efa1c">§</ulink>
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Peter Eisentraut <peter@eisentraut.org>
|
|
2025-02-21 [329304c90] Support text position search functions with nondetermini
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Allow text position search functions with nondeterministic collations
|
|
(Peter Eisentraut)
|
|
<ulink url="&commit_baseurl;329304c90">§</ulink>
|
|
</para>
|
|
|
|
<para>
|
|
These used to generate an error.
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Jeff Davis <jdavis@postgresql.org>
|
|
2025-01-17 [d3d098316] Support PG_UNICODE_FAST locale in the builtin collation
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Add builtin collation provider <link
|
|
linkend="locale-providers"><literal>PG_UNICODE_FAST</literal></link>
|
|
(Jeff Davis)
|
|
<ulink url="&commit_baseurl;d3d098316">§</ulink>
|
|
</para>
|
|
|
|
<para>
|
|
This locale supports case mapping, but sorts in code point order,
|
|
not natural language order.
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: David Rowley <drowley@postgresql.org>
|
|
2024-09-24 [62ddf7ee9] Add ONLY support for VACUUM and ANALYZE
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Allow <xref linkend="sql-vacuum"/> and <xref linkend="sql-analyze"/>
|
|
to process partitioned tables without processing their children
|
|
(Michael Harris)
|
|
<ulink url="&commit_baseurl;62ddf7ee9">§</ulink>
|
|
</para>
|
|
|
|
<para>
|
|
This is enabled with the new <literal>ONLY</literal> option. This is
|
|
useful since autovacuum does not process partitioned tables, just
|
|
its children.
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Jeff Davis <jdavis@postgresql.org>
|
|
2024-10-11 [e839c8ecc] Create functions pg_set_relation_stats, pg_clear_relatio
|
|
Author: Jeff Davis <jdavis@postgresql.org>
|
|
2024-10-24 [d32d14639] Add functions pg_restore_relation_stats(), pg_restore_at
|
|
Author: Jeff Davis <jdavis@postgresql.org>
|
|
2025-03-25 [650ab8aaf] Stats: use schemaname/relname instead of regclass.
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Add functions to modify per-relation and per-column optimizer
|
|
statistics (Corey Huinker)
|
|
<ulink url="&commit_baseurl;e839c8ecc">§</ulink>
|
|
<ulink url="&commit_baseurl;d32d14639">§</ulink>
|
|
<ulink url="&commit_baseurl;650ab8aaf">§</ulink>
|
|
</para>
|
|
|
|
<para>
|
|
The functions are <link
|
|
linkend="functions-admin-statsmod"><function>pg_restore_relation_stats()</function></link>,
|
|
<function>pg_restore_attribute_stats()</function>,
|
|
<function>pg_clear_relation_stats()</function>, and
|
|
<function>pg_clear_attribute_stats()</function>.
|
|
</para>
|
|
</listitem>
|
|
|
|
|
|
<!--
|
|
Author: Thomas Munro <tmunro@postgresql.org>
|
|
2025-04-08 [f78ca6f3e] Introduce file_copy_method setting.
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Add server variable <xref linkend="guc-file-copy-method"/> to control
|
|
the file copying method (Nazir Bilal Yavuz)
|
|
<ulink url="&commit_baseurl;f78ca6f3e">§</ulink>
|
|
</para>
|
|
|
|
<para>
|
|
This controls whether <link
|
|
linkend="sql-createdatabase"><command>CREATE DATABASE
|
|
... STRATEGY=FILE_COPY</command></link> and <link
|
|
linkend="sql-alterdatabase"><command>ALTER DATABASE ... SET
|
|
TABLESPACE</command></link> uses file copy or clone.
|
|
</para>
|
|
</listitem>
|
|
|
|
</itemizedlist>
|
|
|
|
<sect4 id="release-18-constraints">
|
|
<title><link linkend="ddl-constraints">Constraints</link></title>
|
|
|
|
<itemizedlist>
|
|
|
|
<!--
|
|
Author: Peter Eisentraut <peter@eisentraut.org>
|
|
2024-09-17 [fc0438b4e] Add temporal PRIMARY KEY and UNIQUE constraints
|
|
Author: Peter Eisentraut <peter@eisentraut.org>
|
|
2024-09-17 [89f908a6d] Add temporal FOREIGN KEY contraints
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Allow the specification of non-overlapping <link
|
|
linkend="sql-createtable-parms-primary-key"><literal>PRIMARY
|
|
KEY</literal></link>, <link linkend="sql-createtable-parms-unique">
|
|
<literal>UNIQUE</literal></link>, and
|
|
<link linkend="sql-createtable-parms-references">foreign key</link>
|
|
constraints (Paul A. Jungwirth)
|
|
<ulink url="&commit_baseurl;fc0438b4e">§</ulink>
|
|
<ulink url="&commit_baseurl;89f908a6d">§</ulink>
|
|
</para>
|
|
|
|
<para>
|
|
This is specified by <literal>WITHOUT OVERLAPS</literal> for
|
|
<literal>PRIMARY KEY</literal> and <literal>UNIQUE</literal>, and by
|
|
<literal>PERIOD</literal> for foreign keys, all applied to the last
|
|
specified column.
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Peter Eisentraut <peter@eisentraut.org>
|
|
2025-01-11 [ca87c415e] Add support for NOT ENFORCED in CHECK constraints
|
|
Author: Peter Eisentraut <peter@eisentraut.org>
|
|
2025-04-02 [eec0040c4] Add support for NOT ENFORCED in foreign key constraints
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Allow <link
|
|
linkend="sql-createtable-parms-check"><literal>CHECK</literal></link>
|
|
and <link linkend="sql-createtable-parms-references">foreign
|
|
key</link> constraints to be specified as <literal>NOT
|
|
ENFORCED</literal> (Amul Sul)
|
|
<ulink url="&commit_baseurl;ca87c415e">§</ulink>
|
|
<ulink url="&commit_baseurl;eec0040c4">§</ulink>
|
|
</para>
|
|
|
|
<para>
|
|
This also adds column <link
|
|
linkend="catalog-pg-constraint"><structname>pg_constraint</structname></link>.<structfield>conenforced</structfield>.
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Peter Eisentraut <peter@eisentraut.org>
|
|
2024-11-15 [9321d2fdf] Fix collation handling for foreign keys
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Require <link
|
|
linkend="sql-createtable-parms-references">primary/foreign key</link>
|
|
relationships to use either deterministic collations or the the
|
|
same nondeterministic collations (Peter Eisentraut)
|
|
<ulink url="&commit_baseurl;9321d2fdf">§</ulink>
|
|
</para>
|
|
|
|
<para>
|
|
The restore of a <xref linkend="app-pgdump"/>, also used by <xref
|
|
linkend="pgupgrade"/>, will fail if these requirements are not met;
|
|
schema changes must be made for these upgrade methods to succeed.
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Álvaro Herrera <alvherre@alvh.no-ip.org>
|
|
2024-11-08 [14e87ffa5] Add pg_constraint rows for not-null constraints
|
|
Author: Fujii Masao <fujii@postgresql.org>
|
|
Branch: master Release: REL_18_BR [81ce602d4] 2025-06-26 20:25:34 +0900
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Store column <link
|
|
linkend="sql-createtable-parms-not-null"><literal>NOT
|
|
NULL</literal></link> specifications in <link
|
|
linkend="catalog-pg-constraint"><structname>pg_constraint</structname></link>
|
|
(Álvaro Herrera, Bernd Helmle)
|
|
<ulink url="&commit_baseurl;14e87ffa5">§</ulink>
|
|
<ulink url="&commit_baseurl;81ce602d4">§</ulink>
|
|
</para>
|
|
|
|
<para>
|
|
This allows names to be specified for <literal>NOT NULL</literal>
|
|
constraint. This also adds <literal>NOT NULL</literal> constraints
|
|
to foreign tables and <literal>NOT NULL</literal> inheritance
|
|
control to local tables.
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Álvaro Herrera <alvherre@alvh.no-ip.org>
|
|
2025-04-07 [a379061a2] Allow NOT NULL constraints to be added as NOT VALID
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Allow <xref linkend="sql-altertable"/> to set the <literal>NOT
|
|
VALID</literal> attribute of <literal>NOT NULL</literal> constraints
|
|
(Rushabh Lathia, Jian He)
|
|
<ulink url="&commit_baseurl;a379061a2">§</ulink>
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Álvaro Herrera <alvherre@alvh.no-ip.org>
|
|
2025-03-05 [f4e53e10b] Add ALTER TABLE ... ALTER CONSTRAINT ... SET [NO] INHERI
|
|
Author: Álvaro Herrera <alvherre@alvh.no-ip.org>
|
|
2025-03-27 [4a02af8b1] Simplify syntax for ALTER TABLE ALTER CONSTRAINT NO INHE
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Allow modification of the inheritability of <literal>NOT
|
|
NULL</literal> constraints (Suraj Kharage, Álvaro Herrera)
|
|
<ulink url="&commit_baseurl;f4e53e10b">§</ulink>
|
|
<ulink url="&commit_baseurl;4a02af8b1">§</ulink>
|
|
</para>
|
|
|
|
<para>
|
|
The syntax is <link linkend="sql-altertable"><command>ALTER TABLE
|
|
... ALTER CONSTRAINT ... [NO] INHERIT</command></link>.
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Álvaro Herrera <alvherre@alvh.no-ip.org>
|
|
2025-01-23 [b663b9436] Allow NOT VALID foreign key constraints on partitioned t
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Allow <literal>NOT VALID</literal> foreign key constraints on
|
|
partitioned tables (Amul Sul)
|
|
<ulink url="&commit_baseurl;b663b9436">§</ulink>
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Álvaro Herrera <alvherre@alvh.no-ip.org>
|
|
2024-09-30 [4dea33ce7] Don't disallow DROP of constraints ONLY on partitioned t
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Allow <link
|
|
linkend="sql-altertable-desc-drop-constraint">dropping</link>
|
|
of constraints <literal>ONLY</literal> on partitioned tables
|
|
(Álvaro Herrera)
|
|
<ulink url="&commit_baseurl;4dea33ce7">§</ulink>
|
|
</para>
|
|
|
|
<para>
|
|
This was previously erroneously prohibited.
|
|
</para>
|
|
</listitem>
|
|
|
|
</itemizedlist>
|
|
</sect4>
|
|
|
|
<sect4 id="release-18-copy">
|
|
<title><xref linkend="sql-copy"/></title>
|
|
|
|
<itemizedlist>
|
|
|
|
<!--
|
|
Author: Fujii Masao <fujii@postgresql.org>
|
|
2024-10-08 [4ac2a9bec] Add REJECT_LIMIT option to the COPY command.
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Add <literal>REJECT_LIMIT</literal> to control the number of invalid
|
|
rows <command>COPY FROM</command> can ignore (Atsushi Torikoshi)
|
|
<ulink url="&commit_baseurl;4ac2a9bec">§</ulink>
|
|
</para>
|
|
|
|
<para>
|
|
This is available when <literal>ON_ERROR = 'ignore'</literal>.
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Fujii Masao <fujii@postgresql.org>
|
|
2025-04-04 [534874fac] Allow "COPY table TO" command to copy rows from material
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Allow <command>COPY TO</command> to copy rows from populated
|
|
materialized views (Jian He)
|
|
<ulink url="&commit_baseurl;534874fac">§</ulink>
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Fujii Masao <fujii@postgresql.org>
|
|
2024-10-03 [e7834a1a2] Add LOG_VERBOSITY = 'silent' support to COPY command.
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Add <command>COPY</command> <literal>LOG_VERBOSITY</literal> level
|
|
<literal>silent</literal> to suppress log output of ignored rows
|
|
(Atsushi Torikoshi)
|
|
<ulink url="&commit_baseurl;e7834a1a2">§</ulink>
|
|
</para>
|
|
|
|
<para>
|
|
This new level suppresses output for discarded input rows when
|
|
<literal>on_error = 'ignore'</literal>.
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Nathan Bossart <nathan@postgresql.org>
|
|
2025-02-06 [401a6956f] Disallow COPY FREEZE on foreign tables.
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Disallow <command>COPY FREEZE</command> on foreign tables (Nathan
|
|
Bossart)
|
|
<ulink url="&commit_baseurl;401a6956f">§</ulink>
|
|
</para>
|
|
|
|
<para>
|
|
Previously, the <command>COPY</command> worked but the
|
|
<literal>FREEZE</literal> was ignored, so disallow this command.
|
|
</para>
|
|
</listitem>
|
|
|
|
</itemizedlist>
|
|
</sect4>
|
|
|
|
<sect4 id="release-18-explain">
|
|
<title><xref linkend="sql-explain"/></title>
|
|
|
|
<itemizedlist>
|
|
|
|
<!--
|
|
Author: David Rowley <drowley@postgresql.org>
|
|
2024-12-11 [c2a4078eb] Enable BUFFERS with EXPLAIN ANALYZE by default
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Automatically include <literal>BUFFERS</literal> output in
|
|
<command>EXPLAIN ANALYZE</command> (Guillaume Lelarge, David Rowley)
|
|
<ulink url="&commit_baseurl;c2a4078eb">§</ulink>
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Michael Paquier <michael@paquier.xyz>
|
|
2025-02-17 [320545bfc] Add information about WAL buffers being full to EXPLAIN
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Add full <acronym>WAL</acronym> buffer count to <command>EXPLAIN
|
|
(WAL)</command> output (Bertrand Drouvot)
|
|
<ulink url="&commit_baseurl;320545bfc">§</ulink>
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Peter Geoghegan <pg@bowt.ie>
|
|
2025-03-11 [0fbceae84] Show index search count in EXPLAIN ANALYZE, take 2.
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
In <command>EXPLAIN ANALYZE</command>, report the number of index
|
|
lookups used per index scan node (Peter Geoghegan)
|
|
<ulink url="&commit_baseurl;0fbceae84">§</ulink>
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Robert Haas <rhaas@postgresql.org>
|
|
2025-02-21 [ddb17e387] Allow EXPLAIN to indicate fractional rows.
|
|
Author: Robert Haas <rhaas@postgresql.org>
|
|
2025-02-27 [95dbd827f] EXPLAIN: Always use two fractional digits for row counts
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Modify <command>EXPLAIN</command> to output fractional row counts
|
|
(Ibrar Ahmed, Ilia Evdokimov, Robert Haas)
|
|
<ulink url="&commit_baseurl;ddb17e387">§</ulink>
|
|
<ulink url="&commit_baseurl;95dbd827f">§</ulink>
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: David Rowley <drowley@postgresql.org>
|
|
2024-07-05 [1eff8279d] Add memory/disk usage for Material nodes in EXPLAIN
|
|
Author: David Rowley <drowley@postgresql.org>
|
|
2024-07-05 [53abb1e0e] Fix newly introduced issue in EXPLAIN for Materialize no
|
|
Author: Tatsuo Ishii <ishii@postgresql.org>
|
|
2024-09-17 [95d6e9af0] Add memory/disk usage for Window aggregate nodes in EXPL
|
|
Author: Tatsuo Ishii <ishii@postgresql.org>
|
|
2024-09-23 [40708acd6] Add memory/disk usage for more executor nodes.
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Add memory and disk usage details to <literal>Material</literal>,
|
|
<literal>Window Aggregate</literal>, and common table expression
|
|
nodes to <command>EXPLAIN</command> output (David Rowley, Tatsuo
|
|
Ishii)
|
|
<ulink url="&commit_baseurl;1eff8279d">§</ulink>
|
|
<ulink url="&commit_baseurl;53abb1e0e">§</ulink>
|
|
<ulink url="&commit_baseurl;95d6e9af0">§</ulink>
|
|
<ulink url="&commit_baseurl;40708acd6">§</ulink>
|
|
</para>
|
|
</listitem>
|
|
|
|
|
|
<!--
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
2025-03-11 [8b1b34254] Improve EXPLAIN's display of window functions.
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Add details about window function arguments to
|
|
<command>EXPLAIN</command> output (Tom Lane)
|
|
<ulink url="&commit_baseurl;8b1b34254">§</ulink>
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: David Rowley <drowley@postgresql.org>
|
|
2024-07-09 [5a1e6df3b] Show Parallel Bitmap Heap Scan worker stats in EXPLAIN A
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Add <literal>Parallel Bitmap Heap Scan</literal> worker cache
|
|
statistics to <command>EXPLAIN ANALYZE</command> (David Geier,
|
|
Heikki Linnakangas, Donghang Lin, Alena Rybakina, David Rowley)
|
|
<ulink url="&commit_baseurl;5a1e6df3b">§</ulink>
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Robert Haas <rhaas@postgresql.org>
|
|
2024-08-21 [c01743aa4] Show number of disabled nodes in EXPLAIN ANALYZE output.
|
|
Author: David Rowley <drowley@postgresql.org>
|
|
2024-10-11 [161320b4b] Adjust EXPLAIN's output for disabled nodes
|
|
Author: David Rowley <drowley@postgresql.org>
|
|
2024-10-29 [84b8fccbe] Doc: add detail about EXPLAIN's "Disabled" property
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Indicate disabled nodes in <command>EXPLAIN ANALYZE</command> output
|
|
(Robert Haas, David Rowley, Laurenz Albe)
|
|
<ulink url="&commit_baseurl;c01743aa4">§</ulink>
|
|
<ulink url="&commit_baseurl;161320b4b">§</ulink>
|
|
<ulink url="&commit_baseurl;84b8fccbe">§</ulink>
|
|
</para>
|
|
</listitem>
|
|
|
|
</itemizedlist>
|
|
|
|
</sect4>
|
|
|
|
</sect3>
|
|
|
|
<sect3 id="release-18-datatypes">
|
|
<title>Data Types</title>
|
|
|
|
<itemizedlist>
|
|
|
|
<!--
|
|
Author: Jeff Davis <jdavis@postgresql.org>
|
|
2025-01-23 [4e7f62bc3] Add support for Unicode case folding.
|
|
Author: Jeff Davis <jdavis@postgresql.org>
|
|
2025-01-17 [286a365b9] Support Unicode full case mapping and conversion.
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Improve <link linkend="collation-managing-standard">Unicode</link>
|
|
full case mapping and conversion (Jeff Davis)
|
|
<ulink url="&commit_baseurl;4e7f62bc3">§</ulink>
|
|
<ulink url="&commit_baseurl;286a365b9">§</ulink>
|
|
</para>
|
|
|
|
<para>
|
|
This adds the ability to do conditional and title case mapping,
|
|
and case map single characters to multiple characters.
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
2025-01-24 [a5579a90a] Make jsonb casts to scalar types translate JSON null to
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Allow <link linkend="datatype-json"><type>jsonb</type></link>
|
|
<literal>null</literal> values to be cast to scalar types as
|
|
<literal>NULL</literal> (Tom Lane)
|
|
<ulink url="&commit_baseurl;a5579a90a">§</ulink>
|
|
</para>
|
|
|
|
<para>
|
|
Previously such casts generated an error.
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Andrew Dunstan <andrew@dunslane.net>
|
|
2025-03-05 [4603903d2] Allow json{b}_strip_nulls() to remove null array elements
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Add optional parameter to <link
|
|
linkend="functions-json-processing-table"><function>json{b}_strip_nulls</function></link>
|
|
to allow removal of null array elements (Florents Tselai)
|
|
<ulink url="&commit_baseurl;4603903d2">§</ulink>
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
2025-04-01 [6c12ae09f] Introduce a SQL-callable function array_sort(anyarray).
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Add function <link
|
|
linkend="array-functions-table"><function>array_sort()</function></link>
|
|
which sorts an array's first dimension (Junwang Zhao, Jian He)
|
|
<ulink url="&commit_baseurl;6c12ae09f">§</ulink>
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Michael Paquier <michael@paquier.xyz>
|
|
2024-11-01 [49d6c7d8d] Add SQL function array_reverse()
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Add function <link
|
|
linkend="array-functions-table"><function>array_reverse()</function></link>
|
|
which reverses an array's first dimension (Aleksander Alekseev)
|
|
<ulink url="&commit_baseurl;49d6c7d8d">§</ulink>
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Nathan Bossart <nathan@postgresql.org>
|
|
2025-03-13 [0697b2390] Add reverse(bytea).
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Add function <link
|
|
linkend="functions-string-other"><function>reverse()</function></link>
|
|
to reverse bytea bytes (Aleksander Alekseev)
|
|
<ulink url="&commit_baseurl;0697b2390">§</ulink>
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Dean Rasheed <dean.a.rasheed@gmail.com>
|
|
2025-03-07 [6da469bad] Allow casting between bytea and integer types.
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Allow casting between integer types and <link
|
|
linkend="datatype-binary"><type>bytea</type></link> (Aleksander
|
|
Alekseev)
|
|
<ulink url="&commit_baseurl;6da469bad">§</ulink>
|
|
</para>
|
|
|
|
<para>
|
|
The integer values are stored as <type>bytea</type> two's complement
|
|
values.
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Peter Eisentraut <peter@eisentraut.org>
|
|
2025-04-03 [82a46cca9] Update Unicode data to Unicode 16.0.0
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Update Unicode data to <link
|
|
linkend="collation-managing-standard">Unicode</link> 16.0.0 (Peter
|
|
Eisentraut)
|
|
<ulink url="&commit_baseurl;82a46cca9">§</ulink>
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
2025-02-18 [b464e51ab] Update to latest Snowball sources.
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Add full text search <link
|
|
linkend="textsearch-snowball-dictionary">stemming</link> for Estonian
|
|
(Tom Lane)
|
|
<ulink url="&commit_baseurl;b464e51ab">§</ulink>
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
2024-09-24 [cd838e200] Neaten up our choices of SQLSTATEs for XML-related error
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Improve the <link linkend="datatype-xml"><type>XML</type></link>
|
|
error codes to more closely match the <acronym>SQL</acronym> standard
|
|
(Tom Lane)
|
|
<ulink url="&commit_baseurl;cd838e200">§</ulink>
|
|
</para>
|
|
|
|
<para>
|
|
These errors are reported via <link
|
|
linkend="errcodes-appendix"><literal>SQLSTATE</literal></link>.
|
|
</para>
|
|
</listitem>
|
|
|
|
</itemizedlist>
|
|
|
|
</sect3>
|
|
|
|
<sect3 id="release-18-functions">
|
|
<title>Functions</title>
|
|
|
|
<itemizedlist>
|
|
|
|
<!--
|
|
Author: Jeff Davis <jdavis@postgresql.org>
|
|
2025-01-24 [bfc599206] Add SQL function CASEFOLD().
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Add function <link
|
|
linkend="functions-string-other"><function>casefold()</function></link>
|
|
to allow for more sophisticated case-insensitive matching (Jeff Davis)
|
|
<ulink url="&commit_baseurl;bfc599206">§</ulink>
|
|
</para>
|
|
|
|
<para>
|
|
This allows more accurate comparisons, i.e., a character can have
|
|
multiple upper or lower case equivalents, or upper or lower case
|
|
conversion changes the number of characters.
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
2024-07-11 [a0f1fce80] Add min and max aggregates for composite types (records)
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
2024-10-08 [2d24fd942] Add min and max aggregates for bytea type.
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Allow <link
|
|
linkend="functions-aggregate-table"><function>MIN()</function></link>/<link
|
|
linkend="functions-aggregate-table"><function>MAX()</function></link>
|
|
aggregates on arrays and composite types (Aleksander Alekseev,
|
|
Marat Buharov)
|
|
<ulink url="&commit_baseurl;a0f1fce80">§</ulink>
|
|
<ulink url="&commit_baseurl;2d24fd942">§</ulink>
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
2024-08-16 [6be39d77a] Fix extraction of week and quarter fields from intervals
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Add a <literal>WEEK</literal> option to <link
|
|
linkend="functions-datetime-extract"><function>EXTRACT()</function></link>
|
|
(Tom Lane)
|
|
<ulink url="&commit_baseurl;6be39d77a">§</ulink>
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
2024-08-16 [6be39d77a] Fix extraction of week and quarter fields from intervals
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Improve the output <literal>EXTRACT(QUARTER ...)</literal> for
|
|
negative values (Tom Lane)
|
|
<ulink url="&commit_baseurl;6be39d77a">§</ulink>
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
2025-01-22 [172e6b3ad] Support RN (roman-numeral format) in to_number().
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Add roman numeral support to <link
|
|
linkend="functions-formatting-table"><function>to_number()</function></link>
|
|
(Hunaid Sohail)
|
|
<ulink url="&commit_baseurl;172e6b3ad">§</ulink>
|
|
</para>
|
|
|
|
<para>
|
|
This is accessed via the <literal>RN</literal> pattern.
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Masahiko Sawada <msawada@postgresql.org>
|
|
2024-12-11 [78c5e141e] Add UUID version 7 generation function.
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Add <link linkend="datatype-uuid"><type>UUID</type></link>
|
|
version 7 generation function <link
|
|
linkend="func_uuid_gen_table"><function>uuidv7()</function></link>
|
|
(Andrey Borodin)
|
|
<ulink url="&commit_baseurl;78c5e141e">§</ulink>
|
|
</para>
|
|
|
|
<para>
|
|
This <type>UUID</type> value is
|
|
temporally sortable. Function alias <link
|
|
linkend="func_uuid_gen_table"><function>uuidv4()</function></link>
|
|
has been added to explicitly generate version 4 UUIDs.
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Nathan Bossart <nathan@postgresql.org>
|
|
2024-08-12 [760162fed] Add user-callable CRC functions.
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Add functions <link
|
|
linkend="functions-binarystring-other"><function>crc32()</function></link>
|
|
and <link
|
|
linkend="functions-binarystring-other"><function>crc32c()</function></link>
|
|
to compute <acronym>CRC</acronym> values (Aleksander Alekseev)
|
|
<ulink url="&commit_baseurl;760162fed">§</ulink>
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Dean Rasheed <dean.a.rasheed@gmail.com>
|
|
2025-03-26 [a3b6dfd41] Add support for gamma() and lgamma() functions.
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Add math functions <link
|
|
linkend="functions-math-func-table"><function>gamma()</function></link>
|
|
and <link
|
|
linkend="functions-math-func-table"><function>lgamma()</function></link>
|
|
(Dean Rasheed)
|
|
<ulink url="&commit_baseurl;a3b6dfd41">§</ulink>
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
2025-03-03 [246dedc5d] Allow => syntax for named cursor arguments in plpgsql.
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Allow <literal>=></literal> syntax for named cursor arguments in
|
|
<link linkend="plpgsql">PL/pgSQL</link> (Pavel Stehule)
|
|
<ulink url="&commit_baseurl;246dedc5d">§</ulink>
|
|
</para>
|
|
|
|
<para>
|
|
We previously only accepted <literal>:=</literal>.
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
2024-07-25 [580f8727c] Add argument names to the regexp_XXX functions.
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Allow <link
|
|
linkend="functions-posix-regexp"><function>regexp_match[es]()</function></link>/<link
|
|
linkend="functions-posix-regexp"><function>regexp_like()</function></link>/<link
|
|
linkend="functions-posix-regexp"><function>regexp_replace()</function></link>/<link
|
|
linkend="functions-posix-regexp"><function>regexp_count()</function></link>/<link
|
|
linkend="functions-posix-regexp"><function>regexp_instr()</function></link>/<link
|
|
linkend="functions-posix-regexp"><function>regexp_substr()</function></link>/<link
|
|
linkend="functions-posix-regexp"><function>regexp_split_to_table()</function></link>/<link
|
|
linkend="functions-posix-regexp"><function>regexp_split_to_array()</function></link>
|
|
to use named arguments (Jian He)
|
|
<ulink url="&commit_baseurl;580f8727c">§</ulink>
|
|
</para>
|
|
</listitem>
|
|
|
|
</itemizedlist>
|
|
|
|
</sect3>
|
|
|
|
<sect3 id="release-18-libpq">
|
|
<title><xref linkend="libpq"/></title>
|
|
|
|
<itemizedlist>
|
|
|
|
<!--
|
|
Author: Robert Haas <rhaas@postgresql.org>
|
|
2024-09-09 [cdb6b0fdb] Add PQfullProtocolVersion() to surface the precise proto
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Add function <link
|
|
linkend="libpq-PQfullProtocolVersion"><function>PQfullProtocolVersion()</function></link>
|
|
to report the full, including minor, protocol version number (Jacob
|
|
Champion, Jelte Fennema-Nio)
|
|
<ulink url="&commit_baseurl;cdb6b0fdb">§</ulink>
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
|
|
2025-04-02 [285613c60] libpq: Add min/max_protocol_version connection options
|
|
Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
|
|
2025-04-02 [507034910] libpq: Handle NegotiateProtocolVersion message different
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Add libpq connection <link
|
|
linkend="libpq-connect-ssl-max-protocol-version">parameters</link>
|
|
and <link linkend="libpq-envars">environment variables</link> to
|
|
specify the minimum and maximum acceptable protocol version for
|
|
connections (Jelte Fennema-Nio)
|
|
<ulink url="&commit_baseurl;285613c60">§</ulink>
|
|
<ulink url="&commit_baseurl;507034910">§</ulink>
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Tomas Vondra <tomas.vondra@postgresql.org>
|
|
2024-08-19 [28a1121fd] Mark search_path as GUC_REPORT
|
|
Author: Tomas Vondra <tomas.vondra@postgresql.org>
|
|
2024-08-19 [0d06a7eac] Document that search_path is reported by the server
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Report <xref linkend="guc-search-path"/> changes to the client
|
|
(Alexander Kukushkin, Jelte Fennema-Nio, Tomas Vondra)
|
|
<ulink url="&commit_baseurl;28a1121fd">§</ulink>
|
|
<ulink url="&commit_baseurl;0d06a7eac">§</ulink>
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Álvaro Herrera <alvherre@alvh.no-ip.org>
|
|
2024-08-12 [ea92f3a0a] libpq: Trace frontend authentication challenges
|
|
Author: Álvaro Herrera <alvherre@alvh.no-ip.org>
|
|
2024-08-14 [a5c6b8f22] libpq: Trace responses to SSLRequest and GSSENCRequest
|
|
Author: Álvaro Herrera <alvherre@alvh.no-ip.org>
|
|
2024-08-16 [b8b3f861f] libpq: Trace all messages received from the server
|
|
Author: Robert Haas <rhaas@postgresql.org>
|
|
2025-02-24 [e87c14b19] libpq: Trace all NegotiateProtocolVersion fields
|
|
Author: Álvaro Herrera <alvherre@alvh.no-ip.org>
|
|
2024-08-09 [7adec2d5f] libpq: Trace StartupMessage/SSLRequest/GSSENCRequest cor
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Add <link
|
|
linkend="libpq-PQtrace"><function>PQtrace()</function></link> output
|
|
for all message types, including authentication (Jelte Fennema-Nio)
|
|
<ulink url="&commit_baseurl;ea92f3a0a">§</ulink>
|
|
<ulink url="&commit_baseurl;a5c6b8f22">§</ulink>
|
|
<ulink url="&commit_baseurl;b8b3f861f">§</ulink>
|
|
<ulink url="&commit_baseurl;e87c14b19">§</ulink>
|
|
<ulink url="&commit_baseurl;7adec2d5f">§</ulink>
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Daniel Gustafsson <dgustafsson@postgresql.org>
|
|
2025-04-03 [2da74d8d6] libpq: Add support for dumping SSL key material to file
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Add libpq connection parameter <link
|
|
linkend="libpq-connect-sslkeylogfile"><varname>sslkeylogfile</varname></link>
|
|
which dumps out <acronym>SSL</acronym> key material (Abhishek Chanda,
|
|
Daniel Gustafsson)
|
|
<ulink url="&commit_baseurl;2da74d8d6">§</ulink>
|
|
</para>
|
|
|
|
<para>
|
|
This is useful for debugging.
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Thomas Munro <tmunro@postgresql.org>
|
|
2025-03-25 [3c86223c9] libpq: Deprecate pg_int64.
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Modify some libpq function signatures to use
|
|
<literal>int64_t</literal> (Thomas Munro)
|
|
<ulink url="&commit_baseurl;3c86223c9">§</ulink>
|
|
</para>
|
|
|
|
<para>
|
|
These previously used <literal>pg_int64</literal>, which is now
|
|
deprecated.
|
|
</para>
|
|
</listitem>
|
|
|
|
</itemizedlist>
|
|
|
|
</sect3>
|
|
|
|
<sect3 id="release-18-psql">
|
|
<title><xref linkend="app-psql"/></title>
|
|
|
|
<itemizedlist>
|
|
|
|
<!--
|
|
Author: Michael Paquier <michael@paquier.xyz>
|
|
2024-08-22 [d55322b0d] psql: Add more meta-commands able to use the extended pr
|
|
Author: Michael Paquier <michael@paquier.xyz>
|
|
Branch: master Release: REL_18_BR [fc39b286a] 2025-06-24 13:12:46 +0900
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Allow <application>psql</application> to parse, bind, and close
|
|
named prepared statements (Anthonin Bonnefoy, Michael Paquier)
|
|
<ulink url="&commit_baseurl;d55322b0d">§</ulink>
|
|
<ulink url="&commit_baseurl;fc39b286a">§</ulink>
|
|
</para>
|
|
|
|
<para>
|
|
This is accomplished with new commands <link
|
|
linkend="app-psql-meta-command-parse"><literal>\parse</literal></link>,
|
|
<link
|
|
linkend="app-psql-meta-command-bind-named"><literal>\bind_named</literal></link>,
|
|
and <link
|
|
linkend="app-psql-meta-command-close-prepared"><literal>\close_prepared</literal></link>.
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Michael Paquier <michael@paquier.xyz>
|
|
2025-02-21 [41625ab8e] psql: Add support for pipelines
|
|
Author: Michael Paquier <michael@paquier.xyz>
|
|
2025-03-18 [17caf6644] psql: Add \sendpipeline to send query buffers while in a
|
|
Author: Michael Paquier <michael@paquier.xyz>
|
|
2025-03-19 [2cce0fe44] psql: Allow queries terminated by semicolons while in pi
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Add <application>psql</application> backslash commands to allowing
|
|
issuance of pipeline queries (Anthonin Bonnefoy)
|
|
<ulink url="&commit_baseurl;41625ab8e">§</ulink>
|
|
<ulink url="&commit_baseurl;17caf6644">§</ulink>
|
|
<ulink url="&commit_baseurl;2cce0fe44">§</ulink>
|
|
</para>
|
|
|
|
<para>
|
|
The new commands are <link
|
|
linkend="app-psql-meta-command-pipeline"><literal>\startpipeline</literal></link>,
|
|
<literal>\syncpipeline</literal>, <literal>\sendpipeline</literal>,
|
|
<literal>\endpipeline</literal>, <literal>\flushrequest</literal>,
|
|
<literal>\flush</literal>, and <literal>\getresults</literal>.
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Michael Paquier <michael@paquier.xyz>
|
|
2025-02-25 [3ce357584] psql: Add pipeline status to prompt and some state varia
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Allow adding pipeline status to the <application>psql</application>
|
|
prompt and add related state variables (Anthonin Bonnefoy)
|
|
<ulink url="&commit_baseurl;3ce357584">§</ulink>
|
|
</para>
|
|
|
|
<para>
|
|
The new prompt character is <literal>%P</literal> and
|
|
the new <application>psql</application> variables are <link
|
|
linkend="app-psql-variables-pipeline-sync-count"><literal>PIPELINE_SYNC_COUNT</literal></link>,
|
|
<link
|
|
linkend="app-psql-variables-pipeline-command-count"><literal>PIPELINE_COMMAND_COUNT</literal></link>,
|
|
and <link
|
|
linkend="app-psql-variables-pipeline-result-count"><literal>PIPELINE_RESULT_COUNT</literal></link>.
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Michael Paquier <michael@paquier.xyz>
|
|
2024-12-18 [477728b5d] psql: Add more information about service name
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Allow adding the connection service name to the
|
|
<application>psql</application> prompt or access it via
|
|
<application>psql</application> variable (Michael Banck)
|
|
<ulink url="&commit_baseurl;477728b5d">§</ulink>
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Dean Rasheed <dean.a.rasheed@gmail.com>
|
|
2025-01-14 [00f4c2959] psql: Add option to use expanded mode to all list comman
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Add <application>psql</application> option to use expanded mode on
|
|
all list commands (Dean Rasheed)
|
|
<ulink url="&commit_baseurl;00f4c2959">§</ulink>
|
|
</para>
|
|
|
|
<para>
|
|
Adding backslash suffix <literal>x</literal> enables this.
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Álvaro Herrera <alvherre@alvh.no-ip.org>
|
|
2025-02-22 [bba2fbc62] Change \conninfo to use tabular format
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Change <application>psql</application>'s <xref
|
|
linkend="app-psql-meta-command-conninfo"/> to use tabular format
|
|
and include more information (Álvaro Herrera, Maiquel Grassi,
|
|
Hunaid Sohail)
|
|
<ulink url="&commit_baseurl;bba2fbc62">§</ulink>
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Dean Rasheed <dean.a.rasheed@gmail.com>
|
|
2025-01-14 [2355e5111] psql: Add leakproof indicator to \df+, \do+, \dAo+, and
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Add function's leakproof indicator
|
|
to <application>psql</application>'s <link
|
|
linkend="app-psql-meta-command-df-lc"><literal>\df+</literal></link>,
|
|
<literal>\do+</literal>, <literal>\dAo+</literal>, and
|
|
<literal>\dC+</literal> outputs (Yugo Nagata)
|
|
<ulink url="&commit_baseurl;2355e5111">§</ulink>
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Michael Paquier <michael@paquier.xyz>
|
|
2024-07-02 [978f38c77] Add information about access method for partitioned rela
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Add access method details for partitioned relations in <link
|
|
linkend="app-psql-meta-command-dp-uc"><literal>\dP+</literal></link>
|
|
(Justin Pryzby)
|
|
<ulink url="&commit_baseurl;978f38c77">§</ulink>
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Magnus Hagander <magnus@hagander.net>
|
|
2025-03-24 [d696406a9] psql: show default extension version in \dx output
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Add <literal>default_version</literal>
|
|
to the <application>psql</application> <link
|
|
linkend="app-psql-meta-command-dx-lc"><literal>\dx</literal></link>
|
|
extension output (Magnus Hagander)
|
|
<ulink url="&commit_baseurl;d696406a9">§</ulink>
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Daniel Gustafsson <dgustafsson@postgresql.org>
|
|
2025-03-25 [1a759c832] psql: Make default \watch interval configurable
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Add <application>psql</application> variable <xref
|
|
linkend="app-psql-variables-watch-interval"/> to set the default <link
|
|
linkend="app-psql-meta-command-watch"><literal>\watch</literal></link>
|
|
wait time (Daniel Gustafsson)
|
|
<ulink url="&commit_baseurl;1a759c832">§</ulink>
|
|
</para>
|
|
</listitem>
|
|
|
|
</itemizedlist>
|
|
|
|
</sect3>
|
|
|
|
<sect3 id="release-18-server-apps">
|
|
<title>Server Applications</title>
|
|
|
|
<itemizedlist>
|
|
|
|
<!--
|
|
Author: Peter Eisentraut <peter@eisentraut.org>
|
|
2024-10-01 [983a588e0] initdb: Add new option "- -no-data-checksums"
|
|
Author: Peter Eisentraut <peter@eisentraut.org>
|
|
2024-10-16 [04bec894a] initdb: Change default to using data checksums.
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Change <xref linkend="app-initdb"/> to default to enabling checksums
|
|
(Greg Sabino Mullane)
|
|
<ulink url="&commit_baseurl;983a588e0">§</ulink>
|
|
<ulink url="&commit_baseurl;04bec894a">§</ulink>
|
|
</para>
|
|
|
|
<para>
|
|
The new <application>initdb</application> option
|
|
<option>--no-data-checksums</option> disables checksums.
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Nathan Bossart <nathan@postgresql.org>
|
|
2025-03-25 [cf131fa94] initdb: Add - -no-sync-data-files.
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Add <application>initdb</application> option
|
|
<option>--no-sync-data-files</option> to avoid syncing heap/index
|
|
files (Nathan Bossart)
|
|
<ulink url="&commit_baseurl;cf131fa94">§</ulink>
|
|
</para>
|
|
|
|
<para>
|
|
<application>initdb</application> option <option>--no-sync</option>
|
|
is still available to avoid syncing any files.
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Nathan Bossart <nathan@postgresql.org>
|
|
2025-03-18 [edba754f0] vacuumdb: Add option for analyzing only relations missin
|
|
Author: Nathan Bossart <nathan@postgresql.org>
|
|
2025-04-30 [987910502] vacuumdb: Don't skip empty relations in - -missing-stats-
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Add <xref linkend="app-vacuumdb"/> option
|
|
<option>--missing-stats-only</option> to compute only missing
|
|
optimizer statistics (Corey Huinker, Nathan Bossart)
|
|
<ulink url="&commit_baseurl;edba754f0">§</ulink>
|
|
<ulink url="&commit_baseurl;987910502">§</ulink>
|
|
</para>
|
|
|
|
<para>
|
|
This option can only be run by superusers and can only
|
|
be used with options <option>--analyze-only</option> and
|
|
<option>--analyze-in-stages</option>.
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Robert Haas <rhaas@postgresql.org>
|
|
2025-03-17 [99aeb8470] pg_combinebackup: Add -k, - -link option.
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Add <xref linkend="app-pgcombinebackup"/> option
|
|
<option>-k</option>/<option>--link</option> to enable hard linking
|
|
(Israel Barth Rubio, Robert Haas)
|
|
<ulink url="&commit_baseurl;99aeb8470">§</ulink>
|
|
</para>
|
|
|
|
<para>
|
|
Only some files can be hard linked. This should not be used if the
|
|
backups will be used independently.
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Robert Haas <rhaas@postgresql.org>
|
|
2024-09-27 [8dfd31290] pg_verifybackup: Verify tar-format backups.
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Allow <xref linkend="app-pgverifybackup"/> to verify tar-format
|
|
backups (Amul Sul)
|
|
<ulink url="&commit_baseurl;8dfd31290">§</ulink>
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Masahiko Sawada <msawada@postgresql.org>
|
|
2025-03-12 [4ecdd4110] pg_rewind: Add dbname to primary_conninfo when using - -w
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
If <xref linkend="app-pgrewind"/>'s <option>--source-server</option>
|
|
specifies a database name, use it in
|
|
<option>--write-recovery-conf</option> output (Masahiko Sawada)
|
|
<ulink url="&commit_baseurl;4ecdd4110">§</ulink>
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Masahiko Sawada <msawada@postgresql.org>
|
|
2025-02-21 [30666d185] pg_resetwal: Add - -char-signedness option to change the
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Add <xref linkend="app-pgresetwal"/> option
|
|
<option>--char-signedness</option> to change the default
|
|
<type>char</type> signedness (Masahiko Sawada)
|
|
<ulink url="&commit_baseurl;30666d185">§</ulink>
|
|
</para>
|
|
</listitem>
|
|
|
|
</itemizedlist>
|
|
|
|
|
|
<sect4 id="release-18-pgdump">
|
|
<title><link
|
|
linkend="app-pgdump"><application>pg_dump</application></link>/<link
|
|
linkend="app-pg-dumpall"><application>pg_dumpall</application></link>/<link
|
|
linkend="app-pgrestore"><application>pg_restore</application></link></title>
|
|
|
|
<itemizedlist>
|
|
|
|
<!--
|
|
Author: Jeff Davis <jdavis@postgresql.org>
|
|
2025-03-25 [bde2fb797] Add pg_dump - -with-{schema|data|statistics} options.
|
|
Author: Jeff Davis <jdavis@postgresql.org>
|
|
2025-08-02 [a3e8dc143] Simplify options in pg_dump and pg_restore.
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Add <xref linkend="app-pgdump"/> option <option>--statistics</option>
|
|
(Jeff Davis)
|
|
<ulink url="&commit_baseurl;bde2fb797">§</ulink>
|
|
<ulink url="&commit_baseurl;a3e8dc143">§</ulink>
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Nathan Bossart <nathan@postgresql.org>
|
|
2025-03-25 [9c49f0e8c] pg_dump: Add - -sequence-data.
|
|
Author: Nathan Bossart <nathan@postgresql.org>
|
|
2025-05-07 [acea3fc49] pg_dumpall: Add - -sequence-data.
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Add <application>pg_dump</application> and <xref
|
|
linkend="app-pg-dumpall"/> option <option>--sequence-data</option> to
|
|
dump sequence data that would normally be excluded (Nathan Bossart)
|
|
<ulink url="&commit_baseurl;9c49f0e8c">§</ulink>
|
|
<ulink url="&commit_baseurl;acea3fc49">§</ulink>
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Jeff Davis <jdavis@postgresql.org>
|
|
2025-02-20 [1fd1bd871] Transfer statistics during pg_upgrade.
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Add <xref linkend="app-pgdump"/>, <xref linkend="app-pg-dumpall"/>,
|
|
and <xref linkend="app-pgrestore"/> options
|
|
<option>--statistics-only</option>, <option>--no-statistics</option>,
|
|
<option>--no-data</option>, and <option>--no-schema</option>
|
|
(Corey Huinker, Jeff Davis)
|
|
<ulink url="&commit_baseurl;1fd1bd871">§</ulink>
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
2025-03-16 [cd3c45125] pg_dump, pg_dumpall, pg_restore: Add - -no-policies optio
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Add option <option>--no-policies</option> to disable row level
|
|
security policy processing in <xref linkend="app-pgdump"/>,
|
|
<xref linkend="app-pg-dumpall"/>, <xref linkend="app-pgrestore"/>
|
|
(Nikolay Samokhvalov)
|
|
<ulink url="&commit_baseurl;cd3c45125">§</ulink>
|
|
</para>
|
|
|
|
<para>
|
|
This is useful for migrating to systems with different policies.
|
|
</para>
|
|
</listitem>
|
|
|
|
</itemizedlist>
|
|
|
|
</sect4>
|
|
|
|
<sect4 id="release-18-pgupgrade">
|
|
<title><xref linkend="pgupgrade"/></title>
|
|
|
|
<itemizedlist>
|
|
|
|
<!--
|
|
Author: Jeff Davis <jdavis@postgresql.org>
|
|
2025-02-20 [1fd1bd871] Transfer statistics during pg_upgrade.
|
|
Author: Nathan Bossart <nathan@postgresql.org>
|
|
2025-03-18 [c9d502eb6] Update guidance for running vacuumdb after pg_upgrade.
|
|
Author: Nathan Bossart <nathan@postgresql.org>
|
|
2025-04-30 [d5f1b6a75] Further adjust guidance for running vacuumdb after pg_up
|
|
Author: Jeff Davis <jdavis@postgresql.org>
|
|
2025-02-20 [1fd1bd871] Transfer statistics during pg_upgrade.
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Allow <application>pg_upgrade</application> to preserve optimizer
|
|
statistics (Corey Huinker, Jeff Davis, Nathan Bossart)
|
|
<ulink url="&commit_baseurl;1fd1bd871">§</ulink>
|
|
<ulink url="&commit_baseurl;c9d502eb6">§</ulink>
|
|
<ulink url="&commit_baseurl;d5f1b6a75">§</ulink>
|
|
<ulink url="&commit_baseurl;1fd1bd871">§</ulink>
|
|
</para>
|
|
|
|
<para>
|
|
Extended statistics are not preserved. Also add
|
|
<application>pg_upgrade</application> option
|
|
<option>--no-statistics</option> to disable statistics preservation.
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Nathan Bossart <nathan@postgresql.org>
|
|
2024-09-16 [40e2e5e92] Introduce framework for parallelizing various pg_upgrade
|
|
Author: Nathan Bossart <nathan@postgresql.org>
|
|
2024-09-16 [6d3d2e8e5] pg_upgrade: Parallelize retrieving relation information.
|
|
Author: Nathan Bossart <nathan@postgresql.org>
|
|
2024-09-16 [7baa36de5] pg_upgrade: Parallelize subscription check.
|
|
Author: Nathan Bossart <nathan@postgresql.org>
|
|
2024-09-16 [46cad8b31] pg_upgrade: Parallelize retrieving loadable libraries.
|
|
Author: Nathan Bossart <nathan@postgresql.org>
|
|
2024-09-16 [6ab8f27bc] pg_upgrade: Parallelize retrieving extension updates.
|
|
Author: Nathan Bossart <nathan@postgresql.org>
|
|
2024-09-16 [bbf83cab9] pg_upgrade: Parallelize data type checks.
|
|
Author: Nathan Bossart <nathan@postgresql.org>
|
|
2024-09-16 [9db3018cf] pg_upgrade: Parallelize contrib/isn check.
|
|
Author: Nathan Bossart <nathan@postgresql.org>
|
|
2024-09-16 [c34eabfbb] pg_upgrade: Parallelize postfix operator check.
|
|
Author: Nathan Bossart <nathan@postgresql.org>
|
|
2024-09-16 [cf2f82a37] pg_upgrade: Parallelize incompatible polymorphics check.
|
|
Author: Nathan Bossart <nathan@postgresql.org>
|
|
2024-09-16 [f93f5f7b9] pg_upgrade: Parallelize WITH OIDS check.
|
|
Author: Nathan Bossart <nathan@postgresql.org>
|
|
2024-09-16 [c880cf258] pg_upgrade: Parallelize encoding conversion check.
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Allow <application>pg_upgrade</application> to process database
|
|
checks in parallel (Nathan Bossart)
|
|
<ulink url="&commit_baseurl;40e2e5e92">§</ulink>
|
|
<ulink url="&commit_baseurl;6d3d2e8e5">§</ulink>
|
|
<ulink url="&commit_baseurl;7baa36de5">§</ulink>
|
|
<ulink url="&commit_baseurl;46cad8b31">§</ulink>
|
|
<ulink url="&commit_baseurl;6ab8f27bc">§</ulink>
|
|
<ulink url="&commit_baseurl;bbf83cab9">§</ulink>
|
|
<ulink url="&commit_baseurl;9db3018cf">§</ulink>
|
|
<ulink url="&commit_baseurl;c34eabfbb">§</ulink>
|
|
<ulink url="&commit_baseurl;cf2f82a37">§</ulink>
|
|
<ulink url="&commit_baseurl;f93f5f7b9">§</ulink>
|
|
<ulink url="&commit_baseurl;c880cf258">§</ulink>
|
|
</para>
|
|
|
|
<para>
|
|
This is controlled by the existing <option>--jobs</option> option.
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Nathan Bossart <nathan@postgresql.org>
|
|
2025-03-25 [626d7236b] pg_upgrade: Add - -swap for faster file transfer.
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Add <application>pg_upgrade</application> option
|
|
<option>--swap</option> to swap directories rather than copy, clone,
|
|
or link files (Nathan Bossart)
|
|
<ulink url="&commit_baseurl;626d7236b">§</ulink>
|
|
</para>
|
|
|
|
<para>
|
|
This mode is potentially the fastest.
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Masahiko Sawada <msawada@postgresql.org>
|
|
2025-02-21 [a8238f87f] pg_upgrade: Preserve default char signedness value from
|
|
Author: Masahiko Sawada <msawada@postgresql.org>
|
|
2025-02-21 [1aab68059] pg_upgrade: Add - -set-char-signedness to set the default
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Add <application>pg_upgrade</application> option
|
|
<option>--set-char-signedness</option> to set the default
|
|
<type>char</type> signedness of new cluster (Masahiko Sawada)
|
|
<ulink url="&commit_baseurl;a8238f87f">§</ulink>
|
|
<ulink url="&commit_baseurl;1aab68059">§</ulink>
|
|
</para>
|
|
|
|
<para>
|
|
This is to handle cases where a
|
|
pre-<productname>PostgreSQL</productname> 18 cluster's default
|
|
<acronym>CPU</acronym> signedness does not match the new cluster.
|
|
</para>
|
|
</listitem>
|
|
|
|
</itemizedlist>
|
|
|
|
</sect4>
|
|
|
|
<sect4 id="release-18-logicalrep-app">
|
|
<title>Logical Replication Applications</title>
|
|
|
|
<itemizedlist>
|
|
|
|
<!--
|
|
Author: Amit Kapila <akapila@postgresql.org>
|
|
2025-03-28 [fb2ea12f4] pg_createsubscriber: Add '- -all' option.
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Add <xref linkend="app-pgcreatesubscriber"/> option
|
|
<option>--all</option> to create logical replicas for all databases
|
|
(Shubham Khanna)
|
|
<ulink url="&commit_baseurl;fb2ea12f4">§</ulink>
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Amit Kapila <akapila@postgresql.org>
|
|
2025-03-20 [e5aeed4b8] pg_createsubscriber: Add -R publications option.
|
|
Author: Peter Eisentraut <peter@eisentraut.org>
|
|
Branch: master Release: REL_18_BR [60dda7bbc] 2025-06-25 10:50:43 +0200
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Add <application>pg_createsubscriber</application> option
|
|
<option>--clean</option> to remove publications (Shubham Khanna)
|
|
<ulink url="&commit_baseurl;e5aeed4b8">§</ulink>
|
|
<ulink url="&commit_baseurl;60dda7bbc">§</ulink>
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Amit Kapila <akapila@postgresql.org>
|
|
2025-02-26 [e117cfb2f] Add two-phase option in pg_createsubscriber.
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Add <application>pg_createsubscriber</application> option
|
|
<option>--enable-two-phase</option> to enable prepared transactions
|
|
(Shubham Khanna)
|
|
<ulink url="&commit_baseurl;e117cfb2f">§</ulink>
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Masahiko Sawada <msawada@postgresql.org>
|
|
2025-04-04 [cf2655a90] pg_recvlogical: Add - -failover option.
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Add <xref linkend="app-pgrecvlogical"/> option
|
|
<option>--enable-failover</option> to specify failover slots (Hayato Kuroda)
|
|
<ulink url="&commit_baseurl;cf2655a90">§</ulink>
|
|
</para>
|
|
|
|
<para>
|
|
Also add option <option>--enable-two-phase</option> as a synonym
|
|
for <option>--two-phase</option>, and deprecate the latter.
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Fujii Masao <fujii@postgresql.org>
|
|
2025-03-25 [c68100aa4] Allow pg_recvlogical - -drop-slot to work without - -dbnam
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Allow <application>pg_recvlogical</application>
|
|
<option>--drop-slot</option> to work without
|
|
<option>--dbname</option> (Hayato Kuroda)
|
|
<ulink url="&commit_baseurl;c68100aa4">§</ulink>
|
|
</para>
|
|
</listitem>
|
|
|
|
</itemizedlist>
|
|
|
|
</sect4>
|
|
|
|
</sect3>
|
|
|
|
<sect3 id="release-18-source-code">
|
|
<title>Source Code</title>
|
|
|
|
<itemizedlist>
|
|
|
|
<!--
|
|
Author: Michael Paquier <michael@paquier.xyz>
|
|
2024-07-05 [4b211003e] Support loading of injection points
|
|
Author: Michael Paquier <michael@paquier.xyz>
|
|
2024-07-18 [a0a5869a8] Add INJECTION_POINT_CACHED() to run injection points dir
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Separate the loading and running of <link
|
|
linkend="xfunc-addin-injection-points">injection points</link>
|
|
(Michael Paquier, Heikki Linnakangas)
|
|
<ulink url="&commit_baseurl;4b211003e">§</ulink>
|
|
<ulink url="&commit_baseurl;a0a5869a8">§</ulink>
|
|
</para>
|
|
|
|
<para>
|
|
Injection points can now be created, but not run, via <link
|
|
linkend="xfunc-addin-injection-points"><function>INJECTION_POINT_LOAD()</function></link>,
|
|
and such injection points can be run via <link
|
|
linkend="xfunc-addin-injection-points"><function>INJECTION_POINT_CACHED()</function></link>.
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Michael Paquier <michael@paquier.xyz>
|
|
2025-05-10 [371f2db8b] Add support for runtime arguments in injection points
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Support runtime arguments in injection points (Michael Paquier)
|
|
<ulink url="&commit_baseurl;371f2db8b">§</ulink>
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
|
|
2024-07-26 [20e0e7da9] Add test for early backend startup errors
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Allow inline injection point test code with <link
|
|
linkend="xfunc-addin-injection-points"><function>IS_INJECTION_POINT_ATTACHED()</function></link>
|
|
(Heikki Linnakangas)
|
|
<ulink url="&commit_baseurl;20e0e7da9">§</ulink>
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: David Rowley <drowley@postgresql.org>
|
|
2024-08-05 [ca6fde922] Optimize JSON escaping using SIMD
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Improve the performance of processing long <link
|
|
linkend="datatype-json"><type>JSON</type></link> strings using
|
|
<acronym>SIMD</acronym> (Single Instruction Multiple Data) (David
|
|
Rowley)
|
|
<ulink url="&commit_baseurl;ca6fde922">§</ulink>
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: John Naylor <john.naylor@postgresql.org>
|
|
2025-04-06 [3c6e8c123] Compute CRC32C using AVX-512 instructions where availabl
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Speed up CRC32C calculations using x86 <acronym>AVX</acronym>-512
|
|
instructions (Raghuveer Devulapalli, Paul Amonson)
|
|
<ulink url="&commit_baseurl;3c6e8c123">§</ulink>
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Nathan Bossart <nathan@postgresql.org>
|
|
2025-03-28 [6be53c276] Optimize popcount functions with ARM Neon intrinsics.
|
|
Author: Nathan Bossart <nathan@postgresql.org>
|
|
2025-03-28 [519338ace] Optimize popcount functions with ARM SVE intrinsics.
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Add <acronym>ARM</acronym> Neon and <acronym>SVE CPU</acronym>
|
|
intrinsics for popcount (integer bit counting) (Chiranmoy
|
|
Bhattacharya, Devanga Susmitha, Rama Malladi)
|
|
<ulink url="&commit_baseurl;6be53c276">§</ulink>
|
|
<ulink url="&commit_baseurl;519338ace">§</ulink>
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Dean Rasheed <dean.a.rasheed@gmail.com>
|
|
2024-07-09 [ca481d3c9] Optimise numeric multiplication for short inputs.
|
|
Author: Dean Rasheed <dean.a.rasheed@gmail.com>
|
|
2024-08-15 [c4e44224c] Extend mul_var_short() to 5 and 6-digit inputs.
|
|
Author: Dean Rasheed <dean.a.rasheed@gmail.com>
|
|
2024-08-15 [8dc28d7eb] Optimise numeric multiplication using base-NBASE^2 arith
|
|
Author: Dean Rasheed <dean.a.rasheed@gmail.com>
|
|
2024-10-04 [9428c001f] Speed up numeric division by always using the "fast" alg
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Improve the speed of numeric multiplication and division (Joel
|
|
Jacobson, Dean Rasheed)
|
|
<ulink url="&commit_baseurl;ca481d3c9">§</ulink>
|
|
<ulink url="&commit_baseurl;c4e44224c">§</ulink>
|
|
<ulink url="&commit_baseurl;8dc28d7eb">§</ulink>
|
|
<ulink url="&commit_baseurl;9428c001f">§</ulink>
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Tomas Vondra <tomas.vondra@postgresql.org>
|
|
2025-04-07 [65c298f61] Add support for basic NUMA awareness
|
|
Author: Tomas Vondra <tomas.vondra@postgresql.org>
|
|
2025-04-07 [8cc139bec] Introduce pg_shmem_allocations_numa view
|
|
Author: Tomas Vondra <tomas.vondra@postgresql.org>
|
|
2025-04-07 [ba2a3c230] Add pg_buffercache_numa view with NUMA node info
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Add configure option <link
|
|
linkend="configure-option-with-libnuma"><option>--with-libnuma</option></link>
|
|
to enable <acronym>NUMA</acronym> awareness (Jakub Wartak, Bertrand
|
|
Drouvot)
|
|
<ulink url="&commit_baseurl;65c298f61">§</ulink>
|
|
<ulink url="&commit_baseurl;8cc139bec">§</ulink>
|
|
<ulink url="&commit_baseurl;ba2a3c230">§</ulink>
|
|
</para>
|
|
|
|
<para>
|
|
The function <link
|
|
linkend="functions-info-session-table"><function>pg_numa_available()</function></link>
|
|
reports on <acronym>NUMA</acronym> awareness, and system views <link
|
|
linkend="view-pg-shmem-allocations-numa"><structname>pg_shmem_allocations_numa</structname></link>
|
|
and <link
|
|
linkend="pgbuffercache-pg-buffercache-numa"><structname>pg_buffercache_numa</structname></link>
|
|
which report on shared memory distribution across
|
|
<acronym>NUMA</acronym> nodes.
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Nathan Bossart <nathan@postgresql.org>
|
|
2024-09-18 [b52c4fc3c] Add TOAST table to pg_index.
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Add <link
|
|
linkend="storage-toast"><acronym>TOAST</acronym></link> table to <link
|
|
linkend="catalog-pg-index"><structname>pg_index</structname></link>
|
|
to allow for very large expression indexes (Nathan Bossart)
|
|
<ulink url="&commit_baseurl;b52c4fc3c">§</ulink>
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: David Rowley <drowley@postgresql.org>
|
|
2024-12-20 [02a8d0c45] Remove pg_attribute.attcacheoff column
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Remove column <link
|
|
linkend="catalog-pg-attribute"><structname>pg_attribute</structname></link>.<structfield>attcacheoff</structfield>
|
|
(David Rowley)
|
|
<ulink url="&commit_baseurl;02a8d0c45">§</ulink>
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Melanie Plageman <melanieplageman@gmail.com>
|
|
2025-03-03 [99f8f3fbb] Add relallfrozen to pg_class
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Add column <link
|
|
linkend="catalog-pg-class"><structname>pg_class</structname></link>.<structfield>relallfrozen</structfield>
|
|
(Melanie Plageman)
|
|
<ulink url="&commit_baseurl;99f8f3fbb">§</ulink>
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Peter Eisentraut <peter@eisentraut.org>
|
|
2024-09-10 [56fead44d] Add amgettreeheight index AM API routine
|
|
Author: Peter Eisentraut <peter@eisentraut.org>
|
|
2025-03-07 [af4002b38] Rename amcancrosscompare
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Add <link
|
|
linkend="indexam"><structfield>amgettreeheight</structfield></link>,
|
|
<literal>amconsistentequality</literal>, and
|
|
<literal>amconsistentordering</literal> to the index access method
|
|
<acronym>API</acronym> (Mark Dilger)
|
|
<ulink url="&commit_baseurl;56fead44d">§</ulink>
|
|
<ulink url="&commit_baseurl;af4002b38">§</ulink>
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Peter Eisentraut <peter@eisentraut.org>
|
|
2024-09-17 [7406ab623] Add stratnum GiST support function
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Add GiST support function <link
|
|
linkend="gist-extensibility"><function>stratnum()</function></link>
|
|
(Paul A. Jungwirth)
|
|
<ulink url="&commit_baseurl;7406ab623">§</ulink>
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Masahiko Sawada <msawada@postgresql.org>
|
|
2025-02-21 [44fe30fda] Add default_char_signedness field to ControlFileData.
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Record the default <acronym>CPU</acronym> signedness of
|
|
<literal>char</literal> in <xref linkend="app-pgcontroldata"/>
|
|
(Masahiko Sawada)
|
|
<ulink url="&commit_baseurl;44fe30fda">§</ulink>
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Peter Eisentraut <peter@eisentraut.org>
|
|
2025-03-12 [72a3d0462] Prepare for Python "Limited API" in PL/Python
|
|
Author: Peter Eisentraut <peter@eisentraut.org>
|
|
2025-03-14 [0793ab810] Activate Python "Limited API" in PL/Python
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Add support for Python "Limited <acronym>API</acronym>" in <xref
|
|
linkend="plpython"/> (Peter Eisentraut)
|
|
<ulink url="&commit_baseurl;72a3d0462">§</ulink>
|
|
<ulink url="&commit_baseurl;0793ab810">§</ulink>
|
|
</para>
|
|
|
|
<para>
|
|
This helps prevent problems caused by
|
|
<application>Python</application> 3.x version mismatches.
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Jacob Champion <jchampion@postgresql.org>
|
|
2025-04-29 [45363fca6] Bump the minimum supported Python version to 3.6.8
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Change the minimum supported <application>Python</application>
|
|
version to 3.6.8 (Jacob Champion)
|
|
<ulink url="&commit_baseurl;45363fca6">§</ulink>
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Daniel Gustafsson <dgustafsson@postgresql.org>
|
|
2024-09-02 [a70e01d43] Remove support for OpenSSL older than 1.1.0
|
|
Author: Daniel Gustafsson <dgustafsson@postgresql.org>
|
|
2024-10-24 [6c66b7443] Raise the minimum supported OpenSSL version to 1.1.1
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Remove support for <application>OpenSSL</application> versions older
|
|
than 1.1.1 (Daniel Gustafsson)
|
|
<ulink url="&commit_baseurl;a70e01d43">§</ulink>
|
|
<ulink url="&commit_baseurl;6c66b7443">§</ulink>
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Peter Eisentraut <peter@eisentraut.org>
|
|
2024-10-01 [972c2cd28] jit: Require at least LLVM 14, if enabled.
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
If <application>LLVM</application> is enabled, require version 14
|
|
or later (Thomas Munro)
|
|
<ulink url="&commit_baseurl;972c2cd28">§</ulink>
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
2025-03-26 [9324c8c58] Introduce PG_MODULE_MAGIC_EXT macro.
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Add macro <link
|
|
linkend="functions-info"><literal>PG_MODULE_MAGIC_EXT</literal></link>
|
|
to allow extensions to report their name and version (Andrei Lepikhov)
|
|
<ulink url="&commit_baseurl;9324c8c58">§</ulink>
|
|
</para>
|
|
|
|
<para>
|
|
This information can be access via the new function <link
|
|
linkend="functions-info-session-table"><function>pg_get_loaded_modules()</function></link>.
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
2024-09-09 [218527d01] Don't bother checking the result of SPI_connect[_ext] an
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Document that <link
|
|
linkend="spi-spi-connect"><function>SPI_connect()</function></link>/<link
|
|
linkend="spi-spi-connect"><function>SPI_connect_ext()</function></link>
|
|
always returns success (<literal>SPI_OK_CONNECT</literal>) (Stepan
|
|
Neretin)
|
|
<ulink url="&commit_baseurl;218527d01">§</ulink>
|
|
</para>
|
|
|
|
<para>
|
|
Errors are always reported via <function>ereport()</function>.
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Peter Eisentraut <peter@eisentraut.org>
|
|
2024-07-31 [e54a42ac9] Add API and ABI stability guidance to the C language doc
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Add <link linkend="xfunc-api-abi-stability-guidance">documentation
|
|
section</link> about <acronym>API</acronym> and <acronym>ABI</acronym>
|
|
compatibility (David Wheeler, Peter Eisentraut)
|
|
<ulink url="&commit_baseurl;e54a42ac9">§</ulink>
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Peter Eisentraut <peter@eisentraut.org>
|
|
2025-01-27 [5afaba629] doc: Meson is not experimental on Windows
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Remove the experimental designation of
|
|
<application>Meson</application> builds on <systemitem
|
|
class="osname">Windows</systemitem> (Aleksander Alekseev)
|
|
<ulink url="&commit_baseurl;5afaba629">§</ulink>
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Thomas Munro <tmunro@postgresql.org>
|
|
2024-07-30 [e25626677] Remove - -disable-spinlocks.
|
|
Author: Thomas Munro <tmunro@postgresql.org>
|
|
2024-07-30 [813852613] Remove - -disable-atomics, require 32 bit atomics.
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Remove configure options <option>--disable-spinlocks</option> and
|
|
<option>--disable-atomics</option> (Thomas Munro)
|
|
<ulink url="&commit_baseurl;e25626677">§</ulink>
|
|
<ulink url="&commit_baseurl;813852613">§</ulink>
|
|
</para>
|
|
|
|
<para>
|
|
Thirty-two-bit atomic operations are now required.
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
2024-07-01 [edadeb071] Remove support for HPPA (a/k/a PA-RISC) architecture.
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Remove support for the
|
|
<acronym>HPPA</acronym>/<acronym>PA-RISC</acronym> architecture
|
|
(Tom Lane)
|
|
<ulink url="&commit_baseurl;edadeb071">§</ulink>
|
|
</para>
|
|
</listitem>
|
|
|
|
</itemizedlist>
|
|
|
|
</sect3>
|
|
|
|
<sect3 id="release-18-modules">
|
|
<title>Additional Modules</title>
|
|
|
|
<itemizedlist>
|
|
|
|
<!--
|
|
Author: Masahiko Sawada <msawada@postgresql.org>
|
|
2024-10-14 [7cdfeee32] Add contrib/pg_logicalinspect.
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Add extension <xref linkend="pglogicalinspect"/> to inspect logical
|
|
snapshots (Bertrand Drouvot)
|
|
<ulink url="&commit_baseurl;7cdfeee32">§</ulink>
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Robert Haas <rhaas@postgresql.org>
|
|
2025-03-26 [8d5ceb113] pg_overexplain: Additional EXPLAIN options for debugging
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Add extension <xref linkend="pgoverexplain"/> which adds debug details
|
|
to <link linkend="sql-explain"><command>EXPLAIN</command></link>
|
|
output (Robert Haas)
|
|
<ulink url="&commit_baseurl;8d5ceb113">§</ulink>
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Fujii Masao <fujii@postgresql.org>
|
|
2024-07-26 [c297a47c5] postgres_fdw: Add "used_in_xact" column to postgres_fdw_
|
|
Author: Fujii Masao <fujii@postgresql.org>
|
|
2024-07-26 [857df3cef] postgres_fdw: Add connection status check to postgres_fd
|
|
Author: Fujii Masao <fujii@postgresql.org>
|
|
2024-09-18 [4f08ab554] postgres_fdw: Extend postgres_fdw_get_connections to ret
|
|
Author: Fujii Masao <fujii@postgresql.org>
|
|
2025-03-03 [fe186bda7] postgres_fdw: Extend postgres_fdw_get_connections to ret
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Add output columns to <link
|
|
linkend="postgres-fdw-functions"><function>postgres_fdw_get_connections()</function></link>
|
|
(Hayato Kuroda, Sagar Dilip Shedge)
|
|
<ulink url="&commit_baseurl;c297a47c5">§</ulink>
|
|
<ulink url="&commit_baseurl;857df3cef">§</ulink>
|
|
<ulink url="&commit_baseurl;4f08ab554">§</ulink>
|
|
<ulink url="&commit_baseurl;fe186bda7">§</ulink>
|
|
</para>
|
|
|
|
<para>
|
|
New output column <structfield>used_in_xact</structfield> indicates
|
|
if the foreign data wrapper is being used by a current transaction,
|
|
<structfield>closed</structfield> indicates if it is closed,
|
|
<structfield>user_name</structfield> indicates the user name, and
|
|
<structfield>remote_backend_pid</structfield> indicates the remote
|
|
backend process identifier.
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Peter Eisentraut <peter@eisentraut.org>
|
|
2025-01-15 [761c79508] postgres_fdw: SCRAM authentication pass-through
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Allow <link linkend="auth-password"><acronym>SCRAM</acronym></link>
|
|
authentication from the client to be passed to <xref
|
|
linkend="postgres-fdw"/> servers (Matheus Alcantara, Peter Eisentraut)
|
|
<ulink url="&commit_baseurl;761c79508">§</ulink>
|
|
</para>
|
|
|
|
<para>
|
|
This avoids storing <application>postgres_fdw</application>
|
|
authentication information in the database, and is
|
|
enabled with the <application>postgres_fdw</application> <link
|
|
linkend="postgres-fdw-option-use-scram-passthrough"><literal>use_scram_passthrough</literal></link>
|
|
connection option. libpq uses new connection parameters
|
|
<xref linkend="libpq-connect-scram-client-key"/> and <xref
|
|
linkend="libpq-connect-scram-server-key"/>.
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Peter Eisentraut <peter@eisentraut.org>
|
|
2025-03-26 [3642df265] dblink: SCRAM authentication pass-through
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Allow <acronym>SCRAM</acronym> authentication from the client to be
|
|
passed to <xref linkend="dblink"/> servers (Matheus Alcantara)
|
|
<ulink url="&commit_baseurl;3642df265">§</ulink>
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Fujii Masao <fujii@postgresql.org>
|
|
2024-10-03 [a1c4c8a9e] file_fdw: Add on_error and log_verbosity options to file
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Add <literal>on_error</literal> and <literal>log_verbosity</literal>
|
|
options to <xref linkend="file-fdw"/> (Atsushi Torikoshi)
|
|
<ulink url="&commit_baseurl;a1c4c8a9e">§</ulink>
|
|
</para>
|
|
|
|
<para>
|
|
These control how <application>file_fdw</application> handles and
|
|
reports invalid file rows.
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Fujii Masao <fujii@postgresql.org>
|
|
2024-11-20 [6c8f67032] file_fdw: Add REJECT_LIMIT option to file_fdw.
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Add <literal>reject_limit</literal> to control the number of
|
|
invalid rows <application>file_fdw</application> can ignore (Atsushi
|
|
Torikoshi)
|
|
<ulink url="&commit_baseurl;6c8f67032">§</ulink>
|
|
</para>
|
|
|
|
<para>
|
|
This is active when <literal>ON_ERROR = 'ignore'</literal>.
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Nathan Bossart <nathan@postgresql.org>
|
|
2025-01-07 [f7e1b3828] Add passwordcheck.min_password_length.
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Add configurable variable <varname>min_password_length</varname> to
|
|
<xref linkend="passwordcheck"/> (Emanuele Musella, Maurizio Boriani)
|
|
<ulink url="&commit_baseurl;f7e1b3828">§</ulink>
|
|
</para>
|
|
|
|
<para>
|
|
This controls the minimum password length.
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Tatsuo Ishii <ishii@postgresql.org>
|
|
2024-10-11 [cae0f3c40] pgbench: Improve result outputs related to failed transa
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Have <xref linkend="pgbench"/> report the number of failed, retried,
|
|
or skipped transactions in per-script reports (Yugo Nagata)
|
|
<ulink url="&commit_baseurl;cae0f3c40">§</ulink>
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
2025-03-16 [448904423] contrib/isn: Make weak mode a GUC setting, and fix relat
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Add <xref linkend="isn"/> server variable <literal>weak</literal>
|
|
to control invalid check digit acceptance (Viktor Holmberg)
|
|
<ulink url="&commit_baseurl;448904423">§</ulink>
|
|
</para>
|
|
|
|
<para>
|
|
This was previously only controlled by function <link
|
|
linkend="isn-functions"><function>isn_weak()</function></link>.
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
|
|
2025-04-03 [e4309f73f] Add support for sorted gist index builds to btree_gist
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Allow values to be sorted to speed <xref linkend="btree-gist"/>
|
|
index builds (Bernd Helmle, Andrey Borodin)
|
|
<ulink url="&commit_baseurl;e4309f73f">§</ulink>
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Tomas Vondra <tomas.vondra@postgresql.org>
|
|
2025-03-29 [14ffaece0] amcheck: Add gin_index_check() to verify GIN index
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Add <xref linkend="amcheck"/> check function <link
|
|
linkend="amcheck-functions"><function>gin_index_check()</function></link>
|
|
to verify <literal>GIN</literal> indexes (Grigory Kryachko, Heikki
|
|
Linnakangas, Andrey Borodin)
|
|
<ulink url="&commit_baseurl;14ffaece0">§</ulink>
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Andres Freund <andres@anarazel.de>
|
|
2025-04-08 [dcf7e1697] Add pg_buffercache_evict_{relation,all} functions
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Add functions <link
|
|
linkend="pgbuffercache-pg-buffercache-evict-relation"><function>pg_buffercache_evict_relation()</function></link>
|
|
and <link
|
|
linkend="pgbuffercache-pg-buffercache-evict-all"><function>pg_buffercache_evict_all()</function></link>
|
|
to evict unpinned shared buffers (Nazir Bilal Yavuz)
|
|
<ulink url="&commit_baseurl;dcf7e1697">§</ulink>
|
|
</para>
|
|
|
|
<para>
|
|
The existing function <link
|
|
linkend="pgbuffercache-pg-buffercache-evict"><function>pg_buffercache_evict()</function></link>
|
|
now returns the buffer flush status.
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Robert Haas <rhaas@postgresql.org>
|
|
2025-03-18 [c65bc2e1d] Make it possible for loadable modules to add EXPLAIN opt
|
|
Author: Robert Haas <rhaas@postgresql.org>
|
|
2025-03-18 [4fd02bf7c] Add some new hooks so extensions can add details to EXPL
|
|
Author: Robert Haas <rhaas@postgresql.org>
|
|
2025-03-20 [50ba65e73] Add an additional hook for EXPLAIN option validation.
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Allow extensions to install custom <xref linkend="sql-explain"/>
|
|
options (Robert Haas, Sami Imseih)
|
|
<ulink url="&commit_baseurl;c65bc2e1d">§</ulink>
|
|
<ulink url="&commit_baseurl;4fd02bf7c">§</ulink>
|
|
<ulink url="&commit_baseurl;50ba65e73">§</ulink>
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Michael Paquier <michael@paquier.xyz>
|
|
2024-08-04 [7949d9594] Introduce pluggable APIs for Cumulative Statistics
|
|
Author: Michael Paquier <michael@paquier.xyz>
|
|
2024-08-05 [2eff9e678] Add helper routines to retrieve data for custom fixed-nu
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Allow extensions to use the server's cumulative statistics
|
|
<acronym>API</acronym> (Michael Paquier)
|
|
<ulink url="&commit_baseurl;7949d9594">§</ulink>
|
|
<ulink url="&commit_baseurl;2eff9e678">§</ulink>
|
|
</para>
|
|
</listitem>
|
|
|
|
</itemizedlist>
|
|
|
|
<sect4 id="release-18-pgstatstatements">
|
|
<title><xref linkend="pgstatstatements"/></title>
|
|
|
|
<itemizedlist>
|
|
|
|
<!--
|
|
Author: Michael Paquier <michael@paquier.xyz>
|
|
2024-10-28 [6b652e6ce] Set query ID for inner queries of CREATE TABLE AS and DE
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Allow the queries of <xref linkend="sql-createtableas"/>
|
|
and <xref linkend="sql-declare"/> to be tracked by
|
|
<application>pg_stat_statements</application> (Anthonin Bonnefoy)
|
|
<ulink url="&commit_baseurl;6b652e6ce">§</ulink>
|
|
</para>
|
|
|
|
<para>
|
|
They are also now assigned query ids.
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Michael Paquier <michael@paquier.xyz>
|
|
2024-09-30 [dc6851596] Show values of SET statements as constants in pg_stat_st
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Allow the parameterization of <xref linkend="sql-set"/> values in
|
|
<application>pg_stat_statements</application> (Greg Sabino Mullane,
|
|
Michael Paquier)
|
|
<ulink url="&commit_baseurl;dc6851596">§</ulink>
|
|
</para>
|
|
|
|
<para>
|
|
This reduces the bloat caused by <command>SET</command> statements
|
|
with differing constants.
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Michael Paquier <michael@paquier.xyz>
|
|
2024-10-09 [cf54a2c00] pg_stat_statements: Add columns to track parallel worker
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Add <link
|
|
linkend="pgstatstatements-pg-stat-statements"><structname>pg_stat_statements</structname></link>
|
|
columns to report parallel activity (Guillaume Lelarge)
|
|
<ulink url="&commit_baseurl;cf54a2c00">§</ulink>
|
|
</para>
|
|
|
|
<para>
|
|
The new columns are
|
|
<structfield>parallel_workers_to_launch</structfield> and
|
|
<structfield>parallel_workers_launched</structfield>.
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Michael Paquier <michael@paquier.xyz>
|
|
2025-02-17 [ce5bcc4a9] pg_stat_statements: Add wal_buffers_full
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Add
|
|
<structname>pg_stat_statements</structname>.<structfield>wal_buffers_full</structfield>
|
|
to report full <acronym>WAL</acronym> buffers (Bertrand Drouvot)
|
|
<ulink url="&commit_baseurl;ce5bcc4a9">§</ulink>
|
|
</para>
|
|
</listitem>
|
|
|
|
</itemizedlist>
|
|
|
|
</sect4>
|
|
|
|
<sect4 id="release-18-pgcrypto">
|
|
<title><xref linkend="pgcrypto"/></title>
|
|
|
|
<itemizedlist>
|
|
|
|
<!--
|
|
Author: Álvaro Herrera <alvherre@alvh.no-ip.org>
|
|
2025-04-05 [749a9e20c] Add modern SHA-2 based password hashes to pgcrypto.
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Add <application>pgcrypto</application> algorithms <link
|
|
linkend="pgcrypto-crypt-algorithms"><literal>sha256crypt</literal></link>
|
|
and <link
|
|
linkend="pgcrypto-crypt-algorithms"><literal>sha512crypt</literal></link>
|
|
(Bernd Helmle)
|
|
<ulink url="&commit_baseurl;749a9e20c">§</ulink>
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Daniel Gustafsson <dgustafsson@postgresql.org>
|
|
2025-02-14 [9ad1b3d01] pgcrypto: Add support for CFB mode in AES encryption
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Add <link
|
|
linkend="pgcrypto-raw-enc-funcs"><acronym>CFB</acronym></link> mode
|
|
to <application>pgcrypto</application> encryption and decryption
|
|
(Umar Hayat)
|
|
<ulink url="&commit_baseurl;9ad1b3d01">§</ulink>
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Daniel Gustafsson <dgustafsson@postgresql.org>
|
|
2025-01-24 [924d89a35] pgcrypto: Add function to check FIPS mode
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Add function <link
|
|
linkend="pgcrypto-openssl-support-funcs"><function>fips_mode()</function></link>
|
|
to report the server's <acronym>FIPS</acronym> mode (Daniel
|
|
Gustafsson)
|
|
<ulink url="&commit_baseurl;924d89a35">§</ulink>
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Daniel Gustafsson <dgustafsson@postgresql.org>
|
|
2025-01-24 [035f99cbe] pgcrypto: Make it possible to disable built-in crypto
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Add <application>pgcrypto</application> server variable <link
|
|
linkend="pgcrypto-configuration-parameters-builtin_crypto_enabled"><varname>builtin_crypto_enabled</varname></link>
|
|
to allow disabling builtin non-<acronym>FIPS</acronym> mode
|
|
cryptographic functions (Daniel Gustafsson, Joe Conway)
|
|
<ulink url="&commit_baseurl;035f99cbe">§</ulink>
|
|
</para>
|
|
|
|
<para>
|
|
This is useful for guaranteeing <acronym>FIPS</acronym> mode behavior.
|
|
</para>
|
|
</listitem>
|
|
|
|
</itemizedlist>
|
|
</sect4>
|
|
|
|
</sect3>
|
|
|
|
</sect2>
|
|
|
|
<sect2 id="release-18-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>Abhishek Chanda</member>
|
|
<member>Adam Guo</member>
|
|
<member>Adam Rauch</member>
|
|
<member>Aidar Imamov</member>
|
|
<member>Ajin Cherian</member>
|
|
<member>Alastair Turner</member>
|
|
<member>Alec Cozens</member>
|
|
<member>Aleksander Alekseev</member>
|
|
<member>Alena Rybakina</member>
|
|
<member>Alex Friedman</member>
|
|
<member>Alex Richman</member>
|
|
<member>Alexander Alehin</member>
|
|
<member>Alexander Borisov</member>
|
|
<member>Alexander Korotkov</member>
|
|
<member>Alexander Kozhemyakin</member>
|
|
<member>Alexander Kukushkin</member>
|
|
<member>Alexander Kuzmenkov</member>
|
|
<member>Alexander Kuznetsov</member>
|
|
<member>Alexander Lakhin</member>
|
|
<member>Alexander Pyhalov</member>
|
|
<member>Alexandra Wang</member>
|
|
<member>Alexey Dvoichenkov</member>
|
|
<member>Alexey Makhmutov</member>
|
|
<member>Alexey Shishkin</member>
|
|
<member>Ali Akbar</member>
|
|
<member>Álvaro Herrera</member>
|
|
<member>Álvaro Mongil</member>
|
|
<member>Amit Kapila</member>
|
|
<member>Amit Langote</member>
|
|
<member>Amul Sul</member>
|
|
<member>Andreas Karlsson</member>
|
|
<member>Andreas Scherbaum</member>
|
|
<member>Andreas Ulbrich</member>
|
|
<member>Andrei Lepikhov</member>
|
|
<member>Andres Freund</member>
|
|
<member>Andrew</member>
|
|
<member>Andrew Bille</member>
|
|
<member>Andrew Dunstan</member>
|
|
<member>Andrew Jackson</member>
|
|
<member>Andrew Kane</member>
|
|
<member>Andrew Watkins</member>
|
|
<member>Andrey Borodin</member>
|
|
<member>Andrey Chudnovsky</member>
|
|
<member>Andrey Rachitskiy</member>
|
|
<member>Andrey Rudometov</member>
|
|
<member>Andy Alsup</member>
|
|
<member>Andy Fan</member>
|
|
<member>Anthonin Bonnefoy</member>
|
|
<member>Anthony Hsu</member>
|
|
<member>Anthony Leung</member>
|
|
<member>Anton Melnikov</member>
|
|
<member>Anton Voloshin</member>
|
|
<member>Antonin Houska</member>
|
|
<member>Antti Lampinen</member>
|
|
<member>Arseniy Mukhin</member>
|
|
<member>Artur Zakirov</member>
|
|
<member>Arun Thirupathi</member>
|
|
<member>Ashutosh Bapat</member>
|
|
<member>Asphator</member>
|
|
<member>Atsushi Torikoshi</member>
|
|
<member>Avi Weinberg</member>
|
|
<member>Aya Iwata</member>
|
|
<member>Ayush Tiwari</member>
|
|
<member>Ayush Vatsa</member>
|
|
<member>Bastien Roucariès</member>
|
|
<member>Ben Peachey Higdon</member>
|
|
<member>Benoit Lobréau</member>
|
|
<member>Bernd Helmle</member>
|
|
<member>Bernd Reiß</member>
|
|
<member>Bernhard Wiedemann</member>
|
|
<member>Bertrand Drouvot</member>
|
|
<member>Bertrand Mamasam</member>
|
|
<member>Bharath Rupireddy</member>
|
|
<member>Bogdan Grigorenko</member>
|
|
<member>Boyu Yang</member>
|
|
<member>Braulio Fdo Gonzalez</member>
|
|
<member>Bruce Momjian</member>
|
|
<member>Bykov Ivan</member>
|
|
<member>Cameron Vogt</member>
|
|
<member>Cary Huang</member>
|
|
<member>Cédric Villemain</member>
|
|
<member>Cees van Zeeland</member>
|
|
<member>ChangAo Chen</member>
|
|
<member>Chao Li</member>
|
|
<member>Chapman Flack</member>
|
|
<member>Charles Samborski</member>
|
|
<member>Chengwen Wu</member>
|
|
<member>Chengxi Sun</member>
|
|
<member>Chiranmoy Bhattacharya</member>
|
|
<member>Chris Gooch</member>
|
|
<member>Christian Charukiewicz</member>
|
|
<member>Christoph Berg</member>
|
|
<member>Christophe Courtois</member>
|
|
<member>Christopher Inokuchi</member>
|
|
<member>Clemens Ruck</member>
|
|
<member>Corey Huinker</member>
|
|
<member>Craig Milhiser</member>
|
|
<member>Crisp Lee</member>
|
|
<member>Dagfinn Ilmari Mannsåker</member>
|
|
<member>Daniel Elishakov</member>
|
|
<member>Daniel Gustafsson</member>
|
|
<member>Daniel Vérité</member>
|
|
<member>Daniel Westermann</member>
|
|
<member>Daniele Varrazzo</member>
|
|
<member>Daniil Davydov</member>
|
|
<member>Daria Shanina</member>
|
|
<member>Dave Cramer</member>
|
|
<member>Dave Page</member>
|
|
<member>David Benjamin</member>
|
|
<member>David Christensen</member>
|
|
<member>David Fiedler</member>
|
|
<member>David G. Johnston</member>
|
|
<member>David Geier</member>
|
|
<member>David Rowley</member>
|
|
<member>David Steele</member>
|
|
<member>David Wheeler</member>
|
|
<member>David Zhang</member>
|
|
<member>Davinder Singh</member>
|
|
<member>Dean Rasheed</member>
|
|
<member>Devanga Susmitha</member>
|
|
<member>Devrim Gündüz</member>
|
|
<member>Dian Fay</member>
|
|
<member>Dilip Kumar</member>
|
|
<member>Dimitrios Apostolou</member>
|
|
<member>Dipesh Dhameliya</member>
|
|
<member>Dmitrii Bondar</member>
|
|
<member>Dmitry Dolgov</member>
|
|
<member>Dmitry Koval</member>
|
|
<member>Dmitry Kovalenko</member>
|
|
<member>Dmitry Yurichev</member>
|
|
<member>Dominique Devienne</member>
|
|
<member>Donghang Lin</member>
|
|
<member>Dorjpalam Batbaatar</member>
|
|
<member>Drew Callahan</member>
|
|
<member>Duncan Sands</member>
|
|
<member>Dwayne Towell</member>
|
|
<member>Dzmitry Jachnik</member>
|
|
<member>Egor Chindyaskin</member>
|
|
<member>Egor Rogov</member>
|
|
<member>Emanuel Ionescu</member>
|
|
<member>Emanuele Musella</member>
|
|
<member>Emre Hasegeli</member>
|
|
<member>Eric Cyr</member>
|
|
<member>Erica Zhang</member>
|
|
<member>Erik Nordström</member>
|
|
<member>Erik Rijkers</member>
|
|
<member>Erik Wienhold</member>
|
|
<member>Erki Eessaar</member>
|
|
<member>Ethan Mertz</member>
|
|
<member>Etienne LAFARGE</member>
|
|
<member>Etsuro Fujita</member>
|
|
<member>Euler Taveira</member>
|
|
<member>Evan Si</member>
|
|
<member>Evgeniy Gorbanev</member>
|
|
<member>Fabio R. Sluzala</member>
|
|
<member>Fabrízio de Royes Mello</member>
|
|
<member>Feike Steenbergen</member>
|
|
<member>Feliphe Pozzer</member>
|
|
<member>Felix</member>
|
|
<member>Fire Emerald</member>
|
|
<member>Florents Tselai</member>
|
|
<member>Francesco Degrassi</member>
|
|
<member>Frank Streitzig</member>
|
|
<member>Frédéric Yhuel</member>
|
|
<member>Fredrik Widlert</member>
|
|
<member>Gabriele Bartolini</member>
|
|
<member>Gavin Panella</member>
|
|
<member>Geoff Winkless</member>
|
|
<member>George MacKerron</member>
|
|
<member>Gilles Darold</member>
|
|
<member>Grant Gryczan</member>
|
|
<member>Greg Burd</member>
|
|
<member>Greg Sabino Mullane</member>
|
|
<member>Greg Stark</member>
|
|
<member>Grigory Kryachko</member>
|
|
<member>Guillaume Lelarge</member>
|
|
<member>Gunnar Morling</member>
|
|
<member>Gunnar Wagner</member>
|
|
<member>Gurjeet Singh</member>
|
|
<member>Haifang Wang</member>
|
|
<member>Hajime Matsunaga</member>
|
|
<member>Hamid Akhtar</member>
|
|
<member>Hannu Krosing</member>
|
|
<member>Hari Krishna Sunder</member>
|
|
<member>Haruka Takatsuka</member>
|
|
<member>Hayato Kuroda</member>
|
|
<member>Heikki Linnakangas</member>
|
|
<member>Hironobu Suzuki</member>
|
|
<member>Holger Jakobs</member>
|
|
<member>Hubert Lubaczewski</member>
|
|
<member>Hugo Dubois</member>
|
|
<member>Hugo Zhang</member>
|
|
<member>Hunaid Sohail</member>
|
|
<member>Hywel Carver</member>
|
|
<member>Ian Barwick</member>
|
|
<member>Ibrar Ahmed</member>
|
|
<member>Igor Gnatyuk</member>
|
|
<member>Igor Korot</member>
|
|
<member>Ilia Evdokimov</member>
|
|
<member>Ilya Gladyshev</member>
|
|
<member>Ilyasov Ian</member>
|
|
<member>Imran Zaheer</member>
|
|
<member>Isaac Morland</member>
|
|
<member>Israel Barth Rubio</member>
|
|
<member>Ivan Kush</member>
|
|
<member>Jacob Brazeal</member>
|
|
<member>Jacob Champion</member>
|
|
<member>Jaime Casanova</member>
|
|
<member>Jakob Egger</member>
|
|
<member>Jakub Wartak</member>
|
|
<member>James Coleman</member>
|
|
<member>James Hunter</member>
|
|
<member>Jan Behrens</member>
|
|
<member>Japin Li</member>
|
|
<member>Jason Smith</member>
|
|
<member>Jayesh Dehankar</member>
|
|
<member>Jeevan Chalke</member>
|
|
<member>Jeff Davis</member>
|
|
<member>Jehan-Guillaume de Rorthais</member>
|
|
<member>Jelte Fennema-Nio</member>
|
|
<member>Jian He</member>
|
|
<member>Jianghua Yang</member>
|
|
<member>Jiao Shuntian</member>
|
|
<member>Jim Jones</member>
|
|
<member>Jim Nasby</member>
|
|
<member>Jingtang Zhang</member>
|
|
<member>Jingzhou Fu</member>
|
|
<member>Joe Conway</member>
|
|
<member>Joel Jacobson</member>
|
|
<member>John Hutchins</member>
|
|
<member>John Naylor</member>
|
|
<member>Jonathan Katz</member>
|
|
<member>Jorge Solórzano</member>
|
|
<member>José Villanova</member>
|
|
<member>Josef Šimánek</member>
|
|
<member>Joseph Koshakow</member>
|
|
<member>Julien Rouhaud</member>
|
|
<member>Junwang Zhao</member>
|
|
<member>Justin Pryzby</member>
|
|
<member>Kaido Vaikla</member>
|
|
<member>Kaimeh</member>
|
|
<member>Karina Litskevich</member>
|
|
<member>Karthik S</member>
|
|
<member>Kartyshov Ivan</member>
|
|
<member>Kashif Zeeshan</member>
|
|
<member>Keisuke Kuroda</member>
|
|
<member>Kevin Hale Boyes</member>
|
|
<member>Kevin K Biju</member>
|
|
<member>Kirill Reshke</member>
|
|
<member>Kirill Zdornyy</member>
|
|
<member>Koen De Groote</member>
|
|
<member>Koichi Suzuki</member>
|
|
<member>Koki Nakamura</member>
|
|
<member>Konstantin Knizhnik</member>
|
|
<member>Kouhei Sutou</member>
|
|
<member>Kuntal Ghosh</member>
|
|
<member>Kyotaro Horiguchi</member>
|
|
<member>Lakshmi Narayana Velayudam</member>
|
|
<member>Lars Kanis</member>
|
|
<member>Laurence Parry</member>
|
|
<member>Laurenz Albe</member>
|
|
<member>Lele Gaifax</member>
|
|
<member>Li Yong</member>
|
|
<member>Lilian Ontowhee</member>
|
|
<member>Lingbin Meng</member>
|
|
<member>Luboslav Špilák</member>
|
|
<member>Luca Vallisa</member>
|
|
<member>Lukas Fittl</member>
|
|
<member>Maciek Sakrejda</member>
|
|
<member>Magnus Hagander</member>
|
|
<member>Mahendra Singh Thalor</member>
|
|
<member>Mahendrakar Srinivasarao</member>
|
|
<member>Maiquel Grassi</member>
|
|
<member>Maksim Korotkov</member>
|
|
<member>Maksim Melnikov</member>
|
|
<member>Man Zeng</member>
|
|
<member>Marat Buharov</member>
|
|
<member>Marc Balmer</member>
|
|
<member>Marco Nenciarini</member>
|
|
<member>Marcos Pegoraro</member>
|
|
<member>Marina Polyakova</member>
|
|
<member>Mark Callaghan</member>
|
|
<member>Mark Dilger</member>
|
|
<member>Marlene Brandstaetter</member>
|
|
<member>Marlene Reiterer</member>
|
|
<member>Martin Rakhmanov</member>
|
|
<member>Masahiko Sawada</member>
|
|
<member>Masahiro Ikeda</member>
|
|
<member>Masao Fujii</member>
|
|
<member>Mason Mackaman</member>
|
|
<member>Mat Arye</member>
|
|
<member>Matheus Alcantara</member>
|
|
<member>Mats Kindahl</member>
|
|
<member>Matthew Gabeler-Lee</member>
|
|
<member>Matthew Kim</member>
|
|
<member>Matthew Sterrett</member>
|
|
<member>Matthew Woodcraft</member>
|
|
<member>Matthias van de Meent</member>
|
|
<member>Matthieu Denais</member>
|
|
<member>Maurizio Boriani</member>
|
|
<member>Max Johnson</member>
|
|
<member>Max Madden</member>
|
|
<member>Maxim Boguk</member>
|
|
<member>Maxim Orlov</member>
|
|
<member>Maximilian Chrzan</member>
|
|
<member>Melanie Plageman</member>
|
|
<member>Melih Mutlu</member>
|
|
<member>Mert Alev</member>
|
|
<member>Michael Banck</member>
|
|
<member>Michael Bondarenko</member>
|
|
<member>Michael Christofides</member>
|
|
<member>Michael Guissine</member>
|
|
<member>Michael Harris</member>
|
|
<member>Michaël Paquier</member>
|
|
<member>Michail Nikolaev</member>
|
|
<member>Michal Kleczek</member>
|
|
<member>Michel Pelletier</member>
|
|
<member>Mikaël Gourlaouen</member>
|
|
<member>Mikhail Gribkov</member>
|
|
<member>Mikhail Kot</member>
|
|
<member>Milosz Chmura</member>
|
|
<member>Muralikrishna Bandaru</member>
|
|
<member>Murat Efendioglu</member>
|
|
<member>Mutaamba Maasha</member>
|
|
<member>Naeem Akhter</member>
|
|
<member>Nat Makarevitch</member>
|
|
<member>Nathan Bossart</member>
|
|
<member>Navneet Kumar</member>
|
|
<member>Nazir Bilal Yavuz</member>
|
|
<member>Neil Conway</member>
|
|
<member>Niccolò Fei</member>
|
|
<member>Nick Davies</member>
|
|
<member>Nicolas Maus</member>
|
|
<member>Niek Brasa</member>
|
|
<member>Nikhil Raj</member>
|
|
<member>Nikita</member>
|
|
<member>Nikita Kalinin</member>
|
|
<member>Nikita Malakhov</member>
|
|
<member>Nikolay Samokhvalov</member>
|
|
<member>Nikolay Shaplov</member>
|
|
<member>Nisha Moond</member>
|
|
<member>Nitin Jadhav</member>
|
|
<member>Nitin Motiani</member>
|
|
<member>Noah Misch</member>
|
|
<member>Noboru Saito</member>
|
|
<member>Noriyoshi Shinoda</member>
|
|
<member>Ole Peder Brandtzæg</member>
|
|
<member>Oleg Sibiryakov</member>
|
|
<member>Oleg Tselebrovskiy</member>
|
|
<member>Olleg Samoylov</member>
|
|
<member>Onder Kalaci</member>
|
|
<member>Ondrej Navratil</member>
|
|
<member>Patrick Stählin</member>
|
|
<member>Paul Amonson</member>
|
|
<member>Paul Jungwirth</member>
|
|
<member>Paul Ramsey</member>
|
|
<member>Pavel Borisov</member>
|
|
<member>Pavel Luzanov</member>
|
|
<member>Pavel Nekrasov</member>
|
|
<member>Pavel Stehule</member>
|
|
<member>Peter Eisentraut</member>
|
|
<member>Peter Geoghegan</member>
|
|
<member>Peter Mittere</member>
|
|
<member>Peter Smith</member>
|
|
<member>Phil Eaton</member>
|
|
<member>Philipp Salvisberg</member>
|
|
<member>Philippe Beaudoin</member>
|
|
<member>Pierre Giraud</member>
|
|
<member>Pixian Shi</member>
|
|
<member>Polina Bungina</member>
|
|
<member>Przemyslaw Sztoch</member>
|
|
<member>Quynh Tran</member>
|
|
<member>Rafia Sabih</member>
|
|
<member>Raghuveer Devulapalli</member>
|
|
<member>Rahila Syed</member>
|
|
<member>Rama Malladi</member>
|
|
<member>Ran Benita</member>
|
|
<member>Ranier Vilela</member>
|
|
<member>Renan Alves Fonseca</member>
|
|
<member>Richard Guo</member>
|
|
<member>Richard Neill</member>
|
|
<member>Rintaro Ikeda</member>
|
|
<member>Robert Haas</member>
|
|
<member>Robert Treat</member>
|
|
<member>Robins Tharakan</member>
|
|
<member>Roman Zharkov</member>
|
|
<member>Ronald Cruz</member>
|
|
<member>Ronan Dunklau</member>
|
|
<member>Rui Zhao</member>
|
|
<member>Rushabh Lathia</member>
|
|
<member>Rustam Allakov</member>
|
|
<member>Ryo Kanbayashi</member>
|
|
<member>Ryohei Takahashi</member>
|
|
<member>RyotaK</member>
|
|
<member>Sagar Dilip Shedge</member>
|
|
<member>Salvatore Dipietro</member>
|
|
<member>Sam Gabrielsson</member>
|
|
<member>Sam James</member>
|
|
<member>Sameer Kumar</member>
|
|
<member>Sami Imseih</member>
|
|
<member>Samuel Thibault</member>
|
|
<member>Satyanarayana Narlapuram</member>
|
|
<member>Sebastian Skalacki</member>
|
|
<member>Senglee Choi</member>
|
|
<member>Sergei Kornilov</member>
|
|
<member>Sergey Belyashov</member>
|
|
<member>Sergey Dudoladov</member>
|
|
<member>Sergey Prokhorenko</member>
|
|
<member>Sergey Sargsyan</member>
|
|
<member>Sergey Soloviev</member>
|
|
<member>Sergey Tatarintsev</member>
|
|
<member>Shaik Mohammad Mujeeb</member>
|
|
<member>Shawn McCoy</member>
|
|
<member>Shenhao Wang</member>
|
|
<member>Shihao Zhong</member>
|
|
<member>Shinya Kato</member>
|
|
<member>Shlok Kyal</member>
|
|
<member>Shubham Khanna</member>
|
|
<member>Shveta Malik</member>
|
|
<member>Simon Riggs</member>
|
|
<member>Smolkin Grigory</member>
|
|
<member>Sofia Kopikova</member>
|
|
<member>Song Hongyu</member>
|
|
<member>Song Jinzhou</member>
|
|
<member>Soumyadeep Chakraborty</member>
|
|
<member>Sravan Kumar</member>
|
|
<member>Srinath Reddy</member>
|
|
<member>Stan Hu</member>
|
|
<member>Stepan Neretin</member>
|
|
<member>Stephen Fewer</member>
|
|
<member>Stephen Frost</member>
|
|
<member>Steve Chavez</member>
|
|
<member>Steven Niu</member>
|
|
<member>Suraj Kharage</member>
|
|
<member>Sven Klemm</member>
|
|
<member>Takamichi Osumi</member>
|
|
<member>Takeshi Ideriha</member>
|
|
<member>Tatsuo Ishii</member>
|
|
<member>Ted Yu</member>
|
|
<member>Tels</member>
|
|
<member>Tender Wang</member>
|
|
<member>Teodor Sigaev</member>
|
|
<member>Thom Brown</member>
|
|
<member>Thomas Baehler</member>
|
|
<member>Thomas Krennwallner</member>
|
|
<member>Thomas Munro</member>
|
|
<member>Tim Wood</member>
|
|
<member>Timur Magomedov</member>
|
|
<member>Tobias Wendorff</member>
|
|
<member>Todd Cook</member>
|
|
<member>Tofig Aliev</member>
|
|
<member>Tom Lane</member>
|
|
<member>Tomas Vondra</member>
|
|
<member>Tomasz Rybak</member>
|
|
<member>Tomasz Szypowski</member>
|
|
<member>Torsten Foertsch</member>
|
|
<member>Toshi Harada</member>
|
|
<member>Tristan Partin</member>
|
|
<member>Triveni N</member>
|
|
<member>Umar Hayat</member>
|
|
<member>Vallimaharajan G</member>
|
|
<member>Vasya Boytsov</member>
|
|
<member>Victor Yegorov</member>
|
|
<member>Vignesh C</member>
|
|
<member>Viktor Holmberg</member>
|
|
<member>Vinícius Abrahão</member>
|
|
<member>Vinod Sridharan</member>
|
|
<member>Virender Singla</member>
|
|
<member>Vitaly Davydov</member>
|
|
<member>Vladlen Popolitov</member>
|
|
<member>Vladyslav Nebozhyn</member>
|
|
<member>Walid Ibrahim</member>
|
|
<member>Webbo Han</member>
|
|
<member>Wenhui Qiu</member>
|
|
<member>Will Mortensen</member>
|
|
<member>Will Storey</member>
|
|
<member>Wolfgang Walther</member>
|
|
<member>Xin Zhang</member>
|
|
<member>Xing Guo</member>
|
|
<member>Xuneng Zhou</member>
|
|
<member>Yan Chengpen</member>
|
|
<member>Yang Lei</member>
|
|
<member>Yaroslav Saburov</member>
|
|
<member>Yaroslav Syrytsia</member>
|
|
<member>Yasir Hussain</member>
|
|
<member>Yasuo Honda</member>
|
|
<member>Yogesh Sharma</member>
|
|
<member>Yonghao Lee</member>
|
|
<member>Yoran Heling</member>
|
|
<member>Yu Liang</member>
|
|
<member>Yugo Nagata</member>
|
|
<member>Yuhang Qiu</member>
|
|
<member>Yuki Seino</member>
|
|
<member>Yura Sokolov</member>
|
|
<member>Yurii Rashkovskii</member>
|
|
<member>Yushi Ogiwara</member>
|
|
<member>Yusuke Sugie</member>
|
|
<member>Yuta Katsuragi</member>
|
|
<member>Yuto Sasaki</member>
|
|
<member>Yuuki Fujii</member>
|
|
<member>Yuya Watari</member>
|
|
<member>Zane Duffield</member>
|
|
<member>Zeyuan Hu</member>
|
|
<member>Zhang Mingli</member>
|
|
<member>Zhihong Yu</member>
|
|
<member>Zhijie Hou</member>
|
|
<member>Zsolt Parragi</member>
|
|
</simplelist>
|
|
</sect2>
|
|
|
|
</sect1>
|