<formalpara>
<title>Release date:</title>
- <para>2026-??-??</para>
+ <para>2026-??-??, AS OF 2026-04-13</para>
</formalpara>
- <para>
- This is just a placeholder for now.
- </para>
+ <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 password_expiration_warning_threshold 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 md5_password_warnings. MD5 passwords were marked marked as deprecated in Postgres 18.
+</para>
+</listitem>
+
+<!--
+Author: Thomas Munro <tmunro@postgresql.org>
+2026-04-08 [a1643d40b] Remove RADIUS support.
+-->
+
+<listitem>
+<para>
+Remove RADIUS support (Thomas Munro)
+<ulink url="&commit_baseurl;a1643d40b">§</ulink>
+</para>
+
+<para>
+Postgres only supported RADIUS over UDP, 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 standard_conforming_strings to always be "on" in the database server (Tom Lane)
+<ulink url="&commit_baseurl;457620845">§</ulink>
+</para>
+
+<para>
+Server variable escape_string_warning has been removed as unnecessary. Client applications still support "standard_conforming_strings = off" for compatibility with old servers.
+</para>
+</listitem>
+
+<!--
+Author: Andrew Dunstan <andrew@dunslane.net>
+2026-02-23 [b380a56a3] Disallow CR and LF in database, role, and tablespace nam
+-->
+
+<listitem>
+<para>
+Prevent carriage returns and line feeds in database, role, and tablespace names (Mahendra Singh Thalor)
+<ulink url="&commit_baseurl;b380a56a3">§</ulink>
+</para>
+
+<para>
+This was changed to avoid security problems. pg_upgrade will also disallow upgrading from clusters that use such names.
+</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 inet and cidr data types from btree_gist to GiST (Tom Lane)
+<ulink url="&commit_baseurl;b3b0b4571">§</ulink>
+<ulink url="&commit_baseurl;b352d3d80">§</ulink>
+</para>
+
+<para>
+The btree_gist inet/cidr opclasses are broken because they can exclude rows that should be returned. Pg_upgrade will fail to upgrade if btree_gist inet/cidr indexes exist in the old
+server.
+</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 CREATE SCHEMA (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. Postgres 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 COPY FROM ... WHERE (Tom Lane)
+<ulink url="&commit_baseurl;21c69dc73">§</ulink>
+</para>
+
+<para>
+The values of such columns were not well-defined.
+</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 READ ONLY and DEFERRABLE status to postgres_fdw sessions (Etsuro Fujita)
+<ulink url="&commit_baseurl;de28140de">§</ulink>
+</para>
+
+<para>
+This means READ ONLY transactions can no longer modify rows processed by postgres_fdw sessions.
+</para>
+</listitem>
+
+<!--
+Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
+2026-04-03 [79534f906] Change default of max_locks_per_transactions to 128
+-->
+
+<listitem>
+<para>
+Change default of max_locks_per_transactions 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 JIT to be disabled by default (Jelte Fennema-Nio)
+<ulink url="&commit_baseurl;7f8c88c2b">§</ulink>
+</para>
+
+<para>
+Previously JIT was enabled by default, and activated based on optimizer costs. Unfortunately, this costing has been determined to be unreliable, so require sites that are doing many
+large analytical queries to manually enable JIT.
+</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 BUFFERPIN to BUFFER (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 IndexAmRoutines structure, rather than dynamically allocated ones (Matthias van de Meent)
+<ulink url="&commit_baseurl;bc6374cd7">§</ulink>
+</para>
+
+<para>
+This is a backwardly incompatible.
+</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 MULE_INTERNAL 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 NOT INs to be converted to more efficient ANTI JOINs 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 LEFT JOINs to be converted to ANTI JOINs (Tender Wang)
+<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 ANTI JOINS with unique inner sides (Richard Guo)
+<ulink url="&commit_baseurl;0da29e4cb">§</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: 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 NULL join keys (Tom Lane)
+<ulink url="&commit_baseurl;1811f1af9">§</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>
+Allow IS [NOT] DISTINCT FROM NULL to be converted to IS [NOT] NULL for proven null arguments (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>
+2025-07-22 [e2debb643] Reduce "Var IS [NOT] NULL" quals during constant folding
+-->
+
+<listitem>
+<para>
+Perform earlier constant folding of "Var IS [NOT] NULL" 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-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>
+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: Richard Guo <rguo@postgresql.org>
+2025-10-08 [185e30426] Allow negative aggtransspace to indicate unbounded state
+-->
+
+<listitem>
+<para>
+Allow negative values of pg_aggregate.aggtransspace 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>
+
+<!--
+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 extended statistics 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 pg_restore_extended_stats() 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 pg_clear_extended_stats() 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>
+
+ </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 asynchronous I/O 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 io_method method "worker" to automatically control needed background workers (Thomas Munro)
+<ulink url="&commit_baseurl;d1c01b79d">§</ulink>
+</para>
+
+<para>
+New server variables are io_min_workers, io_max_workers, io_worker_idle_timeout, and io_worker_launch_interval.
+</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 autovacuum to use parallel vacuum workers (Daniil Davydov, Aleksander Alekseev)
+<ulink url="&commit_baseurl;1ff3180ca">§</ulink>
+<ulink url="&commit_baseurl;2a3d2f9f6">§</ulink>
+</para>
+
+<para>
+This is enabled via server variable autovacuum_max_parallel_workers and per-table storage parameter autovacuum_parallel_workers.
+</para>
+</listitem>
+
+<!--
+Author: David Rowley <drowley@postgresql.org>
+2025-11-27 [0ca3b1697] Add parallelism support for TID Range Scans
+-->
+
+<listitem>
+<para>
+Allow TID 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 COPY FROM performance for text and CSV output using SIMD 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 NOTIFY 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 NOTIFY.
+</para>
+</listitem>
+
+<!--
+Author: Andrew Dunstan <andrew@dunslane.net>
+2026-03-12 [a0b6ef29a] Enable fast default for domains with non-volatile constr
+-->
+
+<listitem>
+<para>
+Allow the addition of columns based on domains containing constraints to usually avoid a table rewrite (Jian He)
+<ulink url="&commit_baseurl;a0b6ef29a">§</ulink>
+</para>
+
+<para>
+Previously this always required a table rewrite.
+</para>
+</listitem>
+
+<!--
+Author: Richard Guo <rguo@postgresql.org>
+2026-02-10 [0aaf0de7f] Optimize BooleanTest with non-nullable input
+-->
+
+<listitem>
+<para>
+Allow IS [NOT] TRUE/FALSE/UNKNOWN to be evaluated earlier for proven non-null arguments (Richard Guo)
+<ulink url="&commit_baseurl;0aaf0de7f">§</ulink>
+</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 COALESCE and ROW(...) IS [NOT] NULL 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 [0a3796125] Optimize IS DISTINCT FROM with non-nullable inputs
+-->
+
+<listitem>
+<para>
+Allow IS DISTINCT FROM to be evaluated earlier for non-constant arguments (Richard Guo)
+<ulink url="&commit_baseurl;0a3796125">§</ulink>
+</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 TOAST compression method from pglz to the more efficient lz4 (Euler Taveira)
+<ulink url="&commit_baseurl;34dfca293">§</ulink>
+</para>
+
+<para>
+This is done by changing the default for server variable default_toast_compression.
+</para>
+</listitem>
+
+<!--
+Author: David Rowley <drowley@postgresql.org>
+2026-03-16 [c456e3911] Optimize tuple deformation
+-->
+
+<listitem>
+<para>
+Improve performance of internal row formation (David Rowley)
+<ulink url="&commit_baseurl;c456e3911">§</ulink>
+</para>
+</listitem>
+
+<!--
+Author: Michael Paquier <michael@paquier.xyz>
+2026-03-16 [bfa3c4f10] Optimize hash index bulk-deletion with streaming read
+-->
+
+<listitem>
+<para>
+Improve performance of hash index bulk-deletion by using streaming reads (Xuneng Zhou)
+<ulink url="&commit_baseurl;bfa3c4f10">§</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 sorts (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, Lukas Fittl, David Geier)
+<ulink url="&commit_baseurl;294520c44">§</ulink>
+<ulink url="&commit_baseurl;16fca4825">§</ulink>
+</para>
+
+<para>
+This benefits EXPLAIN (ANALYZE, TIMING) and pg_test_timing, and is controlled via server variable timing_clock_source.
+</para>
+</listitem>
+
+<!--
+Author: Tom Lane <tgl@sss.pgh.pa.us>
+2026-03-20 [ce8d5fe0e] plpgsql: optimize "SELECT simple-expression INTO var".
+-->
+
+<listitem>
+<para>
+Optimize plpgsql syntax SELECT simple-expression INTO var (Tom Lane)
+<ulink url="&commit_baseurl;ce8d5fe0e">§</ulink>
+</para>
+</listitem>
+
+<!--
+Author: Dean Rasheed <dean.a.rasheed@gmail.com>
+2025-08-07 [d699687b3] Extend int128.h to support more numeric code.
+-->
+
+<listitem>
+<para>
+Improve performance of numeric operations on platforms without 128-bit integer support (Dean Rasheed)
+<ulink url="&commit_baseurl;d699687b3">§</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 pg_stat_lock and function pg_stat_get_lock() 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 pg_stat_recovery to report recovery status (Xuneng Zhou, Shinya Kato)
+<ulink url="&commit_baseurl;01d485b14">§</ulink>
+<ulink url="&commit_baseurl;2d4ead6f4">§</ulink>
+</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 mem_exceeded_count column to system view pg_stat_replication_slots (Bertrand Drouvot)
+<ulink url="&commit_baseurl;d3b6183dd">§</ulink>
+</para>
+
+<para>
+This reports the number of times that logical_decoding_work_mem was exceeded.
+</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 stats_reset column to system views pg_stat_all_tables, pg_stat_all_indexes, and pg_statio_all_sequences (Bertrand Drouvot, Sami Imseih, Shihao Zhong)
+<ulink url="&commit_baseurl;a5b543258">§</ulink>
+</para>
+
+<para>
+It also appears in the "sys" and "user" 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 stats_reset column to system views pg_stat_user_functions and pg_stat_database_conflicts (Bertrand Drouvot, Shihao Zhong)
+<ulink url="&commit_baseurl;b71bae41a">§</ulink>
+<ulink url="&commit_baseurl;8fe315f18">§</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 pg_stat_autovacuum_scores to report per-table autovacuum details (Sami Imseih)
+<ulink url="&commit_baseurl;87f61f0c8">§</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 pg_stat_progress_vacuum (Shinya Kato)
+<ulink url="&commit_baseurl;0d7895206">§</ulink>
+</para>
+
+<para>
+The new "started_by" column reports the initiator of the vacuum, and "mode" 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 pg_stat_progress_analyze (Shinya Kato)
+<ulink url="&commit_baseurl;ab40db385">§</ulink>
+</para>
+
+<para>
+The new "started_by" column reports the initiator of the analyze.
+</para>
+</listitem>
+
+<!--
+Author: Masahiko Sawada <msawada@postgresql.org>
+2025-08-05 [deb674454] Add backup_type column to pg_stat_progress_basebackup.
+-->
+
+<listitem>
+<para>
+Add a column to system view pg_stat_progress_basebackup to report the type of backup (Shinya Kato)
+<ulink url="&commit_baseurl;deb674454">§</ulink>
+</para>
+
+<para>
+Possible values are "full" or "incremental".
+</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 WAL for full page images (Shinya Kato)
+<ulink url="&commit_baseurl;f9a09aa29">§</ulink>
+</para>
+
+<para>
+This is accessible via system view pg_stat_wal and function pg_stat_get_backend_wal().
+</para>
+</listitem>
+
+<!--
+Author: Michael Paquier <michael@paquier.xyz>
+2026-01-23 [a36164e74] Add WALRCV_CONNECTING state to the WAL receiver
+-->
+
+<listitem>
+<para>
+Add "connecting" status to system view column pg_stat_wal_receiver.status (Xuneng Zhou)
+<ulink url="&commit_baseurl;a36164e74">§</ulink>
+</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 pg_stats, pg_stats_ext, and pg_stats_ext_exprs (Corey Huinker)
+<ulink url="&commit_baseurl;3b88e50d6">§</ulink>
+</para>
+
+<para>
+Adds table OID and attribute number columns to pg_stats, and table OID and statistics object OID 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 extended statistics to system view pg_stats_ext_exprs (Corey Huinker, Michael Paquier)
+<ulink url="&commit_baseurl;307447e6d">§</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 pg_dsm_registry_allocations to report dynamic shared memory details (Florents Tselai, Nathan Bossart)
+<ulink url="&commit_baseurl;167ed8082">§</ulink>
+<ulink url="&commit_baseurl;f894acb24">§</ulink>
+</para>
+</listitem>
+
+<!--
+Author: Andrew Dunstan <andrew@dunslane.net>
+2026-01-01 [f3c9e341c] Add paths of extensions to pg_available_extensions
+-->
+
+<listitem>
+<para>
+Add column "location" to system views pg_available_extensions and pg_available_extension_versions to report the file system directory of extensions (Matheus Alcantara)
+<ulink url="&commit_baseurl;f3c9e341c">§</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 log_min_messages log levels to be specified by process type (Euler Taveira)
+<ulink url="&commit_baseurl;38e0190ce">§</ulink>
+</para>
+
+<para>
+The new format is "type:level". A value without a colon controls unspecified process types, enabling backward compatibility.
+</para>
+</listitem>
+
+<!--
+Author: Peter Eisentraut <peter@eisentraut.org>
+2025-10-15 [dd3ae3783] Add log_autoanalyze_min_duration
+-->
+
+<listitem>
+<para>
+Add server variable log_autoanalyze_min_duration to log long-running autoanalyze operations (Shinya Kato)
+<ulink url="&commit_baseurl;dd3ae3783">§</ulink>
+</para>
+
+<para>
+Server variable log_autovacuum_min_duration now only controls logging of automatic vacuum operations.
+</para>
+</listitem>
+
+<!--
+Author: Peter Eisentraut <peter@eisentraut.org>
+2025-09-12 [2aac62be8] Default to log_lock_waits=on
+-->
+
+<listitem>
+<para>
+Enable server variable log_lock_waits 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 debug_print_raw_parse to log the raw parse tree (Chao Li)
+<ulink url="&commit_baseurl;06473f5a3">§</ulink>
+</para>
+
+<para>
+This is also enabled when the server is started with debug level 3 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, postgres_fdw, and 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 WAL full page write bytes reporting to VACUUM and ANALYZE 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 COPY FROM/TO on a pipe/file/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 WAL write and flush LSNs (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 pg_get_sequence_data function return the sequence page LSN (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 pg_get_multixact_stats() to report multixact 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 wraparound of xid and multi-xids is less then 100 million (Nathan Bossart)
+<ulink url="&commit_baseurl;48f11bfa0">§</ulink>
+</para>
+
+<para>
+The previous warning was 40 million. Warnings are issued to clients and 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 online enabling and disabling of data checksums (Daniel Gustafsson, Magnus Hagander, Tomas Vondra, Lakshmi N)
+<ulink url="&commit_baseurl;f19c0ecca">§</ulink>
+<ulink url="&commit_baseurl;b364828f8">§</ulink>
+</para>
+
+<para>
+Previously the checksum status could only be set at initialization and changed only while the cluster was offline using pg_checksums.
+</para>
+</listitem>
+
+<!--
+Author: Daniel Gustafsson <dgustafsson@postgresql.org>
+2026-03-18 [4f433025f] ssl: Serverside SNI support for libpq
+-->
+
+<listitem>
+<para>
+Add server-side report for SNI (Server Name Indication) Daniel Gustafsson, Jacob Champion)
+<ulink url="&commit_baseurl;4f433025f">§</ulink>
+</para>
+
+<para>
+New configuration file PGDATA/pg_hosts.conf 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 OAUTH flow hook PQAUTHDATA_OAUTH_BEARER_TOKEN_V2 (Jacob Champion)
+<ulink url="&commit_baseurl;e982331b5">§</ulink>
+<ulink url="&commit_baseurl;0af4d402c">§</ulink>
+</para>
+
+<para>
+This is an improved version of PQAUTHDATA_OAUTH_BEARER_TOKEN by adding the issuer identifier and error message specification.
+</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>
+</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 server variables that represent lists to be emptied by setting the value to NULL (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 GB18030 encoding 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>Streaming Replication and Recovery</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>
+Allow standbys to wait for LSN values to be replayed via WAIT FOR (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 pg_sync_replication_slots() to wait for the 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 wal_sender_shutdown_timeout 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 wal_receiver_timeout 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 subscriptions to use different wal_receiver_timeout 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 pg_replication_origin_session_setup() to allow parallelization of SQL-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 CREATE SUBSCRIPTION, ALTER SUBSCRIPTION ... REFRESH PUBLICATION, and ALTER SUBSCRIPTION ... REFRESH SEQUENCES. The latter only updates values, not sequence
+existence. Function pg_get_sequence_data() 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 publications to be publish all sequences via the ALL SEQUENCES clause (Vignesh C, Tomas Vondra)
+<ulink url="&commit_baseurl;96b378497">§</ulink>
+</para>
+</listitem>
+
+<!--
+Author: Amit Kapila <akapila@postgresql.org>
+2025-10-23 [f0b3573c3] Introduce "REFRESH SEQUENCES" for subscriptions.
+-->
+
+<listitem>
+<para>
+Enhance ALTER SUBSCRIPTION on publications to synchronize the existence of sequences on subscribers to match the publisher (Vignesh C)
+<ulink url="&commit_baseurl;f0b3573c3">§</ulink>
+</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 CREATE/ALTER PUBLICATION to exclude some tables using the EXCEPT TABLE clause (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 useful when specifying ALL TABLES.
+</para>
+</listitem>
+
+<!--
+Author: Jeff Davis <jdavis@postgresql.org>
+2026-03-06 [8185bb534] CREATE SUBSCRIPTION ... SERVER.
+-->
+
+<listitem>
+<para>
+Allow CREATE SUBSCRIPTION to use postgres_fdw foreign data wrapper connection parameters (Jeff Davis)
+<ulink url="&commit_baseurl;8185bb534">§</ulink>
+</para>
+
+<para>
+The connection parameters are referenced via CREATE SUBSCRIPTION ... SERVER.
+</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 wal_level is "replica", allow the automatic enablement of logical replication when needed (Masahiko Sawada)
+<ulink url="&commit_baseurl;67c20979c">§</ulink>
+</para>
+
+<para>
+New server variable effective_wal_level reports the effective WAL level.
+</para>
+</listitem>
+
+<!--
+Author: Amit Kapila <akapila@postgresql.org>
+2025-07-23 [228c37086] Preserve conflict-relevant data during logical replicati
+-->
+
+<listitem>
+<para>
+Add logical subscriber setting retain_conflict_info to retain information needed for conflict resolution (Zhijie Hou)
+<ulink url="&commit_baseurl;228c37086">§</ulink>
+</para>
+</listitem>
+
+<!--
+Author: Amit Kapila <akapila@postgresql.org>
+2025-08-04 [fd5a1a0c3] Detect and report update_deleted conflicts.
+-->
+
+<listitem>
+<para>
+Report cases where an update is applied to a row that was already deleted on a subscriber (Zhijie Hou)
+<ulink url="&commit_baseurl;fd5a1a0c3">§</ulink>
+</para>
+
+<para>
+This requires the subscriber have retain_dead_tuples enabled.
+</para>
+</listitem>
+
+<!--
+Author: Amit Kapila <akapila@postgresql.org>
+2025-09-15 [0d48d393d] Resume conflict-relevant data retention automatically.
+-->
+
+<listitem>
+<para>
+Re-enable retain_dead_tuples when the necessary transaction retention falls below max_retention_duration (Zhijie Hou)
+<ulink url="&commit_baseurl;0d48d393d">§</ulink>
+</para>
+</listitem>
+
+<!--
+Author: Amit Kapila <akapila@postgresql.org>
+2025-09-02 [a850be2fe] Add max_retention_duration option to subscriptions.
+-->
+
+<listitem>
+<para>
+Add subscription option max_retention_duration to limit retain_dead_tuples retention (Zhijie Hou)
+<ulink url="&commit_baseurl;a850be2fe">§</ulink>
+</para>
+
+<para>
+When the limit is reached, dead tuple retention until manually re-enabled or a new subscription is created.
+</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 column pg_stat_subscription_stats.sync_seq_error_count to report sequence synchronization errors (Vignesh C)
+<ulink url="&commit_baseurl;f6a4c498d">§</ulink>
+<ulink url="&commit_baseurl;3edaf29fa">§</ulink>
+</para>
+</listitem>
+
+<!--
+Author: Amit Kapila <akapila@postgresql.org>
+2025-11-18 [3edaf29fa] Rename two columns in pg_stat_subscription_stats.
+-->
+
+<listitem>
+<para>
+Rename column sync_error_count to sync_table_error_count in system view pg_stat_subscription_stats (Vignesh C)
+<ulink url="&commit_baseurl;3edaf29fa">§</ulink>
+</para>
+
+<para>
+This is necessary since sequences errors are now also tracked.
+</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 pg_stat_replication_slots (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 slotsync_skip_count, slotsync_last_skip, and slotsync_skip_reason.
+</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 SQL Property Graph Queries (SQL/PGQ) (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 UPDATE/DELETE FOR PORTION OF (Paul A. Jungwirth)
+<ulink url="&commit_baseurl;8e72d914c">§</ulink>
+<ulink url="&commit_baseurl;b6ccd30d8">§</ulink>
+</para>
+
+<para>
+This allows operations on a temporal range.
+</para>
+</listitem>
+
+<!--
+Author: Tom Lane <tgl@sss.pgh.pa.us>
+2025-09-29 [ef38a4d97] Add GROUP BY ALL.
+-->
+
+<listitem>
+<para>
+Add GROUP BY ALL syntax 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 GROUP BY 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 GROUPING() 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 window functions to ignore NULLs with IGNORE NULLS/RESPECT NULLS option (Oliver Ford, Tatsuo Ishii)
+<ulink url="&commit_baseurl;25a30bbd4">§</ulink>
+</para>
+
+<para>
+Supported window functions are lead, lag, first_value, last_value and nth_value.
+</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 INSERT ... RETURNING ... ON CONFLICT DO SELECT (Andreas Karlsson, Marko Tiikkaja, Viktor Holmberg)
+<ulink url="&commit_baseurl;88327092f">§</ulink>
+</para>
+
+<para>
+This allows conflicting rows to be returns, and optionally locked with FOR UPDATE/SHARE.
+</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>
+Create a REPACK command that replaces VACUUM FULL and CLUSTER (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 REPACK.
+</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 REPACK 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 CONCURRENTLY option. Server variables max_repack_replication_slots 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 ALTER TABLE ... MERGE/SPLIT PARTITIONS (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 GRANT/REVOKE to specify the effective role performing the privileges adjustment (Nathan Bossart, Tom Lane)
+<ulink url="&commit_baseurl;dd1398f13">§</ulink>
+</para>
+
+<para>
+The GRANTED BY 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 CREATE SCHEMA to create more types of non-schema objects (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 CHECKPOINT 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 MODE and FLUSH_UNLOGGED.
+</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 CONNECTION clause to CREATE FOREIGN DATA WRAPPER 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 VACUUM (VERBOSE) and autovacuum logs (Masahiko Sawada, 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 ALTER TABLE ALTER CONSTRAINT ... [NOT] ENFORCED for CHECK 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 ALTER COLUMN SET EXPRESSION to succeed on virtual columns with CHECK constraints (Jian He)
+<ulink url="&commit_baseurl;f80bedd52">§</ulink>
+</para>
+
+<para>
+This was previously prohibited.
+</para>
+</listitem>
+
+<!--
+Author: Peter Eisentraut <peter@eisentraut.org>
+2025-08-22 [16a0039dc] Reduce lock level for ALTER DOMAIN ... VALIDATE CONSTRAI
+-->
+
+<listitem>
+<para>
+Reduce lock level of ALTER DOMAIN ... VALIDATE CONSTRAINT to match ALTER TABLE ... VALIDATE CONSTRAINT (Jian He)
+<ulink url="&commit_baseurl;16a0039dc">§</ulink>
+</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 be skipped by COPY FROM (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 COPY FROM to set invalid input values to NULL (Jian He, Kirill Reshke)
+<ulink url="&commit_baseurl;2a525cc97">§</ulink>
+</para>
+
+<para>
+This is done using the COPY option ON_ERROR SET_NULL.
+</para>
+</listitem>
+
+<!--
+Author: Andrew Dunstan <andrew@dunslane.net>
+2026-03-20 [7dadd38cd] json format for COPY TO
+-->
+
+<listitem>
+<para>
+Allow COPY TO to output JSON format (Joe Conway, Jian He, Andrew Dunstan)
+<ulink url="&commit_baseurl;7dadd38cd">§</ulink>
+</para>
+</listitem>
+
+<!--
+Author: Andrew Dunstan <andrew@dunslane.net>
+2026-03-20 [4c0390ac5] Add option force_array for COPY JSON FORMAT
+-->
+
+<listitem>
+<para>
+Allow COPY TO in JSON format to output its results as a single JSON array (Joe Conway, Jian He)
+<ulink url="&commit_baseurl;4c0390ac5">§</ulink>
+</para>
+
+<para>
+The COPY option is FORCE_ARRAY.
+</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 COPY TO to output partitioned tables (Jian He, Ajin Cherian)
+<ulink url="&commit_baseurl;4bea91f21">§</ulink>
+<ulink url="&commit_baseurl;266543a62">§</ulink>
+</para>
+
+<para>
+Previously COPY (SELECT ...) has to be used to output partitioned tables.
+</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 EXPLAIN ANALYZE option IO 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 WAL full page write bytes reporting to EXPLAIN (ANALYZE, WAL) (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 EXPLAIN output (Ilia Evdokimov, Lukas Fittl)
+<ulink url="&commit_baseurl;4bc62b868">§</ulink>
+</para>
+
+<para>
+This will help illustrate 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 oid8 (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 jsonpath string methods (Florents Tselai, David E. Wheeler)
+<ulink url="&commit_baseurl;bd4f879a9">§</ulink>
+</para>
+
+<para>
+They are l/r/btrim(), lower(), upper(), initcap(), replace(), and split_part(). These are immutable like their non-JSON 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 bytea and uuid date 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 oids using regdatabase (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 tid_block() and tid_offset() to extract block numbers and offsets from tid 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 date, timestamp, and timestamptz versions of random(min, max) (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 encode() and decode() to process data in base64url and base32hex 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 base32.
+</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 range_minus_multi() and multirange_minus_multi(). This is useful to represent range subtractions 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 error_on_null() to return the supplied parameter, or error on NULL 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 IS JSON to work on domains defined over supported base types (Jian He)
+<ulink url="&commit_baseurl;3b4c2b9db">§</ulink>
+</para>
+
+<para>
+The supported base domains are TEXT, JSON, JSONB, and BYTEA.
+</para>
+</listitem>
+
+<!--
+Author: Tom Lane <tgl@sss.pgh.pa.us>
+2026-01-05 [7dc95cc3b] Update to latest Snowball sources.
+-->
+
+<listitem>
+<para>
+Add full text stemmers for Polish and Esperanto (Tom Lane)
+<ulink url="&commit_baseurl;7dc95cc3b">§</ulink>
+</para>
+
+<para>
+The Dutch stemmer has also be updated. The old Dutch stemmer is available via "dutch_porter".
+</para>
+</listitem>
+
+<!--
+Author: Nathan Bossart <nathan@postgresql.org>
+2026-02-23 [d98197602] Allow pg_{read,write}_all_data to access large objects.
+-->
+
+<listitem>
+<para>
+Modify pg_read_all_data() and pg_write_all_data() to read/write large objects (Nitin Motiani, Nathan Bossart)
+<ulink url="&commit_baseurl;d98197602">§</ulink>
+</para>
+
+<para>
+These functions are designed to allow non-super users to run pg_dump.
+</para>
+</listitem>
+
+<!--
+Author: Andrew Dunstan <andrew@dunslane.net>
+2026-04-05 [76e514ebb] Add pg_get_role_ddl() function
+-->
+
+<listitem>
+<para>
+Add function pg_get_role_ddl() 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 Add pg_get_tablespace_ddl() 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 pg_get_database_ddl() 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 PL/Python (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 "servicefile" (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 PQgetThreadLock() 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 setting oauth_ca_file to specify the OAUTH certificate authority file (Jonathan Gonzalez V., Jacob Champion)
+<ulink url="&commit_baseurl;993368113">§</ulink>
+</para>
+
+<para>
+This can also be set via the PGOAUTHCAFILE environment variable. The default is to use curl'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 OAUTH validators to register custom pg_hba.conf 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 OAUTH validators to supply failure details (Jacob Champion)
+<ulink url="&commit_baseurl;d438a3659">§</ulink>
+</para>
+
+<para>
+This is done by setting the ValidatorModuleResult 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 PGOAUTHDEBUG to specify specific debug options (Zsolt Parragi, Jacob Champion)
+<ulink url="&commit_baseurl;6d00fb904">§</ulink>
+</para>
+
+<para>
+The UNSAFE 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 psql prompt via "%S" (Florents Tselai)
+<ulink url="&commit_baseurl;b3ce55f41">§</ulink>
+</para>
+
+<para>
+This works when psql is connected to Postgres 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 psql prompt via "%i" (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 psql 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 \dRp+, \dRs+, and \dX+.
+</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 psql (David G. Johnston)
+<ulink url="&commit_baseurl;645cb44c5">§</ulink>
+</para>
+
+<para>
+The \pset variables are display_true and display_false.
+</para>
+</listitem>
+
+<!--
+Author: Michael Paquier <michael@paquier.xyz>
+2025-07-14 [6b1c4d326] psql: Add variable SERVICEFILE
+-->
+
+<listitem>
+<para>
+Add psql variable SERVICEFILE 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 psql to more accurately determine if the pager 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 psql tab completion (Yamaguchi Atsuo, Yugo Nagata, Haruna Miwa, Xuneng Zhou, Yugo Nagata, Dagfinn Ilmari Mannsåker, Fujii Masao, Álvaro Herrera, Jian He, Fujii Masao,
+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
+-->
+
+<listitem>
+<para>
+Change vacuumdb's --analyze-only option to analyze partitioned tables when now targets are specified (Laurenz Albe, Mircea Cadariu)
+<ulink url="&commit_baseurl;6429e5b77">§</ulink>
+</para>
+
+<para>
+Previously it skipped partitioned tables. This now matches the behavior of ANALYZE.
+</para>
+</listitem>
+
+<!--
+Author: Nathan Bossart <nathan@postgresql.org>
+2025-12-09 [d107176d2] vacuumdb: Add - -dry-run.
+-->
+
+<listitem>
+<para>
+Allow vacuumdb to report its commands without running them using option --dry-run (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 pg_verifybackup to read WAL files stored in tar archives (Amul Sul)
+<ulink url="&commit_baseurl;b3cf461b3">§</ulink>
+</para>
+
+<para>
+Add option --wal-path as an alias for the existing and deprecated --wal-directory 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 pg_waldump to read WAL files stored in tar archives (Amul Sul)
+<ulink url="&commit_baseurl;b15c15139">§</ulink>
+</para>
+</listitem>
+
+<!--
+Author: Fujii Masao <fujii@postgresql.org>
+2025-11-07 [0ab208fa5] pgbench: Add - -continue-on-error option.
+-->
+
+<listitem>
+<para>
+Add pgbench option --continue-on-error to continue after SQL 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 pg_test_timing (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 --cutoff.
+</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: Andrew Dunstan <andrew@dunslane.net>
+2026-02-26 [763aaa06f] Add non-text output formats to pg_dumpall
+Author: Andrew Dunstan <andrew@dunslane.net>
+2026-03-04 [3c19983cc] pg_restore: add - -no-globals option to skip globals
+-->
+
+<listitem>
+<para>
+Allow pg_dumpall to product output in non-text formats (Mahendra Singh Thalor, Andrew Dunstan)
+<ulink url="&commit_baseurl;763aaa06f">§</ulink>
+<ulink url="&commit_baseurl;3c19983cc">§</ulink>
+</para>
+
+<para>
+The new output formats are custom, directory, or tar.
+</para>
+</listitem>
+
+<!--
+Author: Michael Paquier <michael@paquier.xyz>
+2026-01-27 [c32fb29e9] Include extended statistics data in pg_dump
+-->
+
+<listitem>
+<para>
+Allow pg_dump to include restorable extended statistics (Corey Huinker)
+<ulink url="&commit_baseurl;c32fb29e9">§</ulink>
+</para>
+</listitem>
+
+ </itemizedlist>
+
+ </sect4>
+
+ <sect4 id="release-19-pgupgrade">
+ <title><xref linkend="pgupgrade"/></title>
+
+ <itemizedlist>
+<!--
+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.
+-->
+
+<listitem>
+<para>
+Have pg_upgrade copy large object metadata files rather than use COPY (Nathan Bossart)
+<ulink url="&commit_baseurl;3bcfcd815">§</ulink>
+<ulink url="&commit_baseurl;158408fef">§</ulink>
+</para>
+
+<para>
+This is possible when upgrading from Postgres 16 and later.
+</para>
+</listitem>
+
+<!--
+Author: Nathan Bossart <nathan@postgresql.org>
+2025-07-18 [161a3e8b6] pg_upgrade: Use COPY for large object metadata.
+-->
+
+<listitem>
+<para>
+Allow pg_upgrade to use COPY for large object metadata (Nathan Bossart)
+<ulink url="&commit_baseurl;161a3e8b6">§</ulink>
+</para>
+
+<para>
+This is used when upgrading from Postgres major versions 12-15.
+</para>
+</listitem>
+
+<!--
+Author: Nathan Bossart <nathan@postgresql.org>
+2026-02-16 [b33f75361] pg_upgrade: Use COPY for LO metadata for upgrades from
+-->
+
+<listitem>
+<para>
+Improve pg_upgrade performance when restoring large object metadata for origin servers version 11 and earlier (Nathan Bossart)
+<ulink url="&commit_baseurl;b33f75361">§</ulink>
+</para>
+</listitem>
+
+<!--
+Author: Nathan Bossart <nathan@postgresql.org>
+2025-07-30 [412036c22] Teach pg_upgrade to handle in-place tablespaces.
+-->
+
+<listitem>
+<para>
+Allow pg_upgrade to process non-default tablespaces stored in the PGDATA director (Nathan Bossart)
+<ulink url="&commit_baseurl;412036c22">§</ulink>
+</para>
+
+<para>
+Previously such tablespaces generated an error.
+</para>
+</listitem>
+
+ </itemizedlist>
+
+ </sect4>
+
+ <sect4 id="release-19-logicalrep-app">
+ <title>Logical Replication Applications</title>
+
+ <itemizedlist>
+<!--
+Author: Amit Kapila <akapila@postgresql.org>
+2025-12-17 [85ddcc2f4] Support existing publications in pg_createsubscriber.
+-->
+
+<listitem>
+<para>
+Allow pg_createsubscriber 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 pg_createsubscriber stores recovery parameters (Alyona Vinter)
+<ulink url="&commit_baseurl;639352d90">§</ulink>
+</para>
+
+<para>
+Changes are stored in optionally-included pg_createsubscriber.conf rather than directly in postgresql.auto.conf.
+</para>
+</listitem>
+
+<!--
+Author: Amit Kapila <akapila@postgresql.org>
+2026-03-25 [6b5b7eae3] pg_createsubscriber: Add -l/- -logdir option to redirect
+-->
+
+<listitem>
+<para>
+Add pg_createsubscriber option -l/--logdir 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 AIX (Aditya Kamath, Srirama Kucherlapati, Peter Eisentraut)
+<ulink url="&commit_baseurl;ecae09725">§</ulink>
+<ulink url="&commit_baseurl;4a1b05caa">§</ulink>
+</para>
+
+<para>
+This uses gcc 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 Solaris to use unnamed POSIX 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 Visual Studio 2019 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 MSVC to create PL/Python using the Python Limited API (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 MSVC (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 Windows using DbgHelp (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>
+2025-07-09 [ed26c4e25] Hide ICU C++ APIs from pg_locale.h
+-->
+
+<listitem>
+<para>
+Allow C++ compiler mode to be used with ICU (John Naylor)
+<ulink url="&commit_baseurl;ed26c4e25">§</ulink>
+</para>
+</listitem>
+
+<!--
+Author: John Naylor <john.naylor@postgresql.org>
+2026-04-04 [5e13b0f24] Use AVX2 for calculating page checksums where available
+-->
+
+<listitem>
+<para>
+Optionally use AVX2 CPU instructions for calculating page checksums (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>
+Optionally use ARM 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 hex_encode() and hex_decode() to use SIMD CPU 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 Meson 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 Meson 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 Unicode 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.
+-->
+
+<listitem>
+<para>
+Add hooks planner_setup_hook and planner_shutdown_hook (Robert Haas)
+<ulink url="&commit_baseurl;94f3ad396">§</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 set-returning functions in the FROM clause with SQL 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 multixid members 64-bit (Maxim Orlov)
+<ulink url="&commit_baseurl;bd8d9c9bd">§</ulink>
+</para>
+</listitem>
+
+<!--
+Author: Peter Geoghegan <pg@bowt.ie>
+2026-03-22 [e5836f7b7] Add fake LSN support to hash index AM.
+-->
+
+<listitem>
+<para>
+Add fake LSN support to hash index AM (Peter Geoghegan)
+<ulink url="&commit_baseurl;e5836f7b7">§</ulink>
+</para>
+</listitem>
+
+<!--
+Author: Nathan Bossart <nathan@postgresql.org>
+2026-03-30 [bab2f27ea] Remove bits* typedefs.
+-->
+
+<listitem>
+<para>
+Change FDW function prototypes to use uint* instead of bit* 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 logical decoding plugins 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 shared memory registration function ShmemRequestStruct() (Ashutosh Bapat)
+<ulink url="&commit_baseurl;283e823f9">§</ulink>
+</para>
+
+<para>
+Functions ShmemInitStruct() and ShmemInitHash() 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 debug_exec_backend to report how parameters are passed to new backends (Daniel Gustafsson)
+<ulink url="&commit_baseurl;b3fe098d3">§</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 regression tests (Michael Paquier)
+<ulink url="&commit_baseurl;02976b0a1">§</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 temporal tables (Paul A. Jungwirth)
+<ulink url="&commit_baseurl;e4d8a2af0">§</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 systemd example 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 pg_plan_advice 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 pg_stash_advice 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-11-24 [4b203d499] pg_buffercache: Add pg_buffercache_os_pages
+-->
+
+<listitem>
+<para>
+Refactor pg_buffercache reporting of shared memory mapping (Bertrand Drouvot)
+<ulink url="&commit_baseurl;4b203d499">§</ulink>
+</para>
+
+<para>
+New function pg_buffercache_os_pages() and system view pg_buffercache_os_pages allow reporting of shared memory mapping; the function optionally includes NUMA details. Function
+pg_buffercache_numa_pages() 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 pg_buffercache to mark buffers as dirty (Nazir Bilal Yavuz)
+<ulink url="&commit_baseurl;9ccc049df">§</ulink>
+</para>
+
+<para>
+The functions are pg_buffercache_mark_dirty(), pg_buffercache_mark_dirt_relation(), and pg_buffercache_mark_dirty_all().
+</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 prepared statements to 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 foreign data wrapper servers (Corey Huinker, Etsuro Fujita)
+<ulink url="&commit_baseurl;28972b6fc">§</ulink>
+</para>
+
+<para>
+This is enabled for postgres_fdw by using the option restore_stats. The default is for ANALYZE 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 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 auto_explain.log_io to add IO reporting to auto_explain (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 auto_explain to add extension-specific EXPLAIN options via server variable auto_explain.log_extension_options (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>
+Allow btree_gin to match partial qualifications (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 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
+-->
+
+<listitem>
+<para>
+Improve performance of pgstattuple by using streaming reads (Xuneng Zhou)
+<ulink url="&commit_baseurl;213f0079b">§</ulink>
+</para>
+</listitem>
+
+<!--
+Author: Peter Eisentraut <peter@eisentraut.org>
+2026-01-12 [e39ece034] Make dmetaphone collation-aware
+-->
+
+<listitem>
+<para>
+Allow fuzzystrmatch's dmetaphone to use single-byte encodings beyond ASCII (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 oid2name --extended to report the relation file path (David Bidoc)
+<ulink url="&commit_baseurl;3c5ec35de">§</ulink>
+</para>
+</listitem>
+
+ </itemizedlist>
+
+ <sect4 id="release-19-pgstatstatements">
+ <title><xref linkend="pgstatstatements"/></title>
+
+ <itemizedlist>
+<!--
+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 FETCH queries as constants in pg_stat_statements (Sami Imseih)
+<ulink url="&commit_baseurl;bee23ea4d">§</ulink>
+</para>
+
+<para>
+Fetches of different sizes will now be grouped together in pg_stat_statements 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 generic and custom plans counts to pg_stat_statements (Sami Imseih)
+<ulink url="&commit_baseurl;3357471cf">§</ulink>
+</para>
+</listitem>
+
+ </itemizedlist>
+
+ </sect4>
+
+ </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>