+++ /dev/null
-<!-- doc/src/sgml/release-19.sgml -->
-<!-- See header comment in release.sgml about typical markup -->
-
-<sect1 id="release-19">
- <title>Release 19</title>
-
- <formalpara>
- <title>Release date:</title>
- <para>2026-??-??, AS OF 2026-06-17</para>
- </formalpara>
-
- <sect2 id="release-19-highlights">
- <title>Overview</title>
-
- <para>
- <productname>PostgreSQL</productname> 19 contains many new features
- and enhancements, including:
- </para>
-
- <itemizedlist>
- <listitem>
- <para><emphasis>fill in later</emphasis></para>
- </listitem>
- </itemizedlist>
-
- <para>
- The above items and other new features of
- <productname>PostgreSQL</productname> 19 are explained in more detail
- in the sections below.
- </para>
-
- </sect2>
-
- <sect2 id="release-19-migration">
-
- <title>Migration to Version 19</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 19 contains a number of changes that may affect compatibility
- with previous releases. Observe the following incompatibilities:
- </para>
-
- <itemizedlist>
-<!--
-Author: Nathan Bossart <nathan@postgresql.org>
-2026-02-11 [1d92e0c2c] Add password expiration warnings.
--->
-
-<listitem>
-<para>
-Add server variable <link linkend="guc-password-expiration-warning-threshold"><varname>password_expiration_warning_threshold</varname></link> to warn about password expiration (Gilles Darold, Nathan Bossart)
-<ulink url="&commit_baseurl;1d92e0c2c">§</ulink>
-</para>
-
-<para>
-The default warning period is seven days.
-</para>
-</listitem>
-
-<!--
-Author: Nathan Bossart <nathan@postgresql.org>
-2026-02-23 [bc60ee860] Warn upon successful MD5 password authentication.
--->
-
-<listitem>
-<para>
-Issue a warning after successful MD5 password authentication (Nathan Bossart)
-<ulink url="&commit_baseurl;bc60ee860">§</ulink>
-</para>
-
-<para>
-The warning can be disabled via server variable <link linkend="guc-md5-password-warnings"><varname>md5_password_warnings</varname></link>. MD5 passwords were marked as deprecated in <productname>PostgreSQL</productname> 18.
-</para>
-</listitem>
-
-<!--
-Author: Thomas Munro <tmunro@postgresql.org>
-2026-04-08 [a1643d40b] Remove RADIUS support.
--->
-
-<listitem>
-<para>
-Remove <acronym>RADIUS</acronym> support (Thomas Munro)
-<ulink url="&commit_baseurl;a1643d40b">§</ulink>
-</para>
-
-<para>
-<productname>PostgreSQL</productname> only supported <acronym>RADIUS</acronym> over <acronym>UDP</acronym>, which is unfixably insecure.
-</para>
-</listitem>
-
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-2026-01-21 [457620845] Force standard_conforming_strings to always be ON.
--->
-
-<listitem>
-<para>
-Force <link linkend="guc-standard-conforming-strings"><varname>standard_conforming_strings</varname></link> to always be <literal>on</literal> in the database server (Tom Lane)
-<ulink url="&commit_baseurl;457620845">§</ulink>
-</para>
-
-<para>
-Dumps created using pre-<productname>PostgreSQL</productname> 19 versions of <link linkend="app-pgdump"><application>pg_dump</application></link>
-or <link linkend="app-pg-dumpall"><application>pg_dumpall</application></link>, and using <literal>standard_conforming_strings = off</literal>,
-will not properly load into <productname>PostgreSQL</productname> 19 and later servers. Users should create dumps using <productname>PostgreSQL</productname> 19
-or later versions of these applications, or use <literal>standard_conforming_strings = on</literal>.
-</para>
-
-<para>
-Client applications still support operations with servers having <literal>standard_conforming_strings = off</literal>, for compatibility with old servers. The server variable <varname>escape_string_warning</varname> has been removed as unnecessary.
-</para>
-</listitem>
-
-<!--
-Author: Andrew Dunstan <andrew@dunslane.net>
-2026-02-23 [b380a56a3] Disallow CR and LF in database, role, and tablespace nam
--->
-
-<listitem>
-<para>
-Disallow carriage returns and line feeds in database, role, and tablespace names (Mahendra Singh Thalor)
-<ulink url="&commit_baseurl;b380a56a3">§</ulink>
-</para>
-
-<para>
-<link linkend="pgupgrade"><application>pg_upgrade</application></link> will also disallow upgrading of clusters that use such names. This was changed to avoid security problems.
-</para>
-</listitem>
-
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-2026-01-08 [b3b0b4571] Create btree_gist v1.9, in which inet/cidr opclasses are
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-2026-01-08 [b352d3d80] Mark GiST inet_ops as opcdefault, and deal with ensuing
--->
-
-<listitem>
-<para>
-Change the default index opclasses for <link linkend="datatype-net-types"><type>inet</type></link> and <link linkend="datatype-net-types"><type>cidr</type></link> data types from <xref linkend="btree-gist"/> to <link linkend="gist">GiST</link> (Tom Lane)
-<ulink url="&commit_baseurl;b3b0b4571">§</ulink>
-<ulink url="&commit_baseurl;b352d3d80">§</ulink>
-</para>
-
-<para>
-The <xref linkend="btree-gist"/> <type>inet</type>/<type>cidr</type> opclasses are broken because they can exclude rows that should be returned. <link linkend="pgupgrade"><application>pg_upgrade</application></link> will disallow upgrading of clusters with <xref linkend="btree-gist"/> <type>inet</type>/<type>cidr</type> indexes.
-</para>
-</listitem>
-
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-2026-04-06 [a9c350d9e] Don't try to re-order the subcommands of CREATE SCHEMA.
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-2026-04-06 [404db8f9e] Execute foreign key constraints in CREATE SCHEMA at the
--->
-
-<listitem>
-<para>
-Stop reordering non-schema objects created by <link linkend="sql-createschema"><command>CREATE SCHEMA</command></link> (Tom Lane, Jian He)
-<ulink url="&commit_baseurl;a9c350d9e">§</ulink>
-<ulink url="&commit_baseurl;404db8f9e">§</ulink>
-</para>
-
-<para>
-The goal of the reordering was to avoid dependencies, but it was imperfect. <productname>PostgreSQL</productname> now uses the specified object ordering, except for foreign keys which are created last.
-</para>
-</listitem>
-
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-2026-04-06 [21c69dc73] Disallow system columns in COPY FROM WHERE conditions.
--->
-
-<listitem>
-<para>
-Disallow system columns from being used in <link linkend="sql-copy"><command>COPY FROM ... WHERE</command></link> (Tom Lane)
-<ulink url="&commit_baseurl;21c69dc73">§</ulink>
-</para>
-
-<para>
-The values of such columns were not well-defined.
-</para>
-</listitem>
-
-<!--
-Author: Richard Guo <rguo@postgresql.org>
-2026-05-01 [8d829f5a0] Fix JSON_ARRAY(query) empty set handling and view depars
--->
-
-<listitem>
-<para>
-Change a <link linkend="functions-json"><function>json_array()</function></link> call which returns no rows to return an empty <acronym>JSON</acronym> array (Richard Guo)
-<ulink url="&commit_baseurl;8d829f5a0">§</ulink>
-</para>
-
-<para>
-This previously returned <literal>NULL</literal>.
-</para>
-</listitem>
-
-<!--
-Author: Etsuro Fujita <efujita@postgresql.org>
-2026-04-05 [de28140de] postgres_fdw: Inherit the local transaction's access/def
--->
-
-<listitem>
-<para>
-Cause transactions to pass their <literal>READ ONLY</literal> and <literal>DEFERRABLE</literal> status to <xref linkend="postgres-fdw"/> sessions (Etsuro Fujita)
-<ulink url="&commit_baseurl;de28140de">§</ulink>
-</para>
-
-<para>
-This means <literal>READ ONLY</literal> transactions can no longer modify rows processed by <xref linkend="postgres-fdw"/> sessions.
-</para>
-</listitem>
-
-<!--
-Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
-2026-04-03 [79534f906] Change default of max_locks_per_transaction to 128
--->
-
-<listitem>
-<para>
-Change default of <link linkend="guc-max-locks-per-transaction"><varname>max_locks_per_transaction</varname></link> from 64 to 128 (Heikki Linnakangas)
-<ulink url="&commit_baseurl;79534f906">§</ulink>
-</para>
-
-<para>
-Lock size allocation has changed, so effectively settings must now be doubled to match their capacity in previous releases.
-</para>
-</listitem>
-
-<!--
-Author: Tomas Vondra <tomas.vondra@postgresql.org>
-2026-04-02 [7f8c88c2b] jit: Change the default to off.
--->
-
-<listitem>
-<para>
-Change <link linkend="jit"><acronym>JIT</acronym></link> to be disabled by default (Jelte Fennema-Nio)
-<ulink url="&commit_baseurl;7f8c88c2b">§</ulink>
-</para>
-
-<para>
-Previously <acronym>JIT</acronym> was enabled by default, and activated based on optimizer costs, but this costing has been determined to be unreliable. This change requires sites that are doing many
-large analytical queries to manually enable <acronym>JIT</acronym>.
-</para>
-</listitem>
-
-<!--
-Author: Amit Kapila <akapila@postgresql.org>
-2025-11-18 [3edaf29fa] Rename two columns in pg_stat_subscription_stats.
--->
-
-<listitem>
-<para>
-Rename column <structfield>sync_error_count</structfield> to <structfield>sync_table_error_count</structfield> in system view <link linkend="pg-stat-subscription-stats"><structname>pg_stat_subscription_stats</structname></link> (Vignesh C)
-<ulink url="&commit_baseurl;3edaf29fa">§</ulink>
-</para>
-
-<para>
-This is necessary since sequence errors are now tracked separately.
-</para>
-</listitem>
-
-<!--
-Author: Andres Freund <andres@anarazel.de>
-2025-12-03 [6c5c393b7] Rename BUFFERPIN wait event class to BUFFER
--->
-
-<listitem>
-<para>
-Rename wait event type <literal>BUFFERPIN</literal> to <literal>BUFFER</literal> (Andres Freund)
-<ulink url="&commit_baseurl;6c5c393b7">§</ulink>
-</para>
-</listitem>
-
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-2025-12-30 [bc6374cd7] Change IndexAmRoutines to be statically-allocated struct
--->
-
-<listitem>
-<para>
-Change index access method handlers to use a static <link linkend="indexam"><structname>IndexAmRoutines</structname></link> structure, rather than dynamically allocated ones (Matthias van de Meent)
-<ulink url="&commit_baseurl;bc6374cd7">§</ulink>
-</para>
-</listitem>
-
-<!--
-Author: Robert Haas <rhaas@postgresql.org>
-2026-03-09 [91f33a2ae] Replace get_relation_info_hook with build_simple_rel_hoo
--->
-
-<listitem>
-<para>
-Remove optimizer hook get_relation_info_hook and add better-placed hook build_simple_rel_hook (Robert Haas)
-<ulink url="&commit_baseurl;91f33a2ae">§</ulink>
-</para>
-</listitem>
-
-<!--
-Author: Thomas Munro <tmunro@postgresql.org>
-2026-04-08 [77645d44e] Remove MULE_INTERNAL encoding.
--->
-
-<listitem>
-<para>
-Remove <literal>MULE_INTERNAL</literal> encoding (Thomas Munro)
-<ulink url="&commit_baseurl;77645d44e">§</ulink>
-</para>
-
-<para>
-This encoding was complex and rarely used. Databases using it will need to be dumped and restored with a different encoding.
-</para>
-</listitem>
-
- </itemizedlist>
-
- </sect2>
-
- <sect2 id="release-19-changes">
- <title>Changes</title>
-
- <para>
- Below you will find a detailed account of the changes between
- <productname>PostgreSQL</productname> 19 and the previous major
- release.
- </para>
-
- <sect3 id="release-19-server">
- <title>Server</title>
-
- <sect4 id="release-19-optimizer">
- <title>Optimizer</title>
-
- <itemizedlist>
-<!--
-Author: Richard Guo <rguo@postgresql.org>
-2026-03-12 [383eb21eb] Convert NOT IN sublinks to anti-joins when safe
--->
-
-<listitem>
-<para>
-Allow <literal>NOT IN</literal> clauses to be converted to more efficient <literal>ANTI JOIN</literal>s when NULLs are not present (Richard Guo)
-<ulink url="&commit_baseurl;383eb21eb">§</ulink>
-</para>
-</listitem>
-
-<!--
-Author: Richard Guo <rguo@postgresql.org>
-2026-02-12 [cf74558fe] Reduce LEFT JOIN to ANTI JOIN using NOT NULL constraints
--->
-
-<listitem>
-<para>
-Allow more <literal>LEFT JOIN</literal>s to be converted to <literal>ANTI JOIN</literal>s (Tender Wang, Richard Guo)
-<ulink url="&commit_baseurl;cf74558fe">§</ulink>
-</para>
-</listitem>
-
-<!--
-Author: Richard Guo <rguo@postgresql.org>
-2025-07-03 [0da29e4cb] Enable use of Memoize for ANTI joins
--->
-
-<listitem>
-<para>
-Allow use of Memoize for <literal>ANTI JOIN</literal>s with unique inner sides (Richard Guo)
-<ulink url="&commit_baseurl;0da29e4cb">§</ulink>
-</para>
-</listitem>
-
-<!--
-Author: Richard Guo <rguo@postgresql.org>
-2025-10-08 [8e1185910] Implement Eager Aggregation
-Author: Richard Guo <rguo@postgresql.org>
-2026-04-06 [bd94845e8] Fix collation handling for grouping keys in eager aggreg
-Author: Richard Guo <rguo@postgresql.org>
-2026-04-06 [3a08a2a8b] Fix volatile function evaluation in eager aggregation
--->
-
-<listitem>
-<para>
-Allow some aggregate processing to be performed before joins (Richard Guo, Antonin Houska)
-<ulink url="&commit_baseurl;8e1185910">§</ulink>
-<ulink url="&commit_baseurl;bd94845e8">§</ulink>
-<ulink url="&commit_baseurl;3a08a2a8b">§</ulink>
-</para>
-
-<para>
-This can reduce the number of rows needed to be processed.
-</para>
-</listitem>
-
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-2026-03-19 [1811f1af9] Improve hash join's handling of tuples with null join ke
--->
-
-<listitem>
-<para>
-Improve hash join's handling of tuples with <literal>NULL</literal> join keys (Tom Lane)
-<ulink url="&commit_baseurl;1811f1af9">§</ulink>
-</para>
-</listitem>
-
-<!--
-Author: Richard Guo <rguo@postgresql.org>
-2025-08-19 [24225ad9a] Pathify RHS unique-ification for semijoin planning
--->
-
-<listitem>
-<para>
-Improve the planning of semijoins (Richard Guo)
-<ulink url="&commit_baseurl;24225ad9a">§</ulink>
-</para>
-</listitem>
-
-<!--
-Author: Richard Guo <rguo@postgresql.org>
-2025-07-08 [55a780e94] Consider explicit incremental sort for Append and MergeA
--->
-
-<listitem>
-<para>
-Allow Append and MergeAppend to consider explicit incremental sorts (Richard Guo)
-<ulink url="&commit_baseurl;55a780e94">§</ulink>
-</para>
-</listitem>
-
-<!--
-Author: Richard Guo <rguo@postgresql.org>
-2026-02-10 [f41ab5157] Teach planner to transform "x IS [NOT] DISTINCT FROM NUL
--->
-
-<listitem>
-<para>
-Convert <link linkend="functions-comparison-pred-table"><literal>IS [NOT] DISTINCT FROM NULL</literal></link> to <literal>IS [NOT] NULL</literal> during constant folding (Richard Guo)
-<ulink url="&commit_baseurl;f41ab5157">§</ulink>
-</para>
-
-<para>
-The latter form is more easily optimized.
-</para>
-</listitem>
-
-<!--
-Author: Richard Guo <rguo@postgresql.org>
-2026-02-10 [0a3796125] Optimize IS DISTINCT FROM with non-nullable inputs
--->
-
-<listitem>
-<para>
-Simplify <link linkend="functions-comparison-pred-table"><literal>IS [NOT] DISTINCT FROM</literal></link> to equality/inequality operators when inputs are proven non-nullable (Richard Guo)
-<ulink url="&commit_baseurl;0a3796125">§</ulink>
-</para>
-</listitem>
-
-<!--
-Author: Richard Guo <rguo@postgresql.org>
-2025-07-22 [e2debb643] Reduce "Var IS [NOT] NULL" quals during constant folding
--->
-
-<listitem>
-<para>
-Perform earlier constant folding of <replaceable>var</replaceable> <literal>IS [NOT] NULL</literal> in the optimizer (Richard Guo)
-<ulink url="&commit_baseurl;e2debb643">§</ulink>
-</para>
-
-<para>
-This allows for later optimizations.
-</para>
-</listitem>
-
-<!--
-Author: Richard Guo <rguo@postgresql.org>
-2025-12-24 [10c4fe074] Simplify COALESCE expressions using non-nullable argumen
-Author: Richard Guo <rguo@postgresql.org>
-2025-12-24 [cb7b7ec7a] Optimize ROW(...) IS [NOT] NULL using non-nullable field
--->
-
-<listitem>
-<para>
-Simplify <link linkend="functions-coalesce-nvl-ifnull"><function>COALESCE()</function></link> and <literal>ROW(...) IS [NOT] NULL</literal> to avoid evaluating unnecessary arguments (Richard Guo)
-<ulink url="&commit_baseurl;10c4fe074">§</ulink>
-<ulink url="&commit_baseurl;cb7b7ec7a">§</ulink>
-</para>
-</listitem>
-
-<!--
-Author: Richard Guo <rguo@postgresql.org>
-2026-02-10 [0aaf0de7f] Optimize BooleanTest with non-nullable input
--->
-
-<listitem>
-<para>
-Simplify <literal>IS [NOT] TRUE/FALSE/UNKNOWN</literal> to plain boolean expressions when the input is proven non-nullable (Richard Guo)
-<ulink url="&commit_baseurl;0aaf0de7f">§</ulink>
-</para>
-</listitem>
-
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-2025-11-19 [057012b20] Speed up eqjoinsel() with lots of MCV entries.
--->
-
-<listitem>
-<para>
-Speed up join selectivity computations for large optimizer statistics targets (Ilia Evdokimov, David Geier)
-<ulink url="&commit_baseurl;057012b20">§</ulink>
-</para>
-</listitem>
-
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-2025-09-20 [1eccb9315] Re-allow using statistics for bool-valued functions in W
--->
-
-<listitem>
-<para>
-Enable proper optimizer statistics for functions returning boolean values (Tom Lane)
-<ulink url="&commit_baseurl;1eccb9315">§</ulink>
-</para>
-</listitem>
-
-<!--
-Author: Dean Rasheed <dean.a.rasheed@gmail.com>
-2026-04-01 [f7f4052a4] Add support for extended statistics on virtual generated
--->
-
-<listitem>
-<para>
-Allow <link linkend="sql-createstatistics">extended statistics</link> on virtual generated columns (Yugo Nagata)
-<ulink url="&commit_baseurl;f7f4052a4">§</ulink>
-</para>
-</listitem>
-
-<!--
-Author: Michael Paquier <michael@paquier.xyz>
-2026-01-26 [0e80f3f88] Add pg_restore_extended_stats()
-Author: Michael Paquier <michael@paquier.xyz>
-2026-01-27 [302879bd6] Add support for "dependencies" in pg_restore_extended_st
-Author: Michael Paquier <michael@paquier.xyz>
-2026-01-29 [efbebb4e8] Add support for "mcv" in pg_restore_extended_stats()
-Author: Michael Paquier <michael@paquier.xyz>
-2026-03-03 [ba97bf9cb] Add support for "exprs" in pg_restore_extended_stats()
--->
-
-<listitem>
-<para>
-Allow function <link linkend="functions-admin-statsmod"><function>pg_restore_extended_stats()</function></link> to restore optimizer extended statistics (Corey Huinker, Michael Paquier, Chao Li)
-<ulink url="&commit_baseurl;0e80f3f88">§</ulink>
-<ulink url="&commit_baseurl;302879bd6">§</ulink>
-<ulink url="&commit_baseurl;efbebb4e8">§</ulink>
-<ulink url="&commit_baseurl;ba97bf9cb">§</ulink>
-</para>
-</listitem>
-
-<!--
-Author: Michael Paquier <michael@paquier.xyz>
-2026-01-16 [d756fa101] Add pg_clear_extended_stats()
--->
-
-<listitem>
-<para>
-Add function <link linkend="functions-admin-statsmod"><function>pg_clear_extended_stats()</function></link> to remove extended statistics (Corey Huinker, Michael Paquier)
-<ulink url="&commit_baseurl;d756fa101">§</ulink>
-</para>
-</listitem>
-
-<!--
-Author: Robert Haas <rhaas@postgresql.org>
-2026-03-09 [8300d3ad4] Consider startup cost as a figure of merit for partial p
--->
-
-<listitem>
-<para>
-Adjust the optimizer to consider startup costs of partial paths (Robert Haas, Tomas Vondra)
-<ulink url="&commit_baseurl;8300d3ad4">§</ulink>
-</para>
-</listitem>
-
-<!--
-Author: Richard Guo <rguo@postgresql.org>
-2025-10-08 [185e30426] Allow negative aggtransspace to indicate unbounded state
--->
-
-<listitem>
-<para>
-Allow negative values of <link linkend="catalog-pg-aggregate"><structname>pg_aggregate</structname></link>.<link linkend="catalog-pg-aggregate"><structfield>aggtransspace</structfield></link> to indicate unbounded memory usage (Richard Guo)
-<ulink url="&commit_baseurl;185e30426">§</ulink>
-</para>
-
-<para>
-This information is used by the optimizer in planning memory usage.
-</para>
-</listitem>
-
- </itemizedlist>
-
- </sect4>
-
- <sect4 id="release-19-performance">
- <title>General Performance</title>
-
- <itemizedlist>
-<!--
-Author: Amit Langote <amitlan@postgresql.org>
-2026-03-31 [2da86c1ef] Add fast path for foreign key constraint checks
-Author: Amit Langote <amitlan@postgresql.org>
-2026-04-01 [e484b0eea] Fix two issues in fast-path FK check introduced by commi
-Author: Amit Langote <amitlan@postgresql.org>
-2026-04-03 [b7b27eb41] Optimize fast-path FK checks with batched index probes
-Author: Amit Langote <amitlan@postgresql.org>
-2026-04-07 [5c54c3ed1] Fix deferred FK check batching introduced by commit b7b2
--->
-
-<listitem>
-<para>
-Improve performance of foreign key constraint checks (Junwang Zhao, Amit Langote, Chao Li)
-<ulink url="&commit_baseurl;2da86c1ef">§</ulink>
-<ulink url="&commit_baseurl;e484b0eea">§</ulink>
-<ulink url="&commit_baseurl;b7b27eb41">§</ulink>
-<ulink url="&commit_baseurl;5c54c3ed1">§</ulink>
-</para>
-</listitem>
-
-<!--
-Author: Andres Freund <andres@anarazel.de>
-2026-04-05 [a9ee66881] aio: io_uring: Trigger async processing for large IOs
-Author: Andres Freund <andres@anarazel.de>
-2026-04-05 [8ca147d58] read stream: Split decision about look ahead for AIO and
-Author: Andres Freund <andres@anarazel.de>
-2026-04-05 [f63ca3379] read_stream: Only increase read-ahead distance when wait
--->
-
-<listitem>
-<para>
-Improve <link linkend="guc-io-method">asynchronous I/O</link> read-ahead scheduling for large requests (Andres Freund)
-<ulink url="&commit_baseurl;a9ee66881">§</ulink>
-<ulink url="&commit_baseurl;8ca147d58">§</ulink>
-<ulink url="&commit_baseurl;f63ca3379">§</ulink>
-</para>
-</listitem>
-
-<!--
-Author: Thomas Munro <tmunro@postgresql.org>
-2026-04-08 [d1c01b79d] aio: Adjust I/O worker pool automatically.
--->
-
-<listitem>
-<para>
-Allow <link linkend="guc-io-method"><varname>io_method</varname></link> method <literal>worker</literal> to automatically control needed background workers (Thomas Munro)
-<ulink url="&commit_baseurl;d1c01b79d">§</ulink>
-</para>
-
-<para>
-The new server variables are <link linkend="guc-io-min-workers"><varname>io_min_workers</varname></link>, <link linkend="guc-io-max-workers"><varname>io_max_workers</varname></link>, <link linkend="guc-io-worker-idle-timeout"><varname>io_worker_idle_timeout</varname></link>, and <link linkend="guc-io-worker-launch-interval"><varname>io_worker_launch_interval</varname></link>.
-</para>
-</listitem>
-
-<!--
-Author: Melanie Plageman <melanieplageman@gmail.com>
-2026-03-30 [b46e1e54d] Allow on-access pruning to set pages all-visible
--->
-
-<listitem>
-<para>
-Allow query table scans to mark pages as all-visible in the <link linkend="vacuum-for-visibility-map">visibility map</link> (Melanie Plageman)
-<ulink url="&commit_baseurl;b46e1e54d">§</ulink>
-</para>
-
-<para>
-Previously only <link linkend="sql-vacuum"><command>VACUUM</command></link> and <link
-linkend="sql-copy"><command>COPY ... FREEZE</command></link> could do this.
-</para>
-</listitem>
-
-<!--
-Author: Masahiko Sawada <msawada@postgresql.org>
-2026-04-06 [1ff3180ca] Allow autovacuum to use parallel vacuum workers.
-Author: Masahiko Sawada <msawada@postgresql.org>
-2026-04-10 [2a3d2f9f6] doc: Improve consistency of parallel vacuum description.
--->
-
-<listitem>
-<para>
-Allow <link linkend="autovacuum">autovacuum</link> to use <link linkend="reloption-autovacuum-parallel-workers"><varname>parallel autovacuum workers</varname></link> (Daniil Davydov)
-<ulink url="&commit_baseurl;1ff3180ca">§</ulink>
-<ulink url="&commit_baseurl;2a3d2f9f6">§</ulink>
-</para>
-
-<para>
-The maximum number of workers is controlled by server variable <link linkend="guc-autovacuum-max-parallel-workers"><varname>autovacuum_max_parallel_workers</varname></link> and per-table storage parameter <varname>autovacuum_parallel_workers</varname>.
-</para>
-</listitem>
-
-<!--
-Author: David Rowley <drowley@postgresql.org>
-2025-11-27 [0ca3b1697] Add parallelism support for TID Range Scans
--->
-
-<listitem>
-<para>
-Allow <link linkend="datatype-oid"><type>TID</type></link> Range Scans to be parallelized (Cary Huang, David Rowley)
-<ulink url="&commit_baseurl;0ca3b1697">§</ulink>
-</para>
-</listitem>
-
-<!--
-Author: Nathan Bossart <nathan@postgresql.org>
-2026-03-13 [e0a3a3fd5] Optimize COPY FROM (FORMAT {text,csv}) using SIMD.
--->
-
-<listitem>
-<para>
-Improve <link linkend="sql-copy"><command>COPY FROM</command></link> performance for text and <acronym>CSV</acronym> input using <acronym>SIMD</acronym> CPU instructions (Nazir Bilal Yavuz, Shinya Kato)
-<ulink url="&commit_baseurl;e0a3a3fd5">§</ulink>
-</para>
-</listitem>
-
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-2026-01-15 [282b1cde9] Optimize LISTEN/NOTIFY via shared channel map and direct
--->
-
-<listitem>
-<para>
-Improve <link linkend="sql-notify"><command>NOTIFY</command></link> to only wake up backends that are listening to specified notifications (Joel Jacobson)
-<ulink url="&commit_baseurl;282b1cde9">§</ulink>
-</para>
-
-<para>
-Previously most backends were woken by <link linkend="sql-notify"><command>NOTIFY</command></link>.
-</para>
-</listitem>
-
-<!--
-Author: Michael Paquier <michael@paquier.xyz>
-2026-03-05 [34dfca293] Change default value of default_toast_compression to "lz
--->
-
-<listitem>
-<para>
-Change the default <link linkend="storage-toast"><acronym>TOAST</acronym></link> compression method from <literal>pglz</literal> to the more efficient <literal>lz4</literal> (Euler Taveira)
-<ulink url="&commit_baseurl;34dfca293">§</ulink>
-</para>
-
-<para>
-This is done by changing the default for server variable <link linkend="guc-default-toast-compression"><varname>default_toast_compression</varname></link>.
-</para>
-</listitem>
-
-<!--
-Author: David Rowley <drowley@postgresql.org>
-2026-03-16 [c456e3911] Optimize tuple deformation
--->
-
-<listitem>
-<para>
-Improve performance of internal row deformation (David Rowley)
-<ulink url="&commit_baseurl;c456e3911">§</ulink>
-</para>
-</listitem>
-
-<!--
-Author: Jeff Davis <jdavis@postgresql.org>
-2026-01-06 [c4ff35f10] ICU: use UTF8-optimized case conversion API
--->
-
-<listitem>
-<para>
-Improve performance of repeated <acronym>UTF-8</acronym> case-folding operations (Andreas Karlsson)
-<ulink url="&commit_baseurl;c4ff35f10">§</ulink>
-</para>
-</listitem>
-
-<!--
-Author: Michael Paquier <michael@paquier.xyz>
-2026-03-16 [bfa3c4f10] Optimize hash index bulk-deletion with streaming read
-Author: Michael Paquier <michael@paquier.xyz>
-2026-03-12 [6c228755a] Use streaming read for VACUUM cleanup of GIN
--->
-
-<listitem>
-<para>
-Improve performance of hash index bulk-deletion and <link linkend="gin"><literal>GIN</literal></link> index vacuuming using streaming reads (Xuneng Zhou)
-<ulink url="&commit_baseurl;bfa3c4f10">§</ulink>
-<ulink url="&commit_baseurl;6c228755a">§</ulink>
-</para>
-</listitem>
-
-<!--
-Author: John Naylor <john.naylor@postgresql.org>
-2026-02-14 [ef3c3cf6d] Perform radix sort on SortTuples with pass-by-value Datu
--->
-
-<listitem>
-<para>
-Improve sort performance using radix sort (John Naylor)
-<ulink url="&commit_baseurl;ef3c3cf6d">§</ulink>
-</para>
-</listitem>
-
-<!--
-Author: Andres Freund <andres@anarazel.de>
-2026-04-07 [294520c44] instrumentation: Use Time-Stamp Counter on x86-64 to low
-Author: Andres Freund <andres@anarazel.de>
-2026-04-07 [16fca4825] pg_test_timing: Also test RDTSC[P] timing, report time s
--->
-
-<listitem>
-<para>
-Improve timing performance measurements (Lukas Fittl, Andres Freund, David Geier)
-<ulink url="&commit_baseurl;294520c44">§</ulink>
-<ulink url="&commit_baseurl;16fca4825">§</ulink>
-</para>
-
-<para>
-This benefits <link linkend="sql-explain"><command>EXPLAIN (ANALYZE, TIMING)</command></link> and <link linkend="pgtesttiming"><application>pg_test_timing</application></link>, and is controlled via server variable <link linkend="guc-timing-clock-source"><varname>timing_clock_source</varname></link>.
-</para>
-</listitem>
-
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-2026-03-20 [ce8d5fe0e] plpgsql: optimize "SELECT simple-expression INTO var".
--->
-
-<listitem>
-<para>
-Optimize <link linkend="plpgsql"><application>plpgsql</application></link> syntax <literal>SELECT simple-expression INTO</literal> <replaceable>var</replaceable> (Tom Lane)
-<ulink url="&commit_baseurl;ce8d5fe0e">§</ulink>
-</para>
-</listitem>
-
- </itemizedlist>
-
- </sect4>
-
- <sect4 id="release-19-system-views">
- <title>System Views</title>
-
- <itemizedlist>
-<!--
-Author: Michael Paquier <michael@paquier.xyz>
-2026-03-24 [4019f725f] Add support for lock statistics in pgstats
--->
-
-<listitem>
-<para>
-Add system view <link linkend="pg-stat-lock-view"><structname>pg_stat_lock</structname></link> and function <link linkend="monitoring-pg-stat-lock-view"><function>pg_stat_get_lock()</function></link> to report per-lock-type statistics (Bertrand Drouvot)
-<ulink url="&commit_baseurl;4019f725f">§</ulink>
-</para>
-</listitem>
-
-<!--
-Author: Michael Paquier <michael@paquier.xyz>
-2026-03-06 [01d485b14] Add system view pg_stat_recovery
-Author: Michael Paquier <michael@paquier.xyz>
-2026-03-06 [2d4ead6f4] Fix order of columns in pg_stat_recovery
--->
-
-<listitem>
-<para>
-Add system view <link linkend="pg-stat-recovery-view"><structname>pg_stat_recovery</structname></link> to report recovery status (Xuneng Zhou, Shinya Kato)
-<ulink url="&commit_baseurl;01d485b14">§</ulink>
-<ulink url="&commit_baseurl;2d4ead6f4">§</ulink>
-</para>
-</listitem>
-
-<!--
-Author: Nathan Bossart <nathan@postgresql.org>
-2026-04-06 [87f61f0c8] Add pg_stat_autovacuum_scores system view.
--->
-
-<listitem>
-<para>
-Add system view <link linkend="pg-stat-autovacuum-scores-view"><structname>pg_stat_autovacuum_scores</structname></link> to report per-table <link linkend="autovacuum">autovacuum</link> details (Sami Imseih)
-<ulink url="&commit_baseurl;87f61f0c8">§</ulink>
-</para>
-</listitem>
-
-<!--
-Author: Nathan Bossart <nathan@postgresql.org>
-2025-07-09 [167ed8082] Introduce pg_dsm_registry_allocations view.
-Author: Nathan Bossart <nathan@postgresql.org>
-2025-12-02 [f894acb24] Show size of DSAs and dshashes in pg_dsm_registry_alloca
--->
-
-<listitem>
-<para>
-Add system view <link linkend="view-pg-dsm-registry-allocations"><structname>pg_dsm_registry_allocations</structname></link> to report <link linkend="guc-dynamic-shared-memory-type">dynamic shared memory</link> details (Florents Tselai, Nathan Bossart)
-<ulink url="&commit_baseurl;167ed8082">§</ulink>
-<ulink url="&commit_baseurl;f894acb24">§</ulink>
-</para>
-</listitem>
-
-<!--
-Author: Masahiko Sawada <msawada@postgresql.org>
-2025-12-09 [0d7895206] Add mode and started_by columns to pg_stat_progress_vacu
--->
-
-<listitem>
-<para>
-Add vacuum initiation details to system view <link linkend="pg-stat-progress-vacuum-view"><structname>pg_stat_progress_vacuum</structname></link> (Shinya Kato)
-<ulink url="&commit_baseurl;0d7895206">§</ulink>
-</para>
-
-<para>
-The new <structfield>started_by</structfield> column reports the initiator of the vacuum, and <structfield>mode</structfield> indicates its aggressiveness.
-</para>
-</listitem>
-
-<!--
-Author: Masahiko Sawada <msawada@postgresql.org>
-2025-12-09 [ab40db385] Add started_by column to pg_stat_progress_analyze view.
--->
-
-<listitem>
-<para>
-Add analyze initiation details to system view <link linkend="pg-stat-progress-analyze-view"><structname>pg_stat_progress_analyze</structname></link> (Shinya Kato)
-<ulink url="&commit_baseurl;ab40db385">§</ulink>
-</para>
-
-<para>
-The new <structfield>started_by</structfield> column reports the initiator of the analyze.
-</para>
-</listitem>
-
-<!--
-Author: Masahiko Sawada <msawada@postgresql.org>
-2025-10-08 [d3b6183dd] Add mem_exceeded_count column to pg_stat_replication_slo
--->
-
-<listitem>
-<para>
-Add <structfield>mem_exceeded_count</structfield> column to system view <link linkend="pg-stat-replication-slots-view"><structname>pg_stat_replication_slots</structname></link> (Bertrand Drouvot)
-<ulink url="&commit_baseurl;d3b6183dd">§</ulink>
-</para>
-
-<para>
-This reports the number of times that <link linkend="guc-logical-decoding-work-mem"><varname>logical_decoding_work_mem</varname></link> was exceeded.
-</para>
-</listitem>
-
-<!--
-Author: Amit Kapila <akapila@postgresql.org>
-2025-11-25 [76b78721c] Add slotsync skip statistics.
-Author: Amit Kapila <akapila@postgresql.org>
-2025-11-28 [e68b6adad] Add slotsync_skip_reason column to pg_replication_slots
-Author: Amit Kapila <akapila@postgresql.org>
-2025-12-05 [5db6a344a] Rename column slotsync_skip_at to slotsync_last_skip.
--->
-
-<listitem>
-<para>
-Add slot synchronization skip information to <link linkend="pg-stat-replication-slots-view"><structname>pg_stat_replication_slots</structname></link> and <link linkend="view-pg-replication-slots"><structname>pg_replication_slots</structname></link> (Shlok Kyal)
-<ulink url="&commit_baseurl;76b78721c">§</ulink>
-<ulink url="&commit_baseurl;e68b6adad">§</ulink>
-<ulink url="&commit_baseurl;5db6a344a">§</ulink>
-</para>
-
-<para>
-The new columns are <structfield>slotsync_skip_count</structfield>, <structfield>slotsync_last_skip</structfield>, and <structfield>slotsync_skip_reason</structfield>.
-</para>
-</listitem>
-
-<!--
-Author: Amit Kapila <akapila@postgresql.org>
-2025-08-04 [fd5a1a0c3] Detect and report update_deleted conflicts.
--->
-
-<listitem>
-<para>
-Add <structfield>update_deleted</structfield> column to system view <link linkend="monitoring-pg-stat-subscription-stats"><structname>pg_stat_subscription_stats</structname></link> (Zhijie Hou)
-<ulink url="&commit_baseurl;fd5a1a0c3">§</ulink>
-</para>
-
-<para>
-This reports the number of rows where updates were ignored due to concurrent deletes. This requires the subscriber have <varname>retain_dead_tuples</varname> enabled.
-</para>
-</listitem>
-
-<!--
-Author: Amit Kapila <akapila@postgresql.org>
-2025-11-07 [f6a4c498d] Add seq_sync_error_count to subscription statistics.
-Author: Amit Kapila <akapila@postgresql.org>
-2025-11-18 [3edaf29fa] Rename two columns in pg_stat_subscription_stats.
--->
-
-<listitem>
-<para>
-Add <structfield>sync_seq_error_count</structfield> column to system view <link linkend="pg-stat-subscription-stats"><structname>pg_stat_subscription_stats</structname></link> to report sequence synchronization errors (Vignesh C)
-<ulink url="&commit_baseurl;f6a4c498d">§</ulink>
-<ulink url="&commit_baseurl;3edaf29fa">§</ulink>
-</para>
-</listitem>
-
-<!--
-Author: Michael Paquier <michael@paquier.xyz>
-2025-10-06 [a5b543258] Add stats_reset to pg_stat_all_{tables,indexes} and rela
--->
-
-<listitem>
-<para>
-Add <structfield>stats_reset</structfield> column to system views <link linkend="pg-stat-all-tables-view"><structname>pg_stat_all_tables</structname></link>, <link linkend="pg-stat-all-indexes-view"><structname>pg_stat_all_indexes</structname></link>, and <link linkend="pg-statio-all-sequences-view"><structname>pg_statio_all_sequences</structname></link> (Bertrand Drouvot, Sami Imseih, Shihao Zhong)
-<ulink url="&commit_baseurl;a5b543258">§</ulink>
-</para>
-
-<para>
-It also appears in the <literal>sys</literal> and <literal>user</literal> view variants.
-</para>
-</listitem>
-
-<!--
-Author: Michael Paquier <michael@paquier.xyz>
-2025-10-08 [b71bae41a] Add stats_reset to pg_stat_user_functions
-Author: Fujii Masao <fujii@postgresql.org>
-2026-03-16 [8fe315f18] Add stats_reset column to pg_statio_all_sequences
--->
-
-<listitem>
-<para>
-Add <structfield>stats_reset</structfield> column to system views <link linkend="pg-stat-user-functions-view"><structname>pg_stat_user_functions</structname></link> and <link linkend="pg-stat-database-conflicts-view"><structname>pg_stat_database_conflicts</structname></link> (Bertrand Drouvot, Shihao Zhong)
-<ulink url="&commit_baseurl;b71bae41a">§</ulink>
-<ulink url="&commit_baseurl;8fe315f18">§</ulink>
-</para>
-</listitem>
-
-<!--
-Author: Andrew Dunstan <andrew@dunslane.net>
-2026-01-01 [f3c9e341c] Add paths of extensions to pg_available_extensions
--->
-
-<listitem>
-<para>
-Add <structfield>location</structfield> column to system views <link linkend="view-pg-available-extensions"><structname>pg_available_extensions</structname></link> and <link linkend="view-pg-available-extension-versions"><structname>pg_available_extension_versions</structname></link> to report the file system directory of extensions (Matheus Alcantara)
-<ulink url="&commit_baseurl;f3c9e341c">§</ulink>
-</para>
-</listitem>
-
-<!--
-Author: Masahiko Sawada <msawada@postgresql.org>
-2025-08-05 [deb674454] Add backup_type column to pg_stat_progress_basebackup.
--->
-
-<listitem>
-<para>
-Add <structfield>backup_type</structfield> column to system view <link linkend="pg-stat-progress-basebackup-view"><structname>pg_stat_progress_basebackup</structname></link> to report the type of backup (Shinya Kato)
-<ulink url="&commit_baseurl;deb674454">§</ulink>
-</para>
-
-<para>
-Possible values are <literal>full</literal> or <literal>incremental</literal>.
-</para>
-</listitem>
-
-<!--
-Author: Michael Paquier <michael@paquier.xyz>
-2026-01-23 [a36164e74] Add WALRCV_CONNECTING state to the WAL receiver
--->
-
-<listitem>
-<para>
-Add <literal>connecting</literal> value to system view column <link linkend="pg-stat-wal-receiver-view"><structname>pg_stat_wal_receiver</structname></link>.<link linkend="pg-stat-wal-receiver-view"><structfield>status</structfield></link> (Xuneng Zhou)
-<ulink url="&commit_baseurl;a36164e74">§</ulink>
-</para>
-</listitem>
-
-<!--
-Author: Michael Paquier <michael@paquier.xyz>
-2025-10-28 [f9a09aa29] Add wal_fpi_bytes to pg_stat_wal and pg_stat_get_backend
--->
-
-<listitem>
-<para>
-Add reporting of the bytes written to <acronym>WAL</acronym> for full page images (Shinya Kato)
-<ulink url="&commit_baseurl;f9a09aa29">§</ulink>
-</para>
-
-<para>
-This is accessible via system view <link linkend="pg-stat-wal-view"><structname>pg_stat_wal</structname></link> and function <link linkend="pg-stat-get-backend-wal"><function>pg_stat_get_backend_wal()</function></link>.
-</para>
-</listitem>
-
-<!--
-Author: Nathan Bossart <nathan@postgresql.org>
-2026-03-17 [3b88e50d6] Add more columns to pg_stats, pg_stats_ext, and pg_stats
--->
-
-<listitem>
-<para>
-Add columns to system views <link linkend="view-pg-stats"><structname>pg_stats</structname></link>, <link linkend="view-pg-stats-ext"><structname>pg_stats_ext</structname></link>, and <link linkend="view-pg-stats-ext-exprs"><structname>pg_stats_ext_exprs</structname></link> (Corey Huinker)
-<ulink url="&commit_baseurl;3b88e50d6">§</ulink>
-</para>
-
-<para>
-Adds table <type>OID</type> and attribute number columns to <link linkend="view-pg-stats"><structname>pg_stats</structname></link>, and table <type>OID</type> and statistics object <type>OID</type> columns to the other two.
-</para>
-</listitem>
-
-<!--
-Author: Michael Paquier <michael@paquier.xyz>
-2026-02-10 [307447e6d] Add information about range type stats to pg_stats_ext_e
--->
-
-<listitem>
-<para>
-Add information about range type <link linkend="sql-createstatistics">extended statistics</link> to system view <link linkend="view-pg-stats-ext-exprs"><structname>pg_stats_ext_exprs</structname></link> (Corey Huinker, Michael Paquier)
-<ulink url="&commit_baseurl;307447e6d">§</ulink>
-</para>
-</listitem>
-
- </itemizedlist>
- </sect4>
-
- <sect4 id="release-19-monitoring">
- <title>Monitoring</title>
-
- <itemizedlist>
-<!--
-Author: Álvaro Herrera <alvherre@kurilemu.de>
-2026-02-09 [38e0190ce] Allow log_min_messages to be set per process type
--->
-
-<listitem>
-<para>
-Allow <link linkend="guc-log-min-messages"><varname>log_min_messages</varname></link> log levels to be specified by process type (Euler Taveira)
-<ulink url="&commit_baseurl;38e0190ce">§</ulink>
-</para>
-
-<para>
-The new format is <replaceable>type</replaceable>:<replaceable>level</replaceable>. A value without a colon controls all process types, allowing backward compatibility.
-</para>
-</listitem>
-
-<!--
-Author: Peter Eisentraut <peter@eisentraut.org>
-2025-10-15 [dd3ae3783] Add log_autoanalyze_min_duration
--->
-
-<listitem>
-<para>
-Add server variable <link linkend="guc-log-autoanalyze-min-duration"><varname>log_autoanalyze_min_duration</varname></link> to log long-running analyze operations by <link linkend="autovacuum">autovacuum</link> operations (Shinya Kato)
-<ulink url="&commit_baseurl;dd3ae3783">§</ulink>
-</para>
-
-<para>
-Server variable <link linkend="guc-log-autovacuum-min-duration"><varname>log_autovacuum_min_duration</varname></link> now only controls logging of vacuum operations by autovacuum.
-</para>
-</listitem>
-
-<!--
-Author: Peter Eisentraut <peter@eisentraut.org>
-2025-09-12 [2aac62be8] Default to log_lock_waits=on
--->
-
-<listitem>
-<para>
-Enable server variable <link linkend="guc-log-lock-waits"><varname>log_lock_waits</varname></link> by default (Laurenz Albe)
-<ulink url="&commit_baseurl;2aac62be8">§</ulink>
-</para>
-</listitem>
-
-<!--
-Author: Tatsuo Ishii <ishii@postgresql.org>
-2025-09-06 [06473f5a3] Allow to log raw parse tree.
--->
-
-<listitem>
-<para>
-Add server variable <link linkend="guc-debug-print-raw-parse"><varname>debug_print_raw_parse</varname></link> to log raw parse trees (Chao Li)
-<ulink url="&commit_baseurl;06473f5a3">§</ulink>
-</para>
-
-<para>
-This is also enabled when the server is started with debug level three and higher.
-</para>
-</listitem>
-
-<!--
-Author: Fujii Masao <fujii@postgresql.org>
-2025-07-22 [112faf137] Log remote NOTICE, WARNING, and similar messages using e
--->
-
-<listitem>
-<para>
-Make messages coming from remote servers appear in the server logs in the same format as local server messages (Vignesh C)
-<ulink url="&commit_baseurl;112faf137">§</ulink>
-</para>
-
-<para>
-These include replication, <xref linkend="postgres-fdw"/>, and <xref linkend="dblink"/> servers.
-</para>
-</listitem>
-
-<!--
-Author: Michael Paquier <michael@paquier.xyz>
-2025-11-03 [ad25744f4] Add wal_fpi_bytes to VACUUM and ANALYZE logs
--->
-
-<listitem>
-<para>
-Add reporting of <acronym>WAL</acronym> <link linkend="guc-full-page-writes">full-page write</link> bytes to <link linkend="sql-vacuum"><command>VACUUM</command></link> and <link linkend="sql-analyze"><command>ANALYZE</command></link> logging (Shinya Kato)
-<ulink url="&commit_baseurl;ad25744f4">§</ulink>
-</para>
-</listitem>
-
-<!--
-Author: Michael Paquier <michael@paquier.xyz>
-2026-02-03 [e05a24c2d] Add two IO wait events for COPY FROM/TO on a pipe/file/p
--->
-
-<listitem>
-<para>
-Add IO wait events for <link linkend="sql-copy"><command>COPY FROM/TO</command></link> on a pipe, file, or program (Nikolay Samokhvalov)
-<ulink url="&commit_baseurl;e05a24c2d">§</ulink>
-</para>
-</listitem>
-
-<!--
-Author: Alexander Korotkov <akorotkov@postgresql.org>
-2026-01-05 [7a39f43d8] Extend xlogwait infrastructure with write and flush wait
--->
-
-<listitem>
-<para>
-Add wait events for <acronym>WAL</acronym> write and flush <link linkend="wal-internals">LSN</link>s (Xuneng Zhou)
-<ulink url="&commit_baseurl;7a39f43d8">§</ulink>
-</para>
-</listitem>
-
-<!--
-Author: Amit Kapila <akapila@postgresql.org>
-2025-10-06 [b93172ca5] Expose sequence page LSN via pg_get_sequence_data.
--->
-
-<listitem>
-<para>
-Have <link linkend="func-pg-get-sequence-data"><function>pg_get_sequence_data()</function></link> return the sequence page <link linkend="wal-internals"><acronym>LSN</acronym></link> (Vignesh C)
-<ulink url="&commit_baseurl;b93172ca5">§</ulink>
-</para>
-</listitem>
-
-<!--
-Author: Michael Paquier <michael@paquier.xyz>
-2025-12-30 [97b101776] Add pg_get_multixact_stats()
--->
-
-<listitem>
-<para>
-Add function <link linkend="functions-info-snapshot"><function>pg_get_multixact_stats()</function></link> to report <link linkend="vacuum-for-multixact-wraparound">multixact</link> activity (Naga Appani)
-<ulink url="&commit_baseurl;97b101776">§</ulink>
-</para>
-</listitem>
-
-<!--
-Author: Nathan Bossart <nathan@postgresql.org>
-2026-03-20 [48f11bfa0] Bump transaction/multixact ID warning limits to 100M.
--->
-
-<listitem>
-<para>
-Issue warnings when the <link linkend="vacuum-for-wraparound">wraparound</link> of xid and multi-xids is less than 100 million (Nathan Bossart)
-<ulink url="&commit_baseurl;48f11bfa0">§</ulink>
-</para>
-
-<para>
-The previous warning was 40 million. Warnings are issued to clients and in the server log.
-</para>
-</listitem>
-
- </itemizedlist>
-
- </sect4>
-
- <sect4 id="release-19-server-config">
- <title>Server Configuration</title>
-
- <itemizedlist>
-<!--
-Author: Daniel Gustafsson <dgustafsson@postgresql.org>
-2026-04-03 [f19c0ecca] Online enabling and disabling of data checksums
-Author: Daniel Gustafsson <dgustafsson@postgresql.org>
-2026-04-08 [b364828f8] doc: Fix data_checksums data type
--->
-
-<listitem>
-<para>
-Allow <link linkend="functions-admin-checksum">online enabling</link> and disabling of <link linkend="checksums">data checksums</link> (Daniel Gustafsson, Magnus Hagander, Tomas Vondra)
-<ulink url="&commit_baseurl;f19c0ecca">§</ulink>
-<ulink url="&commit_baseurl;b364828f8">§</ulink>
-</para>
-
-<para>
-Previously the checksum status could only be changed while the cluster was offline using <link linkend="app-pgchecksums"><application>pg_checksums</application></link>.
-</para>
-</listitem>
-
-<!--
-Author: Nathan Bossart <nathan@postgresql.org>
-2026-03-27 [d7965d65f] Add rudimentary table prioritization to autovacuum.
--->
-
-<listitem>
-<para>
-Add scoring system to control the order that tables are processed by <link linkend="autovacuum">autovacuum</link> (Nathan Bossart)
-<ulink url="&commit_baseurl;d7965d65f">§</ulink>
-</para>
-
-<para>
-The new server variables are <link linkend="guc-autovacuum-freeze-score-weight"><varname>autovacuum_freeze_score_weight</varname></link>, <link linkend="guc-autovacuum-multixact-freeze-score-weight"><varname>autovacuum_multixact_freeze_score_weight</varname></link>, <link linkend="guc-autovacuum-vacuum-score-weight"><varname>autovacuum_vacuum_score_weight</varname></link>, <link linkend="guc-autovacuum-vacuum-insert-score-weight"><varname>vacuum_insert_score_weight</varname></link>, and
-<link linkend="guc-autovacuum-analyze-score-weight"><varname>autovacuum_analyze_score_weight</varname></link>.
-</para>
-</listitem>
-
-<!--
-Author: Daniel Gustafsson <dgustafsson@postgresql.org>
-2026-03-18 [4f433025f] ssl: Serverside SNI support for libpq
--->
-
-<listitem>
-<para>
-Add server-side support for <link linkend="ssl-sni"><acronym>SNI</acronym></link> (Server Name Indication) (Daniel Gustafsson, Jacob Champion)
-<ulink url="&commit_baseurl;4f433025f">§</ulink>
-</para>
-
-<para>
-New configuration file <link linkend="guc-hosts-file"><filename>PGDATA/pg_hosts.conf</filename></link> specifies hostname/key pairs.
-</para>
-</listitem>
-
-<!--
-Author: Jacob Champion <jchampion@postgresql.org>
-2026-03-06 [e982331b5] libpq: Introduce PQAUTHDATA_OAUTH_BEARER_TOKEN_V2
-Author: Jacob Champion <jchampion@postgresql.org>
-2026-03-31 [0af4d402c] libpq: Poison the v2 part of a v1 Bearer request
--->
-
-<listitem>
-<para>
-Add a new <acronym>OAUTH</acronym> flow hook <link linkend="libpq-oauth-authdata-oauth-bearer-token-v2"><literal>PQAUTHDATA_OAUTH_BEARER_TOKEN_V2</literal></link> (Jacob Champion)
-<ulink url="&commit_baseurl;e982331b5">§</ulink>
-<ulink url="&commit_baseurl;0af4d402c">§</ulink>
-</para>
-
-<para>
-This is an improved version of <link linkend="libpq-oauth-authdata-oauth-bearer-token"><literal>PQAUTHDATA_OAUTH_BEARER_TOKEN</literal></link> by adding the issuer identifier and error message specification.
-</para>
-</listitem>
-
-<!--
-Author: Nathan Bossart <nathan@postgresql.org>
-2026-02-23 [d98197602] Allow pg_{read,write}_all_data to access large objects.
--->
-
-<listitem>
-<para>
-Allow roles <link linkend="predefined-role-pg-read-all-data"><literal>pg_read_all_data</literal></link> and <link linkend="predefined-role-pg-read-all-data"><literal>pg_write_all_data</literal></link> to read/write large objects (Nitin Motiani, Nathan Bossart)
-<ulink url="&commit_baseurl;d98197602">§</ulink>
-</para>
-
-<para>
-These roles are designed to allow non-super users to run <link linkend="app-pgdump"><application>pg_dump</application></link>.
-</para>
-</listitem>
-
-<!--
-Author: Michael Paquier <michael@paquier.xyz>
-2026-01-06 [f1e251be8] Allow bgworkers to be terminated for database-related co
--->
-
-<listitem>
-<para>
-Allow background workers to be configured to terminate before database-level operations (Aya Iwata)
-<ulink url="&commit_baseurl;f1e251be8">§</ulink>
-</para>
-
-<para>
-This allows database-level operations to complete more quickly since blocking background workers can now be terminated.
-</para>
-</listitem>
-
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-2025-11-04 [ff4597acd] Allow "SET list_guc TO NULL" to specify setting the GUC
--->
-
-<listitem>
-<para>
-Allow <link linkend="config-setting">server variables</link> that represent lists to be emptied by setting the value to <literal>NULL</literal> (Tom Lane)
-<ulink url="&commit_baseurl;ff4597acd">§</ulink>
-</para>
-</listitem>
-
-<!--
-Author: John Naylor <john.naylor@postgresql.org>
-2025-09-24 [5334620ee] Update GB18030 encoding from version 2000 to 2022
--->
-
-<listitem>
-<para>
-Update <link linkend="multibyte-charset-supported">GB18030 encoding</link> from version 2000 to 2022 (Chao Li, Zheng Tao)
-<ulink url="&commit_baseurl;5334620ee">§</ulink>
-</para>
-
-<para>
-See the commit message for compatibility details.
-</para>
-</listitem>
-
- </itemizedlist>
-
- </sect4>
-
- <sect4 id="release-19-replication">
- <title><link linkend="streaming-replication">Streaming Replication and Recovery</link></title>
-
- <itemizedlist>
-<!--
-Author: Alexander Korotkov <akorotkov@postgresql.org>
-2025-11-05 [447aae13b] Implement WAIT FOR command
-Author: Alexander Korotkov <akorotkov@postgresql.org>
-2026-01-05 [49a181b5d] Add the MODE option to the WAIT FOR LSN command
--->
-
-<listitem>
-<para>
-Add <link linkend="sql-wait-for"><command>WAIT FOR</command></link> command to allow standbys to wait for <link linkend="wal-internals"><acronym>LSN</acronym></link> values to be written, flushed, or replayed (Kartyshov Ivan, Alexander Korotkov, Xuneng Zhou)
-<ulink url="&commit_baseurl;447aae13b">§</ulink>
-<ulink url="&commit_baseurl;49a181b5d">§</ulink>
-</para>
-</listitem>
-
-<!--
-Author: Amit Kapila <akapila@postgresql.org>
-2025-12-15 [0d2d4a0ec] Add retry logic to pg_sync_replication_slots().
--->
-
-<listitem>
-<para>
-Improve function <link linkend="pg-sync-replication-slots"><function>pg_sync_replication_slots()</function></link> to wait for replication synchronization completion (Ajin Cherian, Zhijie Hou)
-<ulink url="&commit_baseurl;0d2d4a0ec">§</ulink>
-</para>
-
-<para>
-Previously, certain synchronization failures would not be reported.
-</para>
-</listitem>
-
-<!--
-Author: Fujii Masao <fujii@postgresql.org>
-2026-04-06 [a8f45dee9] Add wal_sender_shutdown_timeout GUC to limit shutdown wa
--->
-
-<listitem>
-<para>
-Add server variable <link linkend="guc-wal-sender-shutdown-timeout"><varname>wal_sender_shutdown_timeout</varname></link> to limit replica synchronization waits during shutdown (Andrey Silitskiy, Hayato Kuroda)
-<ulink url="&commit_baseurl;a8f45dee9">§</ulink>
-</para>
-
-<para>
-By default, senders still wait forever for synchronization.
-</para>
-</listitem>
-
-<!--
-Author: Fujii Masao <fujii@postgresql.org>
-2026-02-20 [8a6af3ad0] Make GUC wal_receiver_timeout user-settable.
-Author: Fujii Masao <fujii@postgresql.org>
-2026-02-20 [fb80f388f] Add per-subscription wal_receiver_timeout setting.
--->
-
-<listitem>
-<para>
-Allow <link linkend="guc-wal-receiver-timeout"><varname>wal_receiver_timeout</varname></link> to be set per-subscription and user (Fujii Masao)
-<ulink url="&commit_baseurl;8a6af3ad0">§</ulink>
-<ulink url="&commit_baseurl;fb80f388f">§</ulink>
-</para>
-
-<para>
-This allows subscribers to use different <link linkend="guc-wal-receiver-timeout"><varname>wal_receiver_timeout</varname></link> values.
-</para>
-</listitem>
-
-<!--
-Author: Amit Kapila <akapila@postgresql.org>
-2025-09-19 [5b148706c] Add optional pid parameter to pg_replication_origin_sess
--->
-
-<listitem>
-<para>
-Add optional pid parameter to <link linkend="pg-replication-origin-session-setup"><function>pg_replication_origin_session_setup()</function></link> to allow parallelization of <acronym>SQL</acronym>-level replication solutions (Doruk Yilmaz, Hayato Kuroda)
-<ulink url="&commit_baseurl;5b148706c">§</ulink>
-</para>
-</listitem>
-
- </itemizedlist>
-
- </sect4>
-
- <sect4 id="release-19-logical">
- <title><link linkend="logical-replication">Logical Replication</link></title>
-
- <itemizedlist>
-<!--
-Author: Amit Kapila <akapila@postgresql.org>
-2025-10-23 [f0b3573c3] Introduce "REFRESH SEQUENCES" for subscriptions.
-Author: Amit Kapila <akapila@postgresql.org>
-2025-11-05 [5509055d6] Add sequence synchronization for logical replication.
-Author: Amit Kapila <akapila@postgresql.org>
-2025-11-12 [55cefadde] Doc: Add documentation for sequence synchronization.
--->
-
-<listitem>
-<para>
-Allow sequence values stored in subscribers to match the publisher (Vignesh C)
-<ulink url="&commit_baseurl;f0b3573c3">§</ulink>
-<ulink url="&commit_baseurl;5509055d6">§</ulink>
-<ulink url="&commit_baseurl;55cefadde">§</ulink>
-</para>
-
-<para>
-This is enabled during <link linkend="sql-createsubscription"><command>CREATE SUBSCRIPTION</command></link>, <link linkend="sql-altersubscription"><command>ALTER SUBSCRIPTION ... REFRESH PUBLICATION</command></link>, and <link linkend="sql-altersubscription"><command>ALTER SUBSCRIPTION ... REFRESH SEQUENCES</command></link>. The latter only updates values, not sequence
-existence. Function <link linkend="func-pg-get-sequence-data"><function>pg_get_sequence_data()</function></link> allows inspection of sequence synchronization.
-</para>
-</listitem>
-
-<!--
-Author: Amit Kapila <akapila@postgresql.org>
-2025-10-09 [96b378497] Add "ALL SEQUENCES" support to publications.
--->
-
-<listitem>
-<para>
-Allow <link linkend="sql-createpublication"><command>CREATE</command></link>/<link linkend="sql-alterpublication"><command>ALTER PUBLICATION</command></link> to publish all sequences (Vignesh C, Tomas Vondra)
-<ulink url="&commit_baseurl;96b378497">§</ulink>
-</para>
-
-<para>
-This is enabled with the <literal>ALL SEQUENCES</literal> clause.
-</para>
-</listitem>
-
-<!--
-Author: Amit Kapila <akapila@postgresql.org>
-2025-10-23 [f0b3573c3] Introduce "REFRESH SEQUENCES" for subscriptions.
--->
-
-<listitem>
-<para>
-Allow <link linkend="sql-altersubscription"><command>ALTER SUBSCRIPTION</command></link> on publications to synchronize the existence of sequences on subscribers to match the publisher (Vignesh C)
-<ulink url="&commit_baseurl;f0b3573c3">§</ulink>
-</para>
-
-<para>
-This is enabled with the <literal>REFRESH SEQUENCES</literal> clause.
-</para>
-</listitem>
-
-<!--
-Author: Amit Kapila <akapila@postgresql.org>
-2026-03-20 [493f8c643] Add support for EXCEPT TABLE in ALTER PUBLICATION.
-Author: Amit Kapila <akapila@postgresql.org>
-2026-04-01 [6b0550c45] Fix miscellaneous issues in EXCEPT publication clause.
-Author: Amit Kapila <akapila@postgresql.org>
-2026-03-04 [fd366065e] Allow table exclusions in publications via EXCEPT TABLE.
-Author: Amit Kapila <akapila@postgresql.org>
-2026-03-31 [5984ea868] Change syntax of EXCEPT TABLE clause in publication comm
--->
-
-<listitem>
-<para>
-Allow <link linkend="sql-createpublication"><command>CREATE</command></link>/<link linkend="sql-alterpublication"><command>ALTER PUBLICATION</command></link> to exclude some tables (Vignesh C, Shlok Kyal)
-<ulink url="&commit_baseurl;493f8c643">§</ulink>
-<ulink url="&commit_baseurl;6b0550c45">§</ulink>
-<ulink url="&commit_baseurl;fd366065e">§</ulink>
-<ulink url="&commit_baseurl;5984ea868">§</ulink>
-</para>
-
-<para>
-This is controlled with the <literal>EXCEPT</literal> clause, and is useful when specifying <literal>ALL TABLES</literal>.
-</para>
-</listitem>
-
-<!--
-Author: Amit Kapila <akapila@postgresql.org>
-2025-07-23 [228c37086] Preserve conflict-relevant data during logical replicati
-Author: Amit Kapila <akapila@postgresql.org>
-2025-09-15 [0d48d393d] Resume conflict-relevant data retention automatically.
-Author: Amit Kapila <akapila@postgresql.org>
-2025-09-02 [a850be2fe] Add max_retention_duration option to subscriptions.
--->
-
-<listitem>
-<para>
-Add <link linkend="sql-createpublication"><command>CREATE</command></link>/<link linkend="sql-alterpublication"><command>ALTER PUBLICATION</command></link> setting <link linkend="sql-createsubscription-params-with-retain-dead-tuples"><varname>retain_dead_tuples</varname></link> to retain information needed for conflict resolution (Zhijie Hou)
-<ulink url="&commit_baseurl;228c37086">§</ulink>
-<ulink url="&commit_baseurl;0d48d393d">§</ulink>
-<ulink url="&commit_baseurl;a850be2fe">§</ulink>
-</para>
-
-<para>
-Also add setting <link linkend="sql-createsubscription-params-with-max-retention-duration"><varname>max_retention_duration</varname></link> to limit <varname>retain_dead_tuples</varname> retention.
-</para>
-</listitem>
-
-<!--
-Author: Jeff Davis <jdavis@postgresql.org>
-2026-03-06 [8185bb534] CREATE SUBSCRIPTION ... SERVER.
--->
-
-<listitem>
-<para>
-Allow <link linkend="sql-createsubscription"><command>CREATE SUBSCRIPTION</command></link> to use <xref linkend="postgres-fdw"/> foreign data wrapper connection parameters (Jeff Davis)
-<ulink url="&commit_baseurl;8185bb534">§</ulink>
-</para>
-
-<para>
-The connection parameters are referenced via <link linkend="sql-createsubscription"><command>CREATE SUBSCRIPTION ... SERVER</command></link>.
-</para>
-</listitem>
-
-<!--
-Author: Masahiko Sawada <msawada@postgresql.org>
-2025-12-23 [67c20979c] Toggle logical decoding dynamically based on logical slo
--->
-
-<listitem>
-<para>
-When server variable <link linkend="guc-wal-level"><varname>wal_level</varname></link> is <literal>replica</literal>, allow automatic enablement of logical replication when needed (Masahiko Sawada)
-<ulink url="&commit_baseurl;67c20979c">§</ulink>
-</para>
-
-<para>
-New server variable <link linkend="guc-effective-wal-level"><varname>effective_wal_level</varname></link> reports the effective <acronym>WAL</acronym> level.
-</para>
-</listitem>
-
- </itemizedlist>
-
- </sect4>
-
- </sect3>
-
- <sect3 id="release-19-query">
- <title>Query Commands</title>
-
- <itemizedlist>
-<!--
-Author: Peter Eisentraut <peter@eisentraut.org>
-2026-03-16 [2f094e7ac] SQL Property Graph Queries (SQL/PGQ)
-Author: Peter Eisentraut <peter@eisentraut.org>
-2026-03-31 [c5b3253b8] Property references are preferred over regular column re
-Author: Peter Eisentraut <peter@eisentraut.org>
-2026-03-31 [a0dd0702e] Fix cross variable references in graph pattern causing s
--->
-
-<listitem>
-<para>
-Add support for <acronym>SQL</acronym> Property Graph Queries (<acronym>SQL</acronym>/<acronym>PGQ</acronym>) (Peter Eisentraut, Ashutosh Bapat)
-<ulink url="&commit_baseurl;2f094e7ac">§</ulink>
-<ulink url="&commit_baseurl;c5b3253b8">§</ulink>
-<ulink url="&commit_baseurl;a0dd0702e">§</ulink>
-</para>
-
-<para>
-Internally these are processed like views so are written as standard relational queries.
-</para>
-</listitem>
-
-<!--
-Author: Peter Eisentraut <peter@eisentraut.org>
-2026-04-01 [8e72d914c] Add UPDATE/DELETE FOR PORTION OF
-Author: Peter Eisentraut <peter@eisentraut.org>
-2026-04-07 [b6ccd30d8] Add isolation tests for UPDATE/DELETE FOR PORTION OF
--->
-
-<listitem>
-<para>
-Add <literal>FOR PORTION OF</literal> clause to <link linkend="sql-update"><command>UPDATE</command></link> and <link linkend="sql-delete"><command>DELETE</command></link> (Paul A. Jungwirth)
-<ulink url="&commit_baseurl;8e72d914c">§</ulink>
-<ulink url="&commit_baseurl;b6ccd30d8">§</ulink>
-</para>
-
-<para>
-This allows operations on temporal ranges.
-</para>
-</listitem>
-
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-2025-09-29 [ef38a4d97] Add GROUP BY ALL.
--->
-
-<listitem>
-<para>
-Add <literal>GROUP BY ALL</literal> syntax to <link linkend="sql-select"><command>SELECT</command></link> to automatically group all non-aggregate and non-window-function target list parameters (David Christensen)
-<ulink url="&commit_baseurl;ef38a4d97">§</ulink>
-</para>
-</listitem>
-
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-2026-03-06 [415100aa6] Support grouping-expression references and GROUPING() in
--->
-
-<listitem>
-<para>
-Allow <literal>GROUP BY</literal> to process target list subqueries that have expressions referencing non-subquery columns (Tom Lane)
-<ulink url="&commit_baseurl;415100aa6">§</ulink>
-</para>
-
-<para>
-Also fix a bug in how <link linkend="functions-grouping-table"><function>GROUPING()</function></link> handles target list subquery aliases.
-</para>
-</listitem>
-
-<!--
-Author: Tatsuo Ishii <ishii@postgresql.org>
-2025-10-03 [25a30bbd4] Add IGNORE NULLS/RESPECT NULLS option to Window function
--->
-
-<listitem>
-<para>
-Allow <link linkend="functions-window">window functions</link> to ignore NULLs with the <literal>IGNORE NULLS</literal>/<literal>RESPECT NULLS</literal> clause (Oliver Ford, Tatsuo Ishii)
-<ulink url="&commit_baseurl;25a30bbd4">§</ulink>
-</para>
-
-<para>
-Supported window functions are <function>lead()</function>, <function>lag()</function>, <function>first_value()</function>, <function>last_value()</function>, and <function>nth_value()</function>.
-</para>
-</listitem>
-
-<!--
-Author: Dean Rasheed <dean.a.rasheed@gmail.com>
-2026-02-12 [88327092f] Add support for INSERT ... ON CONFLICT DO SELECT.
--->
-
-<listitem>
-<para>
-Add support for <link linkend="sql-insert"><command>INSERT ... ON CONFLICT DO SELECT ... RETURNING</command></link> (Andreas Karlsson, Marko Tiikkaja, Viktor Holmberg)
-<ulink url="&commit_baseurl;88327092f">§</ulink>
-</para>
-
-<para>
-This allows conflicting rows to be returned, and optionally locked with <literal>FOR UPDATE</literal>/<literal>SHARE</literal>.
-</para>
-</listitem>
-
- </itemizedlist>
-
- </sect3>
-
- <sect3 id="release-19-utility">
- <title>Utility Commands</title>
-
- <itemizedlist>
-<!--
-Author: Álvaro Herrera <alvherre@kurilemu.de>
-2026-03-10 [ac58465e0] Introduce the REPACK command
--->
-
-<listitem>
-<para>
-Add <link linkend="sql-repack"><command>REPACK</command></link> command which replaces <link linkend="sql-vacuum"><command>VACUUM FULL</command></link> and <link linkend="sql-cluster"><command>CLUSTER</command></link> (Antonin Houska)
-<ulink url="&commit_baseurl;ac58465e0">§</ulink>
-</para>
-
-<para>
-The two former commands did similar things, but with confusing names, so unify them as <link linkend="sql-repack"><command>REPACK</command></link>. The old commands have been retained for compatibility.
-</para>
-</listitem>
-
-<!--
-Author: Álvaro Herrera <alvherre@kurilemu.de>
-2026-04-06 [28d534e2a] Add CONCURRENTLY option to REPACK
-Author: Álvaro Herrera <alvherre@kurilemu.de>
-2026-04-07 [8fb95a8ab] doc: Add an example of REPACK (CONCURRENTLY)
-Author: Álvaro Herrera <alvherre@kurilemu.de>
-2026-04-07 [e76d8c749] Reserve replication slots specifically for REPACK
--->
-
-<listitem>
-<para>
-Allow <link linkend="sql-repack"><command>REPACK</command></link> to rebuild tables without access-exclusive locking (Antonin Houska, Mihail Nikalayeu, Álvaro Herrera)
-<ulink url="&commit_baseurl;28d534e2a">§</ulink>
-<ulink url="&commit_baseurl;8fb95a8ab">§</ulink>
-<ulink url="&commit_baseurl;e76d8c749">§</ulink>
-</para>
-
-<para>
-This is enabled via the <literal>CONCURRENTLY</literal> option. Server variable <link linkend="guc-max-repack-replication-slots"><varname>max_repack_replication_slots</varname></link> was also added.
-</para>
-</listitem>
-
-<!--
-Author: Alexander Korotkov <akorotkov@postgresql.org>
-2025-12-14 [f2e4cc427] Implement ALTER TABLE ... MERGE PARTITIONS ... command
-Author: Alexander Korotkov <akorotkov@postgresql.org>
-2025-12-14 [4b3d17362] Implement ALTER TABLE ... SPLIT PARTITION ... command
--->
-
-<listitem>
-<para>
-Allow partitions to be merged and split using <link linkend="sql-altertable"><command>ALTER TABLE ... MERGE/SPLIT PARTITIONS</command></link> (Dmitry Koval, Alexander Korotkov, Tender Wang, Richard Guo, Dagfinn Ilmari Mannsåker, Fujii Masao, Jian He)
-<ulink url="&commit_baseurl;f2e4cc427">§</ulink>
-<ulink url="&commit_baseurl;4b3d17362">§</ulink>
-</para>
-</listitem>
-
-<!--
-Author: Nathan Bossart <nathan@postgresql.org>
-2026-03-19 [dd1398f13] Allow choosing specific grantors via GRANT/REVOKE ... GR
--->
-
-<listitem>
-<para>
-Allow <link linkend="sql-grant"><command>GRANT</command></link>/<link linkend="sql-revoke"><command>REVOKE</command></link> to specify the effective role performing the privileges adjustment (Nathan Bossart, Tom Lane)
-<ulink url="&commit_baseurl;dd1398f13">§</ulink>
-</para>
-
-<para>
-The <literal>GRANTED BY</literal> clause controls this.
-</para>
-</listitem>
-
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-2026-04-06 [d51697484] Support more object types within CREATE SCHEMA.
--->
-
-<listitem>
-<para>
-Allow <link linkend="sql-createschema"><command>CREATE SCHEMA</command></link> to create more types of objects in newly-created schemas (Kirill Reshke, Jian He, Tom Lane)
-<ulink url="&commit_baseurl;d51697484">§</ulink>
-</para>
-</listitem>
-
-<!--
-Author: Nathan Bossart <nathan@postgresql.org>
-2025-07-11 [a4f126516] Add option list to CHECKPOINT command.
-Author: Nathan Bossart <nathan@postgresql.org>
-2025-07-11 [2f698d7f4] Add MODE option to CHECKPOINT command.
-Author: Nathan Bossart <nathan@postgresql.org>
-2025-07-11 [8d33fbacb] Add FLUSH_UNLOGGED option to CHECKPOINT command.
--->
-
-<listitem>
-<para>
-Allow <link linkend="sql-checkpoint"><command>CHECKPOINT</command></link> to accept a list of options (Christoph Berg)
-<ulink url="&commit_baseurl;a4f126516">§</ulink>
-<ulink url="&commit_baseurl;2f698d7f4">§</ulink>
-<ulink url="&commit_baseurl;8d33fbacb">§</ulink>
-</para>
-
-<para>
-Supported options are <literal>MODE</literal> and <literal>FLUSH_UNLOGGED</literal>.
-</para>
-</listitem>
-
-<!--
-Author: Jeff Davis <jdavis@postgresql.org>
-2026-03-06 [8185bb534] CREATE SUBSCRIPTION ... SERVER.
-Author: Jeff Davis <jdavis@postgresql.org>
-2026-04-09 [90630ec42] Document new catalog columns, missed in commit 8185bb534
--->
-
-<listitem>
-<para>
-Add <literal>CONNECTION</literal> clause to <link linkend="sql-createforeigndatawrapper"><command>CREATE FOREIGN DATA WRAPPER</command></link> to specify a function to be called for subscription connection parameters (Jeff Davis, Noriyoshi Shinoda)
-<ulink url="&commit_baseurl;8185bb534">§</ulink>
-<ulink url="&commit_baseurl;90630ec42">§</ulink>
-</para>
-</listitem>
-
-<!--
-Author: Masahiko Sawada <msawada@postgresql.org>
-2025-12-30 [736f754ee] Add dead items memory usage to VACUUM (VERBOSE) and auto
-Author: Masahiko Sawada <msawada@postgresql.org>
-2026-03-19 [adcdbe938] Add parallel vacuum worker usage to VACUUM (VERBOSE) and
--->
-
-<listitem>
-<para>
-Add memory usage and parallelism reporting to <link linkend="sql-vacuum"><command>VACUUM (VERBOSE)</command></link> and <link linkend="autovacuum">autovacuum</link> logs (Tatsuya Kawata, Daniil Davydov)
-<ulink url="&commit_baseurl;736f754ee">§</ulink>
-<ulink url="&commit_baseurl;adcdbe938">§</ulink>
-</para>
-</listitem>
-
- </itemizedlist>
-
- <sect4 id="release-19-constraints">
- <title><link linkend="ddl-constraints">Constraints</link></title>
-
- <itemizedlist>
-<!--
-Author: Andrew Dunstan <andrew@dunslane.net>
-2026-03-11 [342051d73] Add support for altering CHECK constraint enforceability
--->
-
-<listitem>
-<para>
-Allow <link linkend="sql-altertable"><command>ALTER TABLE ALTER CONSTRAINT ... [NOT] ENFORCED</command></link> for <literal>CHECK</literal> constraints (Jian He)
-<ulink url="&commit_baseurl;342051d73">§</ulink>
-</para>
-
-<para>
-Previously enforcement changes were only supported for foreign key constraints.
-</para>
-</listitem>
-
-<!--
-Author: Peter Eisentraut <peter@eisentraut.org>
-2026-02-24 [f80bedd52] Allow ALTER COLUMN SET EXPRESSION on virtual columns wit
--->
-
-<listitem>
-<para>
-Allow <link linkend="sql-altertable"><command>ALTER TABLE ... COLUMN SET EXPRESSION</command></link> to succeed on virtual columns with <literal>CHECK</literal> constraints (Jian He)
-<ulink url="&commit_baseurl;f80bedd52">§</ulink>
-</para>
-
-<para>
-This was previously prohibited.
-</para>
-</listitem>
-
- </itemizedlist>
- </sect4>
-
- <sect4 id="release-19-copy">
- <title><xref linkend="sql-copy"/></title>
-
- <itemizedlist>
-<!--
-Author: Fujii Masao <fujii@postgresql.org>
-2025-07-03 [bc2f348e8] Support multi-line headers in COPY FROM command.
--->
-
-<listitem>
-<para>
-Allow multiple headers lines to be skipped by <link linkend="sql-copy"><command>COPY FROM</command></link> (Shinya Kato, Fujii Masao)
-<ulink url="&commit_baseurl;bc2f348e8">§</ulink>
-</para>
-
-<para>
-Previously only a single header line could be skipped.
-</para>
-</listitem>
-
-<!--
-Author: Peter Eisentraut <peter@eisentraut.org>
-2026-03-03 [2a525cc97] Add COPY (on_error set_null) option
--->
-
-<listitem>
-<para>
-Allow <link linkend="sql-copy"><command>COPY FROM</command></link> to set invalid input values to <literal>NULL</literal> (Jian He, Kirill Reshke)
-<ulink url="&commit_baseurl;2a525cc97">§</ulink>
-</para>
-
-<para>
-This is done using the <link linkend="sql-copy"><command>COPY</command></link> option <literal>ON_ERROR SET_NULL</literal>.
-</para>
-</listitem>
-
-<!--
-Author: Andrew Dunstan <andrew@dunslane.net>
-2026-03-20 [7dadd38cd] json format for COPY TO
-Author: Andrew Dunstan <andrew@dunslane.net>
-2026-03-20 [4c0390ac5] Add option force_array for COPY JSON FORMAT
--->
-
-<listitem>
-<para>
-Allow <link linkend="sql-copy"><command>COPY TO</command></link> to output <acronym>JSON</acronym> format (Joe Conway, Jian He, Andrew Dunstan)
-<ulink url="&commit_baseurl;7dadd38cd">§</ulink>
-<ulink url="&commit_baseurl;4c0390ac5">§</ulink>
-</para>
-
-<para>
-<acronym>JSON</acronym> output can also be a single <acronym>JSON</acronym> array using the <link linkend="sql-copy"><command>COPY</command></link> option <literal>FORCE_ARRAY</literal>.
-</para>
-</listitem>
-
-<!--
-Author: Masahiko Sawada <msawada@postgresql.org>
-2025-10-20 [4bea91f21] Support COPY TO for partitioned tables.
-Author: Masahiko Sawada <msawada@postgresql.org>
-2025-11-20 [266543a62] Use "COPY table TO" for partitioned tables in initial ta
--->
-
-<listitem>
-<para>
-Allow <link linkend="sql-copy"><command>COPY TO</command></link> to process partitioned tables (Jian He, Ajin Cherian)
-<ulink url="&commit_baseurl;4bea91f21">§</ulink>
-<ulink url="&commit_baseurl;266543a62">§</ulink>
-</para>
-
-<para>
-Previously <link linkend="sql-copy"><command>COPY (SELECT ...)</command></link> had to be used to output partitioned tables. This also improves logical replication table synchronization.
-</para>
-</listitem>
-
- </itemizedlist>
- </sect4>
-
- <sect4 id="release-19-explain">
- <title><xref linkend="sql-explain"/></title>
-
- <itemizedlist>
-<!--
-Author: Tomas Vondra <tomas.vondra@postgresql.org>
-2026-04-07 [681daed93] Add EXPLAIN (IO) infrastructure with BitmapHeapScan supp
-Author: Tomas Vondra <tomas.vondra@postgresql.org>
-2026-04-07 [3b1117d6e] Add EXPLAIN (IO) instrumentation for SeqScan
-Author: Tomas Vondra <tomas.vondra@postgresql.org>
-2026-04-07 [e157fe6f7] Add EXPLAIN (IO) instrumentation for TidRangeScan
--->
-
-<listitem>
-<para>
-Add <link linkend="sql-explain"><command>EXPLAIN ANALYZE</command></link> option <literal>IO</literal> to report asynchronous IO activity (Tomas Vondra)
-<ulink url="&commit_baseurl;681daed93">§</ulink>
-<ulink url="&commit_baseurl;3b1117d6e">§</ulink>
-<ulink url="&commit_baseurl;e157fe6f7">§</ulink>
-</para>
-</listitem>
-
-<!--
-Author: Michael Paquier <michael@paquier.xyz>
-2025-10-30 [5ab0b6a24] Expose wal_fpi_bytes in EXPLAIN (WAL)
--->
-
-<listitem>
-<para>
-Add reporting of <acronym>WAL</acronym> <link linkend="guc-full-page-writes">full-page write</link> bytes to <link linkend="sql-explain"><command>EXPLAIN (ANALYZE, WAL)</command></link> output (Shinya Kato)
-<ulink url="&commit_baseurl;5ab0b6a24">§</ulink>
-</para>
-</listitem>
-
-<!--
-Author: David Rowley <drowley@postgresql.org>
-2025-07-29 [4bc62b868] Display Memoize planner estimates in EXPLAIN
--->
-
-<listitem>
-<para>
-Add Memoize cache and lookup estimates to <link linkend="sql-explain"><command>EXPLAIN</command></link> output (Ilia Evdokimov, Lukas Fittl)
-<ulink url="&commit_baseurl;4bc62b868">§</ulink>
-</para>
-
-<para>
-This can show why Memoize was chosen.
-</para>
-</listitem>
-
- </itemizedlist>
-
- </sect4>
-
- </sect3>
-
- <sect3 id="release-19-datatypes">
- <title>Data Types</title>
-
- <itemizedlist>
-<!--
-Author: Michael Paquier <michael@paquier.xyz>
-2026-01-07 [b139bd3b6] Add data type oid8, 64-bit unsigned identifier
--->
-
-<listitem>
-<para>
-Add the 64-bit unsigned data type <link linkend="datatype-oid"><type>oid8</type></link> (Michael Paquier)
-<ulink url="&commit_baseurl;b139bd3b6">§</ulink>
-</para>
-</listitem>
-
-<!--
-Author: Andrew Dunstan <andrew@dunslane.net>
-2026-04-02 [bd4f879a9] Add additional jsonpath string methods
--->
-
-<listitem>
-<para>
-Add more <link linkend="datatype-jsonpath"><type>jsonpath</type></link> string methods (Florents Tselai, David E. Wheeler)
-<ulink url="&commit_baseurl;bd4f879a9">§</ulink>
-</para>
-
-<para>
-They are <link linkend="functions-sqljson-path-operators"><function>ltrim()</function></link>, <link linkend="functions-sqljson-path-operators"><function>rtrim()</function></link>, <link linkend="functions-sqljson-path-operators"><function>btrim()</function></link>, <link linkend="functions-sqljson-path-operators"><function>lower()</function></link>, <link linkend="functions-sqljson-path-operators"><function>upper()</function></link>, <link linkend="functions-sqljson-path-operators"><function>initcap()</function></link>, <link linkend="functions-sqljson-path-operators"><function>replace()</function></link>, and <link linkend="functions-sqljson-path-operators"><function>split_part()</function></link>. These are immutable like their non-<acronym>JSON</acronym> string variants.
-</para>
-</listitem>
-
-<!--
-Author: Masahiko Sawada <msawada@postgresql.org>
-2026-03-19 [ba21f5bf8] Allow explicit casting between bytea and uuid.
--->
-
-<listitem>
-<para>
-Allow casts between <link linkend="datatype-binary"><type>bytea</type></link> and <link linkend="datatype-uuid"><type>uuid</type></link> data types (Dagfinn Ilmari Mannsåker, Aleksander Alekseev)
-<ulink url="&commit_baseurl;ba21f5bf8">§</ulink>
-</para>
-</listitem>
-
-<!--
-Author: Nathan Bossart <nathan@postgresql.org>
-2025-06-30 [bd09f024a] Add new OID alias type regdatabase.
--->
-
-<listitem>
-<para>
-Add ability to cast between database names and <link linkend="datatype-oid"><type>oid8</type></link>s using <link linkend="datatype-oid"><type>regdatabase</type></link> (Ian Lawrence Barwick)
-<ulink url="&commit_baseurl;bd09f024a">§</ulink>
-</para>
-</listitem>
-
-<!--
-Author: Andres Freund <andres@anarazel.de>
-2026-04-05 [df6949ccf] Add tid_block() and tid_offset() accessor functions
--->
-
-<listitem>
-<para>
-Add functions <link linkend="functions-tid"><function>tid_block()</function></link> and <link linkend="functions-tid"><function>tid_offset()</function></link> to extract block numbers and offsets from <link linkend="datatype-oid"><type>tid</type></link> values (Ayush Tiwari)
-<ulink url="&commit_baseurl;df6949ccf">§</ulink>
-</para>
-</listitem>
-
- </itemizedlist>
-
- </sect3>
-
- <sect3 id="release-19-functions">
- <title>Functions</title>
-
- <itemizedlist>
-<!--
-Author: Dean Rasheed <dean.a.rasheed@gmail.com>
-2025-09-09 [faf071b55] Add date and timestamp variants of random(min, max).
-Author: Dean Rasheed <dean.a.rasheed@gmail.com>
-2025-09-11 [9c24111c4] doc: Improve description of new random(min, max) functio
--->
-
-<listitem>
-<para>
-Add <link linkend="datatype-datetime"><type>date</type></link>, <link linkend="datatype-datetime"><type>timestamp</type></link>, and <link linkend="datatype-datetime"><type>timestamptz</type></link> versions of <link linkend="functions-math-random-table"><literal>random(min, max)</literal></link> (Damien Clochard, Dean Rasheed)
-<ulink url="&commit_baseurl;faf071b55">§</ulink>
-<ulink url="&commit_baseurl;9c24111c4">§</ulink>
-</para>
-</listitem>
-
-<!--
-Author: Masahiko Sawada <msawada@postgresql.org>
-2026-03-25 [497c1170c] Add base32hex support to encode() and decode() functions
-Author: Masahiko Sawada <msawada@postgresql.org>
-2026-03-27 [e752a2ccc] doc: Clarify collation requirements for base32hex sortab
-Author: Daniel Gustafsson <dgustafsson@postgresql.org>
-2025-09-20 [e1d917182] Add support for base64url encoding and decoding
--->
-
-<listitem>
-<para>
-Allow <link linkend="functions-binarystring-conversions"><function>encode()</function></link> and <link linkend="functions-binarystring-conversions"><function>decode()</function></link> to process data in <literal>base64url</literal> and <literal>base32hex</literal> formats (Andrey Borodin, Aleksander Alekseev, Florents Tselai)
-<ulink url="&commit_baseurl;497c1170c">§</ulink>
-<ulink url="&commit_baseurl;e752a2ccc">§</ulink>
-<ulink url="&commit_baseurl;e1d917182">§</ulink>
-</para>
-
-<para>
-This format retains ordering, unlike <literal>base32</literal>.
-</para>
-</listitem>
-
-<!--
-Author: Peter Eisentraut <peter@eisentraut.org>
-2025-11-22 [5eed8ce50] Add range_minus_multi and multirange_minus_multi functio
--->
-
-<listitem>
-<para>
-Add functions to return a set of ranges resulting from range subtraction (Paul A. Jungwirth)
-<ulink url="&commit_baseurl;5eed8ce50">§</ulink>
-</para>
-
-<para>
-The functions are <link linkend="range-functions-table"><function>range_minus_multi()</function></link> and <link linkend="multirange-functions-table"><function>multirange_minus_multi()</function></link>. This is useful to represent range subtraction results with gaps.
-</para>
-</listitem>
-
-<!--
-Author: Michael Paquier <michael@paquier.xyz>
-2025-10-22 [2b75c38b7] Add error_on_null(), checking if the input is the null v
--->
-
-<listitem>
-<para>
-Add function <link linkend="functions-comparison-func-table"><function>error_on_null()</function></link> to return the supplied parameter, or error on <literal>NULL</literal> input (Joel Jacobson)
-<ulink url="&commit_baseurl;2b75c38b7">§</ulink>
-</para>
-</listitem>
-
-<!--
-Author: Andrew Dunstan <andrew@dunslane.net>
-2026-03-17 [3b4c2b9db] Allow IS JSON predicate to work with domain types
--->
-
-<listitem>
-<para>
-Allow <link linkend="functions-sqljson-misc"><literal>IS JSON</literal></link> to work on domains defined over supported base types (Jian He)
-<ulink url="&commit_baseurl;3b4c2b9db">§</ulink>
-</para>
-
-<para>
-The supported base types are <link linkend="datatype-character"><type>TEXT</type></link>, <link linkend="datatype-json"><type>JSON</type></link>, <link linkend="datatype-json"><type>JSONB</type></link>, and <link linkend="datatype-binary"><type>BYTEA</type></link>.
-</para>
-</listitem>
-
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-2026-01-05 [7dc95cc3b] Update to latest Snowball sources.
--->
-
-<listitem>
-<para>
-Add <link linkend="textsearch-snowball-dictionary">full text stemmers</link> for Polish and Esperanto (Tom Lane)
-<ulink url="&commit_baseurl;7dc95cc3b">§</ulink>
-</para>
-
-<para>
-The Dutch stemmer has also been updated. The old Dutch stemmer is available via <link linkend="textsearch-snowball-dictionary"><literal>dutch_porter</literal></link>.
-</para>
-</listitem>
-
-<!--
-Author: Andrew Dunstan <andrew@dunslane.net>
-2026-04-05 [76e514ebb] Add pg_get_role_ddl() function
--->
-
-<listitem>
-<para>
-Add function <link linkend="functions-get-object-ddl-table"><function>pg_get_role_ddl()</function></link> to output role creation commands (Mario Gonzalez, Bryan Green, Andrew Dunstan, Euler Taveira)
-<ulink url="&commit_baseurl;76e514ebb">§</ulink>
-</para>
-</listitem>
-
-<!--
-Author: Andrew Dunstan <andrew@dunslane.net>
-2026-04-05 [b99fd9fd7] Add pg_get_tablespace_ddl() function
--->
-
-<listitem>
-<para>
-Add function <link linkend="functions-get-object-ddl-table"><function>pg_get_tablespace_ddl()</function></link> to output tablespace creation commands (Nishant Sharma, Manni Wood, Andrew Dunstan, Euler Taveira)
-<ulink url="&commit_baseurl;b99fd9fd7">§</ulink>
-</para>
-</listitem>
-
-<!--
-Author: Andrew Dunstan <andrew@dunslane.net>
-2026-04-05 [a4f774cf1] Add pg_get_database_ddl() function
--->
-
-<listitem>
-<para>
-Add function <link linkend="functions-get-object-ddl-table"><function>pg_get_database_ddl()</function></link> to output database creation commands (Akshay Joshi, Andrew Dunstan, Euler Taveira)
-<ulink url="&commit_baseurl;a4f774cf1">§</ulink>
-</para>
-</listitem>
-
-<!--
-Author: Peter Eisentraut <peter@eisentraut.org>
-2025-08-21 [53eff471c] PL/Python: Add event trigger support
--->
-
-<listitem>
-<para>
-Allow event triggers to be written using <link linkend="plpython"><application>PL/Python</application></link> (Euler Taveira, Dimitri Fontaine)
-<ulink url="&commit_baseurl;53eff471c">§</ulink>
-</para>
-</listitem>
-
- </itemizedlist>
-
- </sect3>
-
- <sect3 id="release-19-libpq">
- <title><link linkend="libpq">Libpq</link></title>
-
- <itemizedlist>
-<!--
-Author: Michael Paquier <michael@paquier.xyz>
-2025-07-13 [092f3c63e] libpq: Add "servicefile" connection option
--->
-
-<listitem>
-<para>
-Allow libpq connections to specify a service file via <link linkend="libpq-connect-servicefile"><literal>servicefile</literal></link> (Torsten Förtsch, Ryo Kanbayashi)
-<ulink url="&commit_baseurl;092f3c63e">§</ulink>
-</para>
-</listitem>
-
-<!--
-Author: Jacob Champion <jchampion@postgresql.org>
-2026-02-06 [d8d7c5dc8] libpq: Prepare for protocol grease during 19beta
--->
-
-<listitem>
-<para>
-Add special libpq protocol version 3.9999 for version testing (Jelte Fennema-Nio)
-<ulink url="&commit_baseurl;d8d7c5dc8">§</ulink>
-</para>
-</listitem>
-
-<!--
-Author: Jacob Champion <jchampion@postgresql.org>
-2026-03-05 [b8d768583] libpq: Add PQgetThreadLock() to mirror PQregisterThreadL
--->
-
-<listitem>
-<para>
-Add libpq function <link linkend="libpq-threading"><function>PQgetThreadLock()</function></link> to retrieve the current locking callback (Jacob Champion)
-<ulink url="&commit_baseurl;b8d768583">§</ulink>
-</para>
-</listitem>
-
-<!--
-Author: Jacob Champion <jchampion@postgresql.org>
-2026-03-30 [993368113] libpq: Add oauth_ca_file option to change CAs without de
--->
-
-<listitem>
-<para>
-Add libpq connection parameter <link linkend="libpq-connect-oauth-ca-file"><varname>oauth_ca_file</varname></link> to specify the <acronym>OAUTH</acronym> certificate authority file (Jonathan Gonzalez V., Jacob Champion)
-<ulink url="&commit_baseurl;993368113">§</ulink>
-</para>
-
-<para>
-This can also be set via the <link linkend="libpq-envars"><envar>PGOAUTHCAFILE</envar></link> environment variable. The default is to use <application>curl</application>'s built-in certificates.
-</para>
-</listitem>
-
-<!--
-Author: Jacob Champion <jchampion@postgresql.org>
-2026-04-07 [b977bd308] oauth: Allow validators to register custom HBA options
--->
-
-<listitem>
-<para>
-Allow custom <acronym>OAUTH</acronym> validators to register custom <link linkend="auth-pg-hba-conf"><filename>pg_hba.conf</filename></link> authentication options (Jacob Champion)
-<ulink url="&commit_baseurl;b977bd308">§</ulink>
-</para>
-</listitem>
-
-<!--
-Author: Jacob Champion <jchampion@postgresql.org>
-2026-04-03 [d438a3659] oauth: Let validators provide failure DETAILs
--->
-
-<listitem>
-<para>
-Allow <acronym>OAUTH</acronym> validators to supply failure details (Jacob Champion)
-<ulink url="&commit_baseurl;d438a3659">§</ulink>
-</para>
-
-<para>
-This is done by setting the <link linkend="oauth-validator-callback-validate"><structname>ValidatorModuleResult</structname></link> structure member error_detail.
-</para>
-</listitem>
-
-<!--
-Author: Jacob Champion <jchampion@postgresql.org>
-2026-04-07 [6d00fb904] libpq: Split PGOAUTHDEBUG=UNSAFE into multiple options
--->
-
-<listitem>
-<para>
-Allow libpq environment variable <link linkend="libpq-envars"><envar>PGOAUTHDEBUG</envar></link> to specify particular debug options (Zsolt Parragi, Jacob Champion)
-<ulink url="&commit_baseurl;6d00fb904">§</ulink>
-</para>
-
-<para>
-The <literal>UNSAFE</literal> option still generates all debugging output.
-</para>
-</listitem>
-
- </itemizedlist>
-
- </sect3>
-
- <sect3 id="release-19-psql">
- <title><xref linkend="app-psql"/></title>
-
- <itemizedlist>
-<!--
-Author: Nathan Bossart <nathan@postgresql.org>
-2025-10-28 [b3ce55f41] Add psql PROMPT variable for search_path.
--->
-
-<listitem>
-<para>
-Allow the search path to appear in the <link linkend="app-psql"><application>psql</application></link> prompt via <link linkend="app-psql-prompting-S"><literal>%S</literal></link> (Florents Tselai)
-<ulink url="&commit_baseurl;b3ce55f41">§</ulink>
-</para>
-
-<para>
-This works when <link linkend="app-psql"><application>psql</application></link> is connected to <productname>PostgreSQL</productname> 18 or later.
-</para>
-</listitem>
-
-<!--
-Author: Fujii Masao <fujii@postgresql.org>
-2026-02-03 [dddbbc253] psql: Add %i prompt escape to indicate hot standby statu
--->
-
-<listitem>
-<para>
-Allow the hot standby status to appear in the <link linkend="app-psql"><application>psql</application></link> prompt via <link linkend="app-psql-prompting-i"><literal>%i</literal></link> (Jim Jones)
-<ulink url="&commit_baseurl;dddbbc253">§</ulink>
-</para>
-</listitem>
-
-<!--
-Author: Fujii Masao <fujii@postgresql.org>
-2026-02-28 [aecc55866] psql: Show comments in \dRp+, \dRs+, and \dX+ psql meta-
--->
-
-<listitem>
-<para>
-Modify <link linkend="app-psql"><application>psql</application></link> backslash commands to show comments for publications, subscriptions, and extended statistics (Fujii Masao, Jim Jones)
-<ulink url="&commit_baseurl;aecc55866">§</ulink>
-</para>
-
-<para>
-The modified commands are <link linkend="app-psql-meta-command-drp"><literal>\dRp+</literal></link>, <link linkend="app-psql-meta-command-drs"><literal>\dRs+</literal></link>, and <link linkend="app-psql-meta-command-dx-uc"><literal>\dX+</literal></link>.
-</para>
-</listitem>
-
-<!--
-Author: Álvaro Herrera <alvherre@kurilemu.de>
-2025-11-03 [645cb44c5] Add \pset options for boolean value display
--->
-
-<listitem>
-<para>
-Allow control over how booleans are displayed in <link linkend="app-psql"><application>psql</application></link> (David G. Johnston)
-<ulink url="&commit_baseurl;645cb44c5">§</ulink>
-</para>
-
-<para>
-The \pset variables are <link linkend="app-psql-meta-command-pset-display-true"><varname>display_true</varname></link> and <link linkend="app-psql-meta-command-pset-display-false"><varname>display_false</varname></link>.
-</para>
-</listitem>
-
-<!--
-Author: Michael Paquier <michael@paquier.xyz>
-2025-07-14 [6b1c4d326] psql: Add variable SERVICEFILE
--->
-
-<listitem>
-<para>
-Add <link linkend="app-psql"><application>psql</application></link> variable <link linkend="app-psql-variables-servicefile"><varname>SERVICEFILE</varname></link> to reference the service file location (Ryo Kanbayashi)
-<ulink url="&commit_baseurl;6b1c4d326">§</ulink>
-</para>
-</listitem>
-
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-2025-10-07 [27da1a796] Improve psql's ability to select pager mode accurately.
--->
-
-<listitem>
-<para>
-Allow <link linkend="app-psql"><application>psql</application></link> to more accurately determine if the <link linkend="app-psql-meta-command-pset-pager">pager</link> is needed (Erik Wienhold)
-<ulink url="&commit_baseurl;27da1a796">§</ulink>
-</para>
-</listitem>
-
-<!--
-Author: Masahiko Sawada <msawada@postgresql.org>
-2026-03-25 [5fa7837d9] psql: Fix tab completion for FOREIGN DATA WRAPPER and SU
-Author: Masahiko Sawada <msawada@postgresql.org>
-2025-12-22 [c6a7d3bab] psql: Improve tab completion for COPY option lists.
-Author: Fujii Masao <fujii@postgresql.org>
-2025-11-23 [81966c545] psql: Improve tab-completion for PREPARE.
-Author: Alexander Korotkov <akorotkov@postgresql.org>
-2025-11-12 [a1f7f91be] Add tab completion support for the WAIT FOR command
-Author: Masahiko Sawada <msawada@postgresql.org>
-2025-11-04 [6d2ff1de4] psql: Add tab completion for COPY ... PROGRAM.
-Author: Masahiko Sawada <msawada@postgresql.org>
-2025-11-04 [02fd47dbf] psql: Improve tab completion for COPY ... STDIN/STDOUT.
-Author: Fujii Masao <fujii@postgresql.org>
-2025-10-24 [14ee8e640] psql: Improve tab completion for large objects.
-Author: Fujii Masao <fujii@postgresql.org>
-2025-07-15 [ff0bcb248] psql: Fix tab-completion after GRANT/REVOKE on LARGE OBJ
-Author: Fujii Masao <fujii@postgresql.org>
-2025-07-09 [86c539c5a] psql: Improve psql tab completion for GRANT/REVOKE on la
-Author: Álvaro Herrera <alvherre@kurilemu.de>
-2025-07-03 [a604affad] Add tab-completion for ALTER TABLE not-nulls
-Author: Fujii Masao <fujii@postgresql.org>
-2025-06-30 [a4c10de92] psql: Improve tab completion for COPY command.
-Author: Masahiko Sawada <msawada@postgresql.org>
-2026-01-07 [28c4b8a05] psql: Add tab completion for pstdin and pstdout in \copy
-Author: Fujii Masao <fujii@postgresql.org>
-2026-03-02 [0bf7d4ca9] psql: Add tab completion for DELETE ... USING.
-Author: Álvaro Herrera <alvherre@kurilemu.de>
-2026-03-02 [344b572e3] psql: Tab-complete ALTER ROLE ... IN DATABASE SET/RESET
--->
-
-<listitem>
-<para>
-Add or improve <link linkend="app-psql"><application>psql</application></link> tab completion (Yamaguchi Atsuo, Yugo Nagata, Haruna Miwa, Xuneng Zhou, Dagfinn Ilmari Mannsåker, Fujii Masao, Álvaro Herrera, Jian He, Tatsuya Kawata, Ian Lawrence Barwick, Vasuki M)
-<ulink url="&commit_baseurl;5fa7837d9">§</ulink>
-<ulink url="&commit_baseurl;c6a7d3bab">§</ulink>
-<ulink url="&commit_baseurl;81966c545">§</ulink>
-<ulink url="&commit_baseurl;a1f7f91be">§</ulink>
-<ulink url="&commit_baseurl;6d2ff1de4">§</ulink>
-<ulink url="&commit_baseurl;02fd47dbf">§</ulink>
-<ulink url="&commit_baseurl;14ee8e640">§</ulink>
-<ulink url="&commit_baseurl;ff0bcb248">§</ulink>
-<ulink url="&commit_baseurl;86c539c5a">§</ulink>
-<ulink url="&commit_baseurl;a604affad">§</ulink>
-<ulink url="&commit_baseurl;a4c10de92">§</ulink>
-<ulink url="&commit_baseurl;28c4b8a05">§</ulink>
-<ulink url="&commit_baseurl;0bf7d4ca9">§</ulink>
-<ulink url="&commit_baseurl;344b572e3">§</ulink>
-</para>
-</listitem>
-
- </itemizedlist>
-
- </sect3>
-
- <sect3 id="release-19-server-apps">
- <title>Server Applications</title>
-
- <itemizedlist>
-<!--
-Author: Fujii Masao <fujii@postgresql.org>
-2025-08-20 [6429e5b77] vacuumdb: Make vacuumdb - -analyze-only process partition
-Author: Fujii Masao <fujii@postgresql.org>
-2026-06-03 [95b6ec52e] vacuumdb: Fix - -analyze-in-stages skipping partitioned t
--->
-
-<listitem>
-<para>
-Change <link linkend="app-vacuumdb"><application>vacuumdb</application></link>'s <option>--analyze-only</option> and <option>--analyze-in-stages</option> options to analyze partitioned tables when no targets are specified (Laurenz Albe, Mircea Cadariu, Chao Li)
-<ulink url="&commit_baseurl;6429e5b77">§</ulink>
-<ulink url="&commit_baseurl;95b6ec52e">§</ulink>
-</para>
-
-<para>
-Previously it skipped partitioned tables. This now matches the behavior of <link linkend="sql-analyze"><command>ANALYZE</command></link>.
-</para>
-</listitem>
-
-<!--
-Author: Nathan Bossart <nathan@postgresql.org>
-2025-12-09 [d107176d2] vacuumdb: Add - -dry-run.
--->
-
-<listitem>
-<para>
-Allow <link linkend="app-vacuumdb"><application>vacuumdb</application></link> to report its commands without running them using option <option>--dry-run</option> (Corey Huinker)
-<ulink url="&commit_baseurl;d107176d2">§</ulink>
-</para>
-</listitem>
-
-<!--
-Author: Andrew Dunstan <andrew@dunslane.net>
-2026-03-20 [b3cf461b3] pg_verifybackup: Enable WAL parsing for tar-format backu
--->
-
-<listitem>
-<para>
-Allow <link linkend="app-pgverifybackup"><application>pg_verifybackup</application></link> to read <acronym>WAL</acronym> files stored in <application>tar</application> archives (Amul Sul)
-<ulink url="&commit_baseurl;b3cf461b3">§</ulink>
-</para>
-
-<para>
-Add option <option>--wal-path</option> as an alias for the existing and deprecated <option>--wal-directory</option> option.
-</para>
-</listitem>
-
-<!--
-Author: Andrew Dunstan <andrew@dunslane.net>
-2026-03-20 [b15c15139] pg_waldump: Add support for reading WAL from tar archive
--->
-
-<listitem>
-<para>
-Allow <link linkend="pgwaldump"><application>pg_waldump</application></link> to read <acronym>WAL</acronym> files stored in <application>tar</application> archives (Amul Sul)
-<ulink url="&commit_baseurl;b15c15139">§</ulink>
-</para>
-</listitem>
-
-<!--
-Author: Nathan Bossart <nathan@postgresql.org>
-2025-09-08 [3bcfcd815] pg_upgrade: Transfer pg_largeobject_metadata's files whe
-Author: Nathan Bossart <nathan@postgresql.org>
-2026-02-09 [158408fef] pg_upgrade: Fix handling of pg_largeobject_metadata.
-Author: Nathan Bossart <nathan@postgresql.org>
-2025-07-18 [161a3e8b6] pg_upgrade: Use COPY for large object metadata.
-Author: Nathan Bossart <nathan@postgresql.org>
-2026-02-16 [b33f75361] pg_upgrade: Use COPY for LO metadata for upgrades from
--->
-
-<listitem>
-<para>
-Improve performance of <link linkend="pgupgrade"><application>pg_upgrade</application></link> copying large object metadata (Nathan Bossart)
-<ulink url="&commit_baseurl;3bcfcd815">§</ulink>
-<ulink url="&commit_baseurl;158408fef">§</ulink>
-<ulink url="&commit_baseurl;161a3e8b6">§</ulink>
-<ulink url="&commit_baseurl;b33f75361">§</ulink>
-</para>
-
-<para>
-Various methods are used, depending on the <productname>PostgreSQL</productname> version of the old cluster.
-</para>
-</listitem>
-
-<!--
-Author: Nathan Bossart <nathan@postgresql.org>
-2025-07-30 [412036c22] Teach pg_upgrade to handle in-place tablespaces.
--->
-
-<listitem>
-<para>
-Allow <link linkend="pgupgrade"><application>pg_upgrade</application></link> to process non-default tablespaces stored in the <envar>PGDATA</envar> directory (Nathan Bossart)
-<ulink url="&commit_baseurl;412036c22">§</ulink>
-</para>
-
-<para>
-Previously such tablespaces generated an error.
-</para>
-</listitem>
-
-<!--
-Author: Fujii Masao <fujii@postgresql.org>
-2025-11-07 [0ab208fa5] pgbench: Add - -continue-on-error option.
--->
-
-<listitem>
-<para>
-Add <link linkend="pgbench"><application>pgbench</application></link> option <option>--continue-on-error</option> to continue after <acronym>SQL</acronym> errors (Rintaro Ikeda, Yugo Nagata, Fujii Masao)
-<ulink url="&commit_baseurl;0ab208fa5">§</ulink>
-</para>
-</listitem>
-
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-2025-07-08 [0b096e379] Change pg_test_timing to measure in nanoseconds not micr
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-2025-07-09 [9dcc76414] Minor tweaks for pg_test_timing.
--->
-
-<listitem>
-<para>
-Improve the usability of <link linkend="pgtesttiming"><application>pg_test_timing</application></link> (Hannu Krosing, Tom Lane)
-<ulink url="&commit_baseurl;0b096e379">§</ulink>
-<ulink url="&commit_baseurl;9dcc76414">§</ulink>
-</para>
-
-<para>
-Report nanoseconds instead of microseconds. In addition to histogram output, output a second table that reports exact timings, with an optional cutoff set by <option>--cutoff</option>.
-</para>
-</listitem>
-
- </itemizedlist>
-
- <sect4 id="release-19-pgdump">
- <title><link
- linkend="app-pgdump"><application>pg_dump</application></link>/<link
- linkend="app-pg-dumpall"><application>pg_dumpall</application></link>/<link
- linkend="app-pgrestore"><application>pg_restore</application></link></title>
-
- <itemizedlist>
-<!--
-Author: Michael Paquier <michael@paquier.xyz>
-2026-01-27 [c32fb29e9] Include extended statistics data in pg_dump
--->
-
-<listitem>
-<para>
-Allow <link linkend="app-pgdump"><application>pg_dump</application></link> to include restorable extended statistics (Corey Huinker)
-<ulink url="&commit_baseurl;c32fb29e9">§</ulink>
-</para>
-</listitem>
-
- </itemizedlist>
-
- </sect4>
-
- <sect4 id="release-19-pg-createsubscriber">
- <title><link linkend="app-pgcreatesubscriber"><application>pg_createsubscriber</application></link></title>
-
- <itemizedlist>
-<!--
-Author: Amit Kapila <akapila@postgresql.org>
-2025-12-17 [85ddcc2f4] Support existing publications in pg_createsubscriber.
--->
-
-<listitem>
-<para>
-Allow <link linkend="app-pgcreatesubscriber"><application>pg_createsubscriber</application></link> to ignore specified publications that already exist (Shubham Khanna)
-<ulink url="&commit_baseurl;85ddcc2f4">§</ulink>
-</para>
-
-<para>
-Previously this generated an error.
-</para>
-</listitem>
-
-<!--
-Author: Michael Paquier <michael@paquier.xyz>
-2026-01-08 [639352d90] pg_createsubscriber: Improve handling of automated recov
--->
-
-<listitem>
-<para>
-Change the way <link linkend="app-pgcreatesubscriber"><application>pg_createsubscriber</application></link> stores recovery parameters (Alyona Vinter)
-<ulink url="&commit_baseurl;639352d90">§</ulink>
-</para>
-
-<para>
-Changes are stored in optionally-included <filename>pg_createsubscriber.conf</filename> rather than directly in <filename>postgresql.auto.conf</filename>.
-</para>
-</listitem>
-
-<!--
-Author: Amit Kapila <akapila@postgresql.org>
-2026-03-25 [6b5b7eae3] pg_createsubscriber: Add -l/- -logdir option to redirect
--->
-
-<listitem>
-<para>
-Add <link linkend="app-pgcreatesubscriber"><application>pg_createsubscriber</application></link> option <option>-l</option>/<option>--logdir</option> to redirect output to files (Gyan Sreejith, Hayato Kuroda)
-<ulink url="&commit_baseurl;6b5b7eae3">§</ulink>
-</para>
-</listitem>
-
- </itemizedlist>
-
- </sect4>
-
- </sect3>
-
- <sect3 id="release-19-source-code">
- <title>Source Code</title>
-
- <itemizedlist>
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-2026-02-23 [ecae09725] Cope with AIX's alignment woes by using _Pragma("pack").
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-2026-02-23 [4a1b05caa] Restore AIX support.
--->
-
-<listitem>
-<para>
-Restore support for <link linkend="installation-notes-aix"><systemitem class="osname">AIX</systemitem></link> (Aditya Kamath, Srirama Kucherlapati, Peter Eisentraut)
-<ulink url="&commit_baseurl;ecae09725">§</ulink>
-<ulink url="&commit_baseurl;4a1b05caa">§</ulink>
-</para>
-
-<para>
-This uses <application>gcc</application> and only supports 64-bit builds.
-</para>
-</listitem>
-
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-2026-03-14 [0123ce131] Switch the semaphore API on Solaris to unnamed POSIX.
--->
-
-<listitem>
-<para>
-Change <link linkend="installation-notes-solaris"><systemitem class="osname">Solaris</systemitem></link> to use unnamed <acronym>POSIX</acronym> semaphores (Tom Lane)
-<ulink url="&commit_baseurl;0123ce131">§</ulink>
-</para>
-
-<para>
-Previously it used System V semaphores.
-</para>
-</listitem>
-
-<!--
-Author: Peter Eisentraut <peter@eisentraut.org>
-2025-07-01 [8fd9bb1d9] Enable MSVC conforming preprocessor
--->
-
-<listitem>
-<para>
-Require <link linkend="installation-notes-visual-studio"><application>Visual Studio 2019</application></link> or later (Peter Eisentraut)
-<ulink url="&commit_baseurl;8fd9bb1d9">§</ulink>
-</para>
-</listitem>
-
-<!--
-Author: Peter Eisentraut <peter@eisentraut.org>
-2026-01-14 [2bc60f862] Enable Python Limited API for PL/Python on MSVC
--->
-
-<listitem>
-<para>
-Allow <link linkend="installation-notes-visual-studio"><productname>MSVC</productname></link> to create <link linkend="plpython"><application>PL/Python</application></link> using the Python Limited <acronym>API</acronym> (Bryan Green)
-<ulink url="&commit_baseurl;2bc60f862">§</ulink>
-</para>
-</listitem>
-
-<!--
-Author: Nathan Bossart <nathan@postgresql.org>
-2026-01-07 [a516b3f00] MSVC: Support building for AArch64.
--->
-
-<listitem>
-<para>
-Allow building on AArch64 using <link linkend="installation-notes-visual-studio"><productname>MSVC</productname></link> (Niyas Sait, Greg Burd, Dave Cramer)
-<ulink url="&commit_baseurl;a516b3f00">§</ulink>
-</para>
-</listitem>
-
-<!--
-Author: Álvaro Herrera <alvherre@kurilemu.de>
-2026-02-24 [65707ed9a] Add backtrace support for Windows using DbgHelp API
--->
-
-<listitem>
-<para>
-Allow execution stack backtraces on <link linkend="installation-notes-visual-studio"><application>Windows</application></link> using <literal>DbgHelp</literal> (Bryan Green)
-<ulink url="&commit_baseurl;65707ed9a">§</ulink>
-</para>
-</listitem>
-
-<!--
-Author: Peter Eisentraut <peter@eisentraut.org>
-2025-08-26 [f5e0186f8] Raise C requirement to C11
-Author: Peter Eisentraut <peter@eisentraut.org>
-2025-09-11 [4fbe01514] Remove checks for no longer supported GCC versions
--->
-
-<listitem>
-<para>
-Change the supported C language version to C11 (Peter Eisentraut)
-<ulink url="&commit_baseurl;f5e0186f8">§</ulink>
-<ulink url="&commit_baseurl;4fbe01514">§</ulink>
-</para>
-
-<para>
-Previously C99 was used.
-</para>
-</listitem>
-
-<!--
-Author: Peter Eisentraut <peter@eisentraut.org>
-2026-04-01 [76f4b92ba] Use standard C23 and C++ attributes if available
--->
-
-<listitem>
-<para>
-Use standard C23 and C++ attributes if available (Peter Eisentraut)
-<ulink url="&commit_baseurl;76f4b92ba">§</ulink>
-</para>
-</listitem>
-
-<!--
-Author: John Naylor <john.naylor@postgresql.org>
-2026-04-04 [5e13b0f24] Use AVX2 for calculating page checksums where available
--->
-
-<listitem>
-<para>
-Use <acronym>AVX2</acronym> <acronym>CPU</acronym> instructions for calculating <link linkend="checksums">page checksums</link> (Matthew Sterrett, Andrew Kim)
-<ulink url="&commit_baseurl;5e13b0f24">§</ulink>
-</para>
-</listitem>
-
-<!--
-Author: John Naylor <john.naylor@postgresql.org>
-2026-04-04 [fbc57f2bc] Compute CRC32C on ARM using the Crypto Extension where a
--->
-
-<listitem>
-<para>
-Use <productname>ARM</productname> Crypto Extension to Compute CRC32C (John Naylor)
-<ulink url="&commit_baseurl;fbc57f2bc">§</ulink>
-</para>
-</listitem>
-
-<!--
-Author: Nathan Bossart <nathan@postgresql.org>
-2025-10-06 [ec8719ccb] Optimize hex_encode() and hex_decode() using SIMD.
--->
-
-<listitem>
-<para>
-Change <link linkend="functions-binarystring"><function>hex_encode()</function></link> and <link linkend="functions-binarystring"><function>hex_decode()</function></link> to use <acronym>SIMD</acronym> <acronym>CPU</acronym> instructions (Nathan Bossart, Chiranmoy Bhattacharya)
-<ulink url="&commit_baseurl;ec8719ccb">§</ulink>
-</para>
-</listitem>
-
-<!--
-Author: Peter Eisentraut <peter@eisentraut.org>
-2025-07-02 [f039c2244] meson: Increase minimum version to 0.57.2
--->
-
-<listitem>
-<para>
-Require <link linkend="install-meson"><application>Meson</application></link> version 0.57.2 or later (Peter Eisentraut)
-<ulink url="&commit_baseurl;f039c2244">§</ulink>
-</para>
-</listitem>
-
-<!--
-Author: Peter Eisentraut <peter@eisentraut.org>
-2026-02-23 [78727dcba] meson: allow disabling building/installation of static l
--->
-
-<listitem>
-<para>
-Add <application>Meson</application> option to build both shared and static libraries, or only shared (Peter Eisentraut)
-<ulink url="&commit_baseurl;78727dcba">§</ulink>
-</para>
-</listitem>
-
-<!--
-Author: Peter Eisentraut <peter@eisentraut.org>
-2026-03-20 [57ee39795] Update Unicode data to Unicode 17.0.0
--->
-
-<listitem>
-<para>
-Update <link linkend="collation-managing-standard">Unicode</link> data to version 17.0.0 (Peter Eisentraut)
-<ulink url="&commit_baseurl;57ee39795">§</ulink>
-</para>
-</listitem>
-
-<!--
-Author: Robert Haas <rhaas@postgresql.org>
-2025-10-08 [94f3ad396] Add planner_setup_hook and planner_shutdown_hook.
-Author: Robert Haas <rhaas@postgresql.org>
-2026-01-28 [4020b370f] Allow for plugin control over path generation strategies
--->
-
-<listitem>
-<para>
-Add hooks <literal>planner_setup_hook</literal>, <literal>planner_shutdown_hook</literal>, <literal>joinrel_setup_hook</literal>, and <literal>join_path_setup_hook</literal> (Robert Haas)
-<ulink url="&commit_baseurl;94f3ad396">§</ulink>
-<ulink url="&commit_baseurl;4020b370f">§</ulink>
-</para>
-</listitem>
-
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-2025-11-22 [b140c8d7a] Add SupportRequestInlineInFrom planner support request.
--->
-
-<listitem>
-<para>
-Allow extensions to replace <link linkend="xfunc-sql-functions-returning-set">set-returning functions</link> in the <literal>FROM</literal> clause with <acronym>SQL</acronym> queries (Paul A. Jungwirth)
-<ulink url="&commit_baseurl;b140c8d7a">§</ulink>
-</para>
-</listitem>
-
-<!--
-Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
-2025-12-09 [bd8d9c9bd] Widen MultiXactOffset to 64 bits
--->
-
-<listitem>
-<para>
-Make <link linkend="functions-info-snapshot">multixid members</link> 64-bit (Maxim Orlov)
-<ulink url="&commit_baseurl;bd8d9c9bd">§</ulink>
-</para>
-</listitem>
-
-<!--
-Author: Nathan Bossart <nathan@postgresql.org>
-2026-03-30 [bab2f27ea] Remove bits* typedefs.
--->
-
-<listitem>
-<para>
-Change function prototypes to use <literal>uint*</literal> instead of <literal>bit*</literal> typedefs (Nathan Bossart)
-<ulink url="&commit_baseurl;bab2f27ea">§</ulink>
-</para>
-</listitem>
-
-<!--
-Author: Álvaro Herrera <alvherre@kurilemu.de>
-2026-04-07 [0d3dba38c] Allow logical replication snapshots to be database-speci
--->
-
-<listitem>
-<para>
-Allow <link linkend="logicaldecoding-pgoutput">logical decoding plugins</link> to specify if they do not access shared catalogs (Antonin Houska)
-<ulink url="&commit_baseurl;0d3dba38c">§</ulink>
-</para>
-</listitem>
-
-<!--
-Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
-2026-04-06 [283e823f9] Introduce a new mechanism for registering shared memory
--->
-
-<listitem>
-<para>
-Add simplified and improved shared memory registration function <link linkend="xfunc-shared-addin-at-startup"><function>ShmemRequestStruct()</function></link> (Heikki Linnakangas, Ashutosh Bapat)
-<ulink url="&commit_baseurl;283e823f9">§</ulink>
-</para>
-
-<para>
-Functions <link linkend="xfunc-shared-addin-at-startup"><function>ShmemInitStruct()</function></link> and <link linkend="xfunc-shared-addin-at-startup"><function>ShmemInitHash()</function></link> remain for backward compatibility.
-</para>
-</listitem>
-
-<!--
-Author: Daniel Gustafsson <dgustafsson@postgresql.org>
-2025-11-26 [b3fe098d3] Add GUC to show EXEC_BACKEND state
--->
-
-<listitem>
-<para>
-Add server variable <link linkend="guc-debug-exec-backend"><varname>debug_exec_backend</varname></link> to report how parameters are passed to new backends (Daniel Gustafsson)
-<ulink url="&commit_baseurl;b3fe098d3">§</ulink>
-</para>
-</listitem>
-
-<!--
-Author: Peter Eisentraut <peter@eisentraut.org>
-2025-11-05 [e4d8a2af0] doc: Add section for temporal tables
--->
-
-<listitem>
-<para>
-Add documentation section about <link linkend="ddl-temporal-tables">temporal tables</link> (Paul A. Jungwirth)
-<ulink url="&commit_baseurl;e4d8a2af0">§</ulink>
-</para>
-</listitem>
-
-<!--
-Author: Michael Paquier <michael@paquier.xyz>
-2026-03-12 [02976b0a1] doc: Document variables for path substitution in SQL tes
--->
-
-<listitem>
-<para>
-Document the environment variables that control the <link linkend="regress-run-path-substitution">regression tests</link> (Michael Paquier)
-<ulink url="&commit_baseurl;02976b0a1">§</ulink>
-</para>
-</listitem>
-
-<!--
-Author: Peter Eisentraut <peter@eisentraut.org>
-2026-03-03 [b30656ce0] doc: Add restart on failure to example systemd file
--->
-
-<listitem>
-<para>
-Update documented <link linkend="server-start">systemd example</link> to include a restart setting (Andrew Jackson)
-<ulink url="&commit_baseurl;b30656ce0">§</ulink>
-</para>
-</listitem>
-
- </itemizedlist>
-
- </sect3>
-
- <sect3 id="release-19-modules">
- <title>Additional Modules</title>
-
- <itemizedlist>
-<!--
-Author: Robert Haas <rhaas@postgresql.org>
-2026-03-12 [5883ff30b] Add pg_plan_advice contrib module.
-Author: Robert Haas <rhaas@postgresql.org>
-2026-03-26 [6455e55b0] pg_plan_advice: Invent DO_NOT_SCAN(relation_identifier).
--->
-
-<listitem>
-<para>
-Add <xref linkend="pgplanadvice"/> module to stabilize and control planner decisions (Robert Haas)
-<ulink url="&commit_baseurl;5883ff30b">§</ulink>
-<ulink url="&commit_baseurl;6455e55b0">§</ulink>
-</para>
-</listitem>
-
-<!--
-Author: Robert Haas <rhaas@postgresql.org>
-2026-04-06 [e8ec19aa3] Add pg_stash_advice contrib module.
-Author: Robert Haas <rhaas@postgresql.org>
-2026-04-07 [c10edb102] pg_stash_advice: Allow stashed advice to be persisted to
--->
-
-<listitem>
-<para>
-Add extension <xref linkend="pgstashadvice"/> to allow per-query-id advice to be specified (Robert Haas, Lukas Fittl)
-<ulink url="&commit_baseurl;e8ec19aa3">§</ulink>
-<ulink url="&commit_baseurl;c10edb102">§</ulink>
-</para>
-</listitem>
-
-<!--
-Author: Michael Paquier <michael@paquier.xyz>
-2025-07-02 [bee23ea4d] Show sizes of FETCH queries as constants in pg_stat_stat
--->
-
-<listitem>
-<para>
-Show sizes of <link linkend="sql-fetch"><command>FETCH</command></link> queries as constants in <xref linkend="pgstatstatements"/> (Sami Imseih)
-<ulink url="&commit_baseurl;bee23ea4d">§</ulink>
-</para>
-
-<para>
-Fetches of different sizes will now be grouped together in <xref linkend="pgstatstatements"/> output.
-</para>
-</listitem>
-
-<!--
-Author: Michael Paquier <michael@paquier.xyz>
-2025-07-31 [3357471cf] pg_stat_statements: Add counters for generic and custom
--->
-
-<listitem>
-<para>
-Add <link linkend="sql-prepare">generic and custom plan</link> counts to <xref linkend="pgstatstatements"/> (Sami Imseih)
-<ulink url="&commit_baseurl;3357471cf">§</ulink>
-</para>
-</listitem>
-
-<!--
-Author: Michael Paquier <michael@paquier.xyz>
-2025-11-24 [4b203d499] pg_buffercache: Add pg_buffercache_os_pages
--->
-
-<listitem>
-<para>
-Refactor <xref linkend="pgbuffercache"/> reporting of shared memory mapping (Bertrand Drouvot)
-<ulink url="&commit_baseurl;4b203d499">§</ulink>
-</para>
-
-<para>
-New function <function>pg_buffercache_os_pages()</function> and system view <structname>pg_buffercache_os_pages</structname> allow reporting of shared memory mapping; the function optionally includes <acronym>NUMA</acronym> details. Function
-<function>pg_buffercache_numa_pages()</function> remains for backward compatibility.
-</para>
-</listitem>
-
-<!--
-Author: Michael Paquier <michael@paquier.xyz>
-2025-11-28 [9ccc049df] pg_buffercache: Add pg_buffercache_mark_dirty{,_relation
--->
-
-<listitem>
-<para>
-Add functions to <xref linkend="pgbuffercache"/> to mark buffers as dirty (Nazir Bilal Yavuz)
-<ulink url="&commit_baseurl;9ccc049df">§</ulink>
-</para>
-
-<para>
-The functions are <function>pg_buffercache_mark_dirty()</function>, <function>pg_buffercache_mark_dirty_relation()</function>, and <function>pg_buffercache_mark_dirty_all()</function>.
-</para>
-</listitem>
-
-<!--
-Author: Alexander Korotkov <akorotkov@postgresql.org>
-2025-07-18 [62c3b4cd9] Support for deparsing of ArrayCoerceExpr node in contrib
--->
-
-<listitem>
-<para>
-Allow pushdown of array comparisons in <link linkend="sql-prepare">prepared statements</link> to <xref linkend="postgres-fdw"/> foreign servers (Alexander Pyhalov)
-<ulink url="&commit_baseurl;62c3b4cd9">§</ulink>
-</para>
-</listitem>
-
-<!--
-Author: Etsuro Fujita <efujita@postgresql.org>
-2026-04-08 [28972b6fc] Add support for importing statistics from remote servers
--->
-
-<listitem>
-<para>
-Allow the retrieval of statistics from <link linkend="sql-createforeigndatawrapper">foreign data wrapper servers</link> (Corey Huinker, Etsuro Fujita)
-<ulink url="&commit_baseurl;28972b6fc">§</ulink>
-</para>
-
-<para>
-This is enabled for <xref linkend="postgres-fdw"/> by using the option <literal>restore_stats</literal>. The default is for <link linkend="sql-analyze"><command>ANALYZE</command></link> to retrieve rows from the remote server to locally generate statistics.
-</para>
-</listitem>
-
-<!--
-Author: Fujii Masao <fujii@postgresql.org>
-2026-01-22 [26cb14aea] file_fdw: Support multi-line HEADER option.
--->
-
-<listitem>
-<para>
-Allow <xref linkend="file-fdw"/> to read files or program output that uses multi-line headers (Shinya Kato)
-<ulink url="&commit_baseurl;26cb14aea">§</ulink>
-</para>
-</listitem>
-
-<!--
-Author: Tomas Vondra <tomas.vondra@postgresql.org>
-2026-04-07 [61c36a34a] auto_explain: Add new GUC auto_explain.log_io
--->
-
-<listitem>
-<para>
-Add server variable <varname>auto_explain.log_io</varname> to add IO reporting to <link linkend="auto-explain"><application>auto_explain</application></link> (Tomas Vondra)
-<ulink url="&commit_baseurl;61c36a34a">§</ulink>
-</para>
-</listitem>
-
-<!--
-Author: Robert Haas <rhaas@postgresql.org>
-2026-04-06 [e972dff6c] auto_explain: Add new GUC, auto_explain.log_extension_op
--->
-
-<listitem>
-<para>
-Allow <link linkend="auto-explain"><application>auto_explain</application></link> to add extension-specific <link linkend="sql-explain"><command>EXPLAIN</command></link> options via server variable <varname>auto_explain.log_extension_options</varname> (Robert Haas)
-<ulink url="&commit_baseurl;e972dff6c">§</ulink>
-</para>
-</listitem>
-
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-2025-07-03 [e2b64fcef] Add cross-type comparisons to contrib/btree_gin.
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-2025-07-03 [fc896821c] Add more cross-type comparisons to contrib/btree_gin.
--->
-
-<listitem>
-<para>
-Change <xref linkend="btree-gin"/> to support all btree-supported cross-type comparisons (Tom Lane)
-<ulink url="&commit_baseurl;e2b64fcef">§</ulink>
-<ulink url="&commit_baseurl;fc896821c">§</ulink>
-</para>
-</listitem>
-
-<!--
-Author: Michael Paquier <michael@paquier.xyz>
-2026-03-11 [4c910f3bb] bloom: Optimize bitmap scan path with streaming read
-Author: Michael Paquier <michael@paquier.xyz>
-2026-03-12 [d841ca2d1] bloom: Optimize VACUUM and bulk-deletion with streaming
--->
-
-<listitem>
-<para>
-Improve performance of <xref linkend="bloom"/> indexes by using streaming reads (Xuneng Zhou)
-<ulink url="&commit_baseurl;4c910f3bb">§</ulink>
-<ulink url="&commit_baseurl;d841ca2d1">§</ulink>
-</para>
-</listitem>
-
-<!--
-Author: Michael Paquier <michael@paquier.xyz>
-2026-03-13 [213f0079b] pgstattuple: Optimize btree and hash index functions wit
-Author: Michael Paquier <michael@paquier.xyz>
-2026-03-14 [ae58189a4] pgstattuple: Optimize pgstattuple_approx() with streamin
--->
-
-<listitem>
-<para>
-Improve performance of <xref linkend="pgstattuple"/> by using streaming reads (Xuneng Zhou)
-<ulink url="&commit_baseurl;213f0079b">§</ulink>
-<ulink url="&commit_baseurl;ae58189a4">§</ulink>
-</para>
-</listitem>
-
-<!--
-Author: Peter Eisentraut <peter@eisentraut.org>
-2026-01-12 [e39ece034] Make dmetaphone collation-aware
--->
-
-<listitem>
-<para>
-Allow <xref linkend="fuzzystrmatch"/>'s <function>dmetaphone()</function> to use single-byte encodings beyond <acronym>ASCII</acronym> (Peter Eisentraut)
-<ulink url="&commit_baseurl;e39ece034">§</ulink>
-</para>
-</listitem>
-
-<!--
-Author: Michael Paquier <michael@paquier.xyz>
-2026-02-05 [3c5ec35de] oid2name: Add relation path to the information provided
--->
-
-<listitem>
-<para>
-Modify <link linkend="oid2name"><application>oid2name</application></link> <option>--extended</option> to report the relation file path (David Bidoc)
-<ulink url="&commit_baseurl;3c5ec35de">§</ulink>
-</para>
-</listitem>
-
- </itemizedlist>
-
- </sect3>
-
- </sect2>
-
- <sect2 id="release-19-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><emphasis>fill in later</emphasis></member>
- </simplelist>
- </sect2>
-
-</sect1>