↑↓ select ↵ open ⌫ change scope Open full search

PG.CENTER connects PostgreSQL documentation, reference, and ecosystem knowledge. Maintained by Pigsty.

Wiki / Versions

PostgreSQL 19

Read the English manual

Preview · Recorded build 19beta4

This is a preview build. Its notes and features can change before general availability. No final-release date or support end date is asserted here.

First stable release
Not released
Support end
Not announced here
Indexed releases
1
Original release-note entries
198

Manuals & provenance

PostgreSQL 19 English manual · 1160 loaded pages.

Manual loaded 2026-09-27T00:10:47.078613.

Release entries: 2026-09-26. Security evidence: 2026-09-26. PDF links use the verified English manifest and locally available files. Lifecycle: PostgreSQL versioning policy.

Upgrade considerations

Major upgrades need a migration method such as dump/reload or pg_upgrade. Read the intervening major-release notes and the target manual. Minor updates can also require extra steps; review the specific release's migration notes. Official upgrade policy.

Compatibility notes for 19beta4

Original migration guidance for 19beta4

A dump/restore using pg_dumpall or use of pg_upgrade or logical replication is required for those wishing to migrate data from any previous release. See Section 18.6 for general information on migrating to new major releases.

Version 19 contains a number of changes that may affect compatibility with previous releases. Observe the following incompatibilities:

Release history

Every indexed release keeps its original occurrences. CVE counts below are mentions in its notes, including follow-up corrections; they do not count newly fixed vulnerabilities.

ReleaseDate / snapshot cutoffAll changesBug fixesMigration entriesCVE mentions
19beta4Preview Notes as of 2026-09-14 1980170

Preview changes

Original entries from 19beta4, including feature changes and compatibility notes. Categories aid browsing; they are not upstream classifications.

198 of 198 original entries.

  • Add server variable password_expiration_warning_threshold to warn about password expiration Compatibility Migration

    Add server variable password_expiration_warning_threshold to warn about password expiration (Gilles Darold, Nathan Bossart) §

    The default warning period is seven days.

    Original release occurrence · 19.0/migration/001

  • Issue a warning after successful MD5 password authentication Compatibility Migration

    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 PostgreSQL 18.

    Original release occurrence · 19.0/migration/002

  • Remove RADIUS support Compatibility Migration

    Remove RADIUS support (Thomas Munro) §

    PostgreSQL only supported RADIUS over UDP, which is unfixably insecure.

    Original release occurrence · 19.0/migration/003

  • Force standard_conforming_strings to always be on in the database server Compatibility Migration

    Force standard_conforming_strings to always be on in the database server (Tom Lane) §

    Dumps created using pre-PostgreSQL 19 versions of pg_dump or pg_dumpall, and using standard_conforming_strings = off, will not properly load into PostgreSQL 19 and later servers. Users should create dumps using PostgreSQL 19 or later versions of these applications, or use standard_conforming_strings = on.

    Client applications still support operations with servers having standard_conforming_strings = off, for compatibility with old servers. The server variable escape_string_warning has been removed as unnecessary.

    Original release occurrence · 19.0/migration/004

  • Disallow carriage returns and line feeds in database, role, and tablespace names Compatibility Migration

    Disallow carriage returns and line feeds in database, role, and tablespace names (Mahendra Singh Thalor) §

    pg_upgrade will also disallow upgrading of clusters that use such names. This was changed to avoid security problems.

    Original release occurrence · 19.0/migration/005

  • Change the default index opclasses for inet and cidr data types from btree_gist to GiST Compatibility Migration

    Change the default index opclasses for inet and cidr data types from btree_gist to GiST (Tom Lane) § §

    The btree_gist inet/cidr opclasses are broken because they can exclude rows that should be returned. pg_upgrade will disallow upgrading of clusters with btree_gist inet/cidr indexes.

    Original release occurrence · 19.0/migration/006

  • Disallow system columns from being used in COPY FROM ... WHERE Compatibility Migration

    Disallow system columns from being used in COPY FROM ... WHERE (Tom Lane) §

    The values of such columns were not well-defined.

    Original release occurrence · 19.0/migration/007

  • Change a json_array() call which returns no rows to return an empty JSON array Compatibility Migration

    Change a json_array() call which returns no rows to return an empty JSON array (Richard Guo) §

    This previously returned NULL.

    Original release occurrence · 19.0/migration/008

  • Cause transactions to pass their READ ONLY and DEFERRABLE status to postgres_fdw sessions Compatibility Migration

    Cause transactions to pass their READ ONLY and DEFERRABLE status to postgres_fdw sessions (Etsuro Fujita) §

    This means READ ONLY transactions can no longer modify rows processed by postgres_fdw sessions.

    Original release occurrence · 19.0/migration/009

  • Change default of max_locks_per_transaction from 64 to 128 Compatibility Migration

    Change default of max_locks_per_transaction from 64 to 128 (Heikki Linnakangas) §

    Lock size allocation has changed, so effectively settings must now be doubled to match their capacity in previous releases.

    Original release occurrence · 19.0/migration/010

  • Change JIT to be disabled by default Compatibility Migration

    Change JIT to be disabled by default (Jelte Fennema-Nio) §

    Previously JIT was enabled by default, and activated based on optimizer costs, but this costing has been determined to be unreliable. This change requires sites that are doing many large analytical queries to manually enable JIT.

    Original release occurrence · 19.0/migration/011

  • Rename column sync_error_count to sync_table_error_count in system view pg_stat_subscription_stats Compatibility Migration

    Rename column sync_error_count to sync_table_error_count in system view pg_stat_subscription_stats (Vignesh C) §

    This is necessary since sequence errors are now tracked separately.

    Original release occurrence · 19.0/migration/012

  • Rename wait event type BUFFERPIN to BUFFER Compatibility Migration

    Rename wait event type BUFFERPIN to BUFFER (Andres Freund) §

    Original release occurrence · 19.0/migration/013

  • Change index access method handlers to use a static IndexAmRoutines structure, rather than dynamically allocated ones Compatibility Migration

    Change index access method handlers to use a static IndexAmRoutines structure, rather than dynamically allocated ones (Matthias van de Meent) §

    Original release occurrence · 19.0/migration/014

  • Remove optimizer hook get_relation_info_hook and add better-placed hook build_simple_rel_hook Compatibility Migration

    Remove optimizer hook get_relation_info_hook and add better-placed hook build_simple_rel_hook (Robert Haas) §

    Original release occurrence · 19.0/migration/015

  • Change psql's \crosstabview command to honor the \pset null setting Compatibility Migration

    Change psql's \crosstabview command to honor the \pset null setting (Chao Li) §

    Original release occurrence · 19.0/migration/016

  • Remove MULE_INTERNAL encoding Compatibility Migration

    Remove MULE_INTERNAL encoding (Thomas Munro) §

    This encoding was complex and rarely used. Databases using it will need to be dumped and restored with a different encoding.

    Original release occurrence · 19.0/migration/017

  • Allow NOT IN clauses to be converted to more efficient ANTI JOINs when NULLs are not present Features

    Allow NOT IN clauses to be converted to more efficient ANTI JOINs when NULLs are not present (Richard Guo) §

    Original release occurrence · 19.0/changes/001

  • Allow more LEFT JOINs to be converted to ANTI JOINs Features

    Allow more LEFT JOINs to be converted to ANTI JOINs (Tender Wang, Richard Guo) §

    Original release occurrence · 19.0/changes/002

  • Allow use of Memoize for ANTI JOINs with unique inner sides Features

    Allow use of Memoize for ANTI JOINs with unique inner sides (Richard Guo) §

    Original release occurrence · 19.0/changes/003

  • Allow some aggregate processing to be performed before joins Features

    Allow some aggregate processing to be performed before joins (Richard Guo, Antonin Houska) § § §

    This can reduce the number of rows needed to be processed.

    Original release occurrence · 19.0/changes/004

  • Improve hash join's handling of tuples with NULL join keys Features

    Improve hash join's handling of tuples with NULL join keys (Tom Lane) §

    Original release occurrence · 19.0/changes/005

  • Improve the planning of semijoins Features

    Improve the planning of semijoins (Richard Guo) §

    Original release occurrence · 19.0/changes/006

  • Allow Append and MergeAppend to consider explicit incremental sorts Features

    Allow Append and MergeAppend to consider explicit incremental sorts (Richard Guo) §

    Original release occurrence · 19.0/changes/007

  • Convert IS [NOT] DISTINCT FROM NULL to IS [NOT] NULL during constant folding Features

    Convert IS [NOT] DISTINCT FROM NULL to IS [NOT] NULL during constant folding (Richard Guo) §

    The latter form is more easily optimized.

    Original release occurrence · 19.0/changes/008

  • Simplify IS [NOT] DISTINCT FROM to equality/inequality operators when inputs are proven non-nullable Features

    Simplify IS [NOT] DISTINCT FROM to equality/inequality operators when inputs are proven non-nullable (Richard Guo) §

    Original release occurrence · 19.0/changes/009

  • Perform earlier constant folding of var IS [NOT] NULL in the optimizer Features

    Perform earlier constant folding of var IS [NOT] NULL in the optimizer (Richard Guo) §

    This allows for later optimizations.

    Original release occurrence · 19.0/changes/010

  • Simplify COALESCE() and ROW(...) IS [NOT] NULL to avoid evaluating unnecessary arguments Features

    Simplify COALESCE() and ROW(...) IS [NOT] NULL to avoid evaluating unnecessary arguments (Richard Guo) § §

    Original release occurrence · 19.0/changes/011

  • Simplify IS [NOT] TRUE/FALSE/UNKNOWN to plain boolean expressions when the input is proven non-nullable Features

    Simplify IS [NOT] TRUE/FALSE/UNKNOWN to plain boolean expressions when the input is proven non-nullable (Richard Guo) §

    Original release occurrence · 19.0/changes/012

  • Speed up join selectivity computations for large optimizer statistics targets Performance

    Speed up join selectivity computations for large optimizer statistics targets (Ilia Evdokimov, David Geier) §

    Original release occurrence · 19.0/changes/013

  • Enable proper optimizer statistics for functions returning boolean values Features

    Enable proper optimizer statistics for functions returning boolean values (Tom Lane) §

    Original release occurrence · 19.0/changes/014

  • Allow extended statistics on virtual generated columns Features

    Allow extended statistics on virtual generated columns (Yugo Nagata) §

    Original release occurrence · 19.0/changes/015

  • Allow function pg_restore_extended_stats() to restore optimizer extended statistics Features

    Allow function pg_restore_extended_stats() to restore optimizer extended statistics (Corey Huinker, Michael Paquier, Chao Li) § § § §

    Original release occurrence · 19.0/changes/016

  • Add function pg_clear_extended_stats() to remove extended statistics Features

    Add function pg_clear_extended_stats() to remove extended statistics (Corey Huinker, Michael Paquier) §

    Original release occurrence · 19.0/changes/017

  • Adjust the optimizer to consider startup costs of partial paths Features

    Adjust the optimizer to consider startup costs of partial paths (Robert Haas, Tomas Vondra) §

    Original release occurrence · 19.0/changes/018

  • Allow negative values of pg_aggregate.aggtransspace to indicate unbounded memory usage Features

    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.

    Original release occurrence · 19.0/changes/019

  • Improve performance of foreign key constraint checks Performance

    Improve performance of foreign key constraint checks (Junwang Zhao, Amit Langote, Chao Li) § §

    Original release occurrence · 19.0/changes/020

  • Improve asynchronous I/O read-ahead scheduling for large requests Performance

    Improve asynchronous I/O read-ahead scheduling for large requests (Andres Freund) § § §

    Original release occurrence · 19.0/changes/021

  • Allow io_method method worker to automatically control needed background workers Performance

    Allow io_method method worker to automatically control needed background workers (Thomas Munro) §

    The new server variables are io_min_workers, io_max_workers, io_worker_idle_timeout, and io_worker_launch_interval.

    Original release occurrence · 19.0/changes/022

  • Allow query table scans to mark pages as all-visible in the visibility map Performance

    Allow query table scans to mark pages as all-visible in the visibility map (Melanie Plageman) §

    Previously only VACUUM and COPY ... FREEZE could do this.

    Original release occurrence · 19.0/changes/023

  • Allow autovacuum to use parallel autovacuum workers Performance

    Allow autovacuum to use parallel autovacuum workers (Daniil Davydov) § §

    The maximum number of workers is controlled by server variable autovacuum_max_parallel_workers and per-table storage parameter autovacuum_parallel_workers.

    Original release occurrence · 19.0/changes/024

  • Allow TID Range Scans to be parallelized Performance

    Allow TID Range Scans to be parallelized (Cary Huang, David Rowley) §

    Original release occurrence · 19.0/changes/025

  • Improve COPY FROM performance for text and CSV input using SIMD CPU instructions Performance

    Improve COPY FROM performance for text and CSV input using SIMD CPU instructions (Nazir Bilal Yavuz, Shinya Kato) §

    Original release occurrence · 19.0/changes/026

  • Improve NOTIFY to only wake up backends that are listening to specified notifications Performance

    Improve NOTIFY to only wake up backends that are listening to specified notifications (Joel Jacobson) §

    Previously most backends were woken by NOTIFY.

    Original release occurrence · 19.0/changes/027

  • Change wal_compression equals on to use the best WAL compression method available Performance

    Change wal_compression equals on to use the best WAL compression method available (wenhui qiu) §

    Previously this always used pglz.

    Original release occurrence · 19.0/changes/028

  • Change the default TOAST compression method from pglz to the more efficient lz4 Performance

    Change the default TOAST compression method from pglz to the more efficient lz4 (Euler Taveira) §

    This is done by changing the default for server variable default_toast_compression.

    Original release occurrence · 19.0/changes/029

  • Improve performance of internal row deformation Performance

    Improve performance of internal row deformation (David Rowley) §

    Original release occurrence · 19.0/changes/030

  • Improve performance of repeated UTF-8 case-folding operations Performance

    Improve performance of repeated UTF-8 case-folding operations (Andreas Karlsson) §

    Original release occurrence · 19.0/changes/031

  • Improve performance of hash index bulk-deletion and GIN index vacuuming using streaming reads Performance

    Improve performance of hash index bulk-deletion and GIN index vacuuming using streaming reads (Xuneng Zhou) § §

    Original release occurrence · 19.0/changes/032

  • Improve sort performance using radix sort Performance

    Improve sort performance using radix sort (John Naylor) §

    Original release occurrence · 19.0/changes/033

  • Improve timing performance measurements Performance

    Improve timing performance measurements (Lukas Fittl, Andres Freund, David Geier) § §

    This benefits EXPLAIN (ANALYZE, TIMING) and pg_test_timing, and is controlled via server variable timing_clock_source.

    Original release occurrence · 19.0/changes/034

  • Optimize plpgsql syntax SELECT simple-expression INTO var Performance

    Optimize plpgsql syntax SELECT simple-expression INTO var (Tom Lane) §

    Original release occurrence · 19.0/changes/035

  • Add system view pg_stat_lock and function pg_stat_get_lock() to report per-lock-type statistics Features

    Add system view pg_stat_lock and function pg_stat_get_lock() to report per-lock-type statistics (Bertrand Drouvot) §

    Original release occurrence · 19.0/changes/036

  • Add system view pg_stat_recovery to report recovery status Features

    Add system view pg_stat_recovery to report recovery status (Xuneng Zhou, Shinya Kato) § §

    Original release occurrence · 19.0/changes/037

  • Add system view pg_stat_autovacuum_scores to report per-table autovacuum details Features

    Add system view pg_stat_autovacuum_scores to report per-table autovacuum details (Sami Imseih) §

    Original release occurrence · 19.0/changes/038

  • Add system view pg_dsm_registry_allocations to report dynamic shared memory details Features

    Add system view pg_dsm_registry_allocations to report dynamic shared memory details (Florents Tselai, Nathan Bossart) § §

    Original release occurrence · 19.0/changes/039

  • Add vacuum initiation details to system view pg_stat_progress_vacuum Features

    Add vacuum initiation details to system view pg_stat_progress_vacuum (Shinya Kato) §

    The new started_by column reports the initiator of the vacuum, and mode indicates its aggressiveness.

    Original release occurrence · 19.0/changes/040

  • Add analyze initiation details to system view pg_stat_progress_analyze Features

    Add analyze initiation details to system view pg_stat_progress_analyze (Shinya Kato) §

    The new started_by column reports the initiator of the analyze.

    Original release occurrence · 19.0/changes/041

  • Add mem_exceeded_count column to system view pg_stat_replication_slots Features

    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.

    Original release occurrence · 19.0/changes/042

  • Add slot synchronization skip information to pg_stat_replication_slots and pg_replication_slots Features

    Add slot synchronization skip information to pg_stat_replication_slots and pg_replication_slots (Shlok Kyal) § § §

    The new columns are slotsync_skip_count, slotsync_last_skip, and slotsync_skip_reason.

    Original release occurrence · 19.0/changes/043

  • Add update_deleted column to system view pg_stat_subscription_stats Features

    Add update_deleted column to system view pg_stat_subscription_stats (Zhijie Hou) §

    This reports the number of rows where updates were ignored due to concurrent deletes. This requires the subscriber have retain_dead_tuples enabled.

    Original release occurrence · 19.0/changes/044

  • Add sync_seq_error_count column to system view pg_stat_subscription_stats to report sequence synchronization errors Features

    Add sync_seq_error_count column to system view pg_stat_subscription_stats to report sequence synchronization errors (Vignesh C) § §

    Original release occurrence · 19.0/changes/045

  • Add stats_reset column to system views pg_stat_all_tables, pg_stat_all_indexes, and pg_statio_all_sequences Features

    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) §

    It also appears in the sys and user view variants.

    Original release occurrence · 19.0/changes/046

  • Add stats_reset column to system views pg_stat_user_functions and pg_stat_database_conflicts Features

    Add stats_reset column to system views pg_stat_user_functions and pg_stat_database_conflicts (Bertrand Drouvot, Shihao Zhong) § §

    Original release occurrence · 19.0/changes/047

  • Add location column to system views pg_available_extensions and pg_available_extension_versions to report the file system directory of extensions Features

    Add location column to system views pg_available_extensions and pg_available_extension_versions to report the file system directory of extensions (Matheus Alcantara) §

    Original release occurrence · 19.0/changes/048

  • Add backup_type column to system view pg_stat_progress_basebackup to report the type of backup Features

    Add backup_type column to system view pg_stat_progress_basebackup to report the type of backup (Shinya Kato) §

    Possible values are full or incremental.

    Original release occurrence · 19.0/changes/049

  • Add connecting value to system view column pg_stat_wal_receiver.status Features

    Add connecting value to system view column pg_stat_wal_receiver.status (Xuneng Zhou) §

    Original release occurrence · 19.0/changes/050

  • Add reporting of the bytes written to WAL for full page images Features

    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().

    Original release occurrence · 19.0/changes/051

  • Add columns to system views pg_stats, pg_stats_ext, and pg_stats_ext_exprs Features

    Add columns to system views pg_stats, pg_stats_ext, and pg_stats_ext_exprs (Corey Huinker) §

    Adds table OID and attribute number columns to pg_stats, and table OID and statistics object OID columns to the other two.

    Original release occurrence · 19.0/changes/052

  • Add information about range type extended statistics to system view pg_stats_ext_exprs Features

    Add information about range type extended statistics to system view pg_stats_ext_exprs (Corey Huinker, Michael Paquier) §

    Original release occurrence · 19.0/changes/053

  • Allow log_min_messages log levels to be specified by process type Features

    Allow log_min_messages log levels to be specified by process type (Euler Taveira) §

    The new format is type:level. A value without a colon controls all process types, allowing backward compatibility.

    Original release occurrence · 19.0/changes/054

  • Add server variable log_autoanalyze_min_duration to log long-running analyze operations by autovacuum operations Features

    Add server variable log_autoanalyze_min_duration to log long-running analyze operations by autovacuum operations (Shinya Kato) §

    Server variable log_autovacuum_min_duration now only controls logging of vacuum operations by autovacuum.

    Original release occurrence · 19.0/changes/055

  • Enable server variable log_lock_waits by default Features

    Enable server variable log_lock_waits by default (Laurenz Albe) §

    Original release occurrence · 19.0/changes/056

  • Add server variable debug_print_raw_parse to log raw parse trees Features

    Add server variable debug_print_raw_parse to log raw parse trees (Chao Li) §

    This is also enabled when the server is started with debug level three and higher.

    Original release occurrence · 19.0/changes/057

  • Make messages coming from remote servers appear in the server logs in the same format as local server messages Features

    Make messages coming from remote servers appear in the server logs in the same format as local server messages (Vignesh C) §

    These include replication, postgres_fdw, and dblink servers.

    Original release occurrence · 19.0/changes/058

  • Add reporting of WAL full-page write bytes to VACUUM and ANALYZE logging Features

    Add reporting of WAL full-page write bytes to VACUUM and ANALYZE logging (Shinya Kato) §

    Original release occurrence · 19.0/changes/059

  • Add IO wait events for COPY FROM/TO on a pipe, file, or program Features

    Add IO wait events for COPY FROM/TO on a pipe, file, or program (Nikolay Samokhvalov) §

    Original release occurrence · 19.0/changes/060

  • Add wait events for commit_delay and for WAL write and flush LSNs Features

    Add wait events for commit_delay and for WAL write and flush LSNs (Xuneng Zhou) § §

    Original release occurrence · 19.0/changes/061

  • Have pg_get_sequence_data() return the sequence page LSN Features

    Have pg_get_sequence_data() return the sequence page LSN (Vignesh C) §

    Original release occurrence · 19.0/changes/062

  • Add function pg_get_multixact_stats() to report multixact activity Features

    Add function pg_get_multixact_stats() to report multixact activity (Naga Appani) §

    Original release occurrence · 19.0/changes/063

  • Issue warnings when the wraparound of xid and multi-xids is less than 100 million Features

    Issue warnings when the wraparound of xid and multi-xids is less than 100 million (Nathan Bossart) §

    The previous warning was 40 million. Warnings are issued to clients and in the server log.

    Original release occurrence · 19.0/changes/064

  • Add scoring system to control the order that tables are processed by autovacuum Features

    Add scoring system to control the order that tables are processed by autovacuum (Nathan Bossart) §

    The new server variables are autovacuum_freeze_score_weight, autovacuum_multixact_freeze_score_weight, autovacuum_vacuum_score_weight, autovacuum_vacuum_insert_score_weight, and autovacuum_analyze_score_weight.

    Original release occurrence · 19.0/changes/065

  • Add server-side support for SNI (Server Name Indication) Features

    Add server-side support for SNI (Server Name Indication) (Daniel Gustafsson, Jacob Champion) §

    New configuration file PGDATA/pg_hosts.conf specifies hostname/key pairs.

    Original release occurrence · 19.0/changes/066

  • Allow OAuth validators to register custom pg_hba.conf authentication options Features

    Allow OAuth validators to register custom pg_hba.conf authentication options (Jacob Champion, Zsolt Parragi) §

    Original release occurrence · 19.0/changes/067

  • Allow roles pg_read_all_data and pg_write_all_data to read/write large objects Features

    Allow roles pg_read_all_data and pg_write_all_data to read/write large objects (Nitin Motiani, Nathan Bossart) §

    These roles are designed to allow non-super users to run pg_dump.

    Original release occurrence · 19.0/changes/068

  • Allow background workers to be configured to terminate before database-level operations Features

    Allow background workers to be configured to terminate before database-level operations (Aya Iwata) §

    This allows database-level operations to complete more quickly since blocking background workers can now be terminated.

    Original release occurrence · 19.0/changes/069

  • Allow server variables that represent lists to be emptied by setting the value to NULL Features

    Allow server variables that represent lists to be emptied by setting the value to NULL (Tom Lane) §

    Original release occurrence · 19.0/changes/070

  • Update GB18030 encoding from version 2000 to 2022 Features

    Update GB18030 encoding from version 2000 to 2022 (Chao Li, Zheng Tao) §

    See the commit message for compatibility details.

    Original release occurrence · 19.0/changes/071

  • Add WAIT command to allow standbys to wait for LSN values to be written, flushed, or replayed Features

    Add WAIT command to allow standbys to wait for LSN values to be written, flushed, or replayed (Kartyshov Ivan, Alexander Korotkov, Xuneng Zhou) § §

    Original release occurrence · 19.0/changes/072

  • Improve function pg_sync_replication_slots() to wait for replication synchronization completion Features

    Improve function pg_sync_replication_slots() to wait for replication synchronization completion (Ajin Cherian, Zhijie Hou) §

    Previously, certain synchronization failures would not be reported.

    Original release occurrence · 19.0/changes/073

  • Add server variable wal_sender_shutdown_timeout to limit replica synchronization waits during shutdown Features

    Add server variable wal_sender_shutdown_timeout to limit replica synchronization waits during shutdown (Andrey Silitskiy, Hayato Kuroda) §

    By default, senders still wait forever for synchronization.

    Original release occurrence · 19.0/changes/074

  • Allow sequence values stored in subscribers to match the publisher Features

    Allow sequence values stored in subscribers to match the publisher (Vignesh C) § § §

    This is enabled during CREATE SUBSCRIPTION, ALTER SUBSCRIPTION ... REFRESH PUBLICATION, and ALTER SUBSCRIPTION ... REFRESH SEQUENCES. The latter only updates values, not sequence existence. Function pg_get_sequence_data() allows inspection of sequence synchronization.

    Original release occurrence · 19.0/changes/075

  • Allow CREATE/ALTER PUBLICATION to publish all sequences Features

    Allow CREATE/ALTER PUBLICATION to publish all sequences (Vignesh C, Tomas Vondra) §

    This is enabled with the ALL SEQUENCES clause.

    Original release occurrence · 19.0/changes/076

  • Allow ALTER SUBSCRIPTION on publications to synchronize the existence of sequences on subscribers to match the publisher Features

    Allow ALTER SUBSCRIPTION on publications to synchronize the existence of sequences on subscribers to match the publisher (Vignesh C) §

    This is enabled with the REFRESH SEQUENCES clause.

    Original release occurrence · 19.0/changes/077

  • Allow CREATE/ALTER PUBLICATION to exclude some tables Features

    Allow CREATE/ALTER PUBLICATION to exclude some tables (Vignesh C, Shlok Kyal) § § § §

    This is controlled with the EXCEPT clause, and is useful when specifying ALL TABLES.

    Original release occurrence · 19.0/changes/078

  • Add CREATE/ALTER SUBSCRIPTION setting retain_dead_tuples to retain information needed for conflict detection Features

    Add CREATE/ALTER SUBSCRIPTION setting retain_dead_tuples to retain information needed for conflict detection (Zhijie Hou) § § §

    Also add setting max_retention_duration to limit retain_dead_tuples retention.

    Original release occurrence · 19.0/changes/079

  • Allow CREATE SUBSCRIPTION to use postgres_fdw foreign data wrapper connection parameters Features

    Allow CREATE SUBSCRIPTION to use postgres_fdw foreign data wrapper connection parameters (Jeff Davis) §

    The connection parameters are referenced via CREATE SUBSCRIPTION ... SERVER.

    Original release occurrence · 19.0/changes/080

  • When server variable wal_level is replica, allow automatic enablement of logical replication when needed Features

    When server variable wal_level is replica, allow automatic enablement of logical replication when needed (Masahiko Sawada) §

    New server variable effective_wal_level, application pg_controldata, and function pg_control_checkpoint() report the effective WAL level.

    Original release occurrence · 19.0/changes/081

  • Allow wal_receiver_timeout to be set per-subscription and user Features

    Allow wal_receiver_timeout to be set per-subscription and user (Fujii Masao) § §

    This allows subscribers to use different wal_receiver_timeout values.

    Original release occurrence · 19.0/changes/082

  • Add optional pid parameter to pg_replication_origin_session_setup() to allow parallelization of SQL-level replication solutions Features

    Add optional pid parameter to pg_replication_origin_session_setup() to allow parallelization of SQL-level replication solutions (Doruk Yilmaz, Hayato Kuroda) §

    Original release occurrence · 19.0/changes/083

  • Allow GROUP BY to process target list subqueries that have expressions referencing non-subquery columns Features

    Allow GROUP BY to process target list subqueries that have expressions referencing non-subquery columns (Tom Lane) §

    Also fix a bug in how GROUPING() handles target list subquery aliases.

    Original release occurrence · 19.0/changes/084

  • Allow window functions to ignore NULLs with the IGNORE NULLS/RESPECT NULLS clause Features

    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().

    Original release occurrence · 19.0/changes/085

  • Add support for INSERT ... ON CONFLICT DO SELECT ... RETURNING Features

    Add support for INSERT ... ON CONFLICT DO SELECT ... RETURNING (Andreas Karlsson, Marko Tiikkaja, Viktor Holmberg) §

    This allows conflicting rows to be returned, and optionally locked with FOR UPDATE/SHARE.

    Original release occurrence · 19.0/changes/086

  • Add REPACK command which replaces VACUUM FULL and CLUSTER Features

    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 old commands have been retained for compatibility.

    Original release occurrence · 19.0/changes/087

  • Allow REPACK to rebuild tables without access-exclusive locking Features

    Allow REPACK to rebuild tables without access-exclusive locking (Antonin Houska, Mihail Nikalayeu, Álvaro Herrera) § § §

    This is enabled via the CONCURRENTLY option. Server variable max_repack_replication_slots was also added.

    Original release occurrence · 19.0/changes/088

  • Allow GRANT/REVOKE to specify the effective role performing the privileges adjustment Features

    Allow GRANT/REVOKE to specify the effective role performing the privileges adjustment (Nathan Bossart, Tom Lane) §

    The GRANTED BY clause controls this.

    Original release occurrence · 19.0/changes/089

  • Support forward references in FOREIGN KEY constraint clauses within CREATE SCHEMA Features

    Support forward references in FOREIGN KEY constraint clauses within CREATE SCHEMA (Jian He, Tom Lane) §

    Original release occurrence · 19.0/changes/090

  • Allow CHECKPOINT to accept a list of options Features

    Allow CHECKPOINT to accept a list of options (Christoph Berg) § § §

    Supported options are MODE and FLUSH_UNLOGGED.

    Original release occurrence · 19.0/changes/091

  • Add CONNECTION clause to CREATE FOREIGN DATA WRAPPER to specify a function to be called for subscription connection parameters Features

    Add CONNECTION clause to CREATE FOREIGN DATA WRAPPER to specify a function to be called for subscription connection parameters (Jeff Davis, Noriyoshi Shinoda) § §

    Original release occurrence · 19.0/changes/092

  • Add SUPPORT clause to CREATE AGGREGATE so extensions can specify support functions to optimize aggregate calls Features

    Add SUPPORT clause to CREATE AGGREGATE so extensions can specify support functions to optimize aggregate calls (Tom Lane) §

    Original release occurrence · 19.0/changes/093

  • Add memory usage and parallelism reporting to VACUUM (VERBOSE) and autovacuum logs Features

    Add memory usage and parallelism reporting to VACUUM (VERBOSE) and autovacuum logs (Tatsuya Kawata, Daniil Davydov) § §

    Original release occurrence · 19.0/changes/094

  • Allow ALTER TABLE ALTER CONSTRAINT ... [NOT] ENFORCED for CHECK constraints Features

    Allow ALTER TABLE ALTER CONSTRAINT ... [NOT] ENFORCED for CHECK constraints (Jian He) §

    Previously enforcement changes were only supported for foreign key constraints.

    Original release occurrence · 19.0/changes/095

  • Allow ALTER TABLE ... COLUMN SET EXPRESSION to succeed on virtual columns with CHECK constraints Features

    Allow ALTER TABLE ... COLUMN SET EXPRESSION to succeed on virtual columns with CHECK constraints (Jian He) §

    This was previously prohibited.

    Original release occurrence · 19.0/changes/096

  • Allow multiple headers lines to be skipped by COPY FROM Features

    Allow multiple headers lines to be skipped by COPY FROM (Shinya Kato, Fujii Masao) §

    Previously only a single header line could be skipped.

    Original release occurrence · 19.0/changes/097

  • Allow COPY FROM to set invalid input values to NULL Features

    Allow COPY FROM to set invalid input values to NULL (Jian He, Kirill Reshke) §

    This is done using the COPY option ON_ERROR SET_NULL.

    Original release occurrence · 19.0/changes/098

  • Allow COPY TO to output JSON format Features

    Allow COPY TO to output JSON format (Joe Conway, Jian He, Andrew Dunstan) § §

    JSON output can also be a single JSON array using the COPY option FORCE_ARRAY.

    Original release occurrence · 19.0/changes/099

  • Allow COPY TO to process partitioned tables Features

    Allow COPY TO to process partitioned tables (Jian He, Ajin Cherian) § §

    Previously COPY (SELECT ...) had to be used to output partitioned tables. This also improves logical replication table synchronization.

    Original release occurrence · 19.0/changes/100

  • Add EXPLAIN ANALYZE option IO to report asynchronous IO activity Features

    Add EXPLAIN ANALYZE option IO to report asynchronous IO activity (Tomas Vondra) § § §

    Original release occurrence · 19.0/changes/101

  • Add reporting of WAL full-page write bytes to EXPLAIN (ANALYZE, WAL) output Features

    Add reporting of WAL full-page write bytes to EXPLAIN (ANALYZE, WAL) output (Shinya Kato) §

    Original release occurrence · 19.0/changes/102

  • Add Memoize cache and lookup estimates to EXPLAIN output Features

    Add Memoize cache and lookup estimates to EXPLAIN output (Ilia Evdokimov, Lukas Fittl) §

    This can show why Memoize was chosen.

    Original release occurrence · 19.0/changes/103

  • Add the 64-bit unsigned data type oid8 Features

    Add the 64-bit unsigned data type oid8 (Michael Paquier) §

    Original release occurrence · 19.0/changes/104

  • Add more jsonpath string methods Features

    Add more jsonpath string methods (Florents Tselai, David E. Wheeler) §

    They are ltrim(), rtrim(), btrim(), lower(), upper(), initcap(), replace(), and split_part(). These are immutable like their non-JSON string variants.

    Original release occurrence · 19.0/changes/105

  • Allow casts between bytea and uuid data types Features

    Allow casts between bytea and uuid data types (Dagfinn Ilmari Mannsåker, Aleksander Alekseev) §

    Original release occurrence · 19.0/changes/106

  • Add ability to cast between database names and oids using regdatabase Features

    Add ability to cast between database names and oids using regdatabase (Ian Lawrence Barwick) §

    Original release occurrence · 19.0/changes/107

  • Add functions tid_block() and tid_offset() to extract block numbers and offsets from tid values Features

    Add functions tid_block() and tid_offset() to extract block numbers and offsets from tid values (Ayush Tiwari) §

    Original release occurrence · 19.0/changes/108

  • Add date, timestamp, and timestamptz versions of random(min, max) Features

    Add date, timestamp, and timestamptz versions of random(min, max) (Damien Clochard, Dean Rasheed) § §

    Original release occurrence · 19.0/changes/109

  • Allow encode() and decode() to process data in base64url and base32hex formats Features

    Allow encode() and decode() to process data in base64url and base32hex formats (Andrey Borodin, Aleksander Alekseev, Florents Tselai) § § §

    This format retains ordering, unlike base32.

    Original release occurrence · 19.0/changes/110

  • Add functions to return a set of ranges resulting from range subtraction Features

    Add functions to return a set of ranges resulting from range subtraction (Paul A. Jungwirth) §

    The functions are range_minus_multi() and multirange_minus_multi(). This is useful to represent range subtraction results with gaps.

    Original release occurrence · 19.0/changes/111

  • Add function error_on_null() to return the supplied parameter, or error on NULL input Features

    Add function error_on_null() to return the supplied parameter, or error on NULL input (Joel Jacobson) §

    Original release occurrence · 19.0/changes/112

  • Allow IS JSON to work on domains defined over supported base types Features

    Allow IS JSON to work on domains defined over supported base types (Jian He) §

    The supported base types are TEXT, JSON, JSONB, and BYTEA.

    Original release occurrence · 19.0/changes/113

  • Add full text stemmers for Polish and Esperanto Features

    Add full text stemmers for Polish and Esperanto (Tom Lane) §

    The Dutch stemmer has also been updated. The old Dutch stemmer is available via dutch_porter.

    Original release occurrence · 19.0/changes/114

  • Allow event triggers to be written using PL/Python Features

    Allow event triggers to be written using PL/Python (Euler Taveira, Dimitri Fontaine) §

    Original release occurrence · 19.0/changes/115

  • Allow libpq connections to specify a service file via servicefile Features

    Allow libpq connections to specify a service file via servicefile (Torsten Förtsch, Ryo Kanbayashi) §

    Original release occurrence · 19.0/changes/116

  • Add special libpq protocol parameters for compatibility testing Features

    Add special libpq protocol parameters for compatibility testing (Jelte Fennema-Nio, Jacob Champion) §

    Otherwise known as protocol grease, which was active during the 19 beta period. These will no longer be sent as of the PostgreSQL 19 official release, but the parameter reservations will remain for potential use in the future.

    Original release occurrence · 19.0/changes/117

  • Add libpq connection parameter oauth_ca_file to specify an alternate certificate authority when communicating with OAuth providers Features

    Add libpq connection parameter oauth_ca_file to specify an alternate certificate authority when communicating with OAuth providers (Jonathan Gonzalez V., Jacob Champion) §

    This can also be set via the PGOAUTHCAFILE environment variable. The default is to use curl's built-in certificates.

    Original release occurrence · 19.0/changes/118

  • Allow libpq environment variable PGOAUTHDEBUG to specify particular debug options Features

    Allow libpq environment variable PGOAUTHDEBUG to specify particular debug options (Zsolt Parragi, Jacob Champion) §

    The UNSAFE option still generates all debugging output.

    Original release occurrence · 19.0/changes/119

  • Improve custom OAuth client flows Features

    Improve custom OAuth client flows (Jacob Champion) § §

    Previously, libpq reported only a generic error message during custom flow failures, and each flow implementation was required to calculate the issuer identifier independently. Add a new authdata hook type PQAUTHDATA_OAUTH_BEARER_TOKEN_V2 that precomputes the issuer ID and lets hooks provide error details.

    Original release occurrence · 19.0/changes/120

  • Add libpq function PQgetThreadLock() to retrieve the current locking callback Features

    Add libpq function PQgetThreadLock() to retrieve the current locking callback (Jacob Champion) §

    Original release occurrence · 19.0/changes/121

  • Allow the search path to appear in the psql prompt via %S Features

    Allow the search path to appear in the psql prompt via %S (Florents Tselai) §

    This works when psql is connected to PostgreSQL 18 or later.

    Original release occurrence · 19.0/changes/122

  • Allow the hot standby status to appear in the psql prompt via %i Features

    Allow the hot standby status to appear in the psql prompt via %i (Jim Jones) §

    Original release occurrence · 19.0/changes/123

  • Modify psql backslash commands to show comments for publications, subscriptions, and extended statistics Features

    Modify psql backslash commands to show comments for publications, subscriptions, and extended statistics (Fujii Masao, Jim Jones) §

    The modified commands are \dRp+, \dRs+, and \dX+.

    Original release occurrence · 19.0/changes/124

  • Allow control over how booleans are displayed in psql Features

    Allow control over how booleans are displayed in psql (David G. Johnston) §

    The \pset variables are display_true and display_false.

    Original release occurrence · 19.0/changes/125

  • Add psql variable SERVICEFILE to reference the service file location Features

    Add psql variable SERVICEFILE to reference the service file location (Ryo Kanbayashi) §

    Original release occurrence · 19.0/changes/126

  • Allow psql to more accurately determine if the pager is needed Features

    Allow psql to more accurately determine if the pager is needed (Erik Wienhold) §

    Original release occurrence · 19.0/changes/127

  • Add or improve psql tab completion Features

    Add or improve psql tab completion (Yamaguchi Atsuo, Yugo Nagata, Haruna Miwa, Xuneng Zhou, Dagfinn Ilmari Mannsåker, Fujii Masao, Álvaro Herrera, Jian He, Tatsuya Kawata, Ian Lawrence Barwick, Vasuki M) § § § § § § § § § § § § § §

    Original release occurrence · 19.0/changes/128

  • Allow pg_dump to include restorable extended statistics Features

    Allow pg_dump to include restorable extended statistics (Corey Huinker) §

    Original release occurrence · 19.0/changes/129

  • Change vacuumdb's --analyze-only and --analyze-in-stages options to analyze partitioned tables when no targets are specified Features

    Change vacuumdb's --analyze-only and --analyze-in-stages options to analyze partitioned tables when no targets are specified (Laurenz Albe, Mircea Cadariu, Chao Li) § §

    Previously it skipped partitioned tables. This now matches the behavior of ANALYZE.

    Original release occurrence · 19.0/changes/130

  • Allow vacuumdb to report its commands without running them using option --dry-run Features

    Allow vacuumdb to report its commands without running them using option --dry-run (Corey Huinker) §

    Original release occurrence · 19.0/changes/131

  • Allow pg_verifybackup to read WAL files stored in tar archives Features

    Allow pg_verifybackup to read WAL files stored in tar archives (Amul Sul) §

    Add option --wal-path as an alias for the existing and deprecated --wal-directory option.

    Original release occurrence · 19.0/changes/132

  • Allow pg_waldump to read WAL files stored in tar archives Features

    Allow pg_waldump to read WAL files stored in tar archives (Amul Sul) §

    Original release occurrence · 19.0/changes/133

  • Improve performance of pg_upgrade copying large object metadata Performance

    Improve performance of pg_upgrade copying large object metadata (Nathan Bossart) § § § §

    Various methods are used, depending on the PostgreSQL version of the old cluster.

    Original release occurrence · 19.0/changes/134

  • Allow pg_upgrade to process non-default tablespaces stored in the PGDATA directory Features

    Allow pg_upgrade to process non-default tablespaces stored in the PGDATA directory (Nathan Bossart) §

    Previously such tablespaces generated an error.

    Original release occurrence · 19.0/changes/135

  • Add pgbench option --continue-on-error to continue after SQL errors Features

    Add pgbench option --continue-on-error to continue after SQL errors (Rintaro Ikeda, Yugo Nagata, Fujii Masao) §

    Original release occurrence · 19.0/changes/136

  • Improve the usability of pg_test_timing Features

    Improve the usability of pg_test_timing (Hannu Krosing, Tom Lane) § §

    Report nanoseconds instead of microseconds. In addition to histogram output, output a second table that reports exact timings, with an optional cutoff set by --cutoff.

    Original release occurrence · 19.0/changes/137

  • Allow pg_createsubscriber to ignore specified publications that already exist Features

    Allow pg_createsubscriber to ignore specified publications that already exist (Shubham Khanna) §

    Previously this generated an error.

    Original release occurrence · 19.0/changes/138

  • Change the way pg_createsubscriber stores recovery parameters Features

    Change the way pg_createsubscriber stores recovery parameters (Alyona Vinter) §

    Changes are stored in optionally-included pg_createsubscriber.conf rather than directly in postgresql.auto.conf.

    Original release occurrence · 19.0/changes/139

  • Add pg_createsubscriber option -l/--logdir to redirect output to files Features

    Add pg_createsubscriber option -l/--logdir to redirect output to files (Gyan Sreejith, Hayato Kuroda) §

    Original release occurrence · 19.0/changes/140

  • Restore support for AIX Features

    Restore support for AIX (Aditya Kamath, Srirama Kucherlapati, Peter Eisentraut) § §

    This uses gcc and only supports 64-bit builds.

    Original release occurrence · 19.0/changes/141

  • Change Solaris to use unnamed POSIX semaphores Features

    Change Solaris to use unnamed POSIX semaphores (Tom Lane) §

    Previously it used System V semaphores.

    Original release occurrence · 19.0/changes/142

  • Require Visual Studio 2019 or later Features

    Require Visual Studio 2019 or later (Peter Eisentraut) §

    Original release occurrence · 19.0/changes/143

  • Allow MSVC to create PL/Python using the Python Limited API Features

    Allow MSVC to create PL/Python using the Python Limited API (Bryan Green) §

    Original release occurrence · 19.0/changes/144

  • Allow building on AArch64 using MSVC Features

    Allow building on AArch64 using MSVC (Niyas Sait, Greg Burd, Dave Cramer) §

    Original release occurrence · 19.0/changes/145

  • Allow execution stack backtraces on Windows using DbgHelp Features

    Allow execution stack backtraces on Windows using DbgHelp (Bryan Green) §

    Original release occurrence · 19.0/changes/146

  • Change the supported C language version to C11 Features

    Change the supported C language version to C11 (Peter Eisentraut) § §

    Previously C99 was used.

    Original release occurrence · 19.0/changes/147

  • Use standard C23 and C++ attributes if available Features

    Use standard C23 and C++ attributes if available (Peter Eisentraut) §

    Original release occurrence · 19.0/changes/148

  • Use AVX2 CPU instructions for calculating page checksums Features

    Use AVX2 CPU instructions for calculating page checksums (Matthew Sterrett, Andrew Kim) §

    Original release occurrence · 19.0/changes/149

  • Use ARM Crypto Extension to Compute CRC32C Features

    Use ARM Crypto Extension to Compute CRC32C (John Naylor) §

    Original release occurrence · 19.0/changes/150

  • Change hex_encode() and hex_decode() to use SIMD CPU instructions Features

    Change hex_encode() and hex_decode() to use SIMD CPU instructions (Nathan Bossart, Chiranmoy Bhattacharya) §

    Original release occurrence · 19.0/changes/151

  • Require Meson version 0.57.2 or later Features

    Require Meson version 0.57.2 or later (Peter Eisentraut) §

    Original release occurrence · 19.0/changes/152

  • Add Meson option to build both shared and static libraries, or only shared Features

    Add Meson option to build both shared and static libraries, or only shared (Peter Eisentraut) §

    Original release occurrence · 19.0/changes/153

  • Update Unicode data to version 17.0.0 Features

    Update Unicode data to version 17.0.0 (Peter Eisentraut) §

    Original release occurrence · 19.0/changes/154

  • Add hooks planner_setup_hook, planner_shutdown_hook, joinrel_setup_hook, and join_path_setup_hook Features

    Add hooks planner_setup_hook, planner_shutdown_hook, joinrel_setup_hook, and join_path_setup_hook (Robert Haas) § §

    Original release occurrence · 19.0/changes/155

  • Allow extensions to replace set-returning functions in the FROM clause with SQL queries Features

    Allow extensions to replace set-returning functions in the FROM clause with SQL queries (Paul A. Jungwirth) §

    Original release occurrence · 19.0/changes/156

  • Make multixid members 64-bit Features

    Make multixid members 64-bit (Maxim Orlov) §

    Original release occurrence · 19.0/changes/157

  • Change function prototypes to use uint* instead of bit* typedefs Features

    Change function prototypes to use uint* instead of bit* typedefs (Nathan Bossart) §

    Original release occurrence · 19.0/changes/158

  • Allow logical decoding plugins to specify if they do not access shared catalogs Features

    Allow logical decoding plugins to specify if they do not access shared catalogs (Antonin Houska) §

    Original release occurrence · 19.0/changes/159

  • Allow OAuth validators to supply failure details Features

    Allow OAuth validators to supply failure details (Jacob Champion) §

    This is done by setting the ValidatorModuleResult structure member error_detail.

    Original release occurrence · 19.0/changes/160

  • Add simplified and improved shared memory registration function ShmemRequestStruct() Features

    Add simplified and improved shared memory registration function ShmemRequestStruct() (Heikki Linnakangas, Ashutosh Bapat) §

    Functions ShmemInitStruct() and ShmemInitHash() remain for backward compatibility.

    Original release occurrence · 19.0/changes/161

  • Add server variable debug_exec_backend to report how parameters are passed to new backends Features

    Add server variable debug_exec_backend to report how parameters are passed to new backends (Daniel Gustafsson) §

    Original release occurrence · 19.0/changes/162

  • Add documentation section about temporal tables Features

    Add documentation section about temporal tables (Paul A. Jungwirth) §

    Original release occurrence · 19.0/changes/163

  • Document the environment variables that control the regression tests Features

    Document the environment variables that control the regression tests (Michael Paquier) §

    Original release occurrence · 19.0/changes/164

  • Update documented systemd example to include a restart setting Features

    Update documented systemd example to include a restart setting (Andrew Jackson) §

    Original release occurrence · 19.0/changes/165

  • Add pg_plan_advice module to stabilize and control planner decisions Features

    Add pg_plan_advice module to stabilize and control planner decisions (Robert Haas) § §

    Original release occurrence · 19.0/changes/166

  • Add extension pg_stash_advice to allow per-query-id advice to be specified Features

    Add extension pg_stash_advice to allow per-query-id advice to be specified (Robert Haas, Lukas Fittl) § §

    Original release occurrence · 19.0/changes/167

  • Show sizes of FETCH queries as constants in pg_stat_statements Features

    Show sizes of FETCH queries as constants in pg_stat_statements (Sami Imseih) §

    Fetches of different sizes will now be grouped together in pg_stat_statements output.

    Original release occurrence · 19.0/changes/168

  • Add generic and custom plan counts to pg_stat_statements Features

    Add generic and custom plan counts to pg_stat_statements (Sami Imseih) §

    Original release occurrence · 19.0/changes/169

  • Refactor pg_buffercache reporting of shared memory mapping Features

    Refactor pg_buffercache reporting of shared memory mapping (Bertrand Drouvot) §

    New function pg_buffercache_os_pages() and system view pg_buffercache_os_pages allow reporting of shared memory mapping; the function optionally includes NUMA details. Function pg_buffercache_numa_pages() remains for backward compatibility.

    Original release occurrence · 19.0/changes/170

  • Add functions to pg_buffercache to mark buffers as dirty Features

    Add functions to pg_buffercache to mark buffers as dirty (Nazir Bilal Yavuz) §

    The functions are pg_buffercache_mark_dirty(), pg_buffercache_mark_dirty_relation(), and pg_buffercache_mark_dirty_all().

    Original release occurrence · 19.0/changes/171

  • Allow pushdown of array comparisons in prepared statements to postgres_fdw foreign servers Features

    Allow pushdown of array comparisons in prepared statements to postgres_fdw foreign servers (Alexander Pyhalov) §

    Original release occurrence · 19.0/changes/172

  • Allow the retrieval of statistics from foreign data wrapper servers Features

    Allow the retrieval of statistics from foreign data wrapper servers (Corey Huinker, Etsuro Fujita) § §

    This is enabled for postgres_fdw by using the option import_stats. The default is for ANALYZE to retrieve rows from the remote server to locally generate statistics.

    Original release occurrence · 19.0/changes/173

  • Allow file_fdw to read files or program output that uses multi-line headers Features

    Allow file_fdw to read files or program output that uses multi-line headers (Shinya Kato) §

    Original release occurrence · 19.0/changes/174

  • Add server variable auto_explain.log_io to add IO reporting to auto_explain Features

    Add server variable auto_explain.log_io to add IO reporting to auto_explain (Tomas Vondra) §

    Original release occurrence · 19.0/changes/175

  • Allow auto_explain to add extension-specific EXPLAIN options via server variable auto_explain.log_extension_options Features

    Allow auto_explain to add extension-specific EXPLAIN options via server variable auto_explain.log_extension_options (Robert Haas) §

    Original release occurrence · 19.0/changes/176

  • Change btree_gin to support all btree-supported cross-type comparisons Features

    Change btree_gin to support all btree-supported cross-type comparisons (Tom Lane) § §

    Original release occurrence · 19.0/changes/177

  • Improve performance of bloom indexes by using streaming reads Performance

    Improve performance of bloom indexes by using streaming reads (Xuneng Zhou) § §

    Original release occurrence · 19.0/changes/178

  • Improve performance of pgstattuple by using streaming reads Performance

    Improve performance of pgstattuple by using streaming reads (Xuneng Zhou) § §

    Original release occurrence · 19.0/changes/179

  • Allow fuzzystrmatch's dmetaphone() to use single-byte encodings beyond ASCII Features

    Allow fuzzystrmatch's dmetaphone() to use single-byte encodings beyond ASCII (Peter Eisentraut) §

    Original release occurrence · 19.0/changes/180

  • Modify oid2name --extended to report the relation file path Features

    Modify oid2name --extended to report the relation file path (David Bidoc) §

    Original release occurrence · 19.0/changes/181

Security evidence

0 records from the official security matrix and release-note mentions. A fixed version is shown only when the security snapshot explicitly names this branch. A mention alone does not establish applicability or a new fix.

The security snapshot has no complete branch matrix for PostgreSQL 19. Vulnerability status remains unknown where no explicit evidence is available.

No branch-specific security records are present in this snapshot. This is not evidence that no vulnerabilities exist.

Export this branch as JSON · Compare any two indexed releases