diff options
Diffstat (limited to 'doc/src/sgml/release-18.sgml')
-rw-r--r-- | doc/src/sgml/release-18.sgml | 3554 |
1 files changed, 0 insertions, 3554 deletions
diff --git a/doc/src/sgml/release-18.sgml b/doc/src/sgml/release-18.sgml deleted file mode 100644 index cdf47ac6d2a..00000000000 --- a/doc/src/sgml/release-18.sgml +++ /dev/null @@ -1,3554 +0,0 @@ -<!-- doc/src/sgml/release-18.sgml --> -<!-- See header comment in release.sgml about typical markup --> - - <sect1 id="release-18"> - <title>Release 18</title> - - <formalpara> - <title>Release date:</title> - <para>2025-??-??, CURRENT AS OF 2025-05-01</para> - </formalpara> - - <sect2 id="release-18-highlights"> - <title>Overview</title> - - <para> - <productname>PostgreSQL</productname> 18 contains many new features - and enhancements, including: - </para> - - <itemizedlist> - - <listitem> - <para> - (to be completed) - </para> - </listitem> - </itemizedlist> - - <para> - The above items and other new features of - <productname>PostgreSQL</productname> 18 are explained in more detail - in the sections below. - </para> - - </sect2> - - <sect2 id="release-18-migration"> - - <title>Migration to Version 18</title> - - <para> - A dump/restore using <xref linkend="app-pg-dumpall"/> or use of - <xref linkend="pgupgrade"/> or logical replication is required for - those wishing to migrate data from any previous release. See <xref - linkend="upgrading"/> for general information on migrating to new - major releases. - </para> - - <para> - Version 18 contains a number of changes that may affect compatibility - with previous releases. Observe the following incompatibilities: - </para> - - <itemizedlist> - -<!-- -Author: Tom Lane <tgl@sss.pgh.pa.us> -2025-01-16 [d7674c9fa] Seek zone abbreviations in the IANA data before timezone ---> - -<listitem> -<para> -Change time zone abbreviation handling (Tom Lane) -<ulink url="&commit_baseurl;d7674c9fa">§</ulink> -</para> - -<para> -The system will now favor the current session's time zone abbreviations before checking the server variable timezone_abbreviations. Previously timezone_abbreviations was -checked first. -</para> -</listitem> - -<!-- -Author: Nathan Bossart <nathan@postgresql.org> -2024-12-02 [db6a4a985] Deprecate MD5 passwords. ---> - -<listitem> -<para> -Deprecate MD5 password authentication (Nathan Bossart) -<ulink url="&commit_baseurl;db6a4a985">§</ulink> -</para> - -<para> -Warnings generated by their use can be disabled by the server variable md5_password_warnings. -</para> -</listitem> - -<!-- -Author: David Rowley <drowley@postgresql.org> -2024-09-24 [62ddf7ee9] Add ONLY support for VACUUM and ANALYZE ---> - -<listitem> -<para> -Change VACUUM and ANALYZE to process the inheritance children of a parent (Michael Harris) -<ulink url="&commit_baseurl;62ddf7ee9">§</ulink> -</para> - -<para> -The previous behavior can be performed by using the new ONLY option. -</para> -</listitem> - -<!-- -Author: Tom Lane <tgl@sss.pgh.pa.us> -2024-09-30 [770233748] Do not treat \. as an EOF marker in CSV mode for COPY IN -Author: Tom Lane <tgl@sss.pgh.pa.us> -2024-10-01 [da8a4c166] Reject a copy EOF marker that has data ahead of it on th ---> - -<listitem> -<para> -Prevent COPY FROM from treating \. as an end-of-file marker when reading CSV files (Daniel Vérité, Tom Lane) -<ulink url="&commit_baseurl;770233748">§</ulink> -<ulink url="&commit_baseurl;da8a4c166">§</ulink> -</para> - -<para> -psql will still treat \. as an end-of-file marker when reading CSV files from STDIN. Older psql clients connecting to Postgres 18 servers might experience \copy problems. This -release also enforces that \. must appear alone on a line. -</para> -</listitem> - -<!-- -Author: Michael Paquier <michael@paquier.xyz> -2024-10-03 [e2bab2d79] Remove support for unlogged on partitioned tables ---> - -<listitem> -<para> -Disallow unlogged partitioned tables (Michael Paquier) -<ulink url="&commit_baseurl;e2bab2d79">§</ulink> -</para> - -<para> -Previously ALTER TABLE SET [UN]LOGGED did nothing, and the creation of an unlogged partitioned table did not cause its children to be unlogged. -</para> -</listitem> - -<!-- -Author: Fujii Masao <fujii@postgresql.org> -2024-09-12 [fefa76f70] Remove old RULE privilege completely. ---> - -<listitem> -<para> -Remove non-functional support for RULE privileges in GRANT/REVOKE (Fujii Masao) -<ulink url="&commit_baseurl;fefa76f70">§</ulink> -</para> - -<para> -These have been non-functional since Postgres 8.2. -</para> -</listitem> - -<!-- -Author: David Rowley <drowley@postgresql.org> -2024-08-12 [f0d112759] Remove "parent" column from pg_backend_memory_contexts ---> - -<listitem> -<para> -Remove column pg_backend_memory_contexts.parent (Melih Mutlu) -<ulink url="&commit_baseurl;f0d112759">§</ulink> -</para> - -<para> -This is now longer needed since pg_backend_memory_contexts.path was added. -</para> -</listitem> - -<!-- -Author: David Rowley <drowley@postgresql.org> -2024-07-25 [32d3ed816] Add path column to pg_backend_memory_contexts view -Author: David Rowley <drowley@postgresql.org> -2025-04-18 [d9e03864b] Make levels 1-based in -pg_log_backend_memory_contexts() -Author: Fujii Masao <fujii@postgresql.org> -2025-04-21 [706cbed35] doc: Fix memory context level in pg_log_backend_memory_c ---> - -<listitem> -<para> -Change pg_backend_memory_contexts.level and pg_log_backend_memory_contexts() to be one-based (Melih Mutlu, Atsushi Torikoshi, David Rowley, Fujii Masao) -<ulink url="&commit_baseurl;32d3ed816">§</ulink> -<ulink url="&commit_baseurl;d9e03864b">§</ulink> -<ulink url="&commit_baseurl;706cbed35">§</ulink> -</para> - -<para> -These were previously zero-based. -</para> -</listitem> - - </itemizedlist> - - </sect2> - - <sect2 id="release-18-changes"> - <title>Changes</title> - - <para> - Below you will find a detailed account of the changes between - <productname>PostgreSQL</productname> 18 and the previous major - release. - </para> - - <sect3 id="release-18-server"> - <title>Server</title> - - <sect4 id="release-18-optimizer"> - <title>Optimizer</title> - - <itemizedlist> - -<!-- -Author: Alexander Korotkov <akorotkov@postgresql.org> -2025-02-17 [fc069a3a6] Implement Self-Join Elimination ---> - -<listitem> -<para> -Remove some unnecessary table self-joins (Andrey Lepikhov, Alexander Kuzmenkov, Alexander Korotkov, Alena Rybakina) -<ulink url="&commit_baseurl;fc069a3a6">§</ulink> -</para> - -<para> -This optimization can be disabled using server variable enable_self_join_elimination. -</para> -</listitem> - -<!-- -Author: Alexander Korotkov <akorotkov@postgresql.org> -2025-04-04 [c0962a113] Convert 'x IN (VALUES ...)' to 'x = ANY ...' then approp ---> - -<listitem> -<para> -Convert some 'IN (VALUES ...)' to 'x = ANY ...' for better optimizer statistics (Alena Rybakina, Andrei Lepikhov) -<ulink url="&commit_baseurl;c0962a113">§</ulink> -</para> -</listitem> - -<!-- -Author: Alexander Korotkov <akorotkov@postgresql.org> -2024-11-24 [ae4569161] Teach bitmap path generation about transforming OR-claus ---> - -<listitem> -<para> -Allow transforming OR-clauses to arrays for faster index processing (Alexander Korotkov, Andrey Lepikhov) -<ulink url="&commit_baseurl;ae4569161">§</ulink> -</para> -</listitem> - -<!-- -Author: Tom Lane <tgl@sss.pgh.pa.us> -2024-09-10 [52c707483] Use a hash table to de-duplicate column names in ruleuti -Author: Tom Lane <tgl@sss.pgh.pa.us> -2024-12-19 [276279295] Convert SetOp to read its inputs as outerPlan and innerP -Author: Tom Lane <tgl@sss.pgh.pa.us> -2024-12-19 [8d96f57d5] Improve planner's handling of SetOp plans. -Author: David Rowley <drowley@postgresql.org> -2024-09-05 [908a96861] Optimize WindowAgg's use of tuplestores ---> - -<listitem> -<para> -Speed up the processing of INTERSECT, EXCEPT, window aggregates, and view column aliases (Tom Lane, David Rowley) -<ulink url="&commit_baseurl;52c707483">§</ulink> -<ulink url="&commit_baseurl;276279295">§</ulink> -<ulink url="&commit_baseurl;8d96f57d5">§</ulink> -<ulink url="&commit_baseurl;908a96861">§</ulink> -</para> -</listitem> - -<!-- -Author: Richard Guo <rguo@postgresql.org> -2024-11-26 [a8ccf4e93] Reordering DISTINCT keys to match input path's pathkeys ---> - -<listitem> -<para> -Allow the keys of SELECT DISTINCT to be internally reordered to avoid sorting (Richard Guo) -<ulink url="&commit_baseurl;a8ccf4e93">§</ulink> -</para> - -<para> -This optimization can be disabled using enable_distinct_reordering. -</para> -</listitem> - -<!-- -Author: David Rowley <drowley@postgresql.org> -2024-12-12 [bd10ec529] Detect redundant GROUP BY columns using UNIQUE indexes ---> - -<listitem> -<para> -Ignore GROUP BY columns that are functionally dependent on other columns (Zhang Mingli, Jian He, David Rowley) -<ulink url="&commit_baseurl;bd10ec529">§</ulink> -</para> - -<para> -If a GROUP BY clause includes all columns of a unique index, as well as other columns of the same table, those other columns are redundant and can be dropped -from the grouping. This was already true for non-deferred primary keys. -</para> -</listitem> - -<!-- -Author: Richard Guo <rguo@postgresql.org> -2024-10-09 [67a54b9e8] Allow pushdown of HAVING clauses with grouping sets -Author: Richard Guo <rguo@postgresql.org> -2024-09-10 [247dea89f] Introduce an RTE for the grouping step -Author: Richard Guo <rguo@postgresql.org> -2024-09-10 [f5050f795] Mark expressions nullable by grouping sets -Author: Richard Guo <rguo@postgresql.org> -2025-03-13 [cc5d98525] Fix incorrect handling of subquery pullup ---> - -<listitem> -<para> -Allow some HAVING clauses on GROUPING SETS to be pushed to WHERE clauses (Richard Guo) -<ulink url="&commit_baseurl;67a54b9e8">§</ulink> -<ulink url="&commit_baseurl;247dea89f">§</ulink> -<ulink url="&commit_baseurl;f5050f795">§</ulink> -<ulink url="&commit_baseurl;cc5d98525">§</ulink> -</para> - -<para> -This allows earlier row filtering. This release also fixes some GROUPING SETS queries that used to return incorrect results. -</para> -</listitem> - -<!-- -Author: David Rowley <drowley@postgresql.org> -2024-07-09 [036bdcec9] Teach planner how to estimate rows for timestamp generat -Author: Dean Rasheed <dean.a.rasheed@gmail.com> -2024-12-02 [97173536e] Add a planner support function for numeric generate_seri ---> - -<listitem> -<para> -Improve row estimates for generate_series() using numeric and timestamp values (David Rowley, Song Jinzhou) -<ulink url="&commit_baseurl;036bdcec9">§</ulink> -<ulink url="&commit_baseurl;97173536e">§</ulink> -</para> -</listitem> - -<!-- -Author: Richard Guo <rguo@postgresql.org> -2024-07-05 [aa86129e1] Support "Right Semi Join" plan shapes ---> - -<listitem> -<para> -Allow the optimizer to use "Right Semi Join" plans (Richard Guo) -<ulink url="&commit_baseurl;aa86129e1">§</ulink> -</para> - -<para> -Semi-joins are used when needing to find if there is at least one match. -</para> -</listitem> - -<!-- -Author: Richard Guo <rguo@postgresql.org> -2024-10-09 [828e94c9d] Consider explicit incremental sort for mergejoins ---> - -<listitem> -<para> -Allow merge joins to use incremental sorts (Richard Guo) -<ulink url="&commit_baseurl;828e94c9d">§</ulink> -</para> -</listitem> - -<!-- -Author: Amit Langote <amitlan@postgresql.org> -2025-04-04 [88f55bc97] Make derived clause lookup in EquivalenceClass more effi -Author: David Rowley <drowley@postgresql.org> -2025-04-08 [d69d45a5a] Speedup child EquivalenceMember lookup in planner ---> - -<listitem> -<para> -Improve the efficiency of planning queries accessing many partitions (Ashutosh Bapat, Yuya Watari, David Rowley) -<ulink url="&commit_baseurl;88f55bc97">§</ulink> -<ulink url="&commit_baseurl;d69d45a5a">§</ulink> -</para> -</listitem> - -<!-- -Author: Richard Guo <rguo@postgresql.org> -2024-07-30 [9b282a935] Fix partitionwise join with partially-redundant join cla -Author: Richard Guo <rguo@postgresql.org> -2024-07-29 [513f4472a] Reduce memory used by partitionwise joins ---> - -<listitem> -<para> -Allow partitionwise joins in more cases, and reduce its memory usage (Richard Guo, Tom Lane, Ashutosh Bapat) -<ulink url="&commit_baseurl;9b282a935">§</ulink> -<ulink url="&commit_baseurl;513f4472a">§</ulink> -</para> -</listitem> - -<!-- -Author: Alexander Korotkov <akorotkov@postgresql.org> -2025-03-10 [fae535da0] Teach Append to consider tuple_fraction when accumulatin ---> - -<listitem> -<para> -Improve cost estimates of partition queries (Nikita Malakhov, Andrei Lepikhov) -<ulink url="&commit_baseurl;fae535da0">§</ulink> -</para> -</listitem> - -<!-- -Author: Tom Lane <tgl@sss.pgh.pa.us> -2025-04-02 [0dca5d68d] Change SQL-language functions to use the plan cache. -Author: Tom Lane <tgl@sss.pgh.pa.us> -2025-04-17 [09b07c295] Minor performance improvement for SQL-language functions ---> - -<listitem> -<para> -Improve SQL-language function plan caching (Alexander Pyhalov, Tom Lane) -<ulink url="&commit_baseurl;0dca5d68d">§</ulink> -<ulink url="&commit_baseurl;09b07c295">§</ulink> -</para> -</listitem> - -<!-- -Author: Robert Haas <rhaas@postgresql.org> -2024-08-21 [e22253467] Treat number of disabled nodes in a path as a separate c ---> - -<listitem> -<para> -Improve handling of disabled optimizer features (Robert Haas) -<ulink url="&commit_baseurl;e22253467">§</ulink> -</para> -</listitem> - - </itemizedlist> - - </sect4> - - <sect4 id="release-18-indexes"> - <title>Indexes</title> - - <itemizedlist> - -<!-- -Author: Peter Geoghegan <pg@bowt.ie> -2025-04-04 [92fe23d93] Add nbtree skip scan optimization. -Author: Peter Geoghegan <pg@bowt.ie> -2025-04-04 [8a510275d] Further optimize nbtree search scan key comparisons. -Author: Peter Geoghegan <pg@bowt.ie> -2025-04-04 [8a510275d] Further optimize nbtree search scan key comparisons. ---> - -<listitem> -<para> -Allow skip scans of btree indexes (Peter Geoghegan) -<ulink url="&commit_baseurl;92fe23d93">§</ulink> -<ulink url="&commit_baseurl;8a510275d">§</ulink> -<ulink url="&commit_baseurl;8a510275d">§</ulink> -</para> - -<para> -This is effective if the earlier non-referenced columns contain few unique values. -</para> -</listitem> - -<!-- -Author: Peter Eisentraut <peter@eisentraut.org> -2025-03-18 [f278e1fe3] Allow non-btree unique indexes for partition keys -Author: Peter Eisentraut <peter@eisentraut.org> -2025-03-18 [9d6db8bec] Allow non-btree unique indexes for matviews ---> - -<listitem> -<para> -Allow non-btree unique indexes to be used as partition keys and in materialized views (Mark Dilger) -<ulink url="&commit_baseurl;f278e1fe3">§</ulink> -<ulink url="&commit_baseurl;9d6db8bec">§</ulink> -</para> - -<para> -The index type must still support equality. -</para> -</listitem> - -<!-- -Author: Tomas Vondra <tomas.vondra@postgresql.org> -2025-03-03 [8492feb98] Allow parallel CREATE INDEX for GIN indexes ---> - -<listitem> -<para> -Allow GIN indexes to be created in parallel (Tomas Vondra, Matthias van de Meent) -<ulink url="&commit_baseurl;8492feb98">§</ulink> -</para> -</listitem> - -<!-- -Author: Heikki Linnakangas <heikki.linnakangas@iki.fi> -2025-04-02 [e9e7b6604] Add GiST and btree sortsupport routines for range types ---> - -<listitem> -<para> -Allow values to be sorted to speed rangetype GiST and btree index builds (Bernd Helmle) -<ulink url="&commit_baseurl;e9e7b6604">§</ulink> -</para> -</listitem> - - </itemizedlist> - - </sect4> - - <sect4 id="release-18-performance"> - <title>General Performance</title> - - <itemizedlist> - -<!-- -Author: Andres Freund <andres@anarazel.de> -2025-03-17 [02844012b] aio: Basic subsystem initialization -Author: Andres Freund <andres@anarazel.de> -2025-03-17 [da7226993] aio: Add core asynchronous I/O infrastructure -Author: Andres Freund <andres@anarazel.de> -2025-03-18 [55b454d0e] aio: Infrastructure for io_method=worker -Author: Andres Freund <andres@anarazel.de> -2025-03-18 [247ce06b8] aio: Add io_method=worker -Author: Thomas Munro <tmunro@postgresql.org> -2025-03-19 [10f664684] Introduce io_max_combine_limit. -Author: Thomas Munro <tmunro@postgresql.org> -2025-03-19 [06fb5612c] Increase io_combine_limit range to 1MB. -Author: Andres Freund <andres@anarazel.de> -2025-03-26 [c325a7633] aio: Add io_method=io_uring -Author: Andres Freund <andres@anarazel.de> -2025-03-29 [50cb7505b] aio: Implement support for reads in smgr/md/fd -Author: Andres Freund <andres@anarazel.de> -2025-03-30 [047cba7fa] bufmgr: Implement AIO read support -Author: Andres Freund <andres@anarazel.de> -2025-03-30 [12ce89fd0] bufmgr: Use AIO in StartReadBuffers() -Author: Andres Freund <andres@anarazel.de> -2025-03-30 [2a5e709e7] Enable IO concurrency on all systems ---> - -<listitem> -<para> -Add an asynchronous I/O subsystem (Andres Freund, Thomas Munro, Nazir Bilal Yavuz, Melanie Plageman) -<ulink url="&commit_baseurl;02844012b">§</ulink> -<ulink url="&commit_baseurl;da7226993">§</ulink> -<ulink url="&commit_baseurl;55b454d0e">§</ulink> -<ulink url="&commit_baseurl;247ce06b8">§</ulink> -<ulink url="&commit_baseurl;10f664684">§</ulink> -<ulink url="&commit_baseurl;06fb5612c">§</ulink> -<ulink url="&commit_baseurl;c325a7633">§</ulink> -<ulink url="&commit_baseurl;50cb7505b">§</ulink> -<ulink url="&commit_baseurl;047cba7fa">§</ulink> -<ulink url="&commit_baseurl;12ce89fd0">§</ulink> -<ulink url="&commit_baseurl;2a5e709e7">§</ulink> -</para> - -<para> -This is enabled by server variable io_method, with server variables io_combine_limit and io_max_combine_limit added to control it. This also enables -effective_io_concurrency and maintenance_io_concurrency values greater than zero for systems without fadvise() support. The new system view pg_aios shows the file handles being used -for asynchronous I/O. -</para> -</listitem> - -<!-- -Author: Tomas Vondra <tomas.vondra@postgresql.org> -2024-09-21 [c4d5cb71d] Increase the number of fast-path lock slots ---> - -<listitem> -<para> -Improve the locking performance of queries that access many relations (Tomas Vondra) -<ulink url="&commit_baseurl;c4d5cb71d">§</ulink> -</para> -</listitem> - -<!-- -Author: Amit Langote <amitlan@postgresql.org> -2025-01-30 [bb3ec16e1] Move PartitionPruneInfo out of plan nodes into PlannedSt -Author: Amit Langote <amitlan@postgresql.org> -2025-01-31 [d47cbf474] Perform runtime initial pruning outside ExecInitNode() -Author: Amit Langote <amitlan@postgresql.org> -2025-02-07 [cbc127917] Track unpruned relids to avoid processing pruned relatio -Author: Amit Langote <amitlan@postgresql.org> -2025-02-20 [525392d57] Don't lock partitions pruned by initial pruning ---> - -<listitem> -<para> -Avoid the locking of pruned partitions during execution (Amit Langote) -<ulink url="&commit_baseurl;bb3ec16e1">§</ulink> -<ulink url="&commit_baseurl;d47cbf474">§</ulink> -<ulink url="&commit_baseurl;cbc127917">§</ulink> -<ulink url="&commit_baseurl;525392d57">§</ulink> -</para> -</listitem> - -<!-- -Author: David Rowley <drowley@postgresql.org> -2024-08-20 [adf97c156] Speed up Hash Join by making ExprStates support hashing -Author: David Rowley <drowley@postgresql.org> -2024-12-11 [0f5738202] Use ExprStates for hashing in GROUP BY and SubPlans -Author: Jeff Davis <jdavis@postgresql.org> -2025-03-24 [4d143509c] Create accessor functions for TupleHashEntry. -Author: Jeff Davis <jdavis@postgresql.org> -2025-03-24 [a0942f441] Add ExecCopySlotMinimalTupleExtra(). -Author: Jeff Davis <jdavis@postgresql.org> -2025-03-24 [626df47ad] Remove 'additional' pointer from TupleHashEntryData. ---> - -<listitem> -<para> -Improve the performance and reduce memory usage of hash joins and GROUP BY (David Rowley, Jeff Davis) -<ulink url="&commit_baseurl;adf97c156">§</ulink> -<ulink url="&commit_baseurl;0f5738202">§</ulink> -<ulink url="&commit_baseurl;4d143509c">§</ulink> -<ulink url="&commit_baseurl;a0942f441">§</ulink> -<ulink url="&commit_baseurl;626df47ad">§</ulink> -</para> - -<para> -This also improves hash set operations used by EXCEPT, and hash lookups of subplan values. -</para> -</listitem> - -<!-- -Author: Melanie Plageman <melanieplageman@gmail.com> -2025-02-11 [052026c9b] Eagerly scan all-visible pages to amortize aggressive va -Author: Melanie Plageman <melanieplageman@gmail.com> -2025-03-03 [06eae9e62] Trigger more frequent autovacuums with relallfrozen ---> - -<listitem> -<para> -Allow normal vacuums to freeze some pages, even though they are all-visible (Melanie Plageman) -<ulink url="&commit_baseurl;052026c9b">§</ulink> -<ulink url="&commit_baseurl;06eae9e62">§</ulink> -</para> - -<para> -This reduces the overhead of later full-relation freezing. The aggressiveness of this can be controlled by server variable and per-table setting vacuum_max_eager_freeze_failure_rate. -Previously vacuum never processed all-visible pages until freezing was required. -</para> -</listitem> - -<!-- -Author: Nathan Bossart <nathan@postgresql.org> -2025-03-20 [0164a0f9e] Add vacuum_truncate configuration parameter. ---> - -<listitem> -<para> -Add server variable vacuum_truncate to control file truncation during VACUUM (Nathan Bossart, Gurjeet Singh) -<ulink url="&commit_baseurl;0164a0f9e">§</ulink> -</para> - -<para> -A storage-level parameter with the same name and behavior already existed. -</para> -</listitem> - -<!-- -Author: Melanie Plageman <melanieplageman@gmail.com> -2025-03-12 [ff79b5b2a] Increase default effective_io_concurrency to 16 -Author: Melanie Plageman <melanieplageman@gmail.com> -2025-03-18 [cc6be07eb] Increase default maintenance_io_concurrency to 16 ---> - -<listitem> -<para> -Increase server variables effective_io_concurrency's and maintenance_io_concurrency's default values to 16 (Melanie Plageman) -<ulink url="&commit_baseurl;ff79b5b2a">§</ulink> -<ulink url="&commit_baseurl;cc6be07eb">§</ulink> -</para> - -<para> -This more accurately reflects modern hardware. -</para> -</listitem> - - </itemizedlist> - - </sect4> - - <sect4 id="release-18-monitoring"> - <title>Monitoring</title> - - <itemizedlist> - -<!-- -Author: Melanie Plageman <melanieplageman@gmail.com> -2025-03-12 [9219093ca] Modularize log_connections output -Author: Melanie Plageman <melanieplageman@gmail.com> -2025-03-12 [18cd15e70] Add connection establishment duration logging ---> - -<listitem> -<para> -Increase the logging granularity of server variable log_connections (Melanie Plageman) -<ulink url="&commit_baseurl;9219093ca">§</ulink> -<ulink url="&commit_baseurl;18cd15e70">§</ulink> -</para> - -<para> -This server variable was previously only boolean; these options are still supported. -</para> -</listitem> - -<!-- -Author: Tom Lane <tgl@sss.pgh.pa.us> -2025-04-07 [3516ea768] Add local-address escape "%L" to log_line_prefix. ---> - -<listitem> -<para> -Add log_line_prefix escape "%L" to output the client IP address (Greg Sabino Mullane) -<ulink url="&commit_baseurl;3516ea768">§</ulink> -</para> -</listitem> - -<!-- -Author: Fujii Masao <fujii@postgresql.org> -2025-03-14 [6d376c3b0] Add GUC option to log lock acquisition failures. ---> - -<listitem> -<para> -Add server variable log_lock_failure to log lock acquisition failures (Yuki Seino) -<ulink url="&commit_baseurl;6d376c3b0">§</ulink> -</para> - -<para> -Specifically it reports SELECT ... NOWAIT lock failures. -</para> -</listitem> - -<!-- -Author: Michael Paquier <michael@paquier.xyz> -2025-01-28 [30a6ed0ce] Track per-relation cumulative time spent in [auto]vacuum ---> - -<listitem> -<para> -Modify pg_stat_all_tables and its variants to report the time spent in vacuum, analyze, and their automatic variants (Sami Imseih) -<ulink url="&commit_baseurl;30a6ed0ce">§</ulink> -</para> - -<para> -The new columns are total_vacuum_time, total_autovacuum_time, total_analyze_time, and total_autoanalyze_time. -</para> -</listitem> - -<!-- -Author: Nathan Bossart <nathan@postgresql.org> -2025-02-11 [bb8dff999] Add cost-based vacuum delay time to progress views. -Author: Nathan Bossart <nathan@postgresql.org> -2025-02-14 [7720082ae] Add delay time to VACUUM/ANALYZE (VERBOSE) and autovacuu ---> - -<listitem> -<para> -Add delay time reporting to VACUUM and ANALYZE (Bertrand Drouvot, Nathan Bossart) -<ulink url="&commit_baseurl;bb8dff999">§</ulink> -<ulink url="&commit_baseurl;7720082ae">§</ulink> -</para> - -<para> -This information appears in the autovacuum logs, the system views pg_stat_progress_vacuum and pg_stat_progress_analyze, and the output of VACUUM and ANALYZE when in VERBOSE -mode; tracking must be enabled with the server variable track_cost_delay_timing. -</para> -</listitem> - -<!-- -Author: Michael Paquier <michael@paquier.xyz> -2024-12-19 [9aea73fc6] Add backend-level statistics to pgstats -Author: Michael Paquier <michael@paquier.xyz> -2025-03-03 [3f1db99bf] Handle auxiliary processes in SQL functions of backend s ---> - -<listitem> -<para> -Add per-backend I/O statistics reporting (Bertrand Drouvot) -<ulink url="&commit_baseurl;9aea73fc6">§</ulink> -<ulink url="&commit_baseurl;3f1db99bf">§</ulink> -</para> - -<para> -The statistics are accessed via pg_stat_get_backend_io(). Per-backend I/O statistics can be cleared via pg_stat_reset_backend_stats(). -</para> -</listitem> - -<!-- -Author: Michael Paquier <michael@paquier.xyz> -2025-01-14 [f92c854cf] Make pg_stat_io count IOs as bytes instead of blocks for ---> - -<listitem> -<para> -Add pg_stat_io columns to report I/O activity in bytes (Nazir Bilal Yavuz) -<ulink url="&commit_baseurl;f92c854cf">§</ulink> -</para> - -<para> -The new columns are read_bytes, write_bytes, and extend_bytes. The op_bytes column, which always equaled BLCKSZ, has been removed. -</para> -</listitem> - -<!-- -Author: Michael Paquier <michael@paquier.xyz> -2025-02-04 [a051e71e2] Add data for WAL in pg_stat_io and backend statistics -Author: Michael Paquier <michael@paquier.xyz> -2025-02-20 [4538bd3f1] doc: Add details about object "wal" in pg_stat_io -Author: Michael Paquier <michael@paquier.xyz> -2025-03-06 [7f7f324eb] Add more monitoring data for WAL writes in the WAL recei ---> - -<listitem> -<para> -Add WAL I/O activity rows to pg_stat_io (Nazir Bilal Yavuz, Bertrand Drouvot, Michael Paquier) -<ulink url="&commit_baseurl;a051e71e2">§</ulink> -<ulink url="&commit_baseurl;4538bd3f1">§</ulink> -<ulink url="&commit_baseurl;7f7f324eb">§</ulink> -</para> - -<para> -This includes WAL receiver activity and a wait event for such writes. -</para> - -</listitem> - -<!-- -Author: Michael Paquier <michael@paquier.xyz> -2025-02-26 [6c349d83b] Re-add GUC track_wal_io_timing ---> - -<listitem> -<para> -Change server variable track_wal_io_timing to control tracking WAL timing in pg_stat_io instead of pg_stat_wal (Bertrand Drouvot) -<ulink url="&commit_baseurl;6c349d83b">§</ulink> -</para> -</listitem> - -<!-- -Author: Michael Paquier <michael@paquier.xyz> -2025-02-24 [2421e9a51] Remove read/sync fields from pg_stat_wal and GUC track_w -Author: Michael Paquier <michael@paquier.xyz> -2025-02-26 [6c349d83b] Re-add GUC track_wal_io_timing ---> - -<listitem> -<para> -Remove read/sync columns from pg_stat_wal (Bertrand Drouvot) -<ulink url="&commit_baseurl;2421e9a51">§</ulink> -<ulink url="&commit_baseurl;6c349d83b">§</ulink> -</para> - -<para> -This removes columns wal_write, wal_sync, wal_write_time, and wal_sync_time. -</para> -</listitem> - -<!-- -Author: Michael Paquier <michael@paquier.xyz> -2025-03-11 [76def4cdd] Add WAL data to backend statistics ---> - -<listitem> -<para> -Add function pg_stat_get_backend_wal() to return per-backend WAL statistics (Bertrand Drouvot) -<ulink url="&commit_baseurl;76def4cdd">§</ulink> -</para> - -<para> -Per-backend WAL statistics can be cleared via pg_stat_reset_backend_stats(). -</para> -</listitem> - -<!-- -Author: Nathan Bossart <nathan@postgresql.org> -2024-10-11 [4e1fad378] Add pg_ls_summariesdir(). ---> - -<listitem> -<para> -Add function pg_ls_summariesdir() to specifically list the contents of PGDATA/pg_wal/summaries (Yushi Ogiwara) -<ulink url="&commit_baseurl;4e1fad378">§</ulink> -</para> -</listitem> - -<!-- -Author: Fujii Masao <fujii@postgresql.org> -2024-09-30 [559efce1d] Add num_done counter to the pg_stat_checkpointer view. ---> - -<listitem> -<para> -Add column pg_stat_checkpointer.num_done to report the number of completed checkpoints (Anton A. Melnikov) -<ulink url="&commit_baseurl;559efce1d">§</ulink> -</para> - -<para> -Columns num_timed and num_requested count both completed and skipped checkpoints. -</para> -</listitem> - -<!-- -Author: Fujii Masao <fujii@postgresql.org> -2024-10-02 [17cc5f666] Fix inconsistent reporting of checkpointer stats. ---> - -<listitem> -<para> -Add column pg_stat_checkpointer.slru_written to report SLRU buffers written (Nitin Jadhav) -<ulink url="&commit_baseurl;17cc5f666">§</ulink> -</para> - -<para> -Also, modify the checkpoint server log message to report separate shared buffer and SLRU buffer values. -</para> -</listitem> - -<!-- -Author: Michael Paquier <michael@paquier.xyz> -2024-11-11 [e7a9496de] Add two attributes to pg_stat_database for parallel work ---> - -<listitem> -<para> -Add columns to pg_stat_database to report parallel workers activity (Benoit Lobréau) -<ulink url="&commit_baseurl;e7a9496de">§</ulink> -</para> - -<para> -The new columns are parallel_workers_to_launch and parallel_workers_launched. -</para> -</listitem> - -<!-- -Author: Álvaro Herrera <alvherre@alvh.no-ip.org> -2025-03-18 [62d712ecf] Introduce squashing of constant lists in query jumbling -Author: Álvaro Herrera <alvherre@alvh.no-ip.org> -2025-03-27 [9fbd53dea] Remove the query_id_squash_values GUC ---> - -<listitem> -<para> -Have query jumbling of arrays consider only the first and last array elements (Dmitry Dolgov, Sami Imseih) -<ulink url="&commit_baseurl;62d712ecf">§</ulink> -<ulink url="&commit_baseurl;9fbd53dea">§</ulink> -</para> - -<para> -Jumbling is used by pg_stat_statements. -</para> -</listitem> - -<!-- -Author: Michael Paquier <michael@paquier.xyz> -2025-03-26 [787514b30] Use relation name instead of OID in query jumbling for R ---> - -<listitem> -<para> -Adjust query jumbling to group together queries using the same relation name (Michael Paquier, Sami Imseih) -<ulink url="&commit_baseurl;787514b30">§</ulink> -</para> - -<para> -This is true even if the tables in different schemas have different column names. -</para> -</listitem> - -<!-- -Author: Daniel Gustafsson <dgustafsson@postgresql.org> -2025-04-08 [042a66291] Add function to get memory context stats for processes -Author: Daniel Gustafsson <dgustafsson@postgresql.org> -2025-04-08 [c57971034] Rename argument in pg_get_process_memory_contexts(). ---> - -<listitem> -<para> -Add function pg_get_process_memory_contexts() to report process memory context statistics (Rahila Syed) -<ulink url="&commit_baseurl;042a66291">§</ulink> -<ulink url="&commit_baseurl;c57971034">§</ulink> -</para> -</listitem> - -<!-- -Author: David Rowley <drowley@postgresql.org> -2024-07-01 [12227a1d5] Add context type field to pg_backend_memory_contexts ---> - -<listitem> -<para> -Add column pg_backend_memory_contexts.type to report the type of memory context (David Rowley) -<ulink url="&commit_baseurl;12227a1d5">§</ulink> -</para> -</listitem> - -<!-- -Author: David Rowley <drowley@postgresql.org> -2024-07-25 [32d3ed816] Add path column to pg_backend_memory_contexts view ---> - -<listitem> -<para> -Add column pg_backend_memory_contexts.path to show memory context parents (Melih Mutlu) -<ulink url="&commit_baseurl;32d3ed816">§</ulink> -</para> -</listitem> - - </itemizedlist> - - </sect4> - - <sect4 id="release-18-privileges"> - <title>Privileges</title> - - <itemizedlist> - -<!-- -Author: Michael Paquier <michael@paquier.xyz> -2024-07-04 [4564f1ceb] Add pg_get_acl() to get the ACL for a database object -Author: Michael Paquier <michael@paquier.xyz> -2024-07-10 [d898665bf] Extend pg_get_acl() to handle sub-object IDs ---> - -<listitem> -<para> -Add function pg_get_acl() to retrieve database access control details (Joel Jacobson) -<ulink url="&commit_baseurl;4564f1ceb">§</ulink> -<ulink url="&commit_baseurl;d898665bf">§</ulink> -</para> -</listitem> - -<!-- -Author: Fujii Masao <fujii@postgresql.org> -2024-09-12 [4eada203a] Add has_largeobject_privilege function. ---> - -<listitem> -<para> -Add function has_largeobject_privilege() to check large object privileges (Yugo Nagata) -<ulink url="&commit_baseurl;4eada203a">§</ulink> -</para> -</listitem> - -<!-- -Author: Fujii Masao <fujii@postgresql.org> -2025-04-04 [0d6c47766] Extend ALTER DEFAULT PRIVILEGES to define default privil ---> - -<listitem> -<para> -Allow ALTER DEFAULT PRIVILEGES to define large object default privileges (Takatsuka Haruka, Yugo Nagata, Laurenz Albe) -<ulink url="&commit_baseurl;0d6c47766">§</ulink> -</para> -</listitem> - -<!-- -Author: Nathan Bossart <nathan@postgresql.org> -2024-07-09 [ccd38024b] Introduce pg_signal_autovacuum_worker. ---> - -<listitem> -<para> -Add predefined role pg_signal_autovacuum_worker (Kirill Reshke) -<ulink url="&commit_baseurl;ccd38024b">§</ulink> -</para> - -<para> -This allows sending signals to autovacuum workers. -</para> -</listitem> - - </itemizedlist> - - </sect4> - - <sect4 id="release-18-server-config"> - <title>Server Configuration</title> - - <itemizedlist> - -<!-- -Author: Daniel Gustafsson <dgustafsson@postgresql.org> -2025-02-20 [b3f0be788] Add support for OAUTHBEARER SASL mechanism ---> - -<listitem> -<para> -Add support for the OAuth authentication method (Jacob Champion, Daniel Gustafsson, Thomas Munro) -<ulink url="&commit_baseurl;b3f0be788">§</ulink> -</para> - -<para> -This adds an "oauth" authentication method to pg_hba.conf, libpq OAuth options, a server variable oauth_validator_libraries to load token validation libraries, and -a configure flag --with-libcurl to add the required compile-time libraries. -</para> -</listitem> - -<!-- -Author: Daniel Gustafsson <dgustafsson@postgresql.org> -2024-10-24 [45188c2ea] Support configuring TLSv1.3 cipher suites ---> - -<listitem> -<para> -Add server variable ssl_tls13_ciphers to allow specification of multiple colon-separated TLSv1.3 cipher suites (Erica Zhang, Daniel Gustafsson) -<ulink url="&commit_baseurl;45188c2ea">§</ulink> -</para> -</listitem> - -<!-- -Author: Daniel Gustafsson <dgustafsson@postgresql.org> -2025-03-18 [daa02c6bd] Add X25519 to the default set of curves ---> - -<listitem> -<para> -Change server variable ssl_groups's default to include elliptic curve X25519 (Daniel Gustafsson, Jacob Champion) -<ulink url="&commit_baseurl;daa02c6bd">§</ulink> -</para> -</listitem> - -<!-- -Author: Daniel Gustafsson <dgustafsson@postgresql.org> -2024-10-24 [3d1ef3a15] Support configuring multiple ECDH curves ---> - -<listitem> -<para> -Rename server variable ssl_ecdh_curve to ssl_groups and allow multiple colon-separated ECDH curves to be specified (Erica Zhang, Daniel Gustafsson) -<ulink url="&commit_baseurl;3d1ef3a15">§</ulink> -</para> - -<para>The previous name still works. -</para> -</listitem> - -<!-- -Author: Daniel Gustafsson <dgustafsson@postgresql.org> -2025-01-24 [924d89a35] pgcrypto: Add function to check FIPS mode ---> - -<listitem> -<para> -Add function pg_check_fipsmode() to report the server's FIPS mode (Daniel Gustafsson) -<ulink url="&commit_baseurl;924d89a35">§</ulink> -</para> -</listitem> - -<!-- -Author: Heikki Linnakangas <heikki.linnakangas@iki.fi> -2025-04-02 [a460251f0] Make cancel request keys longer -Author: Heikki Linnakangas <heikki.linnakangas@iki.fi> -2024-07-29 [9d9b9d46f] Move cancel key generation to after forking the backend ---> - -<listitem> -<para> -Make cancel request keys 256 bits (Heikki Linnakangas, Jelte Fennema-Nio) -<ulink url="&commit_baseurl;a460251f0">§</ulink> -<ulink url="&commit_baseurl;9d9b9d46f">§</ulink> -</para> - -<para> -This is only possible when the server and client support wire protocol version 3.2, introduced in this release. -</para> -</listitem> - -<!-- -Author: Nathan Bossart <nathan@postgresql.org> -2025-01-06 [c758119e5] Allow changing autovacuum_max_workers without restarting ---> - -<listitem> -<para> -Add server variable autovacuum_worker_slots to specify the maximum number of background workers (Nathan Bossart) -<ulink url="&commit_baseurl;c758119e5">§</ulink> -</para> - -<para> -With this variable set, autovacuum_max_workers can be adjusted at runtime up to this maximum without a server restart. -</para> -</listitem> - -<!-- -Author: Nathan Bossart <nathan@postgresql.org> -2025-02-05 [306dc520b] Introduce autovacuum_vacuum_max_threshold. ---> - -<listitem> -<para> -Allow specification of the fixed number of dead tuples that will trigger an autovacuum (Nathan Bossart, Frédéric Yhuel) -<ulink url="&commit_baseurl;306dc520b">§</ulink> -</para> - -<para> -The server variable is autovacuum_vacuum_max_threshold. Percentages are still used for triggering. -</para> -</listitem> - -<!-- -Author: Andres Freund <andres@anarazel.de> -2025-03-24 [adb5f85fa] Redefine max_files_per_process to control additionally o ---> - -<listitem> -<para> -Change server variable max_files_per_process to limit only files opened by a backend (Andres Freund) -<ulink url="&commit_baseurl;adb5f85fa">§</ulink> -</para> - -<para> -Previously files opened by the postmaster were also counted toward this limit. -</para> -</listitem> - -<!-- -Author: Nathan Bossart <nathan@postgresql.org> -2024-07-26 [0dcaea569] Introduce num_os_semaphores GUC. ---> - -<listitem> -<para> -Add server variable num_os_semaphores to report the required number of semaphores (Nathan Bossart) -<ulink url="&commit_baseurl;0dcaea569">§</ulink> -</para> - -<para> -This is useful for operating system configuration. -</para> -</listitem> - -<!-- -Author: Peter Eisentraut <peter@eisentraut.org> -2025-03-19 [4f7f7b037] extension_control_path ---> - -<listitem> -<para> -Add server variable extension_control_path to specify the location of extension control files (Peter Eisentraut, Matheus Alcantara) -<ulink url="&commit_baseurl;4f7f7b037">§</ulink> -</para> -</listitem> - - </itemizedlist> - - </sect4> - - <sect4 id="release-18-replication"> - <title>Streaming Replication and Recovery</title> - - <itemizedlist> - -<!-- -Author: Amit Kapila <akapila@postgresql.org> -2025-02-19 [ac0e33136] Invalidate inactive replication slots. ---> - -<listitem> -<para> -Allow inactive replication slots to be automatically invalided using server variable idle_replication_slot_timeout (Nisha Moond, Bharath Rupireddy) -<ulink url="&commit_baseurl;ac0e33136">§</ulink> -</para> -</listitem> - -<!-- -Author: Masahiko Sawada <msawada@postgresql.org> -2025-03-21 [04ff636cb] Add GUC option to control maximum active replication ori ---> - -<listitem> -<para> -Add server variable max_active_replication_origins to control the maximum active replication origins (Euler Taveira) -<ulink url="&commit_baseurl;04ff636cb">§</ulink> -</para> - -<para> -This was previously controlled by max_replication_slots, but this new setting allows a higher origin count in cases where fewer slots are required. -</para> -</listitem> - - </itemizedlist> - - </sect4> - - <sect4 id="release-18-logical"> - <title><link linkend="logical-replication">Logical Replication</link></title> - - <itemizedlist> - -<!-- -Author: Amit Kapila <akapila@postgresql.org> -2024-10-30 [745217a05] Replicate generated columns when specified in the column -Author: Amit Kapila <akapila@postgresql.org> -2024-11-07 [7054186c4] Replicate generated columns when 'publish_generated_colu -Author: Amit Kapila <akapila@postgresql.org> -2024-12-04 [87ce27de6] Ensure stored generated columns must be published when r -Author: Amit Kapila <akapila@postgresql.org> -2025-01-30 [6252b1eaf] Doc: Generated column replication. ---> - -<listitem> -<para> -Allow the values of generated columns to be logically replicated (Shubham Khanna, Vignesh C, Zhijie Hou, Shlok Kyal, Peter Smith) -<ulink url="&commit_baseurl;745217a05">§</ulink> -<ulink url="&commit_baseurl;7054186c4">§</ulink> -<ulink url="&commit_baseurl;87ce27de6">§</ulink> -<ulink url="&commit_baseurl;6252b1eaf">§</ulink> -</para> - -<para> -If the publication specifies a column list, all specified columns, generated and non-generated, are published. Without a specified column list, publication option publish_generated_columns -controls whether generated columns are published. Previously generated columns were not replicated and the subscriber had to compute the values if possible; this is particularly -useful for non-Postgres subscribers which lack such a capability. -</para> -</listitem> - -<!-- -Author: Amit Kapila <akapila@postgresql.org> -2024-10-28 [1bf1140be] Change the default value of the streaming option to 'par ---> - -<listitem> -<para> -Change the default CREATE SUBSCRIPTION streaming option from "off" to "parallel" (Hayato Kuroda, Masahiko Sawada, Peter Smith, Amit Kapila) -<ulink url="&commit_baseurl;1bf1140be">§</ulink> -</para> -</listitem> - -<!-- -Author: Amit Kapila <akapila@postgresql.org> -2024-07-24 [1462aad2e] Allow altering of two_phase option of a SUBSCRIPTION. -Author: Amit Kapila <akapila@postgresql.org> -2025-04-03 [4868c96bc] Fix slot synchronization for two_phase enabled slots. ---> - -<listitem> -<para> -Allow ALTER SUBSCRIPTION to change the replication slot's two-phase commit behavior (Hayato Kuroda, Ajin Cherian, Amit Kapila, Zhijie Hou) -<ulink url="&commit_baseurl;1462aad2e">§</ulink> -<ulink url="&commit_baseurl;4868c96bc">§</ulink> -</para> -</listitem> - -<!-- -Author: Amit Kapila <akapila@postgresql.org> -2024-08-20 [9758174e2] Log the conflicts while applying changes in logical repl -Author: Amit Kapila <akapila@postgresql.org> -2024-08-22 [edcb71258] Doc: explain the log format of logical replication confl -Author: Amit Kapila <akapila@postgresql.org> -2024-08-29 [640178c92] Rename the conflict types for the origin differ cases. -Author: Amit Kapila <akapila@postgresql.org> -2024-09-04 [6c2b5edec] Collect statistics about conflicts in logical replicatio -Author: Amit Kapila <akapila@postgresql.org> -2025-03-24 [73eba5004] Detect and Log multiple_unique_conflicts type conflict. ---> - -<listitem> -<para> -Log conflicts while applying logical replication changes (Zhijie Hou, Nisha Moond) -<ulink url="&commit_baseurl;9758174e2">§</ulink> -<ulink url="&commit_baseurl;edcb71258">§</ulink> -<ulink url="&commit_baseurl;640178c92">§</ulink> -<ulink url="&commit_baseurl;6c2b5edec">§</ulink> -<ulink url="&commit_baseurl;73eba5004">§</ulink> -</para> - -<para> -Also report in new columns of pg_stat_subscription_stats. -</para> -</listitem> - - </itemizedlist> - - </sect4> - - </sect3> - - <sect3 id="release-18-utility"> - <title>Utility Commands</title> - - <itemizedlist> - -<!-- -Author: Peter Eisentraut <peter@eisentraut.org> -2025-02-07 [83ea6c540] Virtual generated columns -Author: Peter Eisentraut <peter@eisentraut.org> -2025-03-28 [cdc168ad4] Add support for not-null constraints on virtual generate -Author: Richard Guo <rguo@postgresql.org> -2025-02-25 [1e4351af3] Expand virtual generated columns in the planner ---> - -<listitem> -<para> -Allow generated columns to be virtual, and make them the default (Peter Eisentraut, Jian He, Richard Guo, Dean Rasheed) -<ulink url="&commit_baseurl;83ea6c540">§</ulink> -<ulink url="&commit_baseurl;cdc168ad4">§</ulink> -<ulink url="&commit_baseurl;1e4351af3">§</ulink> -</para> - -<para> -Virtual generated columns generate their values when the columns are read, not written. The write behavior can still be specified via the STORED option. -</para> -</listitem> - -<!-- -Author: Dean Rasheed <dean.a.rasheed@gmail.com> -2025-01-16 [80feb727c] Add OLD/NEW support to RETURNING in DML queries. ---> - -<listitem> -<para> -Add OLD/NEW support to RETURNING in DML queries (Dean Rasheed) -<ulink url="&commit_baseurl;80feb727c">§</ulink> -</para> - -<para> -Previously RETURNING only returned new values for INSERT and UPDATE, and old values for DELETE; MERGE would return the appropriate value for the internal query executed. This new syntax -allows the RETURNING list of INSERT/UPDATE/DELETE/MERGE to explicitly return old and new values by using the special aliases "old" and "new". These aliases can be renamed to -avoid identifier conflicts. -</para> -</listitem> - -<!-- -Author: Michael Paquier <michael@paquier.xyz> -2025-02-19 [302cf1575] Add support for LIKE in CREATE FOREIGN TABLE ---> - -<listitem> -<para> -Allow foreign tables to be created like existing local tables (Zhang Mingli) -<ulink url="&commit_baseurl;302cf1575">§</ulink> -</para> - -<para> -The syntax is CREATE FOREIGN TABLE ... LIKE. -</para> -</listitem> - -<!-- -Author: Peter Eisentraut <peter@eisentraut.org> -2024-11-27 [85b7efa1c] Support LIKE with nondeterministic collations ---> - -<listitem> -<para> -Allow LIKE with nondeterministic collations (Peter Eisentraut) -<ulink url="&commit_baseurl;85b7efa1c">§</ulink> -</para> -</listitem> - -<!-- -Author: Peter Eisentraut <peter@eisentraut.org> -2025-02-21 [329304c90] Support text position search functions with nondetermini ---> - -<listitem> -<para> -Allow text position search functions with nondeterministic collations (Peter Eisentraut) -<ulink url="&commit_baseurl;329304c90">§</ulink> -</para> - -<para> -These used to generate an error. -</para> -</listitem> - -<!-- -Author: Jeff Davis <jdavis@postgresql.org> -2025-01-17 [d3d098316] Support PG_UNICODE_FAST locale in the builtin collation ---> - -<listitem> -<para> -Add builtin collation provider PG_UNICODE_FAST (Jeff Davis) -<ulink url="&commit_baseurl;d3d098316">§</ulink> -</para> - -<para> -This locale supports case mapping, but sorts in code point order, not natural language order. -</para> -</listitem> - -<!-- -Author: David Rowley <drowley@postgresql.org> -2024-09-24 [62ddf7ee9] Add ONLY support for VACUUM and ANALYZE ---> - -<listitem> -<para> -Allow VACUUM and ANALYZE to process partitioned tables without processing their children (Michael Harris) -<ulink url="&commit_baseurl;62ddf7ee9">§</ulink> -</para> - -<para> -This is enabled with the new ONLY option. This is useful since autovacuum does not process partitioned tables, just its children. -</para> -</listitem> - -<!-- -Author: Jeff Davis <jdavis@postgresql.org> -2024-10-11 [e839c8ecc] Create functions pg_set_relation_stats, pg_clear_relatio -Author: Jeff Davis <jdavis@postgresql.org> -2024-10-24 [d32d14639] Add functions pg_restore_relation_stats(), pg_restore_at -Author: Jeff Davis <jdavis@postgresql.org> -2025-03-25 [650ab8aaf] Stats: use schemaname/relname instead of regclass. ---> - -<listitem> -<para> -Add functions to modify per-relation and per-column optimizer statistics (Corey Huinker) -<ulink url="&commit_baseurl;e839c8ecc">§</ulink> -<ulink url="&commit_baseurl;d32d14639">§</ulink> -<ulink url="&commit_baseurl;650ab8aaf">§</ulink> -</para> - -<para> -The functions are pg_restore_relation_stats(), pg_restore_attribute_stats(), pg_clear_relation_stats(), and pg_clear_attribute_stats. -</para> -</listitem> - - -<!-- -Author: Thomas Munro <tmunro@postgresql.org> -2025-04-08 [f78ca6f3e] Introduce file_copy_method setting. ---> - -<listitem> -<para> -Add server variable file_copy_method to control the file copying method (Nazir Bilal Yavuz) -<ulink url="&commit_baseurl;f78ca6f3e">§</ulink> -</para> - -<para> -This controls whether CREATE DATABASE ... STRATEGY=FILE_COPY and ALTER DATABASE ... SET TABLESPACE uses file copy or clone. -</para> -</listitem> - - </itemizedlist> - - <sect4 id="release-18-constraints"> - <title><link linkend="ddl-constraints">Constraints</link></title> - - <itemizedlist> - -<!-- -Author: Peter Eisentraut <peter@eisentraut.org> -2024-09-17 [fc0438b4e] Add temporal PRIMARY KEY and UNIQUE constraints ---> - -<listitem> -<para> -Allow the specification of non-overlapping PRIMARY KEY and UNIQUE constraints (Paul A. Jungwirth) -<ulink url="&commit_baseurl;fc0438b4e">§</ulink> -</para> - -<para> -This is specified by WITHOUT OVERLAPS on the last column. -</para> -</listitem> - -<!-- -Author: Peter Eisentraut <peter@eisentraut.org> -2025-01-11 [ca87c415e] Add support for NOT ENFORCED in CHECK constraints -Author: Peter Eisentraut <peter@eisentraut.org> -2025-04-02 [eec0040c4] Add support for NOT ENFORCED in foreign key constraints ---> - -<listitem> -<para> -Allow CHECK and foreign key constraints to be specified as NOT ENFORCED (Amul Sul) -<ulink url="&commit_baseurl;ca87c415e">§</ulink> -<ulink url="&commit_baseurl;eec0040c4">§</ulink> -</para> - -<para> -This also adds column pg_constraint.conenforced. -</para> -</listitem> - -<!-- -Author: Peter Eisentraut <peter@eisentraut.org> -2024-11-15 [9321d2fdf] Fix collation handling for foreign keys ---> - -<listitem> -<para> -Require primary/foreign key relationships to use either deterministic collations or the the same nondeterministic collations (Peter Eisentraut) -<ulink url="&commit_baseurl;9321d2fdf">§</ulink> -</para> - -<para> -The restore of a pg_dump, also used by pg_upgrade, will fail if these requirements are not met; schema changes must be made for these upgrade methods to succeed. -</para> -</listitem> - -<!-- -Author: Álvaro Herrera <alvherre@alvh.no-ip.org> -2024-11-08 [14e87ffa5] Add pg_constraint rows for not-null constraints ---> - -<listitem> -<para> -Store column NOT NULL specifications in pg_constraint (Álvaro Herrera, Bernd Helmle) -<ulink url="&commit_baseurl;14e87ffa5">§</ulink> -</para> - -<para> -This allows names to be specified for NOT NULL constraint. This also adds NOT NULL constraints to foreign tables and NOT NULL inheritance control to local tables. -</para> -</listitem> - -<!-- -Author: Álvaro Herrera <alvherre@alvh.no-ip.org> -2025-04-07 [a379061a2] Allow NOT NULL constraints to be added as NOT VALID ---> - -<listitem> -<para> -Allow ALTER TABLE to set the NOT VALID attribute of NOT NULL constraints (Rushabh Lathia, Jian He) -<ulink url="&commit_baseurl;a379061a2">§</ulink> -</para> -</listitem> - -<!-- -Author: Álvaro Herrera <alvherre@alvh.no-ip.org> -2025-03-05 [f4e53e10b] Add ALTER TABLE ... ALTER CONSTRAINT ... SET [NO] INHERI -Author: Álvaro Herrera <alvherre@alvh.no-ip.org> -2025-03-27 [4a02af8b1] Simplify syntax for ALTER TABLE ALTER CONSTRAINT NO INHE ---> - -<listitem> -<para> -Allow modification of the inheritability of NOT NULL constraints (Suraj Kharage, Álvaro Herrera) -<ulink url="&commit_baseurl;f4e53e10b">§</ulink> -<ulink url="&commit_baseurl;4a02af8b1">§</ulink> -</para> - -<para> -The syntax is ALTER TABLE ... ALTER CONSTRAINT ... [NO] INHERIT. -</para> -</listitem> - -<!-- -Author: Álvaro Herrera <alvherre@alvh.no-ip.org> -2025-01-23 [b663b9436] Allow NOT VALID foreign key constraints on partitioned t ---> - -<listitem> -<para> -Allow NOT VALID foreign key constraints on partitioned tables (Amul Sul) -<ulink url="&commit_baseurl;b663b9436">§</ulink> -</para> -</listitem> - -<!-- -Author: Álvaro Herrera <alvherre@alvh.no-ip.org> -2024-09-30 [4dea33ce7] Don't disallow DROP of constraints ONLY on partitioned t ---> - -<listitem> -<para> -Allow dropping of constraints ONLY on partitioned tables (Álvaro Herrera) -<ulink url="&commit_baseurl;4dea33ce7">§</ulink> -</para> - -<para> -This was previously erroneously prohibited. -</para> -</listitem> - - </itemizedlist> - </sect4> - - <sect4 id="release-18-copy"> - <title><link linkend="sql-copy"><command>COPY</command></link></title> - - <itemizedlist> - -<!-- -Author: Fujii Masao <fujii@postgresql.org> -2024-10-08 [4ac2a9bec] Add REJECT_LIMIT option to the COPY command. ---> - -<listitem> -<para> -Add REJECT_LIMIT to control the number of invalid rows COPY FROM can ignore (Atsushi Torikoshi) -<ulink url="&commit_baseurl;4ac2a9bec">§</ulink> -</para> - -<para> -This is available when ON_ERROR = 'ignore'. -</para> -</listitem> - -<!-- -Author: Fujii Masao <fujii@postgresql.org> -2025-04-04 [534874fac] Allow "COPY table TO" command to copy rows from material ---> - -<listitem> -<para> -Allow COPY TO to copy rows from populated materialized view (Jian He) -<ulink url="&commit_baseurl;534874fac">§</ulink> -</para> -</listitem> - -<!-- -Author: Fujii Masao <fujii@postgresql.org> -2024-10-03 [e7834a1a2] Add LOG_VERBOSITY = 'silent' support to COPY command. ---> - -<listitem> -<para> -Add COPY LOG_VERBOSITY level "silent" to suppress log output of ignored rows (Atsushi Torikoshi) -<ulink url="&commit_baseurl;e7834a1a2">§</ulink> -</para> - -<para> -This new level suppresses output for discarded input rows when on_error = 'ignore'. -</para> -</listitem> - -<!-- -Author: Nathan Bossart <nathan@postgresql.org> -2025-02-06 [401a6956f] Disallow COPY FREEZE on foreign tables. ---> - -<listitem> -<para> -Disallow COPY FREEZE on foreign tables (Nathan Bossart) -<ulink url="&commit_baseurl;401a6956f">§</ulink> -</para> - -<para> -Previously, the COPY worked but the FREEZE was ignored, so disallow this command. -</para> -</listitem> - - </itemizedlist> - </sect4> - - <sect4 id="release-18-explain"> - <title><link linkend="sql-explain"><command>EXPLAIN</command></link></title> - - <itemizedlist> - -<!-- -Author: David Rowley <drowley@postgresql.org> -2024-12-11 [c2a4078eb] Enable BUFFERS with EXPLAIN ANALYZE by default ---> - -<listitem> -<para> -Automatically include BUFFERS output in EXPLAIN ANALYZE (Guillaume Lelarge, David Rowley) -<ulink url="&commit_baseurl;c2a4078eb">§</ulink> -</para> -</listitem> - -<!-- -Author: Masahiko Sawada <msawada@postgresql.org> -2024-08-13 [4c1b4cdb8] Add resource statistics reporting to ANALYZE VERBOSE. -Author: Masahiko Sawada <msawada@postgresql.org> -2024-09-09 [bb7775234] Add WAL usage reporting to ANALYZE VERBOSE output. ---> - -<listitem> -<para> -Add WAL, CPU, and average read statistics output to EXPLAIN ANALYZE VERBOSE (Anthonin Bonnefoy) -<ulink url="&commit_baseurl;4c1b4cdb8">§</ulink> -<ulink url="&commit_baseurl;bb7775234">§</ulink> -</para> -</listitem> - -<!-- -Author: Michael Paquier <michael@paquier.xyz> -2025-02-17 [320545bfc] Add information about WAL buffers being full to EXPLAIN -Author: Michael Paquier <michael@paquier.xyz> -2025-02-17 [6a8a7ce47] Add information about WAL buffers full to VACUUM/ANALYZE ---> - -<listitem> -<para> -Add full WAL buffer count to EXPLAIN (WAL), VACUUM/ANALYZE (VERBOSE), and autovacuum log output (Bertrand Drouvot) -<ulink url="&commit_baseurl;320545bfc">§</ulink> -<ulink url="&commit_baseurl;6a8a7ce47">§</ulink> -</para> -</listitem> - -<!-- -Author: Peter Geoghegan <pg@bowt.ie> -2025-03-11 [0fbceae84] Show index search count in EXPLAIN ANALYZE, take 2. ---> - -<listitem> -<para> -In EXPLAIN ANALYZE, report the number of index lookups used per index scan node (Peter Geoghegan) -<ulink url="&commit_baseurl;0fbceae84">§</ulink> -</para> -</listitem> - -<!-- -Author: Robert Haas <rhaas@postgresql.org> -2025-02-21 [ddb17e387] Allow EXPLAIN to indicate fractional rows. -Author: Robert Haas <rhaas@postgresql.org> -2025-02-27 [95dbd827f] EXPLAIN: Always use two fractional digits for row counts ---> - -<listitem> -<para> -Modify EXPLAIN to output fractional row counts (Ibrar Ahmed, Ilia Evdokimov, Robert Haas) -<ulink url="&commit_baseurl;ddb17e387">§</ulink> -<ulink url="&commit_baseurl;95dbd827f">§</ulink> -</para> -</listitem> - -<!-- -Author: David Rowley <drowley@postgresql.org> -2024-07-05 [1eff8279d] Add memory/disk usage for Material nodes in EXPLAIN -Author: David Rowley <drowley@postgresql.org> -2024-07-05 [53abb1e0e] Fix newly introduced issue in EXPLAIN for Materialize no -Author: Tatsuo Ishii <ishii@postgresql.org> -2024-09-17 [95d6e9af0] Add memory/disk usage for Window aggregate nodes in EXPL -Author: Tatsuo Ishii <ishii@postgresql.org> -2024-09-23 [40708acd6] Add memory/disk usage for more executor nodes. ---> - -<listitem> -<para> -Add memory and disk usage details to Material, Window Aggregate, and common table expression nodes in EXPLAIN (David Rowley, Tatsuo Ishii) -<ulink url="&commit_baseurl;1eff8279d">§</ulink> -<ulink url="&commit_baseurl;53abb1e0e">§</ulink> -<ulink url="&commit_baseurl;95d6e9af0">§</ulink> -<ulink url="&commit_baseurl;40708acd6">§</ulink> -</para> -</listitem> - - -<!-- -Author: Tom Lane <tgl@sss.pgh.pa.us> -2025-03-11 [8b1b34254] Improve EXPLAIN's display of window functions. ---> - -<listitem> -<para> -Add details about window function arguments to EXPLAIN output (Tom Lane) -<ulink url="&commit_baseurl;8b1b34254">§</ulink> -</para> -</listitem> - -<!-- -Author: David Rowley <drowley@postgresql.org> -2024-07-09 [5a1e6df3b] Show Parallel Bitmap Heap Scan worker stats in EXPLAIN A ---> - -<listitem> -<para> -Add "Parallel Bitmap Heap Scan" worker cache statistics to EXPLAIN ANALYZE (David Geier, Heikki Linnakangas, Donghang Lin, Alena Rybakina, David Rowley) -<ulink url="&commit_baseurl;5a1e6df3b">§</ulink> -</para> -</listitem> - -<!-- -Author: Robert Haas <rhaas@postgresql.org> -2024-08-21 [c01743aa4] Show number of disabled nodes in EXPLAIN ANALYZE output. -Author: David Rowley <drowley@postgresql.org> -2024-10-11 [161320b4b] Adjust EXPLAIN's output for disabled nodes -Author: David Rowley <drowley@postgresql.org> -2024-10-29 [84b8fccbe] Doc: add detail about EXPLAIN's "Disabled" property ---> - -<listitem> -<para> -Indicate disabled nodes in EXPLAIN ANALYZE output (Robert Haas, David Rowley, Laurenz Albe) -<ulink url="&commit_baseurl;c01743aa4">§</ulink> -<ulink url="&commit_baseurl;161320b4b">§</ulink> -<ulink url="&commit_baseurl;84b8fccbe">§</ulink> -</para> -</listitem> - - </itemizedlist> - - </sect4> - - </sect3> - - <sect3 id="release-18-datatypes"> - <title>Data Types</title> - - <itemizedlist> - -<!-- -Author: Jeff Davis <jdavis@postgresql.org> -2025-01-23 [4e7f62bc3] Add support for Unicode case folding. -Author: Jeff Davis <jdavis@postgresql.org> -2025-01-17 [286a365b9] Support Unicode full case mapping and conversion. ---> - -<listitem> -<para> -Improve Unicode full case mapping and conversion (Jeff Davis) -<ulink url="&commit_baseurl;4e7f62bc3">§</ulink> -<ulink url="&commit_baseurl;286a365b9">§</ulink> -</para> - -<para> -This adds the ability to do conditional and title case mapping, and case map single characters to multiple characters. -</para> -</listitem> - -<!-- -Author: Tom Lane <tgl@sss.pgh.pa.us> -2025-01-24 [a5579a90a] Make jsonb casts to scalar types translate JSON null to ---> - -<listitem> -<para> -Allow jsonb "null" values to be cast to scalar types as NULL (Tom Lane) -<ulink url="&commit_baseurl;a5579a90a">§</ulink> -</para> - -<para> -Previously such casts generated an error. -</para> -</listitem> - -<!-- -Author: Andrew Dunstan <andrew@dunslane.net> -2025-03-05 [4603903d2] Allow json{b}_strip_nulls to remove null array elements ---> - -<listitem> -<para> -Add optional parameter to json{b}_strip_nulls to allow removal of null array elements (Florents Tselai) -<ulink url="&commit_baseurl;4603903d2">§</ulink> -</para> -</listitem> - -<!-- -Author: Tom Lane <tgl@sss.pgh.pa.us> -2025-04-01 [6c12ae09f] Introduce a SQL-callable function array_sort(anyarray). ---> - -<listitem> -<para> -Add function array_sort() which sorts an array's first dimension (Junwang Zhao, Jian He) -<ulink url="&commit_baseurl;6c12ae09f">§</ulink> -</para> -</listitem> - -<!-- -Author: Michael Paquier <michael@paquier.xyz> -2024-11-01 [49d6c7d8d] Add SQL function array_reverse() ---> - -<listitem> -<para> -Add function array_reverse() which reverses an array's first dimension (Aleksander Alekseev) -<ulink url="&commit_baseurl;49d6c7d8d">§</ulink> -</para> -</listitem> - -<!-- -Author: Nathan Bossart <nathan@postgresql.org> -2025-03-13 [0697b2390] Add reverse(bytea). ---> - -<listitem> -<para> -Add function reverse() to reverse bytea bytes (Aleksander Alekseev) -<ulink url="&commit_baseurl;0697b2390">§</ulink> -</para> -</listitem> - -<!-- -Author: Dean Rasheed <dean.a.rasheed@gmail.com> -2025-03-07 [6da469bad] Allow casting between bytea and integer types. ---> - -<listitem> -<para> -Allow casting between integer types and bytea (Aleksander Alekseev) -<ulink url="&commit_baseurl;6da469bad">§</ulink> -</para> - -<para> -The integer values are stored as bytea two's complement values. -</para> -</listitem> - -<!-- -Author: Peter Eisentraut <peter@eisentraut.org> -2025-04-03 [82a46cca9] Update Unicode data to Unicode 16.0.0 ---> - -<listitem> -<para> -Update Unicode data to Unicode 16.0.0 (Peter Eisentraut) -<ulink url="&commit_baseurl;82a46cca9">§</ulink> -</para> -</listitem> - -<!-- -Author: Tom Lane <tgl@sss.pgh.pa.us> -2025-02-18 [b464e51ab] Update to latest Snowball sources. ---> - -<listitem> -<para> -Add full text search stemming for Estonian (Tom Lane) -<ulink url="&commit_baseurl;b464e51ab">§</ulink> -</para> -</listitem> - -<!-- -Author: Tom Lane <tgl@sss.pgh.pa.us> -2024-09-24 [cd838e200] Neaten up our choices of SQLSTATEs for XML-related error ---> - -<listitem> -<para> -Improve the XML error codes to more closely match the SQL standard (Tom Lane) -<ulink url="&commit_baseurl;cd838e200">§</ulink> -</para> - -<para> -These errors are reported via SQLSTATE. -</para> -</listitem> - - </itemizedlist> - - </sect3> - - <sect3 id="release-18-functions"> - <title>Functions</title> - - <itemizedlist> - -<!-- -Author: Jeff Davis <jdavis@postgresql.org> -2025-01-24 [bfc599206] Add SQL function CASEFOLD(). ---> - -<listitem> -<para> -Add function CASEFOLD() to allow for more sophisticated case-insensitive matching (Jeff Davis) -<ulink url="&commit_baseurl;bfc599206">§</ulink> -</para> - -<para> -Allows more accurate comparison, i.e., a character can have multiple upper or lower case equivalents, or upper or lower case conversion changes the number of characters. -</para> -</listitem> - -<!-- -Author: Tom Lane <tgl@sss.pgh.pa.us> -2024-07-11 [a0f1fce80] Add min and max aggregates for composite types (records) -Author: Tom Lane <tgl@sss.pgh.pa.us> -2024-10-08 [2d24fd942] Add min and max aggregates for bytea type. ---> - -<listitem> -<para> -Allow MIN()/MAX() aggregates on arrays and composite types (Aleksander Alekseev, Marat Buharov) -<ulink url="&commit_baseurl;a0f1fce80">§</ulink> -<ulink url="&commit_baseurl;2d24fd942">§</ulink> -</para> -</listitem> - -<!-- -Author: Tom Lane <tgl@sss.pgh.pa.us> -2024-08-16 [6be39d77a] Fix extraction of week and quarter fields from intervals ---> - -<listitem> -<para> -Add a WEEK option to EXTRACT() (Tom Lane) -<ulink url="&commit_baseurl;6be39d77a">§</ulink> -</para> -</listitem> - -<!-- -Author: Tom Lane <tgl@sss.pgh.pa.us> -2024-08-16 [6be39d77a] Fix extraction of week and quarter fields from intervals ---> - -<listitem> -<para> -Improve the output EXTRACT(QUARTER ...) for negative values (Tom Lane) -<ulink url="&commit_baseurl;6be39d77a">§</ulink> -</para> -</listitem> - -<!-- -Author: Tom Lane <tgl@sss.pgh.pa.us> -2025-01-22 [172e6b3ad] Support RN (roman-numeral format) in to_number(). ---> - -<listitem> -<para> -Add roman numeral support to to_number() (Hunaid Sohail) -<ulink url="&commit_baseurl;172e6b3ad">§</ulink> -</para> - -<para> -This is accessed via the "RN" pattern. -</para> -</listitem> - -<!-- -Author: Masahiko Sawada <msawada@postgresql.org> -2024-12-11 [78c5e141e] Add UUID version 7 generation function. ---> - -<listitem> -<para> -Add UUID version 7 generation function uuidv7() (Andrey Borodin) -<ulink url="&commit_baseurl;78c5e141e">§</ulink> -</para> - -<para> -This UUID value is temporally sortable. Function alias uuidv4() has been added to explicitly generate version 4 UUIDs. -</para> -</listitem> - -<!-- -Author: Nathan Bossart <nathan@postgresql.org> -2024-08-12 [760162fed] Add user-callable CRC functions. ---> - -<listitem> -<para> -Add functions crc32() and crc32c() to compute CRC values (Aleksander Alekseev) -<ulink url="&commit_baseurl;760162fed">§</ulink> -</para> -</listitem> - -<!-- -Author: Dean Rasheed <dean.a.rasheed@gmail.com> -2025-03-26 [a3b6dfd41] Add support for gamma() and lgamma() functions. ---> - -<listitem> -<para> -Add math functions gamma() and lgamma() (Dean Rasheed) -<ulink url="&commit_baseurl;a3b6dfd41">§</ulink> -</para> -</listitem> - -<!-- -Author: Tom Lane <tgl@sss.pgh.pa.us> -2025-03-03 [246dedc5d] Allow => syntax for named cursor arguments in plpgsql. ---> - -<listitem> -<para> -Allow "=>" syntax for named cursor arguments in plpgsql (Pavel Stehule) -<ulink url="&commit_baseurl;246dedc5d">§</ulink> -</para> - -<para> -We previously only accepted ":=". -</para> -</listitem> - -<!-- -Author: Tom Lane <tgl@sss.pgh.pa.us> -2024-07-25 [580f8727c] Add argument names to the regexp_XXX functions. ---> - -<listitem> -<para> -Allow regexp_match[es]/regexp_like/regexp_replace/regexp_count/regexp_instr/regexp_substr/regexp_split_to_table/regexp_split_to_array() to use named arguments (Jian He) -<ulink url="&commit_baseurl;580f8727c">§</ulink> -</para> -</listitem> - - </itemizedlist> - - </sect3> - - <sect3 id="release-18-libpq"> - <title><link linkend="libpq">libpq</link></title> - - <itemizedlist> - -<!-- -Author: Robert Haas <rhaas@postgresql.org> -2024-09-09 [cdb6b0fdb] Add PQfullProtocolVersion() to surface the precise proto ---> - -<listitem> -<para> -Add function PQfullProtocolVersion() to report the full, including minor, protocol version number (Jacob Champion, Jelte Fennema-Nio) -<ulink url="&commit_baseurl;cdb6b0fdb">§</ulink> -</para> -</listitem> - -<!-- -Author: Heikki Linnakangas <heikki.linnakangas@iki.fi> -2025-04-02 [285613c60] libpq: Add min/max_protocol_version connection options -Author: Heikki Linnakangas <heikki.linnakangas@iki.fi> -2025-04-02 [507034910] libpq: Handle NegotiateProtocolVersion message different ---> - -<listitem> -<para> -Add libpq connection parameters and environment variables to specify the minimum and maximum acceptable protocol version for connections (Jelte Fennema-Nio) -<ulink url="&commit_baseurl;285613c60">§</ulink> -<ulink url="&commit_baseurl;507034910">§</ulink> -</para> -</listitem> - -<!-- -Author: Michael Paquier <michael@paquier.xyz> -2024-12-18 [4b99fed75] libpq: Add service name to PGconn and PQservice() ---> - -<listitem> -<para> -Add libpq function PQservice() to return the connection service name (Michael Banck) -<ulink url="&commit_baseurl;4b99fed75">§</ulink> -</para> -</listitem> - -<!-- -Author: Tomas Vondra <tomas.vondra@postgresql.org> -2024-08-19 [28a1121fd] Mark search_path as GUC_REPORT -Author: Tomas Vondra <tomas.vondra@postgresql.org> -2024-08-19 [0d06a7eac] Document that search_path is reported by the server ---> - -<listitem> -<para> -Report search_path changes to the client (Alexander Kukushkin, Jelte Fennema-Nio, Tomas Vondra) -<ulink url="&commit_baseurl;28a1121fd">§</ulink> -<ulink url="&commit_baseurl;0d06a7eac">§</ulink> -</para> -</listitem> - -<!-- -Author: Álvaro Herrera <alvherre@alvh.no-ip.org> -2024-08-12 [ea92f3a0a] libpq: Trace frontend authentication challenges -Author: Álvaro Herrera <alvherre@alvh.no-ip.org> -2024-08-14 [a5c6b8f22] libpq: Trace responses to SSLRequest and GSSENCRequest -Author: Álvaro Herrera <alvherre@alvh.no-ip.org> -2024-08-16 [b8b3f861f] libpq: Trace all messages received from the server -Author: Robert Haas <rhaas@postgresql.org> -2025-02-24 [e87c14b19] libpq: Trace all NegotiateProtocolVersion fields -Author: Álvaro Herrera <alvherre@alvh.no-ip.org> -2024-08-09 [7adec2d5f] libpq: Trace StartupMessage/SSLRequest/GSSENCRequest cor ---> - -<listitem> -<para> -Add PQtrace() output for all message types, including authentication (Jelte Fennema-Nio) -<ulink url="&commit_baseurl;ea92f3a0a">§</ulink> -<ulink url="&commit_baseurl;a5c6b8f22">§</ulink> -<ulink url="&commit_baseurl;b8b3f861f">§</ulink> -<ulink url="&commit_baseurl;e87c14b19">§</ulink> -<ulink url="&commit_baseurl;7adec2d5f">§</ulink> -</para> -</listitem> - -<!-- -Author: Daniel Gustafsson <dgustafsson@postgresql.org> -2025-04-03 [2da74d8d6] libpq: Add support for dumping SSL key material to file ---> - -<listitem> -<para> -Add libpq connection parameter sslkeylogfile which dumps out SSL key material (Abhishek Chanda, Daniel Gustafsson) -<ulink url="&commit_baseurl;2da74d8d6">§</ulink> -</para> - -<para> -This is useful for debugging. -</para> -</listitem> - -<!-- -Author: Thomas Munro <tmunro@postgresql.org> -2025-03-25 [3c86223c9] libpq: Deprecate pg_int64. ---> - -<listitem> -<para> -Modify some libpq function signatures to use int64_t (Thomas Munro) -<ulink url="&commit_baseurl;3c86223c9">§</ulink> -</para> - -<para> -These previously used pg_int64, which is now deprecated. -</para> -</listitem> - - </itemizedlist> - - </sect3> - - <sect3 id="release-18-psql"> - <title><xref linkend="app-psql"/></title> - - <itemizedlist> - -<!-- -Author: Michael Paquier <michael@paquier.xyz> -2024-08-22 [d55322b0d] psql: Add more meta-commands able to use the extended pr ---> - -<listitem> -<para> -Allow psql to parse, bind, and close named prepared statements (Anthonin Bonnefoy, Michael Paquier) -<ulink url="&commit_baseurl;d55322b0d">§</ulink> -</para> - -<para> -This is accomplished with new commands \parse, \bind_named, and \close. -</para> -</listitem> - -<!-- -Author: Michael Paquier <michael@paquier.xyz> -2025-02-21 [41625ab8e] psql: Add support for pipelines -Author: Michael Paquier <michael@paquier.xyz> -2025-03-18 [17caf6644] psql: Add \sendpipeline to send query buffers while in a -Author: Michael Paquier <michael@paquier.xyz> -2025-03-19 [2cce0fe44] psql: Allow queries terminated by semicolons while in pi ---> - -<listitem> -<para> -Add psql backslash commands to allowing issuance of pipeline queries (Anthonin Bonnefoy) -<ulink url="&commit_baseurl;41625ab8e">§</ulink> -<ulink url="&commit_baseurl;17caf6644">§</ulink> -<ulink url="&commit_baseurl;2cce0fe44">§</ulink> -</para> - -<para> -The new commands are \startpipeline, \syncpipeline, \sendpipeline, \endpipeline, \flushrequest, \flush, and \getresults. -</para> -</listitem> - -<!-- -Author: Michael Paquier <michael@paquier.xyz> -2025-02-25 [3ce357584] psql: Add pipeline status to prompt and some state varia ---> - -<listitem> -<para> -Allow adding pipeline status to the psql prompt and add related state variables (Anthonin Bonnefoy) -<ulink url="&commit_baseurl;3ce357584">§</ulink> -</para> - -<para> -The new prompt character is "%P" and the new psql variables are PIPELINE_SYNC_COUNT, PIPELINE_COMMAND_COUNT, and PIPELINE_RESULT_COUNT. -</para> -</listitem> - -<!-- -Author: Michael Paquier <michael@paquier.xyz> -2024-12-18 [477728b5d] psql: Add more information about service name ---> - -<listitem> -<para> -Allow adding the connection service name to the psql prompt or access it via psql variable (Michael Banck) -<ulink url="&commit_baseurl;477728b5d">§</ulink> -</para> -</listitem> - -<!-- -Author: Dean Rasheed <dean.a.rasheed@gmail.com> -2025-01-14 [00f4c2959] psql: Add option to use expanded mode to all list comman ---> - -<listitem> -<para> -Add psql option to use expanded mode on all list commands (Dean Rasheed) -<ulink url="&commit_baseurl;00f4c2959">§</ulink> -</para> - -<para> -Adding 'x' enables this. -</para> -</listitem> - -<!-- -Author: Álvaro Herrera <alvherre@alvh.no-ip.org> -2025-02-22 [bba2fbc62] Change \conninfo to use tabular format ---> - -<listitem> -<para> -Change psql's \conninfo to use tabular format and include more information (Álvaro Herrera, Maiquel Grassi, Hunaid Sohail) -<ulink url="&commit_baseurl;bba2fbc62">§</ulink> -</para> -</listitem> - -<!-- -Author: Dean Rasheed <dean.a.rasheed@gmail.com> -2025-01-14 [2355e5111] psql: Add leakproof indicator to \df+, \do+, \dAo+, and ---> - -<listitem> -<para> -Add function's leakproof indicator to psql's \df+, \do+, \dAo+, and \dC+ outputs (Yugo Nagata) -<ulink url="&commit_baseurl;2355e5111">§</ulink> -</para> -</listitem> - -<!-- -Author: Michael Paquier <michael@paquier.xyz> -2024-07-02 [978f38c77] Add information about access method for partitioned rela ---> - -<listitem> -<para> -Add access method details for partitioned relations in \dP+ (Justin Pryzby) -<ulink url="&commit_baseurl;978f38c77">§</ulink> -</para> -</listitem> - -<!-- -Author: Magnus Hagander <magnus@hagander.net> -2025-03-24 [d696406a9] psql: show default extension version in \dx output ---> - -<listitem> -<para> -Add "default_version" to the psql \dx extension output (Magnus Hagander) -<ulink url="&commit_baseurl;d696406a9">§</ulink> -</para> -</listitem> - -<!-- -Author: Daniel Gustafsson <dgustafsson@postgresql.org> -2025-03-25 [1a759c832] psql: Make default \watch interval configurable ---> - -<listitem> -<para> -Add psql variable WATCH_INTERVAL to set the default \watch wait time (Daniel Gustafsson) -<ulink url="&commit_baseurl;1a759c832">§</ulink> -</para> -</listitem> - - </itemizedlist> - - </sect3> - - <sect3 id="release-18-server-apps"> - <title>Server Applications</title> - - <itemizedlist> - -<!-- -Author: Peter Eisentraut <peter@eisentraut.org> -2024-10-01 [983a588e0] initdb: Add new option "- -no-data-checksums" -Author: Peter Eisentraut <peter@eisentraut.org> -2024-10-16 [04bec894a] initdb: Change default to using data checksums. ---> - -<listitem> -<para> -Change initdb to default to enabling checksums (Greg Sabino Mullane) -<ulink url="&commit_baseurl;983a588e0">§</ulink> -<ulink url="&commit_baseurl;04bec894a">§</ulink> -</para> - -<para> -The new initdb option --no-data-checksums disables checksums. -</para> -</listitem> - -<!-- -Author: Nathan Bossart <nathan@postgresql.org> -2025-03-25 [cf131fa94] initdb: Add - -no-sync-data-files. ---> - -<listitem> -<para> -Add initdb option --no-sync-data-files to avoid syncing heap/index files (Nathan Bossart) -<ulink url="&commit_baseurl;cf131fa94">§</ulink> -</para> - -<para> -initdb --no-sync is still available to avoid syncing any files. -</para> -</listitem> - -<!-- -Author: Nathan Bossart <nathan@postgresql.org> -2025-03-18 [edba754f0] vacuumdb: Add option for analyzing only relations missin -Author: Nathan Bossart <nathan@postgresql.org> -2025-04-30 [987910502] vacuumdb: Don't skip empty relations in - -missing-stats- ---> - -<listitem> -<para> -Add vacuumdb option --missing-stats-only to compute only missing optimizer statistics (Corey Huinker, Nathan Bossart) -<ulink url="&commit_baseurl;edba754f0">§</ulink> -<ulink url="&commit_baseurl;987910502">§</ulink> -</para> - -<para> -This option can only be used by --analyze-only and --analyze-in-stages. -</para> -</listitem> - -<!-- -Author: Robert Haas <rhaas@postgresql.org> -2025-03-17 [99aeb8470] pg_combinebackup: Add -k, - -link option. ---> - -<listitem> -<para> -Add pg_combinebackup option -k/--link to enable hard linking (Israel Barth Rubio, Robert Haas) -<ulink url="&commit_baseurl;99aeb8470">§</ulink> -</para> - -<para> -Only some files can be hard linked. This should not be used if the backups will be used independently. -</para> -</listitem> - -<!-- -Author: Robert Haas <rhaas@postgresql.org> -2024-09-27 [8dfd31290] pg_verifybackup: Verify tar-format backups. ---> - -<listitem> -<para> -Allow pg_verifybackup to verify tar-format backups (Amul Sul) -<ulink url="&commit_baseurl;8dfd31290">§</ulink> -</para> -</listitem> - -<!-- -Author: Masahiko Sawada <msawada@postgresql.org> -2025-03-12 [4ecdd4110] pg_rewind: Add dbname to primary_conninfo when using - -w ---> - -<listitem> -<para> -If pg_rewind's --source-server specifies a database name, use it in --write-recovery-conf output (Masahiko Sawada) -<ulink url="&commit_baseurl;4ecdd4110">§</ulink> -</para> -</listitem> - -<!-- -Author: Masahiko Sawada <msawada@postgresql.org> -2025-02-21 [30666d185] pg_resetwal: Add - -char-signedness option to change the ---> - -<listitem> -<para> -Add pg_resetwal option --char-signedness to change the default char signedness (Masahiko Sawada) -<ulink url="&commit_baseurl;30666d185">§</ulink> -</para> -</listitem> - - </itemizedlist> - - - <sect4 id="release-18-pgdump"> - <title><link - linkend="app-pgdump"><application>pg_dump</application></link>/<link - linkend="app-pg-dumpall"><application>pg_dumpall</application></link>/<link - linkend="app-pgrestore"><application>pg_restore</application></link></title> - - <itemizedlist> - -<!-- -Author: Andrew Dunstan <andrew@dunslane.net> -2025-04-04 [1495eff7b] Non text modes for pg_dumpall, correspondingly change pg ---> - -<listitem> -<para> -Allow pg_dumpall to dump in the same output formats as pg_dump supports (Mahendra Singh Thalor, Andrew Dunstan) -<ulink url="&commit_baseurl;1495eff7b">§</ulink> -</para> - -<para> -Also modify pg_restore to handle such dumps. Previously pg_dumpall only supported text format. -</para> -</listitem> - -<!-- -Author: Jeff Davis <jdavis@postgresql.org> -2025-03-25 [bde2fb797] Add pg_dump - -with-{schema|data|statistics} options. ---> - -<listitem> -<para> -Add pg_dump options --with-schema, --with-data, and --with-statistics (Jeff Davis) -<ulink url="&commit_baseurl;bde2fb797">§</ulink> -</para> -</listitem> - -<!-- -Author: Nathan Bossart <nathan@postgresql.org> -2025-03-25 [9c49f0e8c] pg_dump: Add - -sequence-data. ---> - -<listitem> -<para> -Add pg_dump option --sequence-data to dump sequence data that would normally be excluded (Nathan Bossart) -<ulink url="&commit_baseurl;9c49f0e8c">§</ulink> -</para> -</listitem> - -<!-- -Author: Jeff Davis <jdavis@postgresql.org> -2025-02-20 [1fd1bd871] Transfer statistics during pg_upgrade. ---> - -<listitem> -<para> -Add pg_dump, pg_dumpall, and pg_restore options --statistics-only, --no-statistics, --no-data, and --no-schema (Corey Huinker, Jeff Davis) -<ulink url="&commit_baseurl;1fd1bd871">§</ulink> -</para> -</listitem> - -<!-- -Author: Tom Lane <tgl@sss.pgh.pa.us> -2025-03-16 [cd3c45125] pg_dump, pg_dumpall, pg_restore: Add - -no-policies optio ---> - -<listitem> -<para> -Add option --no-policies to disable row level security policy processing in pg_dump, pg_dumpall, pg_restore (Nikolay Samokhvalov) -<ulink url="&commit_baseurl;cd3c45125">§</ulink> -</para> - -<para> -This is useful for migrating to systems with different policies. -</para> -</listitem> - - </itemizedlist> - - </sect4> - - <sect4 id="release-18-pgupgrade"> - <title><link linkend="pgupgrade"><application>pg_upgrade</application></link></title> - - <itemizedlist> - -<!-- -Author: Jeff Davis <jdavis@postgresql.org> -2025-02-20 [1fd1bd871] Transfer statistics during pg_upgrade. -Author: Nathan Bossart <nathan@postgresql.org> -2025-03-18 [c9d502eb6] Update guidance for running vacuumdb after pg_upgrade. -Author: Nathan Bossart <nathan@postgresql.org> -2025-04-30 [d5f1b6a75] Further adjust guidance for running vacuumdb after pg_up -Author: Jeff Davis <jdavis@postgresql.org> -2025-02-20 [1fd1bd871] Transfer statistics during pg_upgrade. ---> - -<listitem> -<para> -Allow pg_upgrade to preserve optimizer statistics (Corey Huinker, Jeff Davis, Nathan Bossart) -<ulink url="&commit_baseurl;1fd1bd871">§</ulink> -<ulink url="&commit_baseurl;c9d502eb6">§</ulink> -<ulink url="&commit_baseurl;d5f1b6a75">§</ulink> -<ulink url="&commit_baseurl;1fd1bd871">§</ulink> -</para> - -<para> -Extended statistics are not preserved. Also add pg_upgrade option --no-statistics to disable statistics preservation. -</para> -</listitem> - -<!-- -Author: Nathan Bossart <nathan@postgresql.org> -2024-09-16 [40e2e5e92] Introduce framework for parallelizing various pg_upgrade -Author: Nathan Bossart <nathan@postgresql.org> -2024-09-16 [6d3d2e8e5] pg_upgrade: Parallelize retrieving relation information. -Author: Nathan Bossart <nathan@postgresql.org> -2024-09-16 [7baa36de5] pg_upgrade: Parallelize subscription check. -Author: Nathan Bossart <nathan@postgresql.org> -2024-09-16 [46cad8b31] pg_upgrade: Parallelize retrieving loadable libraries. -Author: Nathan Bossart <nathan@postgresql.org> -2024-09-16 [6ab8f27bc] pg_upgrade: Parallelize retrieving extension updates. -Author: Nathan Bossart <nathan@postgresql.org> -2024-09-16 [bbf83cab9] pg_upgrade: Parallelize data type checks. -Author: Nathan Bossart <nathan@postgresql.org> -2024-09-16 [9db3018cf] pg_upgrade: Parallelize contrib/isn check. -Author: Nathan Bossart <nathan@postgresql.org> -2024-09-16 [c34eabfbb] pg_upgrade: Parallelize postfix operator check. -Author: Nathan Bossart <nathan@postgresql.org> -2024-09-16 [cf2f82a37] pg_upgrade: Parallelize incompatible polymorphics check. -Author: Nathan Bossart <nathan@postgresql.org> -2024-09-16 [f93f5f7b9] pg_upgrade: Parallelize WITH OIDS check. -Author: Nathan Bossart <nathan@postgresql.org> -2024-09-16 [c880cf258] pg_upgrade: Parallelize encoding conversion check. ---> - -<listitem> -<para> -Allow pg_upgrade to process database checks in parallel (Nathan Bossart) -<ulink url="&commit_baseurl;40e2e5e92">§</ulink> -<ulink url="&commit_baseurl;6d3d2e8e5">§</ulink> -<ulink url="&commit_baseurl;7baa36de5">§</ulink> -<ulink url="&commit_baseurl;46cad8b31">§</ulink> -<ulink url="&commit_baseurl;6ab8f27bc">§</ulink> -<ulink url="&commit_baseurl;bbf83cab9">§</ulink> -<ulink url="&commit_baseurl;9db3018cf">§</ulink> -<ulink url="&commit_baseurl;c34eabfbb">§</ulink> -<ulink url="&commit_baseurl;cf2f82a37">§</ulink> -<ulink url="&commit_baseurl;f93f5f7b9">§</ulink> -<ulink url="&commit_baseurl;c880cf258">§</ulink> -</para> - -<para> -This is controlled by the existing --jobs option. -</para> -</listitem> - -<!-- -Author: Nathan Bossart <nathan@postgresql.org> -2025-03-25 [626d7236b] pg_upgrade: Add - -swap for faster file transfer. ---> - -<listitem> -<para> -Add pg_upgrade option --swap to swap directories rather than copy, clone, or link files (Nathan Bossart) -<ulink url="&commit_baseurl;626d7236b">§</ulink> -</para> - -<para> -This mode is potentially the fastest. -</para> -</listitem> - -<!-- -Author: Masahiko Sawada <msawada@postgresql.org> -2025-02-21 [a8238f87f] pg_upgrade: Preserve default char signedness value from -Author: Masahiko Sawada <msawada@postgresql.org> -2025-02-21 [1aab68059] pg_upgrade: Add - -set-char-signedness to set the default ---> - -<listitem> -<para> -Add pg_upgrade option --set-char-signedness to set the default char signedness of new cluster (Masahiko Sawada) -<ulink url="&commit_baseurl;a8238f87f">§</ulink> -<ulink url="&commit_baseurl;1aab68059">§</ulink> -</para> - -<para> -This is to handle cases where a pre-Postgres 18 cluster's default CPU signedness does not match the new cluster. -</para> -</listitem> - - </itemizedlist> - - </sect4> - - <sect4 id="release-18-logicalrep-app"> - <title>Logical Replication Applications></title> - - <itemizedlist> - -<!-- -Author: Amit Kapila <akapila@postgresql.org> -2025-03-28 [fb2ea12f4] pg_createsubscriber: Add '- -all' option. ---> - -<listitem> -<para> -Add pg_createsubscriber option --all to create logical replicas for all databases (Shubham Khanna) -<ulink url="&commit_baseurl;fb2ea12f4">§</ulink> -</para> -</listitem> - -<!-- -Author: Amit Kapila <akapila@postgresql.org> -2025-03-20 [e5aeed4b8] pg_createsubscriber: Add -R publications option. ---> - -<listitem> -<para> -Add pg_createsubscriber option --remove to remove publications (Shubham Khanna) -<ulink url="&commit_baseurl;e5aeed4b8">§</ulink> -</para> -</listitem> - -<!-- -Author: Amit Kapila <akapila@postgresql.org> -2025-02-26 [e117cfb2f] Add two-phase option in pg_createsubscriber. ---> - -<listitem> -<para> -Add pg_createsubscriber option --enable-two-phase to enable prepared transactions (Shubham Khanna) -<ulink url="&commit_baseurl;e117cfb2f">§</ulink> -</para> -</listitem> - -<!-- -Author: Masahiko Sawada <msawada@postgresql.org> -2025-04-04 [cf2655a90] pg_recvlogical: Add - -failover option. ---> - -<listitem> -<para> -Add pg_recvlogical option --failover to specify failover slots (Hayato Kuroda) -<ulink url="&commit_baseurl;cf2655a90">§</ulink> -</para> -</listitem> - -<!-- -Author: Fujii Masao <fujii@postgresql.org> -2025-03-25 [c68100aa4] Allow pg_recvlogical - -drop-slot to work without - -dbnam ---> - -<listitem> -<para> -Allow pg_recvlogical --drop-slot to work without --dbname (Hayato Kuroda) -<ulink url="&commit_baseurl;c68100aa4">§</ulink> -</para> -</listitem> - - </itemizedlist> - - </sect4> - - </sect3> - - <sect3 id="release-18-source-code"> - <title>Source Code</title> - - <itemizedlist> - -<!-- -Author: Michael Paquier <michael@paquier.xyz> -2024-07-05 [4b211003e] Support loading of injection points -Author: Michael Paquier <michael@paquier.xyz> -2024-07-18 [a0a5869a8] Add INJECTION_POINT_CACHED() to run injection points dir ---> - -<listitem> -<para> -Separate the loading and running of injection points (Michael Paquier, Heikki Linnakangas) -<ulink url="&commit_baseurl;4b211003e">§</ulink> -<ulink url="&commit_baseurl;a0a5869a8">§</ulink> -</para> - -<para> -Injection points can now be created, but not run, via INJECTION_POINT_LOAD(), and such injection points can be run via INJECTION_POINT_CACHED(). -</para> -</listitem> - -<!-- -Author: Heikki Linnakangas <heikki.linnakangas@iki.fi> -2024-07-26 [20e0e7da9] Add test for early backend startup errors ---> - -<listitem> -<para> -Allow inline injection point test code with IS_INJECTION_POINT_ATTACHED() (Heikki Linnakangas) -<ulink url="&commit_baseurl;20e0e7da9">§</ulink> -</para> -</listitem> - -<!-- -Author: David Rowley <drowley@postgresql.org> -2024-08-05 [ca6fde922] Optimize JSON escaping using SIMD ---> - -<listitem> -<para> -Improve the performance of processing long JSON strings using SIMD instructions (David Rowley) -<ulink url="&commit_baseurl;ca6fde922">§</ulink> -</para> -</listitem> - -<!-- -Author: John Naylor <john.naylor@postgresql.org> -2025-04-06 [3c6e8c123] Compute CRC32C using AVX-512 instructions where availabl ---> - -<listitem> -<para> -Speed up CRC32C calculations using x86 AVX-512 instructions (Raghuveer Devulapalli, Paul Amonson) -<ulink url="&commit_baseurl;3c6e8c123">§</ulink> -</para> -</listitem> - -<!-- -Author: Nathan Bossart <nathan@postgresql.org> -2025-03-28 [6be53c276] Optimize popcount functions with ARM Neon intrinsics. -Author: Nathan Bossart <nathan@postgresql.org> -2025-03-28 [519338ace] Optimize popcount functions with ARM SVE intrinsics. ---> - -<listitem> -<para> -Add ARM Neon and SVE CPU intrinsics for popcount (integer bit counting) (Chiranmoy Bhattacharya, Devanga Susmitha, Rama Malladi) -<ulink url="&commit_baseurl;6be53c276">§</ulink> -<ulink url="&commit_baseurl;519338ace">§</ulink> -</para> -</listitem> - -<!-- -Author: Dean Rasheed <dean.a.rasheed@gmail.com> -2024-08-15 [8dc28d7eb] Optimise numeric multiplication using base-NBASE^2 arith ---> - -<listitem> -<para> -Improve the speed of multiplication (Joel Jacobson, Dean Rasheed) -<ulink url="&commit_baseurl;8dc28d7eb">§</ulink> -</para> -</listitem> - -<!-- -Author: Tomas Vondra <tomas.vondra@postgresql.org> -2025-04-07 [65c298f61] Add support for basic NUMA awareness -Author: Tomas Vondra <tomas.vondra@postgresql.org> -2025-04-07 [8cc139bec] Introduce pg_shmem_allocations_numa view -Author: Tomas Vondra <tomas.vondra@postgresql.org> -2025-04-07 [ba2a3c230] Add pg_buffercache_numa view with NUMA node info ---> - -<listitem> -<para> -Add configure option --with-libnuma to enable NUMA awareness (Jakub Wartak, Bertrand Drouvot) -<ulink url="&commit_baseurl;65c298f61">§</ulink> -<ulink url="&commit_baseurl;8cc139bec">§</ulink> -<ulink url="&commit_baseurl;ba2a3c230">§</ulink> -</para> - -<para> -The function pg_numa_available() reports on NUMA awareness, and system views pg_shmem_allocations_numa and pg_buffercache_numa which report on shared memory distribution across -NUMA nodes. -</para> -</listitem> - -<!-- -Author: Nathan Bossart <nathan@postgresql.org> -2024-09-18 [b52c4fc3c] Add TOAST table to pg_index. ---> - -<listitem> -<para> -Add TOAST table to pg_index to allow for very large index expression indexes (Nathan Bossart) -<ulink url="&commit_baseurl;b52c4fc3c">§</ulink> -</para> -</listitem> - -<!-- -Author: David Rowley <drowley@postgresql.org> -2024-12-20 [02a8d0c45] Remove pg_attribute.attcacheoff column ---> - -<listitem> -<para> -Remove column pg_attribute.attcacheoff (David Rowley) -<ulink url="&commit_baseurl;02a8d0c45">§</ulink> -</para> -</listitem> - -<!-- -Author: Melanie Plageman <melanieplageman@gmail.com> -2025-03-03 [99f8f3fbb] Add relallfrozen to pg_class ---> - -<listitem> -<para> -Add column pg_class.relallfrozen (Melanie Plageman) -<ulink url="&commit_baseurl;99f8f3fbb">§</ulink> -</para> -</listitem> - -<!-- -Author: Peter Eisentraut <peter@eisentraut.org> -2024-09-10 [56fead44d] Add amgettreeheight index AM API routine -Author: Peter Eisentraut <peter@eisentraut.org> -2025-03-07 [af4002b38] Rename amcancrosscompare ---> - -<listitem> -<para> -Add amgettreeheight, amconsistentequality, and amconsistentordering to the index access method API (Mark Dilger) -<ulink url="&commit_baseurl;56fead44d">§</ulink> -<ulink url="&commit_baseurl;af4002b38">§</ulink> -</para> -</listitem> - -<!-- -Author: Peter Eisentraut <peter@eisentraut.org> -2024-09-17 [7406ab623] Add stratnum GiST support function ---> - -<listitem> -<para> -Add GiST support function stratnum (Paul A. Jungwirth) -<ulink url="&commit_baseurl;7406ab623">§</ulink> -</para> -</listitem> - -<!-- -Author: Masahiko Sawada <msawada@postgresql.org> -2025-02-21 [44fe30fda] Add default_char_signedness field to ControlFileData. ---> - -<listitem> -<para> -Record the default CPU signedness of "char" in pg_controldata (Masahiko Sawada) -<ulink url="&commit_baseurl;44fe30fda">§</ulink> -</para> -</listitem> - -<!-- -Author: Peter Eisentraut <peter@eisentraut.org> -2025-03-12 [72a3d0462] Prepare for Python "Limited API" in PL/Python -Author: Peter Eisentraut <peter@eisentraut.org> -2025-03-14 [0793ab810] Activate Python "Limited API" in PL/Python ---> - -<listitem> -<para> -Add support for Python "Limited API" in PL/Python (Peter Eisentraut) -<ulink url="&commit_baseurl;72a3d0462">§</ulink> -<ulink url="&commit_baseurl;0793ab810">§</ulink> -</para> - -<para> -This helps prevent problems caused by Python 3.x version mismatches. -</para> -</listitem> - -<!-- -Author: Jacob Champion <jchampion@postgresql.org> -2025-04-29 [45363fca6] Bump the minimum supported Python version to 3.6.8 ---> - -<listitem> -<para> -Change the minimum supported Python version to 3.6.8 (Jacob Champion) -<ulink url="&commit_baseurl;45363fca6">§</ulink> -</para> -</listitem> - -<!-- -Author: Daniel Gustafsson <dgustafsson@postgresql.org> -2024-09-02 [a70e01d43] Remove support for OpenSSL older than 1.1.0 -Author: Daniel Gustafsson <dgustafsson@postgresql.org> -2024-10-24 [6c66b7443] Raise the minimum supported OpenSSL version to 1.1.1 ---> - -<listitem> -<para> -Remove support for OpenSSL versions older than 1.1.1 (Daniel Gustafsson) -<ulink url="&commit_baseurl;a70e01d43">§</ulink> -<ulink url="&commit_baseurl;6c66b7443">§</ulink> -</para> -</listitem> - -<!-- -Author: Peter Eisentraut <peter@eisentraut.org> -2024-10-01 [972c2cd28] jit: Require at least LLVM 14, if enabled. ---> - -<listitem> -<para> -If LLVM is enabled, require version 14 or later (Thomas Munro) -<ulink url="&commit_baseurl;972c2cd28">§</ulink> -</para> -</listitem> - -<!-- -Author: Tom Lane <tgl@sss.pgh.pa.us> -2025-03-26 [9324c8c58] Introduce PG_MODULE_MAGIC_EXT macro. ---> - -<listitem> -<para> -Add macro PG_MODULE_MAGIC_EXT to allow extensions to report their name and version (Andrei Lepikhov) -<ulink url="&commit_baseurl;9324c8c58">§</ulink> -</para> - -<para> -This information can be access via the new function pg_get_loaded_modules(). -</para> -</listitem> - -<!-- -Author: Tom Lane <tgl@sss.pgh.pa.us> -2024-09-09 [218527d01] Don't bother checking the result of SPI_connect[_ext] an ---> - -<listitem> -<para> -Document that SPI_connect/SPI_connect_ext() always returns success (SPI_OK_CONNECT) (Stepan Neretin) -<ulink url="&commit_baseurl;218527d01">§</ulink> -</para> - -<para> -Errors are always reported via ereport(). -</para> -</listitem> - -<!-- -Author: Peter Eisentraut <peter@eisentraut.org> -2025-01-27 [5afaba629] doc: Meson is not experimental on Windows ---> - -<listitem> -<para> -Remove the experimental designation of Meson builds on Windows (Aleksander Alekseev) -<ulink url="&commit_baseurl;5afaba629">§</ulink> -</para> -</listitem> - -<!-- -Author: Peter Eisentraut <peter@eisentraut.org> -2024-07-31 [e54a42ac9] Add API and ABI stability guidance to the C language doc ---> - -<listitem> -<para> -Add documentation section about API and ABI compatibility (David Wheeler, Peter Eisentraut) -<ulink url="&commit_baseurl;e54a42ac9">§</ulink> -</para> -</listitem> - -<!-- -Author: Thomas Munro <tmunro@postgresql.org> -2024-07-30 [e25626677] Remove - -disable-spinlocks. -Author: Thomas Munro <tmunro@postgresql.org> -2024-07-30 [813852613] Remove - -disable-atomics, require 32 bit atomics. ---> - -<listitem> -<para> -Remove configure options --disable-spinlocks and --disable-atomics (Thomas Munro) -<ulink url="&commit_baseurl;e25626677">§</ulink> -<ulink url="&commit_baseurl;813852613">§</ulink> -</para> - -<para> -Thirty-two bit atomic operations are now required. -</para> -</listitem> - -<!-- -Author: Tom Lane <tgl@sss.pgh.pa.us> -2024-07-01 [edadeb071] Remove support for HPPA (a/k/a PA-RISC) architecture. ---> - -<listitem> -<para> -Remove support for the HPPA/PA-RISC architecture (Tom Lane) -<ulink url="&commit_baseurl;edadeb071">§</ulink> -</para> -</listitem> - - </itemizedlist> - - </sect3> - - <sect3 id="release-18-modules"> - <title>Additional Modules</title> - - <itemizedlist> - -<!-- -Author: Masahiko Sawada <msawada@postgresql.org> -2024-10-14 [7cdfeee32] Add contrib/pg_logicalinspect. ---> - -<listitem> -<para> -Add extension pg_logicalinspect to inspect logical snapshots (Bertrand Drouvot) -<ulink url="&commit_baseurl;7cdfeee32">§</ulink> -</para> -</listitem> - -<!-- -Author: Robert Haas <rhaas@postgresql.org> -2025-03-26 [8d5ceb113] pg_overexplain: Additional EXPLAIN options for debugging ---> - -<listitem> -<para> -Add extension pg_overexplain which adds debug details to EXPLAIN output (Robert Haas) -<ulink url="&commit_baseurl;8d5ceb113">§</ulink> -</para> -</listitem> - -<!-- -Author: Fujii Masao <fujii@postgresql.org> -2024-07-26 [c297a47c5] postgres_fdw: Add "used_in_xact" column to postgres_fdw_ -Author: Fujii Masao <fujii@postgresql.org> -2024-07-26 [857df3cef] postgres_fdw: Add connection status check to postgres_fd -Author: Fujii Masao <fujii@postgresql.org> -2024-09-18 [4f08ab554] postgres_fdw: Extend postgres_fdw_get_connections to ret -Author: Fujii Masao <fujii@postgresql.org> -2025-03-03 [fe186bda7] postgres_fdw: Extend postgres_fdw_get_connections to ret ---> - -<listitem> -<para> -Add output columns to postgres_fdw_get_connections() (Hayato Kuroda, Sagar Dilip Shedge) -<ulink url="&commit_baseurl;c297a47c5">§</ulink> -<ulink url="&commit_baseurl;857df3cef">§</ulink> -<ulink url="&commit_baseurl;4f08ab554">§</ulink> -<ulink url="&commit_baseurl;fe186bda7">§</ulink> -</para> - -<para> -New output column "used_in_xact" indicates if the foreign data wrapper is being used by a current transaction, "closed" indicates if it is closed, "user_name" indicates the -user name, and "remote_backend_pid" indicates the remote backend process identifier. -</para> -</listitem> - -<!-- -Author: Peter Eisentraut <peter@eisentraut.org> -2025-01-15 [761c79508] postgres_fdw: SCRAM authentication pass-through ---> - -<listitem> -<para> -Allow SCRAM authentication from the client to be passed to postgres_fdw servers (Matheus Alcantara, Peter Eisentraut) -<ulink url="&commit_baseurl;761c79508">§</ulink> -</para> - -<para> -This avoids storing postgres_fdw authentication information in the database, and is enabled with the postgres_fdw "use_scram_passthrough" connection option. libpq uses new connection -parameters scram_client_key and scram_server_key. -</para> -</listitem> - -<!-- -Author: Peter Eisentraut <peter@eisentraut.org> -2025-03-26 [3642df265] dblink: SCRAM authentication pass-through ---> - -<listitem> -<para> -Allow SCRAM authentication from the client to be passed to dblink servers (Matheus Alcantara) -<ulink url="&commit_baseurl;3642df265">§</ulink> -</para> -</listitem> - -<!-- -Author: Fujii Masao <fujii@postgresql.org> -2024-10-03 [a1c4c8a9e] file_fdw: Add on_error and log_verbosity options to file ---> - -<listitem> -<para> -Add on_error and log_verbosity options to file_fdw (Atsushi Torikoshi) -<ulink url="&commit_baseurl;a1c4c8a9e">§</ulink> -</para> - -<para> -These control how file_fdw handles and reports invalid file rows. -</para> -</listitem> - -<!-- -Author: Fujii Masao <fujii@postgresql.org> -2024-11-20 [6c8f67032] file_fdw: Add REJECT_LIMIT option to file_fdw. ---> - -<listitem> -<para> -Add "reject_limit" to control the number of invalid rows file_fdw can ignore (Atsushi Torikoshi) -<ulink url="&commit_baseurl;6c8f67032">§</ulink> -</para> - -<para> -This is active when ON_ERROR = 'ignore'. -</para> -</listitem> - -<!-- -Author: Nathan Bossart <nathan@postgresql.org> -2025-01-07 [f7e1b3828] Add passwordcheck.min_password_length. ---> - -<listitem> -<para> -Add configurable variable min_password_length to passwordcheck (Emanuele Musella, Maurizio Boriani) -<ulink url="&commit_baseurl;f7e1b3828">§</ulink> -</para> - -<para> -This controls the minimum password length. -</para> -</listitem> - -<!-- -Author: Tatsuo Ishii <ishii@postgresql.org> -2024-10-11 [cae0f3c40] pgbench: Improve result outputs related to failed transa ---> - -<listitem> -<para> -Have pgbench report the number of failed, retried, or skipped transactions in per-script reports (Yugo Nagata) -<ulink url="&commit_baseurl;cae0f3c40">§</ulink> -</para> -</listitem> - -<!-- -Author: Tom Lane <tgl@sss.pgh.pa.us> -2025-03-16 [448904423] contrib/isn: Make weak mode a GUC setting, and fix relat ---> - -<listitem> -<para> -Add isn server variable "weak" to control invalid check digit acceptance (Viktor Holmberg) -<ulink url="&commit_baseurl;448904423">§</ulink> -</para> - -<para> -This was previously only controlled by function isn_weak(). -</para> -</listitem> - -<!-- -Author: Heikki Linnakangas <heikki.linnakangas@iki.fi> -2025-04-03 [e4309f73f] Add support for sorted gist index builds to btree_gist ---> - -<listitem> -<para> -Allow values to be sorted to speed btree_gist index builds (Bernd Helmle, Andrey Borodin) -<ulink url="&commit_baseurl;e4309f73f">§</ulink> -</para> -</listitem> - -<!-- -Author: Tomas Vondra <tomas.vondra@postgresql.org> -2025-03-29 [14ffaece0] amcheck: Add gin_index_check() to verify GIN index ---> - -<listitem> -<para> -Add amcheck function gin_index_check() to verify GIN indexes (Grigory Kryachko, Heikki Linnakangas, Andrey Borodin) -<ulink url="&commit_baseurl;14ffaece0">§</ulink> -</para> -</listitem> - -<!-- -Author: Andres Freund <andres@anarazel.de> -2025-04-08 [dcf7e1697] Add pg_buffercache_evict_{relation,all} functions ---> - -<listitem> -<para> -Add functions pg_buffercache_evict_relation() and pg_buffercache_evict_all() to evict unpinned shared buffers (Nazir Bilal Yavuz) -<ulink url="&commit_baseurl;dcf7e1697">§</ulink> -</para> - -<para> -The existing function pg_buffercache_evict() now returns the buffer flush status. -</para> -</listitem> - -<!-- -Author: Robert Haas <rhaas@postgresql.org> -2025-03-18 [c65bc2e1d] Make it possible for loadable modules to add EXPLAIN opt -Author: Robert Haas <rhaas@postgresql.org> -2025-03-18 [4fd02bf7c] Add some new hooks so extensions can add details to EXPL -Author: Robert Haas <rhaas@postgresql.org> -2025-03-20 [50ba65e73] Add an additional hook for EXPLAIN option validation. ---> - -<listitem> -<para> -Allow extensions to install custom EXPLAIN options (Robert Haas, Sami Imseih) -<ulink url="&commit_baseurl;c65bc2e1d">§</ulink> -<ulink url="&commit_baseurl;4fd02bf7c">§</ulink> -<ulink url="&commit_baseurl;50ba65e73">§</ulink> -</para> -</listitem> - -<!-- -Author: Michael Paquier <michael@paquier.xyz> -2024-08-04 [7949d9594] Introduce pluggable APIs for Cumulative Statistics -Author: Michael Paquier <michael@paquier.xyz> -2024-08-05 [2eff9e678] Add helper routines to retrieve data for custom fixed-nu ---> - -<listitem> -<para> -Allow extensions to use the server's cumulative statistics API (Michael Paquier) -<ulink url="&commit_baseurl;7949d9594">§</ulink> -<ulink url="&commit_baseurl;2eff9e678">§</ulink> -</para> -</listitem> - - </itemizedlist> - - <sect4 id="release-18-pgstatstatements"> - <title><link linkend="pgstatstatements"><application>pg_stat_statements</application></link></title> - - <itemizedlist> - -<!-- -Author: Michael Paquier <michael@paquier.xyz> -2024-10-28 [6b652e6ce] Set query ID for inner queries of CREATE TABLE AS and DE ---> - -<listitem> -<para> -Allow the queries of CREATE TABLE AS and DECLARE to be tracked by pg_stat_statements (Anthonin Bonnefoy) -<ulink url="&commit_baseurl;6b652e6ce">§</ulink> -</para> - -<para> -They are also now assigned query ids. -</para> -</listitem> - -<!-- -Author: Michael Paquier <michael@paquier.xyz> -2024-09-30 [dc6851596] Show values of SET statements as constants in pg_stat_st ---> - -<listitem> -<para> -Allow the parameterization of SET values in pg_stat_statements (Greg Sabino Mullane, Michael Paquier) -<ulink url="&commit_baseurl;dc6851596">§</ulink> -</para> - -<para> -This reduces the bloat caused by SET statements with differing constants. -</para> -</listitem> - -<!-- -Author: Michael Paquier <michael@paquier.xyz> -2024-10-09 [cf54a2c00] pg_stat_statements: Add columns to track parallel worker ---> - -<listitem> -<para> -Add pg_stat_statements columns to report parallel activity (Guillaume Lelarge) -<ulink url="&commit_baseurl;cf54a2c00">§</ulink> -</para> - -<para> -The new columns are parallel_workers_to_launch and parallel_workers_launched. -</para> -</listitem> - -<!-- -Author: Michael Paquier <michael@paquier.xyz> -2025-02-17 [ce5bcc4a9] pg_stat_statements: Add wal_buffers_full ---> - -<listitem> -<para> -Add pg_stat_statements.wal_buffers_full to report full WAL buffers (Bertrand Drouvot) -<ulink url="&commit_baseurl;ce5bcc4a9">§</ulink> -</para> -</listitem> - - </itemizedlist> - - </sect4> - - <sect4 id="release-18-pgcrypto"> - <title><link linkend="pgcrypto"><application>pgcrypto</application></link></title> - - <itemizedlist> - -<!-- -Author: Álvaro Herrera <alvherre@alvh.no-ip.org> -2025-04-05 [749a9e20c] Add modern SHA-2 based password hashes to pgcrypto. ---> - -<listitem> -<para> -Add pgcrypto functions sha256crypt() and sha512crypt() (Bernd Helmle) -<ulink url="&commit_baseurl;749a9e20c">§</ulink> -</para> -</listitem> - -<!-- -Author: Daniel Gustafsson <dgustafsson@postgresql.org> -2025-02-14 [9ad1b3d01] pgcrypto: Add support for CFB mode in AES encryption ---> - -<listitem> -<para> -Add CFB mode to pgcrypto encryption and decryption (Umar Hayat) -<ulink url="&commit_baseurl;9ad1b3d01">§</ulink> -</para> -</listitem> - -<!-- -Author: Daniel Gustafsson <dgustafsson@postgresql.org> -2025-01-24 [035f99cbe] pgcrypto: Make it possible to disable built-in crypto ---> - -<listitem> -<para> -Add pgcrypto server variable builtin_crypto_enabled to allow disabling builtin non-FIPS mode cryptographic functions (Daniel Gustafsson, Joe Conway) -<ulink url="&commit_baseurl;035f99cbe">§</ulink> -</para> - -<para> -This is useful for guaranteeing FIPS mode behavior. -</para> -</listitem> - - </itemizedlist> - </sect4> - - </sect3> - - </sect2> - - <sect2 id="release-18-acknowledgements"> - <title>Acknowledgments</title> - - <para> - The following individuals (in alphabetical order) have contributed - to this release as patch authors, committers, reviewers, testers, - or reporters of issues. - </para> - - <simplelist> - <member>(to be completed)</member> - </simplelist> - </sect2> - - </sect1> |