Stamp HEAD as 18devel.
authorMichael Paquier <michael@paquier.xyz>
Sun, 30 Jun 2024 22:56:10 +0000 (07:56 +0900)
committerMichael Paquier <michael@paquier.xyz>
Sun, 30 Jun 2024 22:56:10 +0000 (07:56 +0900)
Let the hacking begin ...

configure
configure.ac
doc/src/sgml/filelist.sgml
doc/src/sgml/release-17.sgml [deleted file]
doc/src/sgml/release-18.sgml [new file with mode: 0644]
doc/src/sgml/release.sgml
meson.build
src/tools/git_changelog
src/tools/version_stamp.pl

index 0036a76875430940fbe800706d260352a6a55d34..76f06bd8fda9e5392be4e16047f98a0675f81558 100755 (executable)
--- a/configure
+++ b/configure
@@ -1,6 +1,6 @@
 #! /bin/sh
 # Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.69 for PostgreSQL 17beta2.
+# Generated by GNU Autoconf 2.69 for PostgreSQL 18devel.
 #
 # Report bugs to <pgsql-bugs@lists.postgresql.org>.
 #
@@ -582,8 +582,8 @@ MAKEFLAGS=
 # Identity of this package.
 PACKAGE_NAME='PostgreSQL'
 PACKAGE_TARNAME='postgresql'
-PACKAGE_VERSION='17beta2'
-PACKAGE_STRING='PostgreSQL 17beta2'
+PACKAGE_VERSION='18devel'
+PACKAGE_STRING='PostgreSQL 18devel'
 PACKAGE_BUGREPORT='pgsql-bugs@lists.postgresql.org'
 PACKAGE_URL='https://www.postgresql.org/'
 
@@ -1450,7 +1450,7 @@ if test "$ac_init_help" = "long"; then
   # Omit some internal or obsolete options to make the list less imposing.
   # This message is too long to be a string in the A/UX 3.1 sh.
   cat <<_ACEOF
-\`configure' configures PostgreSQL 17beta2 to adapt to many kinds of systems.
+\`configure' configures PostgreSQL 18devel to adapt to many kinds of systems.
 
 Usage: $0 [OPTION]... [VAR=VALUE]...
 
@@ -1515,7 +1515,7 @@ fi
 
 if test -n "$ac_init_help"; then
   case $ac_init_help in
-     short | recursive ) echo "Configuration of PostgreSQL 17beta2:";;
+     short | recursive ) echo "Configuration of PostgreSQL 18devel:";;
    esac
   cat <<\_ACEOF
 
@@ -1690,7 +1690,7 @@ fi
 test -n "$ac_init_help" && exit $ac_status
 if $ac_init_version; then
   cat <<\_ACEOF
-PostgreSQL configure 17beta2
+PostgreSQL configure 18devel
 generated by GNU Autoconf 2.69
 
 Copyright (C) 2012 Free Software Foundation, Inc.
@@ -2443,7 +2443,7 @@ cat >config.log <<_ACEOF
 This file contains any messages produced by compilers while
 running configure, to aid debugging if configure makes a mistake.
 
-It was created by PostgreSQL $as_me 17beta2, which was
+It was created by PostgreSQL $as_me 18devel, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   $ $0 $@
@@ -19785,7 +19785,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
 # report actual input values of CONFIG_FILES etc. instead of their
 # values after options handling.
 ac_log="
-This file was extended by PostgreSQL $as_me 17beta2, which was
+This file was extended by PostgreSQL $as_me 18devel, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
@@ -19856,7 +19856,7 @@ _ACEOF
 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
 ac_cs_version="\\
-PostgreSQL config.status 17beta2
+PostgreSQL config.status 18devel
 configured by $0, generated by GNU Autoconf 2.69,
   with options \\"\$ac_cs_config\\"
 
index 48bcf24e75467a66bedd532a279e3f511d1f1643..ab2d51c21ceb35c370fc45a0dd9460acc8ccd82e 100644 (file)
@@ -17,7 +17,7 @@ dnl Read the Autoconf manual for details.
 dnl
 m4_pattern_forbid(^PGAC_)dnl to catch undefined macros
 
-AC_INIT([PostgreSQL], [17beta2], [pgsql-bugs@lists.postgresql.org], [], [https://www.postgresql.org/])
+AC_INIT([PostgreSQL], [18devel], [pgsql-bugs@lists.postgresql.org], [], [https://www.postgresql.org/])
 
 m4_if(m4_defn([m4_PACKAGE_VERSION]), [2.69], [], [m4_fatal([Autoconf version 2.69 is required.
 Untested combinations of 'autoconf' and PostgreSQL versions are not
index 38ec362d8f469867e5d9bc6b6111675868ce9c97..a7ff5f8264266f8d19760994b9fcf0c99965591e 100644 (file)
 <!ENTITY sourcerepo SYSTEM "sourcerepo.sgml">
 
 <!ENTITY release    SYSTEM "release.sgml">
-<!ENTITY release-17 SYSTEM "release-17.sgml">
+<!ENTITY release-18 SYSTEM "release-18.sgml">
 
 <!ENTITY limits     SYSTEM "limits.sgml">
 <!ENTITY acronyms   SYSTEM "acronyms.sgml">
diff --git a/doc/src/sgml/release-17.sgml b/doc/src/sgml/release-17.sgml
deleted file mode 100644 (file)
index 1eaaad7..0000000
+++ /dev/null
@@ -1,3241 +0,0 @@
-<!-- doc/src/sgml/release-16.sgml -->
-<!-- See header comment in release.sgml about typical markup -->
-
- <sect1 id="release-17">
-  <title>Release 17</title>
-
-  <formalpara>
-   <title>Release date:</title>
-   <para>2024-??-??, AS OF 2024-06-17</para>
-  </formalpara>
-
-  <sect2 id="release-17-highlights">
-   <title>Overview</title>
-
-   <para>
-    <productname>PostgreSQL</productname> 17 contains many new features
-    and enhancements, including:
-   </para>
-
-   <itemizedlist>
-    <listitem><para>TO BE COMPLETED LATER</para></listitem>
-   </itemizedlist>
-
-   <para>
-    The above items and other new features of
-    <productname>PostgreSQL</productname> 17 are explained in more detail
-    in the sections below.
-   </para>
-
-  </sect2>
-
-  <sect2  id="release-17-migration">
-
-   <title>Migration to Version 17</title>
-
-   <para>
-    A dump/restore using <xref linkend="app-pg-dumpall"/> or use of
-    <xref linkend="pgupgrade"/> or logical replication is required for
-    those wishing to migrate data from any previous release.  See <xref
-    linkend="upgrading"/> for general information on migrating to new
-    major releases.
-   </para>
-
-   <para>
-    Version 17 contains a number of changes that may affect compatibility
-    with previous releases.  Observe the following incompatibilities:
-   </para>
-
-   <itemizedlist>
-
-<!--
-Author: Jeff Davis <jdavis@postgresql.org>
-2024-03-04 [2af07e2f7] Fix search_path to a safe value during maintenance opera
--->
-
-    <listitem>
-     <para>
-     Change functions to use a safe <xref linkend="guc-search-path"/>
-     during maintenance operations (Jeff Davis)
-     </para>
-
-     <para>
-     This prevents maintenance operations (<command>ANALYZE</command>,
-     <command>CLUSTER</command>, <command>REFRESH
-     MATERIALIZED VIEW</command>, <command>REINDEX</command>,
-     or <command>VACUUM</command>) from performing unsafe access.
-     Functions used by expression indexes and materialized views that
-     need to reference non-default schemas must specify a search path
-     during function creation.
-     </para>
-    </listitem>
-
-<!--
-Author: Michael Paquier <michael@paquier.xyz>
-2023-08-28 [165d581f1] Tighten handling of "ago" in interval values
-Author: Michael Paquier <michael@paquier.xyz>
-2023-08-28 [617f9b7d4] Tighten unit parsing in internal values
--->
-
-    <listitem>
-     <para>
-     Restrict <literal>ago</literal> to only appear at the end in
-     <type>interval</type> values (Joseph Koshakow)
-     </para>
-
-     <para>
-     Also, prevent empty interval units from appearing multiple times.
-     </para>
-    </listitem>
-
-<!--
-Author: Thomas Munro <tmunro@postgresql.org>
-2023-09-05 [f691f5b80] Remove the "snapshot too old" feature.
--->
-
-    <listitem>
-     <para>
-     Remove server variable old_snapshot_threshold (Thomas Munro)
-     </para>
-
-     <para>
-     This variable allowed vacuum to remove rows that potentially could
-     be still visible to running transactions, causing "snapshot too
-     old" errors later if accessed.  This feature might be re-added
-     to <application>PostgreSQL</application> later if an improved
-     implementation is found.
-     </para>
-    </listitem>
-
-<!--
-Author: Nathan Bossart <nathan@postgresql.org>
-2023-07-13 [a0363ab7a] Fix privilege check for SET SESSION AUTHORIZATION.
--->
-
-    <listitem>
-     <para>
-     Change <link linkend="sql-set-session-authorization"><command>SET
-     SESSION AUTHORIZATION</command></link> handling of the initial
-     session user's superuser status (Joseph Koshakow)
-     </para>
-
-     <para>
-     The new behavior is based on the session user's superuser status at
-     the time the <command>SET SESSION AUTHORIZATION</command> command
-     is issued, rather than their superuser status at connection time.
-     </para>
-    </listitem>
-
-<!--
-Author: Nathan Bossart <nathan@postgresql.org>
-2023-07-17 [884eee5bf] Remove db_user_namespace.
--->
-
-    <listitem>
-     <para>
-     Remove feature which simulated per-database users (Nathan Bossart)
-     </para>
-
-     <para>
-     The feature, <literal>db_user_namespace</literal>, was rarely used.
-     </para>
-    </listitem>
-
-<!--
-Author: Thomas Munro <tmunro@postgresql.org>
-2023-07-14 [d0c28601e] Remove wal_sync_method=fsync_writethrough on Windows.
--->
-
-    <listitem>
-     <para>
-     Remove <xref linkend="guc-wal-sync-method"/> value
-     <literal>fsync_writethrough</literal> on <systemitem
-     class="osname">Windows</systemitem> (Thomas Munro)
-     </para>
-
-     <para>
-     This value was the same as <literal>fsync</literal> on <systemitem
-     class="osname">Windows</systemitem>.
-     </para>
-    </listitem>
-
-<!--
-Author: Bruce Momjian <bruce@momjian.us>
-2023-11-24 [344afc776] modify segno. for pg_walfile_name() and pg_walfile_name_
--->
-
-    <listitem>
-     <para>
-     Change file boundary handling of two <acronym>WAL</acronym> file
-     name functions (Kyotaro Horiguchi, Andres Freund, Bruce Momjian)
-     </para>
-
-     <para>
-     The functions <link
-     linkend="functions-admin-backup-table"><function>pg_walfile_name()</function></link>
-     and <function>pg_walfile_name_offset()</function> used to report
-     the previous <acronym>LSN</acronym> segment number when the
-     <acronym>LSN</acronym> was on a file segment boundary;  it now
-     returns the <acronym>LSN</acronym> segment.
-     </para>
-    </listitem>
-
-<!--
-Author: Michael Paquier <michael@paquier.xyz>
-2023-12-11 [c7a3e6b46] Remove trace_recovery_messages
--->
-
-    <listitem>
-     <para>
-     Remove server variable <literal>trace_recovery_messages</literal>
-     since it is no longer needed (Bharath Rupireddy)
-     </para>
-    </listitem>
-
-<!--
-Author: Peter Eisentraut <peter@eisentraut.org>
-2023-08-16 [78806a950] Remove incorrect field from information schema
--->
-
-    <listitem>
-     <para>
-     Remove <link
-     linkend="information-schema">information schema</link> column
-     <structname>element_types</structname>.<structfield>domain_default</structfield>
-     (Peter Eisentraut)
-     </para>
-    </listitem>
-
-<!--
-Author: Bruce Momjian <bruce@momjian.us>
-2023-09-26 [15d5d7405] pgrowlocks: change lock mode output labels for consiste
--->
-
-    <listitem>
-     <para>
-     Change <application><xref linkend="pgrowlocks"/></application>
-     lock mode output labels (Bruce Momjian)
-     </para>
-    </listitem>
-
-<!--
-Author: Michael Paquier <michael@paquier.xyz>
-2023-10-27 [74604a37f] Remove buffers_backend and buffers_backend_fsync from pg
--->
-
-    <listitem>
-     <para>
-     Remove <structfield>buffers_backend</structfield> and
-     <structfield>buffers_backend_fsync</structfield> from <link
-     linkend="monitoring-pg-stat-bgwriter-view"><structname>pg_stat_bgwriter</structname></link>
-     (Bharath Rupireddy)
-     </para>
-
-     <para>
-     These fields are considered redundant to similar columns in <link
-     linkend="monitoring-pg-stat-io-view"><structname>pg_stat_io</structname></link>.
-     </para>
-    </listitem>
-
-<!--
-Author: Michael Paquier <michael@paquier.xyz>
-2023-10-19 [13d00729d] Rename I/O timing statistics columns to shared_blk_{read
--->
-
-    <listitem>
-     <para>
-     Rename I/O block read/write timing statistics columns of
-     <application><xref linkend="pgstatstatements"/></application>
-     (Nazir Bilal Yavuz)
-     </para>
-
-     <para>
-     This renames <structfield>blk_read_time</structfield>
-     to <structfield>shared_blk_read_time</structfield>,
-     and <structfield>blk_write_time</structfield> to
-     <structfield>shared_blk_write_time</structfield>.
-     </para>
-    </listitem>
-
-<!--
-Author: Peter Eisentraut <peter@eisentraut.org>
-2024-01-13 [4f622503d] Make attstattarget nullable
-Author: Peter Eisentraut <peter@eisentraut.org>
-2024-03-17 [012460ee9] Make stxstattarget nullable
--->
-
-    <listitem>
-     <para>
-     Change <link
-     linkend="catalog-pg-attribute"><structname>pg_attribute</structname>.<structfield>attstattarget</structfield></link>
-     and
-     <structname>pg_attribute</structname>.<structfield>stxstattarget</structfield>
-     to represent the default statistics target as <literal>NULL</literal>
-     (Peter Eisentraut)
-     </para>
-    </listitem>
-
-<!--
-Author: Jeff Davis <jdavis@postgresql.org>
-2024-03-09 [f696c0cd5] Catalog changes preparing for builtin collation provider
--->
-
-    <listitem>
-     <para>
-     Rename <link
-     linkend="catalog-pg-collation"><structname>pg_collation</structname>.<structfield>colliculocale</structfield></link>
-     to <structfield>colllocale</structfield> and
-     <link linkend="catalog-pg-database"><structname>pg_database</structname>.<structfield>daticulocale</structfield></link>
-     to <structfield>datlocale</structfield> (Jeff Davis)
-     </para>
-    </listitem>
-
-<!--
-Author: Masahiko Sawada <msawada@postgresql.org>
-2024-04-02 [667e65aac] Use TidStore for dead tuple TIDs storage during lazy vac
-Author: Masahiko Sawada <msawada@postgresql.org>
-2024-06-14 [f1affb670] Reintroduce dead tuple counter in pg_stat_progress_vacuu
--->
-
-    <listitem>
-     <para>
-     Rename <link
-     linkend="vacuum-progress-reporting"><structname>pg_stat_progress_vacuum</structname></link>
-     column <structfield>max_dead_tuples</structfield>
-     to <structfield>max_dead_tuple_bytes</structfield>,
-     rename <structfield>num_dead_tuples</structfield> to
-     <structfield>num_dead_item_ids</structfield>, and add
-     <structfield>dead_tuple_bytes</structfield> (Masahiko Sawada)
-     </para>
-    </listitem>
-
-<!--
-Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
-2024-02-28 [bcdfa5f2e] Rename SLRU elements in view pg_stat_slru
--->
-
-    <listitem>
-     <para>
-     Rename <acronym>SLRU</acronym> columns in system view <link
-     linkend="monitoring-pg-stat-slru-view"><structname>pg_stat_slru</structname></link>
-     (Alvaro Herrera)
-     </para>
-
-     <para>
-     The column names accepted by <link
-     linkend="monitoring-stats-funcs-table"><function>pg_stat_reset_slru()</function></link>
-     are also changed.
-     </para>
-    </listitem>
-
-   </itemizedlist>
-
-  </sect2>
-
-  <sect2 id="release-17-changes">
-   <title>Changes</title>
-
-    <para>
-     Below you will find a detailed account of the changes between
-    <productname>PostgreSQL</productname> 17 and the previous major
-    release.
-    </para>
-
-   <sect3 id="release-17-server">
-    <title>Server</title>
-
-    <sect4 id="release-17-optimizer">
-     <title>Optimizer</title>
-
-     <itemizedlist>
-
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-2023-11-17 [f7816aec2] Extract column statistics from CTE references, if possib
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-2024-03-26 [a65724dfa] Propagate pathkeys from CTEs up to the outer query.
--->
-
-      <listitem>
-       <para>
-       Allow the optimizer to improve <acronym>CTE</acronym> plans by
-       considering the statistics and sort order of columns referenced in earlier row
-       output clauses (Jian Guo, Richard Guo, Tom Lane)
-       </para>
-      </listitem>
-
-<!--
-Author: David Rowley <drowley@postgresql.org>
-2024-01-23 [b262ad440] Add better handling of redundant IS [NOT] NULL quals
-Author: David Rowley <drowley@postgresql.org>
-2024-04-12 [3af704098] Fix IS [NOT] NULL qual optimization for inheritance tabl
--->
-
-      <listitem>
-       <para>
-       Improve optimization of <literal>IS NOT NULL</literal> and
-       <literal>IS NULL</literal> query restrictions (David Rowley,
-       Richard Guo, Andy Fan)
-       </para>
-
-       <para>
-       Remove <literal>IS NOT NULL</literal> restrictions from queries on
-       <literal>NOT NULL</literal> columns and eliminate scans on
-       <literal>NOT NULL</literal> columns if <literal>IS NULL</literal>
-       is specified.
-       </para>
-      </listitem>
-
-<!--
-Author: David Rowley <drowley@postgresql.org>
-2024-03-04 [07c36c133] Support partition pruning on boolcol IS [NOT] UNKNOWN
--->
-
-      <listitem>
-       <para>
-       Allow partition pruning on boolean columns on <literal>IS [NOT]
-       UNKNOWN</literal> conditionals (David Rowley)
-       </para>
-      </listitem>
-
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-2024-01-20 [075df6b20] Add planner support functions for range operators &lt;@ and
--->
-
-      <listitem>
-       <para>
-       Improve optimization of range values when using containment
-       operators &lt;@ and @&gt; (Kim Johan Andersson, Jian He)
-       </para>
-      </listitem>
-
-<!--
-Author: Alexander Korotkov <akorotkov@postgresql.org>
-2024-02-15 [9f1337639] Pull up ANY-SUBLINK with the necessary lateral support.
--->
-
-      <listitem>
-       <para>
-       Allow correlated <literal>IN</literal> subqueries to be transformed
-       into joins (Andy Fan, Tom Lane)
-       </para>
-      </listitem>
-
-<!--
-Author: David Rowley <drowley@postgresql.org>
-2023-10-05 [a8a968a82] Consider cheap startup paths in add_paths_to_append_rel
--->
-
-      <listitem>
-       <para>
-       Improve optimization of the <literal>LIMIT</literal> clause
-       on partitioned tables, inheritance parents, and <literal>UNION
-       ALL</literal> queries (Andy Fan, David Rowley)
-       </para>
-      </listitem>
-
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-2023-07-14 [e08d74ca1] Allow plan nodes with initPlans to be considered paralle
--->
-
-      <listitem>
-       <para>
-       Allow query nodes to be run in parallel in more cases (Tom Lane)
-       </para>
-      </listitem>
-
-<!--
-Author: Alexander Korotkov <akorotkov@postgresql.org>
-2024-01-21 [0452b461b] Explore alternative orderings of group-by pathkeys durin
--->
-
-      <listitem>
-       <para>
-       Allow <literal>GROUP BY</literal> columns to be internally
-       ordered to match <literal>ORDER BY</literal> (Andrei Lepikhov,
-       Teodor Sigaev)
-       </para>
-
-       <para>
-       This can be disabled using server variable
-       <xref linkend="guc-enable-groupby-reordering"/>.
-       </para>
-      </listitem>
-
-<!--
-Author: David Rowley <drowley@postgresql.org>
-2024-03-25 [66c0185a3] Allow planner to use Merge Append to efficiently impleme
--->
-
-      <listitem>
-       <para>
-       Allow <literal>UNION</literal> (without <literal>ALL</literal>)
-       to use MergeAppend (David Rowley)
-       </para>
-      </listitem>
-
-<!--
-Author: David Rowley <drowley@postgresql.org>
-2024-02-01 [9d1a5354f] Fix costing bug in MergeAppend
--->
-
-      <listitem>
-       <para>
-       Fix MergeAppend plans to more accurately compute the number of
-       rows that need to be sorted (Alexander Kuzmenkov)
-       </para>
-      </listitem>
-
-<!--
-Author: David Rowley <drowley@postgresql.org>
-2023-07-04 [625d5b3ca] Allow Incremental Sorts on GiST and SP-GiST indexes
--->
-
-      <listitem>
-       <para>
-       Allow  <link linkend="gist">GiST</link> and <link
-       linkend="spgist">SP-GiST</link> indexes to be part of incremental
-       sorts (Miroslav Bendik)
-       </para>
-
-       <para>
-       This is particularly useful for <literal>ORDER BY</literal>
-       clauses where the first column has a GiST and SP-GiST index,
-       and other columns do not.
-       </para>
-      </listitem>
-
-<!--
-Author: Alexander Korotkov <akorotkov@postgresql.org>
-2023-11-27 [bc3c8db8a] Display length and bounds histograms in pg_stats
--->
-
-      <listitem>
-       <para>
-       Add columns to <link
-       linkend="view-pg-stats"><structname>pg_stats</structname></link>
-       to report range-type histogram information (Egor Rogov, Soumyadeep
-       Chakraborty)
-       </para>
-      </listitem>
-
-     </itemizedlist>
-
-    </sect4>
-
-    <sect4 id="release-17-indexes">
-     <title>Indexes</title>
-
-     <itemizedlist>
-<!--
-Author: Peter Geoghegan <pg@bowt.ie>
-2024-04-06 [5bf748b86] Enhance nbtree ScalarArrayOp execution.
--->
-
-      <listitem>
-       <para>
-       Allow <link linkend="btree">btree</link> indexes to more
-       efficiently find a set of values, such as those supplied by
-       <literal>IN</literal> clauses using constants (Peter Geoghegan,
-       Matthias van de Meent)
-       </para>
-      </listitem>
-
-<!--
-Author: Tomas Vondra <tomas.vondra@postgresql.org>
-2023-12-08 [b43757171] Allow parallel CREATE INDEX for BRIN indexes
--->
-
-      <listitem>
-       <para>
-       Allow <link linkend="brin"><acronym>BRIN</acronym></link> indexes
-       to be created using parallel workers (Tomas Vondra, Matthias van
-       de Meent)
-       </para>
-      </listitem>
-
-     </itemizedlist>
-
-    </sect4>
-
-    <sect4 id="release-17-performance">
-     <title>General Performance</title>
-
-     <itemizedlist>
-
-<!--
-Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
-2024-04-03 [6dbb49026] Combine freezing and pruning steps in VACUUM
--->
-
-      <listitem>
-       <para>
-       Allow vacuum to more efficiently remove and freeze tuples (Melanie
-       Plageman, Heikki Linnakangas)
-       </para>
-
-       <para>
-       <acronym>WAL</acronym> traffic caused by vacuum is also more
-       compact.
-       </para>
-      </listitem>
-
-<!--
-Author: John Naylor <john.naylor@postgresql.org>
-2024-03-07 [ee1b30f12] Add template for adaptive radix tree
-Author: Masahiko Sawada <msawada@postgresql.org>
-2024-03-21 [30e144287] Add TIDStore, to store sets of TIDs (ItemPointerData) ef
-Author: Masahiko Sawada <msawada@postgresql.org>
-2024-04-02 [667e65aac] Use TidStore for dead tuple TIDs storage during lazy vac
-Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
-2024-04-03 [6dbb49026] Combine freezing and pruning steps in VACUUM
--->
-
-      <listitem>
-       <para>
-       Allow vacuum to more efficiently store tuple references (Masahiko
-       Sawada, John Naylor)
-       </para>
-
-       <para>
-       Additionally, vacuum is no longer silently limited to one gigabyte
-       of memory when <xref linkend="guc-maintenance-work-mem"/> or <xref
-       linkend="guc-autovacuum-work-mem"/> are higher.
-       </para>
-      </listitem>
-
-<!--
-Author: Robert Haas <rhaas@postgresql.org>
-2024-01-18 [c120550ed] Optimize vacuuming of relations with no indexes.
--->
-
-      <listitem>
-       <para>
-       Optimize vacuuming of relations with no indexes (Melanie Plageman)
-       </para>
-      </listitem>
-
-<!--
-Author: Thomas Munro <tmunro@postgresql.org>
-2024-04-06 [98f320eb2] Increase default vacuum_buffer_usage_limit to 2MB.
--->
-
-      <listitem>
-       <para>
-       Increase default <xref linkend="guc-vacuum-buffer-usage-limit"/>
-       to 2MB (Thomas Munro)
-       </para>
-      </listitem>
-
-<!--
-Author: Nathan Bossart <nathan@postgresql.org>
-2024-03-26 [d365ae705] Optimize roles_is_member_of() with a Bloom filter.
--->
-
-      <listitem>
-       <para>
-       Improve performance when checking roles with many memberships
-       (Nathan Bossart)
-       </para>
-      </listitem>
-
-<!--
-Author: Michael Paquier <michael@paquier.xyz>
-2023-07-25 [71e4cc6b8] Optimize WAL insertion lock acquisition and release with
--->
-
-      <listitem>
-       <para>
-       Improve performance of heavily-contended <acronym>WAL</acronym>
-       writes (Bharath Rupireddy)
-       </para>
-      </listitem>
-
-<!--
-Author: David Rowley <drowley@postgresql.org>
-2024-04-07 [c4ab7da60] Avoid needless large memcpys in libpq socket writing
--->
-
-      <listitem>
-       <para>
-       Improve performance when transferring large blocks of data to a
-       client (Melih Mutlu)
-       </para>
-      </listitem>
-
-<!--
-Author: Thomas Munro <tmunro@postgresql.org>
-2024-04-03 [210622c60] Provide vectored variant of ReadBuffer().
-Author: Thomas Munro <tmunro@postgresql.org>
-2024-04-08 [b7b0f3f27] Use streaming I/O in sequential scans.
-Author: Thomas Munro <tmunro@postgresql.org>
-2024-04-08 [041b96802] Use streaming I/O in ANALYZE.
--->
-
-      <listitem>
-       <para>
-       Allow the grouping of file system reads with the new system variable
-       <xref linkend="guc-io-combine-limit"/> (Thomas Munro, Andres Freund,
-       Melanie Plageman, Nazir Bilal Yavuz)
-       </para>
-      </listitem>
-
-     </itemizedlist>
-
-    </sect4>
-
-    <sect4 id="release-17-monitoring">
-     <title>Monitoring</title>
-
-     <itemizedlist>
-
-<!--
-Author: Michael Paquier <michael@paquier.xyz>
-2023-10-30 [96f052613] Introduce pg_stat_checkpointer
-Author: Alexander Korotkov <akorotkov@postgresql.org>
-2023-12-25 [12915a58e] Enhance checkpointer restartpoint statistics
-Author: Alexander Korotkov <akorotkov@postgresql.org>
-2024-03-14 [e820db5b5] Improve documentation for pg_stat_checkpointer fields
--->
-
-      <listitem>
-       <para>
-       Create system view <link
-       linkend="monitoring-pg-stat-checkpointer-view"><structname>pg_stat_checkpointer</structname></link>
-       (Bharath Rupireddy, Anton A. Melnikov, Alexander Korotkov)
-       </para>
-
-       <para>
-       Relevant columns have been removed from <link
-       linkend="pg-stat-bgwriter-view"><structname>pg_stat_bgwriter</structname></link>
-       and added to this new system view.
-       </para>
-      </listitem>
-
-<!--
-Author: Michael Paquier <michael@paquier.xyz>
-2023-11-12 [23c8c0c8f] Add ability to reset all shared stats types in pg_stat_r
-Author: Michael Paquier <michael@paquier.xyz>
-2023-11-16 [2e8a0edc2] Add target "slru" to pg_stat_reset_shared()
-Author: Michael Paquier <michael@paquier.xyz>
-2023-11-14 [e5cca6288] Add support for pg_stat_reset_slru without argument
--->
-
-      <listitem>
-       <para>
-       Improve control over resetting statistics (Atsushi Torikoshi,
-       Bharath Rupireddy)
-       </para>
-
-       <para>
-       Allow <link
-       linkend="monitoring-stats-funcs-table"><function>pg_stat_reset_shared()</function></link>
-       (with no arguments) and
-       pg_stat_reset_shared(<literal>NULL</literal>) to reset all
-       shared statistics.  Allow pg_stat_reset_shared('slru') and <link
-       linkend="monitoring-stats-funcs-table"><function>pg_stat_reset_slru()</function></link>
-       (with no arguments) to reset <acronym>SLRU</acronym> statistics,
-       which was already possible with pg_stat_reset_slru(NULL).
-       </para>
-      </listitem>
-
-<!--
-Author: Michael Paquier <michael@paquier.xyz>
-2024-01-25 [1d35f705e] Add more LOG messages when starting and ending recovery
--->
-
-      <listitem>
-       <para>
-       Add log messages related to <acronym>WAL</acronym> recovery from
-       backups (Andres Freund)
-       </para>
-      </listitem>
-
-<!--
-Author: Michael Paquier <michael@paquier.xyz>
-2023-08-26 [e48b19c5d] Generate new LOG for "trust" connections under log_conne
--->
-
-      <listitem>
-       <para>
-       Add <xref linkend="guc-log-connections"/> log line for
-       <literal>trust</literal> connections (Jacob Champion)
-       </para>
-      </listitem>
-
-<!--
-Author: Amit Kapila <akapila@postgresql.org>
-2023-11-21 [7c3fb505b] Log messages for replication slot acquisition and releas
--->
-
-      <listitem>
-       <para>
-       Add log message to report walsender acquisition and release of
-       replication slots (Bharath Rupireddy)
-       </para>
-
-       <para>
-       This is enabled by the server variable <xref
-       linkend="guc-log-replication-commands"/>.
-       </para>
-      </listitem>
-
-<!--
-Author: Michael Paquier <michael@paquier.xyz>
-2023-08-20 [1e68e43d3] Add system view pg_wait_events
--->
-
-      <listitem>
-       <para>
-       Add system view <link
-       linkend="view-pg-wait-events"><structname>pg_wait_events</structname></link>
-       that reports wait event types (Bertrand Drouvot)
-       </para>
-
-       <para>
-       This is useful for adding descriptions
-       to wait events reported in <link
-       linkend="monitoring-pg-stat-activity-view"><structname>pg_stat_activity</structname></link>.
-       </para>
-      </listitem>
-
-<!--
-Author: Thomas Munro <tmunro@postgresql.org>
-2023-10-13 [0013ba290] Add wait events for checkpoint delay mechanism.
--->
-
-      <listitem>
-       <para>
-       Add <link linkend="view-pg-wait-events">wait events</link> for
-       checkpoint delays (Thomas Munro)
-       </para>
-      </listitem>
-
-<!--
-Author: Masahiko Sawada <msawada@postgresql.org>
-2023-07-11 [46ebdfe16] Report index vacuum progress.
--->
-
-      <listitem>
-       <para>
-       Allow vacuum to report the progress of index processing (Sami
-       Imseih)
-       </para>
-
-       <para>
-       This appears in system view <link
-       linkend="pg-stat-progress-vacuum-view"><structname>pg_stat_progress_vacuum</structname></link>
-       columns <structfield>indexes_total</structfield> and
-       <structfield>indexes_processed</structfield>.
-       </para>
-      </listitem>
-
-     </itemizedlist>
-
-    </sect4>
-
-    <sect4 id="release-17-privileges">
-     <title>Privileges</title>
-
-     <itemizedlist>
-
-<!--
-Author: Nathan Bossart <nathan@postgresql.org>
-2024-03-13 [ecb0fd337] Reintroduce MAINTAIN privilege and pg_maintain predefine
-Author: Nathan Bossart <nathan@postgresql.org>
-2024-03-13 [ecb0fd337] Reintroduce MAINTAIN privilege and pg_maintain predefine
--->
-
-      <listitem>
-       <para>
-       Allow granting the right to perform maintenance operations
-       (Nathan Bossart)
-       </para>
-
-       <para>
-       The permission can be granted on a per-table basis using the <link
-       linkend="ddl-priv-maintain"><literal>MAINTAIN</literal></link>
-       privilege and on a per-role basis via the <link
-       linkend="predefined-roles"><literal>pg_maintain</literal></link>
-       predefined role.  Permitted operations are
-       <command>VACUUM</command>, <command>ANALYZE</command>,
-       <command>REINDEX</command>, <command>REFRESH MATERIALIZED
-       VIEW</command>, <command>CLUSTER</command>, and <command>LOCK
-       TABLE</command>.
-       </para>
-      </listitem>
-
-<!--
-Author: Nathan Bossart <nathan@postgresql.org>
-2024-02-14 [8d8afd48d] Allow pg_monitor to execute pg_current_logfile().
--->
-
-      <listitem>
-       <para>
-       Allow roles with <link
-       linkend="predefined-roles"><literal>pg_monitor</literal></link>
-       membership to execute <link
-       linkend="functions-info-session-table"><function>pg_current_logfile()</function></link>
-       (Pavlo Golub, Nathan Bossart)
-       </para>
-      </listitem>
-
-     </itemizedlist>
-
-    </sect4>
-
-    <sect4 id="release-17-server-config">
-     <title>Server Configuration</title>
-
-     <itemizedlist>
-
-<!--
-Author: Robert Haas <rhaas@postgresql.org>
-2024-03-29 [d3ae2a24f] Add allow_alter_system GUC.
--->
-
-      <listitem>
-       <para>
-       Add system variable <xref linkend="guc-allow-alter-system"/>
-       to disallow <link linkend="sql-altersystem"><command>ALTER
-       SYSTEM</command></link> (Jelte Fennema-Nio, Gabriele Bartolini)
-       </para>
-      </listitem>
-
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-2023-10-21 [2d870b4ae] Allow ALTER SYSTEM to set unrecognized custom GUCs.
--->
-
-      <listitem>
-       <para>
-       Allow <link linkend="sql-altersystem"><command>ALTER
-       SYSTEM</command></link> to set unrecognized custom server variables
-       (Tom Lane)
-       </para>
-
-       <para>
-       This is also possible with <link linkend="sql-grant"><literal>GRANT
-       ON PARAMETER</literal></link>.
-       </para>
-      </listitem>
-
-<!--
-Author: Alexander Korotkov <akorotkov@postgresql.org>
-2024-02-15 [51efe38cb] Introduce transaction_timeout
-Author: Alexander Korotkov <akorotkov@postgresql.org>
-2024-02-16 [bf82f4379] Followup fixes for transaction_timeout
-Author: Alexander Korotkov <akorotkov@postgresql.org>
-2024-02-25 [28e858c0f] Improve documentation and GUC description for transactio
--->
-
-      <listitem>
-       <para>
-       Add server variable <xref linkend="guc-transaction-timeout"/> to
-       restrict the duration of transactions (Andrey Borodin, Japin Li,
-       Junwang Zhao, Alexander Korotkov)
-       </para>
-      </listitem>
-
-<!--
-Author: Jeff Davis <jdavis@postgresql.org>
-2024-03-13 [2d819a08a] Introduce "builtin" collation provider.
-Author: Jeff Davis <jdavis@postgresql.org>
-2024-03-18 [846311051] Address more review comments on commit 2d819a08a1.
-Author: Jeff Davis <jdavis@postgresql.org>
-2024-03-19 [f69319f2f] Support C.UTF-8 locale in the new builtin collation prov
-Author: Jeff Davis <jdavis@postgresql.org>
-2024-03-20 [9acae56ce] Inline basic UTF-8 functions.
--->
-
-      <listitem>
-       <para>
-       Add a builtin platform-independent collation provider (Jeff Davis)
-       </para>
-
-       <para>
-       This supports <literal>C</literal> and <literal>C.UTF-8</literal>
-       collations.
-       </para>
-      </listitem>
-
-<!--
-Author: Michael Paquier <michael@paquier.xyz>
-2023-07-06 [a14354cac] Add GUC parameter "huge_pages_status"
--->
-
-      <listitem>
-       <para>
-       Add server variable <xref linkend="guc-huge-page-size"/> to report
-       the use of huge pages by Postgres (Justin Pryzby)
-       </para>
-
-       <para>
-       This is useful when <xref linkend="guc-huge-pages"/> is set to
-       <literal>try</literal>.
-       </para>
-      </listitem>
-
-<!--
-Author: Daniel Gustafsson <dgustafsson@postgresql.org>
-2023-09-25 [7750fefdb] Add GUC for temporarily disabling event triggers
--->
-
-      <listitem>
-       <para>
-       Add server variable to disable event triggers (Daniel Gustafsson)
-       </para>
-
-       <para>
-       The setting, <xref linkend="guc-event-triggers"/>, allows for the
-       temporary disabling of event triggers for debugging.
-       </para>
-      </listitem>
-
-<!--
-Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
-2024-02-28 [53c2a97a9] Improve performance of subsystems on top of SLRU
--->
-
-      <listitem>
-       <para>
-       Allow the <link
-       linkend="monitoring-pg-stat-slru-view"><acronym>SLRU</acronym></link>
-       cache sizes to be configured (Andrey Borodin, Dilip Kumar,
-       Alvaro Herrera)
-       </para>
-
-       <para>
-       The new server variables are <xref
-       linkend="guc-commit-timestamp-buffers"/>,
-       <xref linkend="guc-multixact-member-buffers"/>,
-       <xref linkend="guc-multixact-offset-buffers"/>,
-       <xref linkend="guc-notify-buffers"/>, <xref
-       linkend="guc-serializable-buffers"/>, <xref
-       linkend="guc-subtransaction-buffers"/>, and
-       <xref linkend="guc-transaction-buffers"/>. <xref
-       linkend="guc-commit-timestamp-buffers"/>, <xref
-       linkend="guc-transaction-buffers"/>, and <xref
-       linkend="guc-subtransaction-buffers"/> scale up automatically with
-       <xref linkend="guc-shared-buffers"/>.
-       </para>
-      </listitem>
-
-     </itemizedlist>
-
-    </sect4>
-
-    <sect4 id="release-17-replication">
-     <title>Streaming Replication and Recovery</title>
-
-     <itemizedlist>
-
-<!--
-Author: Robert Haas <rhaas@postgresql.org>
-2023-12-20 [dc2123400] Add support for incremental backup.
-Author: Tomas Vondra <tomas.vondra@postgresql.org>
-2024-04-05 [f8ce4ed78] Allow copying files using clone/copy_file_range
--->
-
-      <listitem>
-       <para>
-       Add support for incremental file system backup (Robert Haas,
-       Jakub Wartak, Tomas Vondra)
-       </para>
-
-       <para>
-       Incremental backups can be created using <link
-       linkend="app-pgbasebackup"><application>pg_basebackup</application></link>'s
-       new <option>--incremental</option>
-       option.  The new application <link
-       linkend="app-pgcombinebackup"><application>pg_combinebackup</application></link>
-       allows manipulation of base and incremental file system backups.
-       </para>
-      </listitem>
-
-<!--
-Author: Robert Haas <rhaas@postgresql.org>
-2023-12-20 [174c48050] Add a new WAL summarizer process.
-Author: Nathan Bossart <nathan@postgresql.org>
-2024-01-09 [d97ef756a] Fix documentation for wal_summary_keep_time.
-Author: Robert Haas <rhaas@postgresql.org>
-2024-01-09 [f896057e4] Document WAL summarization information functions.
-Author: Robert Haas <rhaas@postgresql.org>
-2024-01-11 [d9ef650fc] Add new function pg_get_wal_summarizer_state().
--->
-
-      <listitem>
-       <para>
-       Allow the creation of <acronym>WAL</acronym> summarization files
-       (Robert Haas, Nathan Bossart, Hubert Depesz Lubaczewski)
-       </para>
-
-       <para>
-       These files record the block numbers that have changed within an
-       <link linkend="datatype-pg-lsn"><acronym>LSN</acronym></link>
-       range and are useful for incremental file
-       system backups.  This is controlled by the server
-       variables <xref linkend="guc-summarize-wal"/> and <xref
-       linkend="guc-wal-summary-keep-time"/>, and introspected with <link
-       linkend="functions-wal-summary"><function>pg_available_wal_summaries()</function></link>,
-       <function>pg_wal_summary_contents()</function>, and
-       <function>pg_get_wal_summarizer_state()</function>.
-       </para>
-      </listitem>
-
-<!--
-Author: Robert Haas <rhaas@postgresql.org>
-2024-03-13 [2041bc427] Add the system identifier to backup manifests.
--->
-
-      <listitem>
-       <para>
-       Add the system identifier to file system <link
-       linkend="backup-manifest-format">backup manifest</link> files
-       (Amul Sul)
-       </para>
-
-       <para>
-       This helps detect invalid <acronym>WAL</acronym> usage.
-       </para>
-      </listitem>
-
-<!--
-Author: Amit Kapila <akapila@postgresql.org>
-2024-03-21 [a145f424d] Allow dbname to be written as part of connstring via pg_
--->
-
-      <listitem>
-       <para>
-       Allow connection string value
-       <literal>dbname</literal> to be written when <link
-       linkend="app-pgbasebackup"><application>pg_basebackup</application></link>
-       writes connection information to
-       <filename>postgresql.auto.conf</filename> (Vignesh C, Hayato Kuroda)
-       </para>
-      </listitem>
-
-<!--
-Author: Amit Kapila <akapila@postgresql.org>
-2024-01-04 [007693f2a] Track conflict_reason in pg_replication_slots.
-Author: Amit Kapila <akapila@postgresql.org>
-2024-03-22 [6ae701b43] Track invalidation_reason in pg_replication_slots.
--->
-
-      <listitem>
-       <para>
-       Add column <link
-       linkend="view-pg-replication-slots"><structname>pg_replication_slots</structname>.<structfield>invalidation_reason</structfield></link>
-       to report the reason for invalid slots (Shveta Malik, Bharath
-       Rupireddy)
-       </para>
-      </listitem>
-
-<!--
-Author: Amit Kapila <akapila@postgresql.org>
-2024-03-25 [a11f330b5] Track last_inactive_time in pg_replication_slots.
-Author: Amit Kapila <akapila@postgresql.org>
-2024-03-27 [6d49c8d4b] Change last_inactive_time to inactive_since in pg_replic
-Author: Amit Kapila <akapila@postgresql.org>
-2024-04-05 [6f132ed69] Allow synced slots to have their inactive_since.
--->
-
-      <listitem>
-       <para>
-       Add column <link
-       linkend="view-pg-replication-slots"><structname>pg_replication_slots</structname>.<structfield>inactive_since</structfield></link>
-       to report slot inactivity duration (Bharath Rupireddy)
-       </para>
-      </listitem>
-
-<!--
-Author: Amit Kapila <akapila@postgresql.org>
-2024-02-14 [ddd5f4f54] Add a slot synchronization function.
-Author: Amit Kapila <akapila@postgresql.org>
-2024-02-16 [7a424ece4] Add more LOG and DEBUG messages for slot synchronization
--->
-
-      <listitem>
-       <para>
-       Add function <link
-       linkend="functions-replication-table"><function>pg_sync_replication_slots()</function></link>
-       to synchronize logical replication slots (Hou Zhijie, Shveta Malik,
-       Ajin Cherian, Peter Eisentraut)
-       </para>
-      </listitem>
-
-<!--
-Author: Amit Kapila <akapila@postgresql.org>
-2024-01-29 [732924043] Allow setting failover property in the replication comma
--->
-
-      <listitem>
-       <para>
-       Add the <literal>failover</literal> property to the <link
-       linkend="protocol-replication">replication protocol</link> (Hou
-       Zhijie, Shveta Malik)
-       </para>
-      </listitem>
-
-     </itemizedlist>
-
-    </sect4>
-
-    <sect4 id="release-17-logical">
-     <title><link linkend="logical-replication">Logical Replication</link></title>
-
-     <itemizedlist>
-
-<!--
-Author: Peter Eisentraut <peter@eisentraut.org>
-2024-03-25 [d44032d01] pg_createsubscriber: creates a new logical replica from
--->
-
-      <listitem>
-       <para>
-       Add application <link
-       linkend="app-pgcreatesubscriber"><application>pg_createsubscriber</application></link>
-       to create a logical replica from a physical standby server
-       (Euler Taveira)
-       </para>
-      </listitem>
-
-<!--
-Author: Amit Kapila <akapila@postgresql.org>
-2023-10-26 [29d0a77fa] Migrate logical slots to the new node during an upgrade.
-Author: Amit Kapila <akapila@postgresql.org>
-2024-01-02 [9a17be1e2] Allow upgrades to preserve the full subscription's state
--->
-
-      <listitem>
-       <para>
-       Have <link
-       linkend="pgupgrade"><application>pg_upgrade</application></link>
-       migrate valid logical slots and subscriptions (Hayato Kuroda,
-       Hou Zhijie, Vignesh C, Julien Rouhaud, Shlok Kyal)
-       </para>
-
-       <para>
-       This allows logical replication to continue
-       quickly after the upgrade.  This only works for old
-       <productname>PostgreSQL</productname> clusters that are version
-       17 or later.
-       </para>
-      </listitem>
-
-<!--
-Author: Amit Kapila <akapila@postgresql.org>
-2024-01-25 [c393308b6] Allow to enable failover property for replication slots
--->
-
-      <listitem>
-       <para>
-       Enable the failover of <link
-       linkend="logical-replication-subscription-slot">logical slots</link>
-       (Hou Zhijie, Shveta Malik, Ajin Cherian)
-       </para>
-
-       <para>
-       This is controlled by an optional fifth argument to <link
-       linkend="functions-replication-table"><function>pg_create_logical_replication_slot()</function></link>.
-       </para>
-      </listitem>
-
-<!--
-Author: Amit Kapila <akapila@postgresql.org>
-2024-02-22 [93db6cbda] Add a new slot sync worker to synchronize logical slots
-Author: Amit Kapila <akapila@postgresql.org>
-2024-03-06 [60c07820d] Doc: Improve replication slot synchronization section.
--->
-
-      <listitem>
-       <para>
-       Add server variable <xref linkend="guc-sync-replication-slots"/>
-       to enable failover logical slot synchronization (Shveta Malik,
-       Hou Zhijie, Peter Smith)
-       </para>
-      </listitem>
-
-<!--
-Author: Amit Kapila <akapila@postgresql.org>
-2024-01-30 [776621a5e] Add a failover option to subscriptions.
-Author: Amit Kapila <akapila@postgresql.org>
-2024-02-07 [22f7e61a6] Clean-ups for 776621a5e4 and 7329240437.
--->
-
-      <listitem>
-       <para>
-       Add logical replication failover control to <link
-       linkend="sql-createsubscription"><literal>CREATE/ALTER
-       SUBSCRIPTION</literal></link> (Shveta Malik, Hou Zhijie, Ajin
-       Cherian)
-       </para>
-      </listitem>
-
-<!--
-Author: Amit Kapila <akapila@postgresql.org>
-2023-07-14 [edca34243] Allow the use of a hash index on the subscriber during r
--->
-
-      <listitem>
-       <para>
-       Allow the application of logical replication changes to use
-       <link linkend="hash-index">hash</link> indexes on the subscriber
-       (Hayato Kuroda)
-       </para>
-
-       <para>
-       Previously only <link linkend="btree">btree</link> indexes could
-       be used for this purpose.
-       </para>
-      </listitem>
-
-<!--
-Author: Masahiko Sawada <msawada@postgresql.org>
-2024-04-03 [5bec1d6bc] Improve eviction algorithm in ReorderBuffer using max-he
--->
-
-      <listitem>
-       <para>
-       Improve <link linkend="logicaldecoding">logical decoding</link>
-       performance in cases where there are many subtransactions
-       (Masahiko Sawada)
-       </para>
-      </listitem>
-
-<!--
-Author: Amit Kapila <akapila@postgresql.org>
-2023-10-17 [79243de13] Restart the apply worker if the privileges have been rev
--->
-
-      <listitem>
-       <para>
-       Restart apply workers if subscription owner's superuser privileges
-       are revoked (Vignesh C)
-       </para>
-
-       <para>
-       This forces reauthentication.
-       </para>
-      </listitem>
-
-<!--
-Author: Michael Paquier <michael@paquier.xyz>
-2023-10-18 [173b56f1e] Add flush option to pg_logical_emit_message()
--->
-
-      <listitem>
-       <para>
-       Add <literal>flush</literal> option to <link
-       linkend="functions-replication-table"><function>pg_logical_emit_message()</function></link>
-       (Michael Paquier)
-       </para>
-
-       <para>
-       This makes the message durable.
-       </para>
-      </listitem>
-
-<!--
-Author: Amit Kapila <akapila@postgresql.org>
-2024-03-08 [bf279ddd1] Introduce a new GUC 'standby_slot_names'.
--->
-
-      <listitem>
-       <para>
-       Allow specification of physical standbys that must be synchronized
-       before they are visible to subscribers (Hou Zhijie, Shveta Malik)
-       </para>
-
-       <para>
-       The new server variable is <xref linkend="guc-standby-slot-names"/>.
-       </para>
-      </listitem>
-
-<!--
-Author: Nathan Bossart <nathan@postgresql.org>
-2023-09-25 [13aeaf079] Add worker type to pg_stat_subscription.
--->
-
-      <listitem>
-       <para>
-       Add worker type column to <link
-       linkend="monitoring-pg-stat-subscription"><structname>pg_stat_subscription</structname></link>
-       (Peter Smith)
-       </para>
-      </listitem>
-
-     </itemizedlist>
-
-    </sect4>
-
-   </sect3>
-
-   <sect3 id="release-17-utility">
-    <title>Utility Commands</title>
-
-    <itemizedlist>
-
-<!--
-Author: Alexander Korotkov <akorotkov@postgresql.org>
-2024-01-16 [9e2d87011] Add new COPY option SAVE_ERROR_TO
-Author: Alexander Korotkov <akorotkov@postgresql.org>
-2024-01-19 [b725b7eec] Rename COPY option from SAVE_ERROR_TO to ON_ERROR
-Author: Alexander Korotkov <akorotkov@postgresql.org>
-2024-02-03 [40bbc8cf0] Improve documentation for COPY ... ON_ERROR ...
-Author: Masahiko Sawada <msawada@postgresql.org>
-2024-04-17 [a6d0fa5ef] Disallow specifying ON_ERROR option without value.
--->
-
-     <listitem>
-      <para>
-      Add new <link linkend="sql-copy"><command>COPY</command></link>
-      option <literal>ON_ERROR ignore</literal> to discard error rows
-      (Damir Belyalov, Atsushi Torikoshi, Alex Shulgin, Jian He, Yugo
-      Nagata)
-      </para>
-
-      <para>
-      The default behavior is <literal>ON_ERROR stop</literal>.
-      </para>
-     </listitem>
-
-<!--
-Author: Masahiko Sawada <msawada@postgresql.org>
-2024-04-01 [f5a227895] Add new COPY option LOG_VERBOSITY.
--->
-
-     <listitem>
-      <para>
-      Add new <command>COPY</command> option
-      <literal>LOG_VERBOSITY</literal> which reports <literal>COPY
-      FROM</literal> ignored error rows (Bharath Rupireddy)
-      </para>
-     </listitem>
-
-<!--
-Author: Masahiko Sawada <msawada@postgresql.org>
-2024-01-25 [729439607] Add progress reporting of skipped tuples during COPY FRO
--->
-
-     <listitem>
-      <para>
-      Allow <literal>COPY FROM</literal> to report the number of skipped
-      rows during processing (Atsushi Torikoshi)
-      </para>
-
-      <para>
-      This appears in system view column <link
-      linkend="copy-progress-reporting"><structname>pg_stat_progress_copy</structname>.<structfield>tuples_skipped</structfield></link>.
-      </para>
-     </listitem>
-
-<!--
-Author: Andrew Dunstan <andrew@dunslane.net>
-2023-09-30 [f6d4c9cf1] Provide FORCE_NULL * and FORCE_NOT_NULL * options for CO
--->
-
-     <listitem>
-      <para>
-      In <literal>COPY FROM</literal>, allow easy specification that all
-      columns should be forced null or not null (Zhang Mingli)
-      </para>
-     </listitem>
-
-<!--
-Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
-2024-01-29 [5de890e36] Add EXPLAIN (MEMORY) to report planner memory consumptio
--->
-
-     <listitem>
-      <para>
-      Allow <link linkend="sql-explain"><command>EXPLAIN</command></link>
-      to report optimizer memory usage (Ashutosh Bapat)
-      </para>
-
-      <para>
-      The option is called <literal>MEMORY</literal>.
-      </para>
-     </listitem>
-
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-2024-04-03 [06286709e] Invent SERIALIZE option for EXPLAIN.
--->
-
-     <listitem>
-      <para>
-      Add <command>EXPLAIN</command> option <literal>SERIALIZE</literal>
-      to report the cost of converting data for network transmission
-      (Stepan Rutz, Matthias van de Meent)
-      </para>
-     </listitem>
-
-<!--
-Author: Michael Paquier <michael@paquier.xyz>
-2023-10-19 [295c36c0c] Add local_blk_{read|write}_time I/O timing statistics fo
--->
-
-     <listitem>
-      <para>
-      Add local I/O block read/write timing statistics to
-      <command>EXPLAIN</command>'s <literal>BUFFERS</literal> output
-      (Nazir Bilal Yavuz)
-      </para>
-     </listitem>
-
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-2024-03-19 [fd0398fcb] Improve EXPLAIN's display of SubPlan nodes and output pa
--->
-
-     <listitem>
-      <para>
-      Improve <command>EXPLAIN</command>'s display of SubPlan nodes and
-      output parameters (Tom Lane, Dean Rasheed)
-      </para>
-     </listitem>
-
-<!--
-Author: Daniel Gustafsson <dgustafsson@postgresql.org>
-2023-09-08 [5a3423ad8] Add JIT deform_counter
--->
-
-     <listitem>
-      <para>
-      Add <acronym>JIT</acronym> <literal>deform_counter</literal>
-      details to <command>EXPLAIN</command> (Dmitry Dolgov)
-      </para>
-     </listitem>
-
-<!--
-Author: Alexander Korotkov <akorotkov@postgresql.org>
-2024-04-07 [1adf16b8f] Implement ALTER TABLE ... MERGE PARTITIONS ... command
--->
-
-     <listitem>
-      <para>
-      Allow partitions to be merged using <link
-      linkend="sql-altertable"><literal>ALTER TABLE ... MERGE
-      PARTITIONS</literal></link> (Dmitry Koval)
-      </para>
-     </listitem>
-
-<!--
-Author: Alexander Korotkov <akorotkov@postgresql.org>
-2024-04-07 [87c21bb94] Implement ALTER TABLE ... SPLIT PARTITION ... command
--->
-
-     <listitem>
-      <para>
-      Allow partitions to be split using <literal>ALTER TABLE ... SPLIT
-      PARTITION</literal> (Dmitry Koval)
-      </para>
-     </listitem>
-
-<!--
-Author: Peter Eisentraut <peter@eisentraut.org>
-2024-01-16 [699586315] Support identity columns in partitioned tables
--->
-
-     <listitem>
-      <para>
-      Allow partitioned tables to have identity columns (Ashutosh Bapat)
-      </para>
-     </listitem>
-
-<!--
-Author: Peter Eisentraut <peter@eisentraut.org>
-2023-07-12 [8c852ba9a] Allow some exclusion constraints on partitions
--->
-
-     <listitem>
-      <para>
-      Allow <link linkend="ddl-constraints-exclusion">exclusion
-      constraints</link> on partitioned tables (Paul A. Jungwirth)
-      </para>
-
-      <para>
-      As long as exclusion constraints compare partition key columns
-      for equality, other columns can use exclusion constraint-specific
-      comparisons.
-      </para>
-     </listitem>
-
-<!--
-Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
-2024-03-25 [374c7a229] Allow specifying an access method for partitioned tables
-Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
-2024-03-28 [e2395cdbe] ALTER TABLE: rework determination of access method ID
--->
-
-     <listitem>
-      <para>
-      Allow specification of partitioned <link linkend="tableam">table
-      access methods</link> (Justin Pryzby, Soumyadeep Chakraborty,
-      Michael Paquier)
-      </para>
-     </listitem>
-
-<!--
-Author: Peter Eisentraut <peter@eisentraut.org>
-2024-01-13 [4f622503d] Make attstattarget nullable
--->
-
-     <listitem>
-      <para>
-      Add clearer <link linkend="sql-altertable"><command>ALTER
-      TABLE</command></link> method to set a column to the default
-      statistics target (Peter Eisentraut)
-      </para>
-
-      <para>
-      The new syntax is <literal>ALTER TABLE ... SET STATISTICS
-      DEFAULT</literal>; using <literal>SET STATISTICS -1</literal>
-      is still supported.
-      </para>
-     </listitem>
-
-<!--
-Author: Peter Eisentraut <peter@eisentraut.org>
-2024-01-04 [5d06e99a3] ALTER TABLE command to change generation expression
--->
-
-     <listitem>
-      <para>
-      Allow <literal>ALTER TABLE</literal> to change a column's generation
-      expression (Amul Sul)
-      </para>
-
-      <para>
-      The syntax is <literal>ALTER TABLE ... ALTER COLUMN ... SET
-      EXPRESSION</literal>.
-      </para>
-     </listitem>
-
-<!--
-Author: Michael Paquier <michael@paquier.xyz>
-2024-03-08 [d61a6cad6] Add support for DEFAULT in ALTER TABLE .. SET ACCESS MET
--->
-
-     <listitem>
-      <para>
-      Add <literal>DEFAULT</literal> setting for <literal>ALTER TABLE
-      .. SET ACCESS METHOD</literal> (Michael Paquier)
-      </para>
-     </listitem>
-
-<!--
-Author: Alexander Korotkov <akorotkov@postgresql.org>
-2023-10-16 [e83d1b0c4] Add support event triggers on authenticated login
--->
-
-     <listitem>
-      <para>
-      Add support for <link linkend="sql-createeventtrigger">event
-      triggers</link> that fire at connection time (Konstantin Knizhnik,
-      Mikhail Gribkov)
-      </para>
-     </listitem>
-
-<!--
-Author: Michael Paquier <michael@paquier.xyz>
-2023-12-04 [f21848de2] Add support for REINDEX in event triggers
--->
-
-     <listitem>
-      <para>
-      Add event trigger support for <link
-      linkend="sql-reindex"><command>REINDEX</command></link> (Garrett
-      Thornburg, Jian He)
-      </para>
-     </listitem>
-
-<!--
-Author: Nathan Bossart <nathan@postgresql.org>
-2023-07-19 [cdaedfc96] Support parenthesized syntax for CLUSTER without a table
--->
-
-     <listitem>
-      <para>
-      Allow parenthesized syntax for <link
-      linkend="sql-cluster"><command>CLUSTER</command></link> options if
-      a table name is not specified (Nathan Bossart)
-      </para>
-     </listitem>
-
-    </itemizedlist>
-
-   </sect3>
-
-   <sect3 id="release-17-datatypes">
-    <title>Data Types</title>
-
-    <itemizedlist>
-
-<!--
-Author: Dean Rasheed <dean.a.rasheed@gmail.com>
-2023-11-14 [519fc1bd9] Support +/- infinity in the interval data type.
--->
-
-     <listitem>
-      <para>
-      Allow the <type>interval</type> data type to support
-      <literal>+/-infinity</literal> values (Joseph Koshakow, Jian He,
-      Ashutosh Bapat)
-      </para>
-     </listitem>
-
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-2024-03-24 [af1d39584] Allow more cases to pass the unsafe-use-of-new-enum-valu
--->
-
-     <listitem>
-      <para>
-      Allow the use of an <link
-      linkend="datatype-enum"><type>ENUM</type></link> added via <link
-      linkend="sql-altertype"><command>ALTER TYPE</command></link> if
-      the type was created in the same transaction (Tom Lane)
-      </para>
-
-      <para>
-      This was previously disallowed.
-      </para>
-     </listitem>
-
-    </itemizedlist>
-
-   </sect3>
-
-   <sect3 id="release-17-merge">
-    <title><link linkend="sql-merge">MERGE</link></title>
-
-
-    <itemizedlist>
-
-<!--
-Author: Dean Rasheed <dean.a.rasheed@gmail.com>
-2024-02-29 [5f2e179bd] Support MERGE into updatable views.
--->
-
-     <listitem>
-      <para>
-      Allow <command>MERGE</command> to modify updatable views (Dean
-      Rasheed)
-      </para>
-     </listitem>
-
-<!--
-Author: Dean Rasheed <dean.a.rasheed@gmail.com>
-2024-03-30 [0294df2f1] Add support for MERGE ... WHEN NOT MATCHED BY SOURCE.
--->
-
-     <listitem>
-      <para>
-      Add <literal>WHEN NOT MATCHED BY SOURCE</literal> to
-      <command>MERGE</command> (Dean Rasheed)
-      </para>
-
-      <para>
-      <literal>WHEN NOT MATCHED</literal> on target rows was already
-      supported.
-      </para>
-     </listitem>
-
-<!--
-Author: Dean Rasheed <dean.a.rasheed@gmail.com>
-2024-03-17 [c649fa24a] Add RETURNING support to MERGE.
--->
-
-     <listitem>
-      <para>
-      Allow <command>MERGE</command> to use the
-      <literal>RETURNING</literal> clause (Dean Rasheed)
-      </para>
-
-      <para>
-      The new <literal>RETURNING</literal> function
-      <function>merge_action()</function> reports on the
-      <acronym>DML</acronym> that generated the row.
-      </para>
-     </listitem>
-
-    </itemizedlist>
-
-   </sect3>
-
-   <sect3 id="release-17-functions">
-    <title>Functions</title>
-
-    <itemizedlist>
-
-<!--
-Author: Amit Langote <amitlan@postgresql.org>
-2024-04-04 [de3600452] Add basic JSON_TABLE() functionality
-Author: Amit Langote <amitlan@postgresql.org>
-2024-04-08 [bb766cde6] JSON_TABLE: Add support for NESTED paths and columns
--->
-
-     <listitem>
-      <para>
-      Add function <link
-      linkend="functions-sqljson-table"><function>JSON_TABLE()</function></link>
-      to convert <type>JSON</type> data to a table representation (Nikita
-      Glukhov, Teodor Sigaev, Oleg Bartunov, Alexander Korotkov, Andrew
-      Dunstan, Amit Langote, Jian He)
-      </para>
-
-      <para>
-      This function can be used in the <literal>FROM</literal> clause of
-      <command>SELECT</command> queries as a tuple source.
-      </para>
-     </listitem>
-
-<!--
-Author: Amit Langote <amitlan@postgresql.org>
-2023-07-26 [03734a7fe] Add more SQL/JSON constructor functions
--->
-
-     <listitem>
-      <para>
-      Add <acronym>SQL/JSON</acronym> constructor functions <link
-      linkend="functions-json-creation-table"><function>JSON()</function></link>,
-      <function>JSON_SCALAR()</function>, and
-      <function>JSON_SERIALIZE()</function> (Nikita Glukhov, Teodor Sigaev,
-      Oleg Bartunov, Alexander Korotkov, Andrew Dunstan, Amit Langote)
-      </para>
-     </listitem>
-
-<!--
-Author: Amit Langote <amitlan@postgresql.org>
-2024-01-24 [aaaf9449e] Add soft error handling to some expression nodes
-Author: Amit Langote <amitlan@postgresql.org>
-2024-01-24 [1edb3b491] Adjust populate_record_field() to handle errors softly
-Author: Amit Langote <amitlan@postgresql.org>
-2024-03-21 [6185c9737] Add SQL/JSON query functions
-Author: Amit Langote <amitlan@postgresql.org>
-2024-04-18 [c0fc07518] SQL/JSON: Fix issues with DEFAULT .. ON ERROR / EMPTY
-Author: Amit Langote <amitlan@postgresql.org>
-2024-04-18 [ef744ebb7] SQL/JSON: Miscellaneous fixes and improvements
--->
-
-     <listitem>
-      <para>
-      Add <acronym>SQL/JSON</acronym> query functions <link
-      linkend="functions-sqljson-querying"><function>JSON_EXISTS()</function></link>,
-      <function>JSON_QUERY()</function>, and
-      <function>JSON_VALUE()</function> (Nikita Glukhov, Teodor Sigaev,
-      Oleg Bartunov, Alexander Korotkov, Andrew Dunstan, Amit Langote,
-      Peter Eisentraut, Jian He)
-      </para>
-     </listitem>
-
-<!--
-Author: Andrew Dunstan <andrew@dunslane.net>
-2024-01-25 [66ea94e8e] Implement various jsonpath methods
--->
-
-     <listitem>
-      <para>
-      Add <link linkend="functions-sqljson-path-operators">jsonpath</link>
-      methods to convert <type>JSON</type> values to other
-      <type>JSON</type> data types (Jeevan Chalke)
-      </para>
-
-      <para>
-      The jsonpath methods are <function>.bigint()</function>,
-      <function>.boolean()</function>, <function>.date()</function>,
-      <function>.decimal([precision [, scale]])</function>,
-      <function>.integer()</function>, <function>.number()</function>,
-      <function>.string()</function>, <function>.time()</function>,
-      <function>.time_tz()</function>, <function>.timestamp()</function>,
-      and <function>.timestamp_tz()</function>.
-      </para>
-     </listitem>
-
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-2024-01-25 [8ba6fdf90] Support TZ and OF format codes in <function>to_timestamp()</function>.
--->
-
-     <listitem>
-      <para>
-      Add <link
-      linkend="functions-formatting-table"><function>to_timestamp()</function></link>
-      time zone format specifiers (Tom Lane)
-      </para>
-
-      <para>
-      <literal>TZ</literal> accepts time zone abbreviations or numeric
-      offsets, while <literal>OF</literal> accepts only numeric offsets.
-      </para>
-     </listitem>
-
-<!--
-Author: Michael Paquier <michael@paquier.xyz>
-2023-10-13 [97957fdba] Add support for AT LOCAL
--->
-
-     <listitem>
-      <para>
-      Allow the session <link linkend="guc-timezone">time zone</link>
-      to be specified by <literal>AS LOCAL</literal> (Vik Fearing)
-      </para>
-
-      <para>
-      This is useful when converting adding and removing time zones from
-      time stamps values, rather than specifying the literal session
-      time zone.
-      </para>
-     </listitem>
-
-<!--
-Author: Peter Eisentraut <peter@eisentraut.org>
-2024-03-19 [794f10f6b] Add some UUID support functions
--->
-
-     <listitem>
-      <para>
-      Add functions <link
-      linkend="functions-uuid"><function>uuid_extract_timestamp()</function></link>
-      and <function>uuid_extract_version()</function> to return
-      <acronym>UUID</acronym> information (Andrey Borodin)
-      </para>
-     </listitem>
-
-<!--
-Author: Dean Rasheed <dean.a.rasheed@gmail.com>
-2024-03-27 [e6341323a] Add functions to generate random numbers in a specified
--->
-
-     <listitem>
-      <para>
-      Add functions to generate random numbers in a specified range
-      (Dean Rasheed)
-      </para>
-
-      <para>
-      The functions are <link
-      linkend="functions-math-random-table"><function>random(min,
-      max)</function></link> and they take values of type
-      <type>integer</type>, <type>bigint</type>, and <type>numeric</type>.
-      </para>
-     </listitem>
-
-<!--
-Author: Nathan Bossart <nathan@postgresql.org>
-2023-08-23 [260a1f18d] Add to_bin() and to_oct().
--->
-
-     <listitem>
-      <para>
-      Add functions to convert integers to binary and octal strings
-      (Eric Radman, Nathan Bossart)
-      </para>
-
-      <para>
-      The functions are <link
-      linkend="functions-string-other"><function>to_bin()</function></link>
-      and <function>to_oct()</function>.
-      </para>
-     </listitem>
-
-<!--
-Author: Jeff Davis <jdavis@postgresql.org>
-2023-11-01 [a02b37fc0] Additional unicode primitive functions.
--->
-
-     <listitem>
-      <para>
-      Add Unicode informational functions (Jeff Davis)
-      </para>
-
-      <para>
-      Function <link
-      linkend="functions-info-version"><function>unicode_version()</function></link>
-      returns the Unicode version,
-      <function>icu_unicode_version()</function>
-      returns the <acronym>ICU</acronym> version, and
-      <function>unicode_assigned()</function> returns if the characters
-      are assigned Unicode codepoints.
-      </para>
-     </listitem>
-
-<!--
-Author: Daniel Gustafsson <dgustafsson@postgresql.org>
-2023-11-06 [526fe0d79] Add XMLText function (SQL/XML X038)
--->
-
-     <listitem>
-      <para>
-      Add function <link
-      linkend="functions-producing-xml-xmltext"><function>xmltext()</function></link>
-      to convert text to a single <type>XML</type> text node (Jim Jones)
-      </para>
-     </listitem>
-
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-2024-03-20 [1218ca995] Add to_regtypemod function to extract typemod from a str
--->
-
-     <listitem>
-      <para>
-      Add function <link
-      linkend="functions-info-catalog-table"><function>to_regtypemod()</function></link>
-      to return the type modifier of a type specification (David Wheeler,
-      Erik Wienhold)
-      </para>
-     </listitem>
-
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-2024-03-30 [b154d8a6d] Add pg_basetype() function to extract a domain's base ty
--->
-
-     <listitem>
-      <para>
-      Add <link
-      linkend="functions-info-catalog-table"><function>pg_basetype()</function></link>
-      function to return a domain's base type (Steve Chavez)
-      </para>
-     </listitem>
-
-<!--
-Author: Nathan Bossart <nathan@postgresql.org>
-2024-03-14 [d1162cfda] Add pg_column_toast_chunk_id().
--->
-
-     <listitem>
-      <para>
-      Add function <link
-      linkend="functions-admin-dbsize"><function>pg_column_toast_chunk_id()</function></link>
-      to return a value's <link
-      linkend="storage-toast"><acronym>TOAST</acronym></link> identifier
-      (Yugo Nagata)
-      </para>
-
-      <para>
-      This returns <literal>NULL</literal> if the value is not stored
-      in <acronym>TOAST</acronym>.
-      </para>
-     </listitem>
-
-    </itemizedlist>
-
-   </sect3>
-
-   <sect3 id="release-17-plpgsql">
-    <title><link linkend="plpgsql">PL/pgSQL</link></title>
-
-    <itemizedlist>
-
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-2024-01-04 [5e8674dc8] In plpgsql, allow %TYPE and %ROWTYPE to be followed by a
--->
-
-     <listitem>
-      <para>
-      Allow plpgsql <link
-      linkend="plpgsql-declaration-type"><literal>%TYPE</literal></link>
-      and <literal>%ROWTYPE</literal> specifications to represent arrays
-      of non-array types (Quan Zongliang, Pavel Stehule)
-      </para>
-     </listitem>
-
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-2024-01-05 [43b46aae1] Clean up some edge cases in plpgsql's %TYPE parsing.
--->
-
-     <listitem>
-      <para>
-      Allow plpgsql <literal>%TYPE</literal> specification to reference
-      composite column (Tom Lane)
-      </para>
-     </listitem>
-
-    </itemizedlist>
-
-   </sect3>
-
-   <sect3 id="release-17-libpq">
-    <title><link linkend="libpq">libpq</link></title>
-
-    <itemizedlist>
-
-<!--
-Author: Joe Conway <mail@joeconway.com>
-2024-01-09 [a7be2a6c2] Add new function, PQchangePassword(), to libpq
--->
-
-     <listitem>
-      <para>
-      Add libpq function to change role passwords (Joe Conway)
-      </para>
-
-      <para>
-      The new function, <link
-      linkend="libpq-PQchangePassword"><function>PQchangePassword()</function></link>,
-      hashes the new password before sending it to the server.
-      </para>
-     </listitem>
-
-<!--
-Author: Michael Paquier <michael@paquier.xyz>
-2023-07-04 [28b572656] libpq: Add support for Close on portals and statements
--->
-
-     <listitem>
-      <para>
-      Add libpq functions to close portals and prepared statements
-      (Jelte Fennema-Nio)
-      </para>
-
-      <para>
-      The functions are <link
-      linkend="libpq-PQclosePrepared"><function>PQclosePrepared()</function></link>,
-      <link
-      linkend="libpq-PQclosePortal"><function>PQclosePortal()</function></link>,
-      <link
-      linkend="libpq-PQsendClosePrepared"><function>PQsendClosePrepared()</function></link>,
-      and <link
-      linkend="libpq-PQsendClosePortal"><function>PQsendClosePortal()</function></link>.
-      </para>
-     </listitem>
-
-<!--
-Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
-2024-03-12 [61461a300] libpq: Add encrypted and non-blocking query cancellation
--->
-
-     <listitem>
-      <para>
-      Add libpq <acronym>API</acronym> which allows for blocking and
-      non-blocking <link linkend="libpq-cancel">cancel requests</link>,
-      with encryption if already in use (Jelte Fennema-Nio)
-      </para>
-
-      <para>
-      Previously only blocking, unencrypted cancel requests were supported.
-      </para>
-     </listitem>
-
-<!--
-Author: Robert Haas <rhaas@postgresql.org>
-2024-04-02 [f5e4dedfa] Expose PQsocketPoll via libpq
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-2024-06-13 [105024a47] Improve the granularity of PQsocketPoll's timeout parame
--->
-
-     <listitem>
-      <para>
-      Add libpq function <link
-      linkend="libpq-PQsocketPoll"><function>PQsocketPoll</function></link>
-      to allow polling of network sockets (Tristan Partin, Tom Lane)
-      </para>
-     </listitem>
-
-<!--
-Author: Michael Paquier <michael@paquier.xyz>
-2024-01-16 [4794c2d31] libpq: Add PQsendPipelineSync()
--->
-
-     <listitem>
-      <para>
-      Add libpq function <link
-      linkend="libpq-PQsendPipelineSync"><function>PQsendPipelineSync()</function></link>
-      to send a pipeline synchronization point (Anton Kirilov)
-      </para>
-
-      <para>
-      This is similar to <link
-      linkend="libpq-PQpipelineSync"><function>PQpipelineSync()</function></link>
-      but it does not flush to the server unless the size threshold of
-      the output buffer is reached.
-      </para>
-     </listitem>
-
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-2024-04-06 [4643a2b26] Support retrieval of results in chunks with libpq.
--->
-
-     <listitem>
-      <para>
-      Add libpq function <link
-      linkend="libpq-PQsetChunkedRowsMode"><function>PQsetChunkedRowsMode()</function></link>
-      to allow retrieval of results in chunks (Daniel V&eacute;rit&eacute;)
-      </para>
-     </listitem>
-
-<!--
-Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
-2024-04-08 [d39a49c1e] Support TLS handshake directly without SSLRequest negoti
-Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
-2024-04-08 [91044ae4b] Send ALPN in TLS handshake, require it in direct SSL con
-Author: Daniel Gustafsson <dgustafsson@postgresql.org>
-2024-04-24 [44e27f0a6] Support disallowing SSL renegotiation when using LibreSS
-Author: Daniel Gustafsson <dgustafsson@postgresql.org>
-2024-04-24 [d80f2ce29] Support SSL_R_VERSION_TOO_LOW when using LibreSSL
-Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
-2024-04-29 [03a0e0d4b] libpq: Enforce ALPN in direct SSL connections
-Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
-2024-04-29 [17a834a04] Reject SSL connection if ALPN is used but there's no com
-Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
-2024-05-11 [407e0b023] Change ALPN protocol ID to IANA-approved "postgresql"
-Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
-2024-05-16 [fb5718f35] Remove option to fall back from direct to postgres SSL n
--->
-
-     <listitem>
-      <para>
-      Allow <acronym>TLS</acronym> connections without requiring a
-      network round-trip negotiation (Greg Stark, Heikki Linnakangas,
-      Peter Eisentraut, Michael Paquier, Daniel Gustafsson)
-      </para>
-
-      <para>
-      This is enabled with the client-side option <link
-      linkend="libpq-connect-sslnegotiation"><literal>sslnegotiation=direct</literal></link>,
-      requires <acronym>ALPN</acronym>, and only works on
-      <productname>PostgreSQL</productname> 17 and later servers.
-      </para>
-     </listitem>
-
-    </itemizedlist>
-
-   </sect3>
-
-   <sect3 id="release-17-psql">
-     <title><xref linkend="app-psql"/></title>
-
-     <itemizedlist>
-
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-2023-11-13 [d1379ebf4] Improve default and empty privilege outputs in psql.
--->
-
-     <listitem>
-      <para>
-      Improve <application>psql</application> display of default and
-      empty privileges (Erik Wienhold, Laurenz Albe)
-      </para>
-
-      <para>
-      Command <literal>\dp</literal> now displays <literal>(none)</literal>
-      for empty privileges;  default still displays as empty.
-      </para>
-     </listitem>
-
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-2023-11-13 [d1379ebf4] Improve default and empty privilege outputs in psql.
--->
-
-     <listitem>
-      <para>
-      Have backslash commands honor <literal>\pset null</literal> (Erik
-      Wienhold, Laurenz Albe)
-      </para>
-
-      <para>
-      Previously <literal>\pset null</literal> was ignored.
-      </para>
-     </listitem>
-
-<!--
-Author: Daniel Gustafsson <dgustafsson@postgresql.org>
-2023-08-29 [f347ec76e] Allow \watch queries to stop on minimum rows returned
--->
-
-     <listitem>
-      <para>
-      Allow <application>psql</application>'s <literal>\watch</literal>
-      to stop after a minimum number of rows returned (Greg Sabino Mullane)
-      </para>
-
-      <para>
-      The parameter is <literal>min_rows</literal>.
-      </para>
-     </listitem>
-
-<!--
-Author: Robert Haas <rhaas@postgresql.org>
-2024-04-02 [cafe10565] Allow SIGINT to cancel psql database reconnections.
--->
-
-     <listitem>
-      <para>
-      Allow <application>psql</application> connections to be canceled
-      with control-C (Tristan Partin)
-      </para>
-     </listitem>
-
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-2024-04-06 [90f517821] Re-implement psql's FETCH_COUNT feature atop libpq's chu
--->
-
-     <listitem>
-      <para>
-      Allow <application>psql</application> to honor
-      <literal>FETCH_COUNT</literal> for non-<command>SELECT</command>
-      queries (Daniel V&eacute;rit&eacute;)
-      </para>
-     </listitem>
-
-<!--
-Author: Michael Paquier <michael@paquier.xyz>
-2023-06-30 [c951e9042] Add tab completion for CREATE SCHEMA in psql
-Author: Michael Paquier <michael@paquier.xyz>
-2023-10-13 [d16eb83ab] psql: Add completion support for AT [ LOCAL | TIME ZONE
-Author: Dean Rasheed <dean.a.rasheed@gmail.com>
-2023-11-28 [cd3424748] psql: Add tab completion for view options.
-Author: Michael Paquier <michael@paquier.xyz>
-2023-11-16 [816f10564] psql: Add some completion support for CREATE TABLE .. AS
-Author: Alexander Korotkov <akorotkov@postgresql.org>
-2024-03-16 [927332b95] psql: fix variable existence tab completion
-Author: Masahiko Sawada <msawada@postgresql.org>
-2024-03-28 [f1bb9284f] Improve tab completion for ALTER TABLE ALTER COLUMN SET
-Author: Masahiko Sawada <msawada@postgresql.org>
-2024-04-08 [304b6b1a6] Add more tab completion support for ALTER DEFAULT PRIVIL
-Author: Alexander Korotkov <akorotkov@postgresql.org>
-2024-04-30 [60ae37a8b] Add tab completion for partition MERGE/SPLIT operations
-Author: Michael Paquier <michael@paquier.xyz>
-2024-05-01 [2800fbb2b] Add tab completion for EXPLAIN (MEMORY|SERIALIZE)
--->
-
-     <listitem>
-      <para>
-      Improve <application>psql</application> tab completion (Dagfinn
-      Ilmari Manns&aring;ker, Gilles Darold, Christoph Heiss, Steve Chavez,
-      Vignesh C, Pavel Borisov, Jian He)
-      </para>
-     </listitem>
-
-      </itemizedlist>
-
-    </sect3>
-
-    <sect3 id="release-17-server-apps">
-     <title>Server Applications</title>
-
-     <itemizedlist>
-
-<!--
-Author: Robert Haas <rhaas@postgresql.org>
-2024-01-11 [ee1bfd168] Add new pg_walsummary tool.
--->
-
-     <listitem>
-      <para>
-      Add application <link
-      linkend="app-pgwalsummary"><application>pg_walsummary</application></link>
-      to dump <acronym>WAL</acronym> summary files (Robert Haas)
-      </para>
-     </listitem>
-
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-2024-04-01 [a45c78e32] Rearrange pg_dump's handling of large objects for better
--->
-
-     <listitem>
-      <para>
-      Allow <link
-      linkend="app-pgdump"><application>pg_dump</application></link>'s
-      large objects to be restorable in batches (Tom Lane)
-      </para>
-
-      <para>
-      This allows the restoration of many large objects to avoid
-      transaction limits and to be restored in parallel.
-      </para>
-     </listitem>
-
-<!--
-Author: Dean Rasheed <dean.a.rasheed@gmail.com>
-2024-03-20 [522ed12f7] Add "- -exclude-extension" to pg_dump's options.
--->
-
-     <listitem>
-      <para>
-      Add <application>pg_dump</application> option
-      <option>--exclude-extension</option> (Ayush Vatsa)
-      </para>
-     </listitem>
-
-<!--
-Author: Daniel Gustafsson <dgustafsson@postgresql.org>
-2023-11-29 [a5cf808be] Read include/exclude commands for dump/restore from file
--->
-
-     <listitem>
-      <para>
-      Allow <link
-      linkend="app-pgdump"><application>pg_dump</application></link>, <link
-      linkend="app-pg-dumpall"><application>pg_dumpall</application></link>,
-      and <link
-      linkend="app-pgrestore"><application>pg_restore</application></link>
-      to specify include/exclude objects in a file (Pavel Stehule,
-      Daniel Gustafsson)
-      </para>
-
-      <para>
-      The option is called <option>--filter</option>.
-      </para>
-     </listitem>
-
-<!--
-Author: Nathan Bossart <nathan@postgresql.org>
-2023-09-06 [8c16ad3b4] Allow using syncfs() in frontend utilities.
--->
-
-     <listitem>
-      <para>
-      Add the <option>--sync-method</option> parameter to several client
-      applications (Justin Pryzby, Nathan Bossart)
-      </para>
-
-      <para>
-      The applications are <link
-      linkend="app-initdb"><application>initdb</application></link>, <link
-      linkend="app-pgbasebackup"><application>pg_basebackup</application></link>,
-      <link
-      linkend="app-pgchecksums"><application>pg_checksums</application></link>,
-      <link linkend="app-pgdump"><application>pg_dump</application></link>,
-      <link linkend="app-pgrewind"><application>pg_rewind</application></link>,
-      and <link
-      linkend="pgupgrade"><application>pg_upgrade</application></link>.
-      </para>
-     </listitem>
-
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-2024-04-01 [959b38d77] Invent - -transaction-size option for pg_restore.
--->
-
-     <listitem>
-      <para>
-      Add <link
-      linkend="app-pgrestore"><application>pg_restore</application></link>
-      option <option>--transaction-size</option> to allow object restores
-      in transaction batches (Tom Lane)
-      </para>
-
-      <para>
-      This allows the performance benefits of transaction batches without
-      the problems of excessively large transaction blocks.
-      </para>
-     </listitem>
-
-<!--
-Author: Nathan Bossart <nathan@postgresql.org>
-2024-03-25 [3ff01b2b6] Adjust pgbench option for debug mode.
--->
-
-     <listitem>
-      <para>
-      Change <link
-      linkend="pgbench"><application>pgbench</application></link> debug
-      mode option from <option>-d</option> to <option>--debug</option>
-      (Greg Sabino Mullane)
-      </para>
-
-      <para>
-      Option <option>-d</option> is now used for the database name,
-      and the new <option>--dbname</option> option can be used as well.
-      </para>
-     </listitem>
-
-<!--
-Author: Tatsuo Ishii <ishii@postgresql.org>
-2023-08-30 [3c662643c] Allow pgbench to exit immediately when any client is abo
--->
-
-     <listitem>
-      <para>
-      Add pgbench option <option>--exit-on-abort</option> to exit after
-      any client aborts (Yugo Nagata)
-      </para>
-     </listitem>
-
-<!--
-Author: Michael Paquier <michael@paquier.xyz>
-2024-01-24 [94edfe250] pgbench: Add \syncpipeline
--->
-
-     <listitem>
-      <para>
-      Add pgbench command <literal>\syncpipeline</literal> to allow
-      sending of sync messages (Anthonin Bonnefoy)
-      </para>
-     </listitem>
-
-<!--
-Author: Michael Paquier <michael@paquier.xyz>
-2023-07-19 [3f8c98d0b] pg_archivecleanup: Add - -clean-backup-history
--->
-
-     <listitem>
-      <para>
-      Allow <link
-      linkend="pgarchivecleanup"><application>pg_archivecleanup</application></link>
-      to remove backup history files (Atsushi Torikoshi)
-      </para>
-
-      <para>
-      The option is <option>--clean-backup-history</option>.
-      </para>
-     </listitem>
-
-<!--
-Author: Michael Paquier <michael@paquier.xyz>
-2023-06-30 [dd7c60f19] Introduce long options in pg_archivecleanup
--->
-
-     <listitem>
-      <para>
-      Add some long options to <application>pg_archivecleanup</application>
-      (Atsushi Torikoshi)
-      </para>
-
-      <para>
-      The long options are <option>--debug</option>,
-      <option>--dry-run</option>, and <option>--strip-extension</option>.
-      </para>
-     </listitem>
-
-<!--
-Author: Daniel Gustafsson <dgustafsson@postgresql.org>
-2023-09-21 [cca97ce6a] Allow dbname in pg_basebackup/pg_receivewal connstring
--->
-
-     <listitem>
-      <para>
-      Allow <link
-      linkend="app-pgbasebackup"><application>pg_basebackup</application></link>
-      and <link
-      linkend="app-pgreceivewal"><application>pg_receivewal</application></link>
-      to use dbname in their connection specification (Jelte Fennema-Nio)
-      </para>
-
-      <para>
-      This is useful for connection poolers that are sensitive to the
-      database name.
-      </para>
-     </listitem>
-
-<!--
-Author: Thomas Munro <tmunro@postgresql.org>
-2024-03-06 [d93627bcb] Add - -copy-file-range option to pg_upgrade.
--->
-
-     <listitem>
-      <para>
-      Add <link
-      linkend="pgupgrade"><application>pg_upgrade</application></link>
-      option <option>--copy-file-range</option> (Thomas Munro)
-      </para>
-
-      <para>
-      This is supported on <systemitem class="osname">Linux</systemitem>
-      and <systemitem class="osname">FreeBSD</systemitem>.
-      </para>
-     </listitem>
-
-<!--
-Author: Alexander Korotkov <akorotkov@postgresql.org>
-2024-03-25 [47f99a407] reindexdb: Add the index-level REINDEX with multiple job
--->
-
-     <listitem>
-      <para>
-      Allow <link
-      linkend="app-reindexdb"><application>reindexdb</application></link>
-      <option>--index</option> to process indexes from different tables
-      in parallel (Maxim Orlov, Svetlana Derevyanko, Alexander Korotkov)
-      </para>
-     </listitem>
-
-<!--
-Author: Nathan Bossart <nathan@postgresql.org>
-2024-03-11 [24c928ad9] reindexdb: Allow specifying objects to process in all da
-Author: Nathan Bossart <nathan@postgresql.org>
-2024-03-11 [648928c79] vacuumdb: Allow specifying objects to process in all dat
-Author: Nathan Bossart <nathan@postgresql.org>
-2024-03-11 [1b49d56d3] clusterdb: Allow specifying tables to process in all dat
--->
-
-     <listitem>
-      <para>
-      Allow <link linkend="app-reindexdb">reindexdb</link>,
-      <link linkend="app-vacuumdb">vacuumdb</link>, and <link
-      linkend="app-clusterdb">clusterdb</link> to process objects in all
-      databases matching a pattern (Nathan Bossart)
-      </para>
-
-      <para>
-      The new option <option>--all</option> controls this behavior.
-      </para>
-     </listitem>
-
-    </itemizedlist>
-
-   </sect3>
-
-   <sect3 id="release-17-source-code">
-    <title>Source Code</title>
-
-    <itemizedlist>
-
-<!--
-Author: Michael Paquier <michael@paquier.xyz>
-2023-07-03 [8e278b657] Remove support for OpenSSL 1.0.1
--->
-
-     <listitem>
-      <para>
-      Remove support for <productname>OpenSSL</productname> 1.0.1
-      (Michael Paquier)
-      </para>
-     </listitem>
-
-<!--
-Author: Peter Eisentraut <peter@eisentraut.org>
-2023-11-17 [284cbaea7] Allow tests to pass in OpenSSL FIPS mode (TAP tests)
-Author: Peter Eisentraut <peter@eisentraut.org>
-2023-11-17 [3c44e7d8d] Allow tests to pass in OpenSSL FIPS mode (rest)
--->
-
-     <listitem>
-      <para>
-      Allow tests to pass in <productname>OpenSSL</productname>
-      <acronym>FIPS</acronym> mode (Peter Eisentraut)
-      </para>
-     </listitem>
-
-<!--
-Author: Nathan Bossart <nathan@postgresql.org>
-2024-04-06 [792752af4] Optimize pg_popcount() with AVX-512 instructions.
-Author: Nathan Bossart <nathan@postgresql.org>
-2024-04-06 [41c51f0c6] Optimize visibilitymap_count() with AVX-512 instructions
--->
-
-     <listitem>
-      <para>
-      Use <acronym>CPU AVX</acronym>-512 instructions for bit counting
-      (Paul Amonson, Nathan Bossart, Ants Aasma)
-      </para>
-     </listitem>
-
-<!--
-Author: Thomas Munro <tmunro@postgresql.org>
-2024-01-25 [820b5af73] jit: Require at least LLVM 10.
--->
-
-     <listitem>
-      <para>
-      Require <productname><acronym>LLVM</acronym></productname> version
-      10 or later (Thomas Munro)
-      </para>
-     </listitem>
-
-<!--
-Author: John Naylor <john.naylor@postgresql.org>
-2023-08-10 [4d14ccd6a] Use native CRC instructions on 64-bit LoongArch
--->
-
-     <listitem>
-      <para>
-      Use native <acronym>CRC</acronym> instructions on 64-bit
-      <productname>LoongArch</productname> CPUs (Xudong Yang)
-      </para>
-     </listitem>
-
-<!--
-Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
-2024-02-28 [0b16bb877] Remove AIX support
--->
-
-     <listitem>
-      <para>
-      Remove <systemitem class="osname"><acronym>AIX</acronym></systemitem>
-      support (Heikki Linnakangas)
-      </para>
-     </listitem>
-
-<!--
-Author: Michael Paquier <michael@paquier.xyz>
-2023-12-20 [1301c80b2] Remove MSVC scripts
--->
-
-     <listitem>
-      <para>
-      Remove the <productname>Microsoft Visual
-      Studio</productname>-specific <productname>PostgreSQL</productname>
-      build option (Michael Paquier)
-      </para>
-
-      <para>
-      <productname>Meson</productname> is now the only available method
-      for <productname>Visual Studio</productname> builds.
-      </para>
-     </listitem>
-
-<!--
-Author: Thomas Munro <tmunro@postgresql.org>
-2023-07-12 [68a4b58ec] Remove - -disable-thread-safety and related code.
-Author: Thomas Munro <tmunro@postgresql.org>
-2023-07-12 [ce0b0fa3e] Doc: Adjust libpq docs about thread safety.
--->
-
-     <listitem>
-      <para>
-      Remove configure option <option>--disable-thread-safety</option>
-      (Thomas Munro, Heikki Linnakangas)
-      </para>
-
-      <para>
-      We now assume all supported platforms have sufficient thread support.
-      </para>
-     </listitem>
-
-<!--
-Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
-2024-02-28 [1c1eec0f2] Remove configure - -with-CC option
--->
-
-     <listitem>
-      <para>
-      Remove <application>configure</application> option
-      <option>--with-CC</option> (Heikki Linnakangas)
-      </para>
-
-      <para>
-      Setting the <envar>CC</envar> environment variable is now the only
-      supported method for specifying the compiler.
-      </para>
-     </listitem>
-
-<!--
-Author: David Rowley <drowley@postgresql.org>
-2023-10-26 [f0efa5aec] Introduce the concept of read-only StringInfos
--->
-
-     <listitem>
-      <para>
-      User-defined data type receive functions will no longer receive
-      their data null-terminated (David Rowley)
-      </para>
-     </listitem>
-
-<!--
-Author: Andrew Dunstan <andrew@dunslane.net>
-2024-04-04 [3311ea86e] Introduce a non-recursive JSON parser
--->
-
-     <listitem>
-      <para>
-      Add incremental <type>JSON</type> parser for use with huge
-      <type>JSON</type> documents (Andrew Dunstan)
-      </para>
-     </listitem>
-
-<!--
-Author: Nathan Bossart <nathan@postgresql.org>
-2024-02-28 [363eb0599] Convert README to Markdown.
--->
-
-     <listitem>
-      <para>
-      Convert top-level <filename>README</filename> file to
-      <productname>Markdown</productname> (Nathan Bossart)
-      </para>
-     </listitem>
-
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-2023-12-22 [e2b73f4a4] Stop generating plain-text INSTALL instructions.
--->
-
-     <listitem>
-      <para>
-      Remove no longer needed top-level <filename>INSTALL</filename> file
-      (Tom Lane)
-      </para>
-     </listitem>
-
-<!--
-Author: Peter Eisentraut <peter@eisentraut.org>
-2023-11-06 [721856ff2] Remove distprep
--->
-
-     <listitem>
-      <para>
-      Remove <application>make</application>'s <literal>distprep</literal>
-      option (Peter Eisentraut)
-      </para>
-     </listitem>
-
-<!--
-Author: Peter Eisentraut <peter@eisentraut.org>
-2024-01-23 [79b03dbb3] Support shared libraries on Android (using make)
--->
-
-     <listitem>
-      <para>
-      Add  <application>make</application> support for
-      <productname>Android</productname> shared libraries (Peter
-      Eisentraut)
-      </para>
-     </listitem>
-
-<!--
-Author: Michael Paquier <michael@paquier.xyz>
-2024-01-22 [d86d20f0b] Add backend support for injection points
-Author: Michael Paquier <michael@paquier.xyz>
-2024-03-04 [37b369dc6] injection_points: Add wait and wakeup of processes
-Author: Michael Paquier <michael@paquier.xyz>
-2024-04-08 [f587338de] injection_points: Introduce runtime conditions
--->
-
-     <listitem>
-      <para>
-      Add backend support for injection points (Michael Paquier)
-      </para>
-
-      <para>
-      This is used for server debugging and they must be enabled at server
-      compile time.
-      </para>
-     </listitem>
-
-<!--
-Author: Michael Paquier <michael@paquier.xyz>
-2024-04-04 [2a217c371] Coordinate emit_log_hook and all log destinations to sha
--->
-
-     <listitem>
-      <para>
-      Fix <literal>emit_log_hook</literal> to use the same time value as
-      other log records for the same query (Kambam Vinay, Michael Paquier)
-      </para>
-     </listitem>
-
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-2024-01-25 [7014c9a4b] Doc: improve documentation for jsonpath behavior.
--->
-
-     <listitem>
-      <para>
-      Improve documentation for using <literal>jsonpath</literal> for
-      predicate checks (David Wheeler)
-      </para>
-     </listitem>
-
-    </itemizedlist>
-
-   </sect3>
-
-   <sect3 id="release-17-modules">
-    <title>Additional Modules</title>
-
-    <itemizedlist>
-
-<!--
-Author: Etsuro Fujita <efujita@postgresql.org>
-2023-08-15 [9e9931d2b] Re-allow FDWs and custom scan providers to replace joins
--->
-
-     <listitem>
-      <para>
-      Allow joins with non-join qualifications to be pushed down to
-      foreign servers and custom scans (Richard Guo, Etsuro Fujita)
-      </para>
-
-      <para>
-      Foreign data wrappers and custom scans will need to be modified to
-      handle these cases.
-      </para>
-     </listitem>
-
-<!--
-Author: Alexander Korotkov <akorotkov@postgresql.org>
-2023-12-05 [824dbea3e] Add support for deparsing semi-joins to contrib/postgres
--->
-
-     <listitem>
-      <para>
-      Allow pushdown of <literal>EXISTS</literal> and <literal>IN</literal>
-      subqueries to <xref linkend="postgres-fdw"/> foreign servers
-      (Alexander Pyhalov)
-      </para>
-     </listitem>
-
-<!--
-Author: David Rowley <drowley@postgresql.org>
-2023-11-02 [cac169d68] Increase DEFAULT_FDW_TUPLE_COST from 0.01 to 0.2
-Author: John Naylor <john.naylor@postgresql.org>
-2024-01-11 [f7f694b21] Update documentation of default fdw_tuple_cost
--->
-
-     <listitem>
-      <para>
-      Increase the default foreign data wrapper tuple cost (David Rowley,
-      Umair Shahid)
-      </para>
-
-      <para>
-      This value is used by the optimizer.
-      </para>
-     </listitem>
-
-<!--
-Author: Noah Misch <noah@leadboat.com>
-2024-01-08 [d3c5f37dd] Make dblink interruptible, via new libpqsrv APIs.
--->
-
-     <listitem>
-      <para>
-      Allow <link linkend="dblink"><application>dblink</application></link>
-      database operations to be interrupted (Noah Misch)
-      </para>
-     </listitem>
-
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-2024-03-21 [485f0aa85] Add hash support functions and hash opclass for contrib/
--->
-
-     <listitem>
-      <para>
-      Allow the creation of hash indexes on <application><xref
-      linkend="ltree"/></application> columns (Tommy Pavlicek)
-      </para>
-
-      <para>
-      This also enables hash join and hash aggregation on
-      <application>ltree</application> columns.
-      </para>
-     </listitem>
-
-<!--
-Author: Michael Paquier <michael@paquier.xyz>
-2023-09-20 [59f47fb98] unaccent: Add support for quoted translated characters
--->
-
-     <listitem>
-      <para>
-      Allow <application><xref linkend="unaccent"/></application> character
-      translation rules to contain whitespace and quotes (Michael Paquier)
-      </para>
-
-      <para>
-      The syntax for the <filename>unaccent.rules</filename> file has
-      changed.
-      </para>
-     </listitem>
-
-<!--
-Author: Alexander Korotkov <akorotkov@postgresql.org>
-2023-10-28 [5ae208720] Teach contrib/amcheck to check the unique constraint vio
--->
-
-     <listitem>
-      <para>
-      Allow <application><xref linkend="amcheck"/></application>
-      to check for unique constraint violations using new option
-      <option>--checkunique</option> (Anastasia Lubennikova, Pavel Borisov,
-      Maxim Orlov)
-      </para>
-     </listitem>
-
-<!--
-Author: Peter Eisentraut <peter@eisentraut.org>
-2023-11-07 [3c551ebed] citext: Allow tests to pass in OpenSSL FIPS mode
--->
-
-     <listitem>
-      <para>
-      Allow <application><xref linkend="citext"/></application> tests to
-      pass in OpenSSL <acronym>FIPS</acronym> mode (Peter Eisentraut)
-      </para>
-     </listitem>
-
-<!--
-Author: Peter Eisentraut <peter@eisentraut.org>
-2023-11-17 [795592865] pgcrypto: Allow tests to pass in OpenSSL FIPS mode
--->
-
-     <listitem>
-      <para>
-      Allow <application><xref linkend="pgcrypto"/></application> tests
-      to pass in OpenSSL <acronym>FIPS</acronym> mode (Peter Eisentraut)
-      </para>
-     </listitem>
-
-<!--
-Author: Nathan Bossart <nathan@postgresql.org>
-2023-11-27 [75680c3d8] Retire a few backwards compatibility macros.
--->
-
-     <listitem>
-      <para>
-      Remove some unused <link linkend="spi"><acronym>SPI</acronym></link>
-      macros (Bharath Rupireddy)
-      </para>
-     </listitem>
-
-<!--
-Author: Daniel Gustafsson <dgustafsson@postgresql.org>
-2024-03-04 [cc09e6549] Remove the adminpack contrib extension
--->
-
-     <listitem>
-      <para>
-      Remove <application>adminpack</application> contrib extension
-      (Daniel Gustafsson)
-      </para>
-
-      <para>
-      This was used by now end-of-life <productname>pgAdmin
-      III</productname>.
-      </para>
-     </listitem>
-
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-2023-10-20 [2b5154bea] Extend ALTER OPERATOR to allow setting more optimization
--->
-
-     <listitem>
-      <para>
-      Allow <link linkend="sql-alteroperator"><command>ALTER
-      OPERATOR</command></link> to set more optimization attributes
-      (Tommy Pavlicek)
-      </para>
-
-      <para>
-      This is useful for extensions.
-      </para>
-     </listitem>
-
-<!--
-Author: Michael Paquier <michael@paquier.xyz>
-2023-07-31 [c9af05465] Support custom wait events for wait event type "Extensio
-Author: Michael Paquier <michael@paquier.xyz>
-2023-10-04 [c8e318b1b] worker_spi: Rename custom wait event to "WorkerSpiMain"
-Author: Michael Paquier <michael@paquier.xyz>
-2023-10-05 [d61f2538a] postgres_fdw: Replace WAIT_EVENT_EXTENSION with custom w
-Author: Michael Paquier <michael@paquier.xyz>
-2023-10-05 [c789f0f6c] dblink: Replace WAIT_EVENT_EXTENSION with custom wait ev
--->
-
-     <listitem>
-      <para>
-      Allow extensions to define <link
-      linkend="xfunc-addin-wait-events">custom wait events</link>
-      (Masahiro Ikeda)
-      </para>
-
-      <para>
-      Custom wait events have been added to <application><xref
-      linkend="postgres-fdw"/></application> and <application><xref
-      linkend="dblink"/></application>.
-      </para>
-     </listitem>
-
-<!--
-Author: Thomas Munro <tmunro@postgresql.org>
-2024-04-08 [13453eedd] Add pg_buffercache_evict() function for testing.
--->
-
-     <listitem>
-      <para>
-      Add <application><xref linkend="pgbuffercache"/></application>
-      function <function>pg_buffercache_evict()</function> to allow shared
-      buffer eviction (Palak Chaturvedi, Thomas Munro)
-      </para>
-
-      <para>
-      This is useful for testing.
-      </para>
-     </listitem>
-
-    </itemizedlist>
-
-    <sect4 id="release-17-pgstatstatements">
-     <title><link linkend="pgstatstatements"><application>pg_stat_statements</application></link></title>
-
-     <itemizedlist>
-
-<!--
-Author: Michael Paquier <michael@paquier.xyz>
-2023-09-28 [11c34b342] Show parameters of CALL as constants in pg_stat_statemen
--->
-
-      <listitem>
-       <para>
-       Replace <link linkend="sql-call"><command>CALL</command></link>
-       parameters in <application>pg_stat_statements</application> with
-       placeholders (Sami Imseih)
-       </para>
-      </listitem>
-
-<!--
-Author: Michael Paquier <michael@paquier.xyz>
-2023-07-27 [31de7e60d] Show savepoint names as constants in pg_stat_statements
--->
-
-      <listitem>
-       <para>
-       Replace savepoint names stored in
-       <structname>pg_stat_statements</structname> with placeholders
-       (Greg Sabino Mullane)
-       </para>
-
-       <para>
-       This greatly reduces the number of entries needed to record <link
-       linkend="sql-savepoint"><command>SAVEPOINT</command></link>,
-       <link linkend="sql-release-savepoint"><command>RELEASE
-       SAVEPOINT</command></link>, and <link
-       linkend="sql-rollback-to"><command>ROLLBACK TO
-       SAVEPOINT</command></link> commands.
-       </para>
-      </listitem>
-
-<!--
-Author: Michael Paquier <michael@paquier.xyz>
-2023-08-12 [638d42a3c] Show GIDs of two-phase commit commands as constants in p
--->
-
-      <listitem>
-       <para>
-       Replace the two-phase commit <acronym>GID</acronym>s stored in
-       <structname>pg_stat_statements</structname> with placeholders
-       (Michael Paquier)
-       </para>
-
-       <para>
-       This greatly reduces the number of entries needed to record
-       <link linkend="sql-prepare-transaction"><command>PREPARE
-       TRANSACTION</command></link>, <link
-       linkend="sql-commit-prepared"><command>COMMIT
-       PREPARED</command></link>, and <link
-       linkend="sql-rollback-prepared"><command>ROLLBACK
-       PREPARED</command></link>.
-       </para>
-      </listitem>
-
-<!--
-Author: Michael Paquier <michael@paquier.xyz>
-2023-08-27 [bb45156f3] Show names of DEALLOCATE as constants in pg_stat_stateme
--->
-
-      <listitem>
-       <para>
-       Track <link
-       linkend="sql-deallocate"><command>DEALLOCATE</command></link>
-       in <structname>pg_stat_statements</structname> (Dagfinn Ilmari
-       Manns&aring;ker, Michael Paquier)
-       </para>
-
-       <para>
-       <command>DEALLOCATE</command> names are stored in
-       <structname>pg_stat_statements</structname> as placeholders.
-       </para>
-      </listitem>
-
-<!--
-Author: Michael Paquier <michael@paquier.xyz>
-2023-10-19 [295c36c0c] Add local_blk_{read|write}_time I/O timing statistics fo
-Author: Michael Paquier <michael@paquier.xyz>
-2023-10-19 [5147ab1dd] pg_stat_statements: Add local_blk_{read|write}_time
--->
-
-      <listitem>
-       <para>
-       Add local I/O block read/write timing statistics columns of
-       <structname>pg_stat_statements</structname> (Nazir Bilal Yavuz)
-       </para>
-
-       <para>
-       The new columns are <structfield>local_blk_read_time</structfield>
-       and <structfield>local_blk_write_time</structfield>.
-       </para>
-      </listitem>
-
-<!--
-Author: Daniel Gustafsson <dgustafsson@postgresql.org>
-2023-09-08 [5a3423ad8] Add JIT deform_counter
--->
-
-      <listitem>
-       <para>
-       Add <acronym>JIT</acronym> deform_counter details to
-       <structname>pg_stat_statements</structname> (Dmitry Dolgov)
-       </para>
-      </listitem>
-
-<!--
-Author: Alexander Korotkov <akorotkov@postgresql.org>
-2023-11-27 [dc9f8a798] Track statement entry timestamp in contrib/pg_stat_state
--->
-
-      <listitem>
-       <para>
-       Add optional fourth argument (<literal>minmax_only</literal>)
-       to <function>pg_stat_statements_reset()</function> to allow for
-       the resetting of only min/max statistics (Andrei Zubkov)
-       </para>
-
-       <para>
-       This argument defaults to <literal>false</literal>.
-       </para>
-      </listitem>
-
-<!--
-Author: Alexander Korotkov <akorotkov@postgresql.org>
-2023-11-27 [dc9f8a798] Track statement entry timestamp in contrib/pg_stat_state
--->
-
-      <listitem>
-       <para>
-       Add <structname>pg_stat_statements</structname>
-       columns <structfield>stats_since</structfield> and
-       <structfield>minmax_stats_since</structfield> to track entry
-       creation time and last min/max reset time (Andrei Zubkov)
-       </para>
-      </listitem>
-
-     </itemizedlist>
-
-    </sect4>
-
-   </sect3>
-
-  </sect2>
-
-  <sect2 id="release-17-acknowledgements">
-   <title>Acknowledgments</title>
-
-   <para>
-    The following individuals (in alphabetical order) have contributed
-    to this release as patch authors, committers, reviewers, testers,
-    or reporters of issues.
-   </para>
-
-   <simplelist>
-    <member></member>
-   </simplelist>
-  </sect2>
-
- </sect1>
diff --git a/doc/src/sgml/release-18.sgml b/doc/src/sgml/release-18.sgml
new file mode 100644 (file)
index 0000000..4f027a0
--- /dev/null
@@ -0,0 +1,16 @@
+<!-- doc/src/sgml/release-18.sgml -->
+<!-- See header comment in release.sgml about typical markup -->
+
+<sect1 id="release-18">
+ <title>Release 18</title>
+
+ <formalpara>
+  <title>Release date:</title>
+  <para>2025-??-??</para>
+ </formalpara>
+
+ <para>
+  This is just a placeholder for now.
+ </para>
+
+</sect1>
index 87c01696da928482956d2f0e6b7ee2b8ace83fa0..cf6ba5408766491207fb1b3e0be2ecd6ff6eed23 100644 (file)
@@ -79,7 +79,7 @@ For new features, add links to the documentation sections.
   All the active branches have to be edited concurrently when doing that.
 -->
 
-&release-17;
+&release-18;
 
  <sect1 id="release-prior">
   <title>Prior Releases</title>
index f454160e86e1ae691374913cbab2cd74c9549171..5387bb6d5fdac0ea469bdc67e3a4547f660557f5 100644 (file)
@@ -8,7 +8,7 @@
 
 project('postgresql',
   ['c'],
-  version: '17beta2',
+  version: '18devel',
   license: 'PostgreSQL',
 
   # We want < 0.56 for python 3.5 compatibility on old platforms. EPEL for
index c9469b8bad1d7e8e67cff6655974b64812e1db24..bfd17718bc76da05670dc3bfc4951b0a020b0c40 100755 (executable)
@@ -59,7 +59,7 @@ require IPC::Open2;
 # (We could get this from "git branches", but not worth the trouble.)
 # NB: master must be first!
 my @BRANCHES = qw(master
-  REL_16_STABLE REL_15_STABLE REL_14_STABLE REL_13_STABLE
+  REL_17_STABLE REL_16_STABLE REL_15_STABLE REL_14_STABLE REL_13_STABLE
   REL_12_STABLE REL_11_STABLE REL_10_STABLE REL9_6_STABLE REL9_5_STABLE
   REL9_4_STABLE REL9_3_STABLE REL9_2_STABLE REL9_1_STABLE REL9_0_STABLE
   REL8_4_STABLE REL8_3_STABLE REL8_2_STABLE REL8_1_STABLE REL8_0_STABLE
index 6f94aa02c024bd51517f5253469c258763ffbb4a..3743ece29963381ef0125902fddb63ab6dfcb0c3 100755 (executable)
@@ -25,7 +25,7 @@ use warnings FATAL => 'all';
 
 # Major version is hard-wired into the script.  We update it when we branch
 # a new development version.
-my $majorversion = 17;
+my $majorversion = 18;
 
 # Validate argument and compute derived variables
 my $minor = shift;