From: Bruce Momjian Date: Wed, 3 Jun 2026 17:48:02 +0000 (-0400) Subject: doc PG 19 relnotes: reordering, rewording, added markup X-Git-Url: http://git.ipfire.org/gitweb/index.cgi?a=commitdiff_plain;h=41ddb9c33eadc7fec0745b86943c87f3a465cd40;p=thirdparty%2Fpostgresql.git doc PG 19 relnotes: reordering, rewording, added markup --- diff --git a/doc/src/sgml/release-19.sgml b/doc/src/sgml/release-19.sgml index 465bb7f8dd4..3fb944e5681 100644 --- a/doc/src/sgml/release-19.sgml +++ b/doc/src/sgml/release-19.sgml @@ -77,7 +77,7 @@ Issue a warning after successful MD5 password authentication (Nathan Bossart) -The warning can be disabled via server variable md5_password_warnings. MD5 passwords were marked as deprecated in Postgres 18. +The warning can be disabled via server variable md5_password_warnings. MD5 passwords were marked as deprecated in PostgreSQL 18. @@ -93,7 +93,7 @@ Remove RADIUS support (Thomas Munro) -Postgres only supported RADIUS over UDP, which is unfixably insecure. +PostgreSQL only supported RADIUS over UDP, which is unfixably insecure. @@ -125,7 +125,7 @@ Prevent carriage returns and line feeds in database, role, and tablespace names -This was changed to avoid security problems. pg_upgrade will also disallow upgrading from clusters that use such names. +This was changed to avoid security problems. pg_upgrade will also disallow upgrading of clusters that use such names. @@ -138,7 +138,7 @@ Author: Tom Lane -Change the default index opclasses for inet and cidr data types from to GiST (Tom Lane) +Change the default index opclasses for inet and cidr data types from to GiST (Tom Lane) § § @@ -164,7 +164,7 @@ Stop reordering non-schema objects created by < -The goal of the reordering was to avoid dependencies, but it was imperfect. Postgres now uses the specified object ordering, except for foreign keys which are created last. +The goal of the reordering was to avoid dependencies, but it was imperfect. PostgreSQL now uses the specified object ordering, except for foreign keys which are created last. @@ -239,12 +239,12 @@ Author: Tomas Vondra -Change JIT to be disabled by default (Jelte Fennema-Nio) +Change JIT to be disabled by default (Jelte Fennema-Nio) § -Previously JIT was enabled by default, and activated based on optimizer costs. Unfortunately, this costing has been determined to be unreliable, so require sites that are doing many +Previously JIT was enabled by default, and activated based on optimizer costs, but this costing has been determined to be unreliable. This this change requires sites that are doing many large analytical queries to manually enable JIT. @@ -310,8 +310,8 @@ This encoding was complex and rarely used. Databases using it will need to be d Below you will find a detailed account of the changes between - PostgreSQL 19 and the previous major - release. + PostgreSQL 19 and the previous major + release. @@ -328,7 +328,7 @@ Author: Richard Guo -Allow NOT IN clauses to be converted to more efficient anti-joins when NULLs are not present (Richard Guo) +Allow NOT IN clauses to be converted to more efficient ANTI JOINs when NULLs are not present (Richard Guo) § @@ -359,13 +359,23 @@ Allow use of Memoize for ANTI JOINs with unique inner sides ( -Improve the planning of semijoins (Richard Guo) -§ +Allow some aggregate processing to be performed before joins (Richard Guo, Antonin Houska) +§ +§ +§ + + + +This can reduce the number of rows needed to be processed. @@ -383,41 +393,16 @@ Improve hash join's handling of tuples with NULL join keys (T - - - -Convert IS [NOT] DISTINCT FROM NULL to IS [NOT] NULL during constant folding (Richard Guo) -§ - - - -The latter form is more easily optimized. - - - - -Perform earlier constant folding of Var IS [NOT] NULL in the optimizer (Richard Guo) -§ - - - -This allows for later optimizations. +Improve the planning of semijoins (Richard Guo) +§ - - Allow Append and MergeAppend to consider explicit incremental sorts (Richard Guo) @@ -427,51 +412,45 @@ Allow Append and MergeAppend to consider explicit incremental sorts (Richard Guo -Allow some aggregate processing to be performed before joins (Richard Guo, Antonin Houska) -§ -§ -§ +Convert IS [NOT] DISTINCT FROM NULL to IS [NOT] NULL during constant folding (Richard Guo) +§ -This can reduce the number of rows needed to be processed. +The latter form is more easily optimized. -Allow negative values of pg_aggregate.aggtransspace to indicate unbounded memory usage (Richard Guo) -§ - - - -This information is used by the optimizer in planning memory usage. +Simplify IS [NOT] DISTINCT FROM to equality/inequality operators when inputs are proven non-nullable (Richard Guo) +§ -Simplify IS [NOT] TRUE/FALSE/UNKNOWN to plain boolean expressions when the input is proven non-nullable (Richard Guo) -§ +Perform earlier constant folding of var IS [NOT] NULL in the optimizer (Richard Guo) +§ + + + +This allows for later optimizations. @@ -492,16 +471,21 @@ Simplify COALESCE() -2026-02-10 [0a3796125] Optimize IS DISTINCT FROM with non-nullable inputs +2026-02-10 [0aaf0de7f] Optimize BooleanTest with non-nullable input --> -Simplify IS [NOT] DISTINCT FROM to equality/inequality operators when inputs are proven non-nullable (Richard Guo) -§ +Simplify IS [NOT] TRUE/FALSE/UNKNOWN to plain boolean expressions when the input is proven non-nullable (Richard Guo) +§ + + + + + +Allow negative values of pg_aggregate.aggtransspace to indicate unbounded memory usage (Richard Guo) +§ + + + +This information is used by the optimizer in planning memory usage. + @@ -642,7 +642,7 @@ Allow io_method method < -New server variables are io_min_workers, io_max_workers, io_worker_idle_timeout, and io_worker_launch_interval. +The new server variables are io_min_workers, io_max_workers, io_worker_idle_timeout, and io_worker_launch_interval. @@ -745,7 +745,7 @@ Author: Michael Paquier -Change the default TOAST compression method from pglz to the more efficient lz4 (Euler Taveira) +Change the default TOAST compression method from pglz to the more efficient lz4 (Euler Taveira) § @@ -831,7 +831,7 @@ Author: Tom Lane -Optimize plpgsql syntax SELECT simple-expression INTO var (Tom Lane) +Optimize plpgsql syntax SELECT simple-expression INTO var (Tom Lane) § @@ -851,7 +851,7 @@ Author: Michael Paquier -Add system view pg_stat_lock and function pg_stat_get_lock() to report per-lock type statistics (Bertrand Drouvot) +Add system view pg_stat_lock and function pg_stat_get_lock() to report per-lock-type statistics (Bertrand Drouvot) § @@ -872,93 +872,120 @@ Add system view pg_stat_recove -Add mem_exceeded_count column to system view pg_stat_replication_slots (Bertrand Drouvot) -§ +Add system view pg_stat_autovacuum_scores to report per-table autovacuum details (Sami Imseih) +§ + + + + -This reports the number of times that logical_decoding_work_mem was exceeded. +Add system view pg_dsm_registry_allocations to report dynamic shared memory details (Florents Tselai, Nathan Bossart) +§ +§ -Add stats_reset column to system views pg_stat_all_tables, pg_stat_all_indexes, and pg_statio_all_sequences (Bertrand Drouvot, Sami Imseih, Shihao Zhong) -§ +Add vacuum initiation details to system view pg_stat_progress_vacuum (Shinya Kato) +§ -It also appears in the sys and user view variants. +The new started_by column reports the initiator of the vacuum, and mode indicates its aggressiveness. -Add stats_reset column to system views pg_stat_user_functions and pg_stat_database_conflicts (Bertrand Drouvot, Shihao Zhong) -§ -§ +Add analyze initiation details to system view pg_stat_progress_analyze (Shinya Kato) +§ + + + +The new started_by column reports the initiator of the analyze. -Add system view pg_stat_autovacuum_scores to report per-table autovacuum details (Sami Imseih) -§ +Add mem_exceeded_count column to system view pg_stat_replication_slots (Bertrand Drouvot) +§ + + + +This reports the number of times that logical_decoding_work_mem was exceeded. -Add vacuum initiation details to system view pg_stat_progress_vacuum (Shinya Kato) -§ +Add stats_reset column to system views pg_stat_all_tables, pg_stat_all_indexes, and pg_statio_all_sequences (Bertrand Drouvot, Sami Imseih, Shihao Zhong) +§ -The new started_by column reports the initiator of the vacuum, and mode indicates its aggressiveness. +It also appears in the sys and user view variants. -Add analyze initiation details to system view pg_stat_progress_analyze (Shinya Kato) -§ +Add stats_reset column to system views pg_stat_user_functions and pg_stat_database_conflicts (Bertrand Drouvot, Shihao Zhong) +§ +§ + + + + -The new started_by column reports the initiator of the analyze. +Add location column to system views pg_available_extensions and pg_available_extension_versions to report the file system directory of extensions (Matheus Alcantara) +§ @@ -969,7 +996,7 @@ Author: Masahiko Sawada -Add a column to system view pg_stat_progress_basebackup to report the type of backup (Shinya Kato) +Add backup_type column to system view pg_stat_progress_basebackup to report the type of backup (Shinya Kato) § @@ -980,29 +1007,29 @@ Possible values are full or incremental. -Add reporting of the bytes written to WAL for full page images (Shinya Kato) -§ - - - -This is accessible via system view pg_stat_wal and function pg_stat_get_backend_wal(). +Add connecting value to system view column pg_stat_wal_receiver.status (Xuneng Zhou) +§ -Add connecting status to system view column pg_stat_wal_receiver.status (Xuneng Zhou) -§ +Add reporting of the bytes written to WAL for full page images (Shinya Kato) +§ + + + +This is accessible via system view pg_stat_wal and function pg_stat_get_backend_wal(). @@ -1032,33 +1059,6 @@ Author: Michael Paquier Add information about range type extended statistics to system view pg_stats_ext_exprs (Corey Huinker, Michael Paquier) § - - - - - - -Add system view pg_dsm_registry_allocations to report dynamic shared memory details (Florents Tselai, Nathan Bossart) -§ -§ - - - - - - - -Add column location to system views pg_available_extensions and pg_available_extension_versions to report the file system directory of extensions (Matheus Alcantara) -§ - @@ -1080,7 +1080,7 @@ Allow log_min_messages -The new format is type:level. A value without a colon controls unspecified process types, enabling backward compatibility. +The new format is type:level. A value without a colon controls unspecified process types, enabling backward compatibility. @@ -1096,7 +1096,7 @@ Add server variable lo -Server variable log_autovacuum_min_duration now only controls logging of automatic vacuum operations. +Server variable log_autovacuum_min_duration now only controls logging of autovacuum operations. @@ -1119,7 +1119,7 @@ Author: Tatsuo Ishii -Add server variable debug_print_parse to log the raw parse tree (Chao Li) +Add server variable debug_print_parse to log raw parse trees (Chao Li) § @@ -1163,7 +1163,7 @@ Author: Michael Paquier -Add IO wait events for COPY FROM/TO on a pipe/file/program (Nikolay Samokhvalov) +Add IO wait events for COPY FROM/TO on a pipe, file, or program (Nikolay Samokhvalov) § @@ -1187,7 +1187,7 @@ Author: Amit Kapila -Have pg_get_sequence_data function return the sequence page LSN (Vignesh C) +Have pg_get_sequence_data() return the sequence page LSN (Vignesh C) § @@ -1216,7 +1216,7 @@ Issue warnings when the wraparound of xid and multi-xids is less than 100 millio -The previous warning was 40 million. Warnings are issued to clients and the server log. +The previous warning was 40 million. Warnings are issued to clients and in the server log. @@ -1372,7 +1372,7 @@ Author: Alexander Korotkov -Allow standbys to wait for LSN values to be written, flushed, or replayed via WAIT FOR (Kartyshov Ivan, Alexander Korotkov, Xuneng Zhou) +Add WAIT FOR command to allow standbys to wait for LSN values to be written, flushed, or replayed (Kartyshov Ivan, Alexander Korotkov, Xuneng Zhou) § § @@ -1385,7 +1385,7 @@ Author: Amit Kapila -Improve function pg_sync_replication_slots() to wait for the synchronization completion (Ajin Cherian, Zhijie Hou) +Improve function pg_sync_replication_slots() to wait for replication synchronization completion (Ajin Cherian, Zhijie Hou) § @@ -1425,7 +1425,7 @@ Allow wal_receiver_timeout -This allows subscriptions to use different wal_receiver_timeout values. +This allows subscribers to use different wal_receiver_timeout values. @@ -1631,7 +1631,7 @@ Author: Amit Kapila -Rename column sync_error_count to sync_table_error_count in system view pg_stat_subscription_stats (Vignesh C) +Rename column sync_error_count to sync_table_error_count in system view pg_stat_subscription_stats (Vignesh C) § @@ -1658,7 +1658,7 @@ Add slot synchronization skip information to UPDATE/DELETE FOR PORTION OF (Paul A. Jungwirth) +Add FOR PORTION OF clause to UPDATE and DELETE (Paul A. Jungwirth) § § -This allows operations on a temporal range. +This allows operations on temporal ranges. @@ -1720,7 +1720,7 @@ Author: Tom Lane -Add GROUP BY ALL syntax to automatically group all non-aggregate and non-window function target list parameters (David Christensen) +Add GROUP BY ALL syntax to automatically group all non-aggregate and non-window-function target list parameters (David Christensen) § @@ -1748,12 +1748,12 @@ Author: Tatsuo Ishii -Allow window functions to ignore NULLs with IGNORE NULLS/RESPECT NULLS option (Oliver Ford, Tatsuo Ishii) +Allow window functions to ignore NULLs with the IGNORE NULLS/RESPECT NULLS clause (Oliver Ford, Tatsuo Ishii) § -Supported window functions are lead, lag, first_value, last_value and nth_value. +Supported window functions are lead(), lag(), first_value(), last_value(), and nth_value(). @@ -1788,12 +1788,12 @@ Author: Álvaro Herrera -Create a REPACK command that replaces VACUUM FULL and CLUSTER (Antonin Houska) +Add REPACK command which replaces VACUUM FULL and CLUSTER (Antonin Houska) § -The two former commands did similar things, but with confusing names, so unify them as REPACK. +The two former commands did similar things, but with confusing names, so unify them as REPACK. The old commands have been retained for compatibility. @@ -2099,7 +2099,7 @@ Add Memoize cache and lookup estimates to E -This will help illustrate why Memoize was chosen. +This can show why Memoize was chosen. @@ -2120,7 +2120,7 @@ Author: Michael Paquier -Add the 64-bit unsigned data type oid8 (Michael Paquier) +Add the 64-bit unsigned data type oid8 (Michael Paquier) § @@ -2132,12 +2132,12 @@ Author: Andrew Dunstan -Add more jsonpath string methods (Florents Tselai, David E. Wheeler) +Add more jsonpath string methods (Florents Tselai, David E. Wheeler) § -They are l/r/btrim(), lower(), upper(), initcap(), replace(), and split_part(). These are immutable like their non-JSON string variants. +They are ltrim(), rtrim(), btrim(), lower(), upper(), initcap(), replace(), and split_part(). These are immutable like their non-JSON string variants. @@ -2148,7 +2148,7 @@ Author: Masahiko Sawada -Allow casts between bytea and uuid data types (Dagfinn Ilmari MannsÃ¥ker, Aleksander Alekseev) +Allow casts between bytea and uuid data types (Dagfinn Ilmari MannsÃ¥ker, Aleksander Alekseev) § @@ -2160,7 +2160,7 @@ Author: Nathan Bossart -Add ability to cast between database names and oids using regdatabase (Ian Lawrence Barwick) +Add ability to cast between database names and oids using regdatabase (Ian Lawrence Barwick) § @@ -2172,7 +2172,7 @@ Author: Andres Freund -Add functions tid_block() and tid_offset() to extract block numbers and offsets from tid values (Ayush Tiwari) +Add functions tid_block() and tid_offset() to extract block numbers and offsets from tid values (Ayush Tiwari) § @@ -2194,7 +2194,7 @@ Author: Dean Rasheed -Add date, timestamp, and timestamptz versions of random(min, max) (Damien Clochard, Dean Rasheed) +Add date, timestamp, and timestamptz versions of random(min, max) (Damien Clochard, Dean Rasheed) § § @@ -2381,7 +2381,7 @@ Author: Jacob Champion -Add libpq connection setting oauth_ca_file to specify the OAUTH certificate authority file (Jonathan Gonzalez V., Jacob Champion) +Add libpq connection parameter oauth_ca_file to specify the OAUTH certificate authority file (Jonathan Gonzalez V., Jacob Champion) § @@ -2454,7 +2454,7 @@ Allow the search path to appear in the psq -This works when psql is connected to Postgres 18 or later. +This works when psql is connected to PostgreSQL 18 or later. @@ -2498,7 +2498,7 @@ Allow control over how booleans are displayed in -The \pset variables are display_true and display_false. +The \pset variables are display_true and display_false. @@ -2621,7 +2621,7 @@ Author: Andrew Dunstan -Allow pg_verifybackup to read WAL files stored in tar archives (Amul Sul) +Allow pg_verifybackup to read WAL files stored in tar archives (Amul Sul) § @@ -2697,7 +2697,7 @@ Allow pg_dumpall -The new output formats are custom, directory, or tar. +The new output formats are custom, directory, or tar. @@ -2736,7 +2736,7 @@ Have pg_upgrade copy -This is possible when upgrading from Postgres 16 and later. +This is possible when upgrading from PostgreSQL 16 and later. @@ -2752,7 +2752,7 @@ Allow pg_upgrade to -This is used when upgrading from Postgres major versions 12-15. +This is used when upgrading from PostgreSQL major versions 12-15. @@ -2763,7 +2763,7 @@ Author: Nathan Bossart -Improve pg_upgrade performance when restoring large object metadata for origin servers version 11 and earlier (Nathan Bossart) +Improve pg_upgrade performance when restoring large object metadata from PostgreSQL version 11 and earlier (Nathan Bossart) § @@ -2924,7 +2924,7 @@ Author: Álvaro Herrera -Allow execution stack backtraces on Windows using DbgHelp (Bryan Green) +Allow execution stack backtraces on Windows using DbgHelp (Bryan Green) § @@ -3003,7 +3003,7 @@ Author: Peter Eisentraut -Require Meson version 0.57.2 or later (Peter Eisentraut) +Require Meson version 0.57.2 or later (Peter Eisentraut) § @@ -3015,7 +3015,7 @@ Author: Peter Eisentraut -Add Meson option to build both shared and static libraries, or only shared (Peter Eisentraut) +Add Meson option to build both shared and static libraries, or only shared (Peter Eisentraut) § @@ -3041,7 +3041,7 @@ Author: Robert Haas -Add hooks planner_setup_hook, planner_shutdown_hook, joinrel_setup_hook, and join_path_setup_hook (Robert Haas) +Add hooks planner_setup_hook, planner_shutdown_hook, joinrel_setup_hook, and join_path_setup_hook (Robert Haas) § § @@ -3078,7 +3078,7 @@ Author: Nathan Bossart -Change function prototypes to use uint* instead of bit* typedefs (Nathan Bossart) +Change function prototypes to use uint* instead of bit* typedefs (Nathan Bossart) § @@ -3124,26 +3124,26 @@ Add server variable debug_exec_b -Document the environment variables that control the regression tests (Michael Paquier) -§ +Add documentation section about temporal tables (Paul A. Jungwirth) +§ -Add documentation section about temporal tables (Paul A. Jungwirth) -§ +Document the environment variables that control the regression tests (Michael Paquier) +§ @@ -3197,6 +3197,34 @@ Add extension to allow per-query-id advice to be + + + + +Show sizes of FETCH queries as constants in (Sami Imseih) +§ + + + +Fetches of different sizes will now be grouped together in output. + + + + + + + +Add generic and custom plans counts to (Sami Imseih) +§ + + + - - - -Show sizes of FETCH queries as constants in (Sami Imseih) -§ - - - -Fetches of different sizes will now be grouped together in output. - - - - - - - -Add generic and custom plans counts to (Sami Imseih) -§ - - - - - - -