diff --git a/configure b/configure index 5f77f3cac29..35b0b72f0a7 100755 --- a/configure +++ b/configure @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.69 for PostgreSQL 19beta1. +# Generated by GNU Autoconf 2.69 for PostgreSQL 20devel. # # Report bugs to . # @@ -582,8 +582,8 @@ MAKEFLAGS= # Identity of this package. PACKAGE_NAME='PostgreSQL' PACKAGE_TARNAME='postgresql' -PACKAGE_VERSION='19beta1' -PACKAGE_STRING='PostgreSQL 19beta1' +PACKAGE_VERSION='20devel' +PACKAGE_STRING='PostgreSQL 20devel' PACKAGE_BUGREPORT='pgsql-bugs@lists.postgresql.org' PACKAGE_URL='https://www.postgresql.org/' @@ -1468,7 +1468,7 @@ if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures PostgreSQL 19beta1 to adapt to many kinds of systems. +\`configure' configures PostgreSQL 20devel to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1533,7 +1533,7 @@ fi if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of PostgreSQL 19beta1:";; + short | recursive ) echo "Configuration of PostgreSQL 20devel:";; esac cat <<\_ACEOF @@ -1724,7 +1724,7 @@ fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -PostgreSQL configure 19beta1 +PostgreSQL configure 20devel generated by GNU Autoconf 2.69 Copyright (C) 2012 Free Software Foundation, Inc. @@ -2477,7 +2477,7 @@ cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by PostgreSQL $as_me 19beta1, which was +It was created by PostgreSQL $as_me 20devel, which was generated by GNU Autoconf 2.69. Invocation command line was $ $0 $@ @@ -20348,7 +20348,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by PostgreSQL $as_me 19beta1, which was +This file was extended by PostgreSQL $as_me 20devel, which was generated by GNU Autoconf 2.69. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -20419,7 +20419,7 @@ _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_version="\\ -PostgreSQL config.status 19beta1 +PostgreSQL config.status 20devel configured by $0, generated by GNU Autoconf 2.69, with options \\"\$ac_cs_config\\" diff --git a/configure.ac b/configure.ac index 61cee42daa7..0e624fe36b9 100644 --- a/configure.ac +++ b/configure.ac @@ -17,7 +17,7 @@ dnl Read the Autoconf manual for details. dnl m4_pattern_forbid(^PGAC_)dnl to catch undefined macros -AC_INIT([PostgreSQL], [19beta1], [pgsql-bugs@lists.postgresql.org], [], [https://www.postgresql.org/]) +AC_INIT([PostgreSQL], [20devel], [pgsql-bugs@lists.postgresql.org], [], [https://www.postgresql.org/]) m4_if(m4_defn([m4_PACKAGE_VERSION]), [2.69], [], [m4_fatal([Autoconf version 2.69 is required. Untested combinations of 'autoconf' and PostgreSQL versions are not diff --git a/doc/src/sgml/filelist.sgml b/doc/src/sgml/filelist.sgml index 25a85082759..0e7e7c8ca53 100644 --- a/doc/src/sgml/filelist.sgml +++ b/doc/src/sgml/filelist.sgml @@ -185,7 +185,7 @@ - + diff --git a/doc/src/sgml/release-19.sgml b/doc/src/sgml/release-19.sgml deleted file mode 100644 index b0925d5f24b..00000000000 --- a/doc/src/sgml/release-19.sgml +++ /dev/null @@ -1,3330 +0,0 @@ - - - - - Release 19 - - - Release date: - 2026-??-??, AS OF 2026-06-17 - - - - Overview - - - PostgreSQL 19 contains many new features - and enhancements, including: - - - - - fill in later - - - - - The above items and other new features of - PostgreSQL 19 are explained in more detail - in the sections below. - - - - - - - Migration to Version 19 - - - A dump/restore using or use of - or logical replication is required for - those wishing to migrate data from any previous release. See 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: - - - - - - - -Add server variable password_expiration_warning_threshold to warn about password expiration (Gilles Darold, Nathan Bossart) -§ - - - -The default warning period is seven days. - - - - - - - -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. - - - - - - - -Remove RADIUS support (Thomas Munro) -§ - - - -PostgreSQL only supported RADIUS over UDP, which is unfixably insecure. - - - - - - - -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. - - - - - - - -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. - - - - - - - -Change the default index opclasses for inet and cidr data types from to GiST (Tom Lane) -§ -§ - - - -The inet/cidr opclasses are broken because they can exclude rows that should be returned. pg_upgrade will disallow upgrading of clusters with inet/cidr indexes. - - - - - - - -Stop reordering non-schema objects created by CREATE SCHEMA (Tom Lane, Jian He) -§ -§ - - - -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. - - - - - - - -Disallow system columns from being used in COPY FROM ... WHERE (Tom Lane) -§ - - - -The values of such columns were not well-defined. - - - - - - - -Change a json_array() call which returns no rows to return an empty JSON array (Richard Guo) -§ - - - -This previously returned NULL. - - - - - - - -Cause transactions to pass their READ ONLY and DEFERRABLE status to sessions (Etsuro Fujita) -§ - - - -This means READ ONLY transactions can no longer modify rows processed by sessions. - - - - - - - -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. - - - - - - - -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. - - - - - - - -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. - - - - - - - -Rename wait event type BUFFERPIN to BUFFER (Andres Freund) -§ - - - - - - - -Change index access method handlers to use a static IndexAmRoutines structure, rather than dynamically allocated ones (Matthias van de Meent) -§ - - - - - - - -Remove optimizer hook get_relation_info_hook and add better-placed hook build_simple_rel_hook (Robert Haas) -§ - - - - - - - -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. - - - - - - - - - Changes - - - Below you will find a detailed account of the changes between - PostgreSQL 19 and the previous major - release. - - - - Server - - - Optimizer - - - - - - -Allow NOT IN clauses to be converted to more efficient ANTI JOINs when NULLs are not present (Richard Guo) -§ - - - - - - - -Allow more LEFT JOINs to be converted to ANTI JOINs (Tender Wang, Richard Guo) -§ - - - - - - - -Allow use of Memoize for ANTI JOINs with unique inner sides (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. - - - - - - - -Improve hash join's handling of tuples with NULL join keys (Tom Lane) -§ - - - - - - - -Improve the planning of semijoins (Richard Guo) -§ - - - - - - - -Allow Append and MergeAppend to consider explicit incremental sorts (Richard Guo) -§ - - - - - - - -Convert IS [NOT] DISTINCT FROM NULL to IS [NOT] NULL during constant folding (Richard Guo) -§ - - - -The latter form is more easily optimized. - - - - - - - -Simplify IS [NOT] DISTINCT FROM to equality/inequality operators when inputs are proven non-nullable (Richard Guo) -§ - - - - - - - -Perform earlier constant folding of var IS [NOT] NULL in the optimizer (Richard Guo) -§ - - - -This allows for later optimizations. - - - - - - - -Simplify COALESCE() and ROW(...) IS [NOT] NULL to avoid evaluating unnecessary arguments (Richard Guo) -§ -§ - - - - - - - -Simplify IS [NOT] TRUE/FALSE/UNKNOWN to plain boolean expressions when the input is proven non-nullable (Richard Guo) -§ - - - - - - - -Speed up join selectivity computations for large optimizer statistics targets (Ilia Evdokimov, David Geier) -§ - - - - - - - -Enable proper optimizer statistics for functions returning boolean values (Tom Lane) -§ - - - - - - - -Allow extended statistics on virtual generated columns (Yugo Nagata) -§ - - - - - - - -Allow function pg_restore_extended_stats() to restore optimizer extended statistics (Corey Huinker, Michael Paquier, Chao Li) -§ -§ -§ -§ - - - - - - - -Add function pg_clear_extended_stats() to remove extended statistics (Corey Huinker, Michael Paquier) -§ - - - - - - - -Adjust the optimizer to consider startup costs of partial paths (Robert Haas, Tomas Vondra) -§ - - - - - - - -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. - - - - - - - - - General Performance - - - - - - -Improve performance of foreign key constraint checks (Junwang Zhao, Amit Langote, Chao Li) -§ -§ -§ -§ - - - - - - - -Improve asynchronous I/O read-ahead scheduling for large requests (Andres Freund) -§ -§ -§ - - - - - - - -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. - - - - - - - -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. - - - - - - - -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. - - - - - - - -Allow TID Range Scans to be parallelized (Cary Huang, David Rowley) -§ - - - - - - - -Improve COPY FROM performance for text and CSV input using SIMD CPU instructions (Nazir Bilal Yavuz, Shinya Kato) -§ - - - - - - - -Improve NOTIFY to only wake up backends that are listening to specified notifications (Joel Jacobson) -§ - - - -Previously most backends were woken by NOTIFY. - - - - - - - -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. - - - - - - - -Improve performance of internal row deformation (David Rowley) -§ - - - - - - - -Improve performance of repeated UTF-8 case-folding operations (Andreas Karlsson) -§ - - - - - - - -Improve performance of hash index bulk-deletion and GIN index vacuuming using streaming reads (Xuneng Zhou) -§ -§ - - - - - - - -Improve sort performance using radix sort (John Naylor) -§ - - - - - - - -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. - - - - - - - -Optimize plpgsql syntax SELECT simple-expression INTO var (Tom Lane) -§ - - - - - - - - - System Views - - - - - - -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_recovery to report recovery status (Xuneng Zhou, Shinya Kato) -§ -§ - - - - - - - -Add system view pg_stat_autovacuum_scores to report per-table autovacuum details (Sami Imseih) -§ - - - - - - - -Add system view pg_dsm_registry_allocations to report dynamic shared memory details (Florents Tselai, Nathan Bossart) -§ -§ - - - - - - - -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. - - - - - - - -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 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 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. - - - - - - - -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. - - - - - - - -Add sync_seq_error_count column to system view pg_stat_subscription_stats to report sequence synchronization errors (Vignesh C) -§ -§ - - - - - - - -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. - - - - - - - -Add stats_reset column to system views pg_stat_user_functions and pg_stat_database_conflicts (Bertrand Drouvot, Shihao Zhong) -§ -§ - - - - - - - -Add location column to system views pg_available_extensions and pg_available_extension_versions to report the file system directory of extensions (Matheus Alcantara) -§ - - - - - - - -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. - - - - - - - -Add connecting value 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(). - - - - - - - -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. - - - - - - - -Add information about range type extended statistics to system view pg_stats_ext_exprs (Corey Huinker, Michael Paquier) -§ - - - - - - - - Monitoring - - - - - - -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. - - - - - - - -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. - - - - - - - -Enable server variable log_lock_waits by default (Laurenz Albe) -§ - - - - - - - -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. - - - - - - - -Make messages coming from remote servers appear in the server logs in the same format as local server messages (Vignesh C) -§ - - - -These include replication, , and servers. - - - - - - - -Add reporting of WAL full-page write bytes to VACUUM and ANALYZE logging (Shinya Kato) -§ - - - - - - - -Add IO wait events for COPY FROM/TO on a pipe, file, or program (Nikolay Samokhvalov) -§ - - - - - - - -Add wait events for WAL write and flush LSNs (Xuneng Zhou) -§ - - - - - - - -Have pg_get_sequence_data() return the sequence page LSN (Vignesh C) -§ - - - - - - - -Add function pg_get_multixact_stats() to report multixact activity (Naga Appani) -§ - - - - - - - -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. - - - - - - - - - Server Configuration - - - - - - -Allow online enabling and disabling of data checksums (Daniel Gustafsson, Magnus Hagander, Tomas Vondra) -§ -§ - - - -Previously the checksum status could only be changed while the cluster was offline using pg_checksums. - - - - - - - -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, vacuum_insert_score_weight, and -autovacuum_analyze_score_weight. - - - - - - - -Add server-side support for SNI (Server Name Indication) (Daniel Gustafsson, Jacob Champion) -§ - - - -New configuration file PGDATA/pg_hosts.conf specifies hostname/key pairs. - - - - - - - -Add a new OAUTH flow hook PQAUTHDATA_OAUTH_BEARER_TOKEN_V2 (Jacob Champion) -§ -§ - - - -This is an improved version of PQAUTHDATA_OAUTH_BEARER_TOKEN by adding the issuer identifier and error message specification. - - - - - - - -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. - - - - - - - -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. - - - - - - - -Allow server variables that represent lists to be emptied by setting the value to NULL (Tom Lane) -§ - - - - - - - -Update GB18030 encoding from version 2000 to 2022 (Chao Li, Zheng Tao) -§ - - - -See the commit message for compatibility details. - - - - - - - - - <link linkend="streaming-replication">Streaming Replication and Recovery</link> - - - - - - -Add WAIT FOR command to allow standbys to wait for LSN values to be written, flushed, or replayed (Kartyshov Ivan, Alexander Korotkov, Xuneng Zhou) -§ -§ - - - - - - - -Improve function pg_sync_replication_slots() to wait for replication synchronization completion (Ajin Cherian, Zhijie Hou) -§ - - - -Previously, certain synchronization failures would not be reported. - - - - - - - -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. - - - - - - - -Allow wal_receiver_timeout to be set per-subscription and user (Fujii Masao) -§ -§ - - - -This allows subscribers to use different wal_receiver_timeout values. - - - - - - - -Add optional pid parameter to pg_replication_origin_session_setup() to allow parallelization of SQL-level replication solutions (Doruk Yilmaz, Hayato Kuroda) -§ - - - - - - - - - <link linkend="logical-replication">Logical Replication</link> - - - - - - -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. - - - - - - - -Allow CREATE/ALTER PUBLICATION to publish all sequences (Vignesh C, Tomas Vondra) -§ - - - -This is enabled with the ALL SEQUENCES clause. - - - - - - - -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. - - - - - - - -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. - - - - - - - -Add CREATE/ALTER PUBLICATION setting retain_dead_tuples to retain information needed for conflict resolution (Zhijie Hou) -§ -§ -§ - - - -Also add setting max_retention_duration to limit retain_dead_tuples retention. - - - - - - - -Allow CREATE SUBSCRIPTION to use foreign data wrapper connection parameters (Jeff Davis) -§ - - - -The connection parameters are referenced via CREATE SUBSCRIPTION ... SERVER. - - - - - - - -When server variable wal_level is replica, allow automatic enablement of logical replication when needed (Masahiko Sawada) -§ - - - -New server variable effective_wal_level reports the effective WAL level. - - - - - - - - - - - Query Commands - - - - - - -Add support for SQL Property Graph Queries (SQL/PGQ) (Peter Eisentraut, Ashutosh Bapat) -§ -§ -§ - - - -Internally these are processed like views so are written as standard relational queries. - - - - - - - -Add FOR PORTION OF clause to UPDATE and DELETE (Paul A. Jungwirth) -§ -§ - - - -This allows operations on temporal ranges. - - - - - - - -Add GROUP BY ALL syntax to SELECT to automatically group all non-aggregate and non-window-function target list parameters (David Christensen) -§ - - - - - - - -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. - - - - - - - -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(). - - - - - - - -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. - - - - - - - - - Utility Commands - - - - - - -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. - - - - - - - -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. - - - - - - - -Allow partitions to be merged and split using ALTER TABLE ... MERGE/SPLIT PARTITIONS (Dmitry Koval, Alexander Korotkov, Tender Wang, Richard Guo, Dagfinn Ilmari Mannsåker, Fujii Masao, Jian He) -§ -§ - - - - - - - -Allow GRANT/REVOKE to specify the effective role performing the privileges adjustment (Nathan Bossart, Tom Lane) -§ - - - -The GRANTED BY clause controls this. - - - - - - - -Allow CREATE SCHEMA to create more types of objects in newly-created schemas (Kirill Reshke, Jian He, Tom Lane) -§ - - - - - - - -Allow CHECKPOINT to accept a list of options (Christoph Berg) -§ -§ -§ - - - -Supported options are MODE and FLUSH_UNLOGGED. - - - - - - - -Add CONNECTION clause to CREATE FOREIGN DATA WRAPPER to specify a function to be called for subscription connection parameters (Jeff Davis, Noriyoshi Shinoda) -§ -§ - - - - - - - -Add memory usage and parallelism reporting to VACUUM (VERBOSE) and autovacuum logs (Tatsuya Kawata, Daniil Davydov) -§ -§ - - - - - - - <link linkend="ddl-constraints">Constraints</link> - - - - - - -Allow ALTER TABLE ALTER CONSTRAINT ... [NOT] ENFORCED for CHECK constraints (Jian He) -§ - - - -Previously enforcement changes were only supported for foreign key constraints. - - - - - - - -Allow ALTER TABLE ... COLUMN SET EXPRESSION to succeed on virtual columns with CHECK constraints (Jian He) -§ - - - -This was previously prohibited. - - - - - - - - <xref linkend="sql-copy"/> - - - - - - -Allow multiple headers lines to be skipped by COPY FROM (Shinya Kato, Fujii Masao) -§ - - - -Previously only a single header line could be skipped. - - - - - - - -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. - - - - - - - -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. - - - - - - - -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. - - - - - - - - <xref linkend="sql-explain"/> - - - - - - -Add EXPLAIN ANALYZE option IO to report asynchronous IO activity (Tomas Vondra) -§ -§ -§ - - - - - - - -Add reporting of WAL full-page write bytes to EXPLAIN (ANALYZE, WAL) output (Shinya Kato) -§ - - - - - - - -Add Memoize cache and lookup estimates to EXPLAIN output (Ilia Evdokimov, Lukas Fittl) -§ - - - -This can show why Memoize was chosen. - - - - - - - - - - - Data Types - - - - - - -Add the 64-bit unsigned data type oid8 (Michael Paquier) -§ - - - - - - - -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. - - - - - - - -Allow casts between bytea and uuid data types (Dagfinn Ilmari Mannsåker, Aleksander Alekseev) -§ - - - - - - - -Add ability to cast between database names and oid8s using regdatabase (Ian Lawrence Barwick) -§ - - - - - - - -Add functions tid_block() and tid_offset() to extract block numbers and offsets from tid values (Ayush Tiwari) -§ - - - - - - - - - Functions - - - - - - -Add date, timestamp, and timestamptz versions of random(min, max) (Damien Clochard, Dean Rasheed) -§ -§ - - - - - - - -Allow encode() and decode() to process data in base64url and base32hex formats (Andrey Borodin, Aleksander Alekseev, Florents Tselai) -§ -§ -§ - - - -This format retains ordering, unlike base32. - - - - - - - -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. - - - - - - - -Add function error_on_null() to return the supplied parameter, or error on NULL input (Joel Jacobson) -§ - - - - - - - -Allow IS JSON to work on domains defined over supported base types (Jian He) -§ - - - -The supported base types are TEXT, JSON, JSONB, and BYTEA. - - - - - - - -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. - - - - - - - -Add function pg_get_role_ddl() to output role creation commands (Mario Gonzalez, Bryan Green, Andrew Dunstan, Euler Taveira) -§ - - - - - - - -Add function pg_get_tablespace_ddl() to output tablespace creation commands (Nishant Sharma, Manni Wood, Andrew Dunstan, Euler Taveira) -§ - - - - - - - -Add function pg_get_database_ddl() to output database creation commands (Akshay Joshi, Andrew Dunstan, Euler Taveira) -§ - - - - - - - -Allow event triggers to be written using PL/Python (Euler Taveira, Dimitri Fontaine) -§ - - - - - - - - - <link linkend="libpq">Libpq</link> - - - - - - -Allow libpq connections to specify a service file via servicefile (Torsten Förtsch, Ryo Kanbayashi) -§ - - - - - - - -Add special libpq protocol version 3.9999 for version testing (Jelte Fennema-Nio) -§ - - - - - - - -Add libpq function PQgetThreadLock() to retrieve the current locking callback (Jacob Champion) -§ - - - - - - - -Add libpq connection parameter oauth_ca_file to specify the OAUTH certificate authority file (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. - - - - - - - -Allow custom OAUTH validators to register custom pg_hba.conf authentication options (Jacob Champion) -§ - - - - - - - -Allow OAUTH validators to supply failure details (Jacob Champion) -§ - - - -This is done by setting the ValidatorModuleResult structure member error_detail. - - - - - - - -Allow libpq environment variable PGOAUTHDEBUG to specify particular debug options (Zsolt Parragi, Jacob Champion) -§ - - - -The UNSAFE option still generates all debugging output. - - - - - - - - - <xref linkend="app-psql"/> - - - - - - -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. - - - - - - - -Allow the hot standby status to appear in the psql prompt via %i (Jim Jones) -§ - - - - - - - -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+. - - - - - - - -Allow control over how booleans are displayed in psql (David G. Johnston) -§ - - - -The \pset variables are display_true and display_false. - - - - - - - -Add psql variable SERVICEFILE to reference the service file location (Ryo Kanbayashi) -§ - - - - - - - -Allow psql to more accurately determine if the pager is needed (Erik Wienhold) -§ - - - - - - - -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) -§ -§ -§ -§ -§ -§ -§ -§ -§ -§ -§ -§ -§ -§ - - - - - - - - - Server Applications - - - - - - -Change vacuumdb's and 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. - - - - - - - -Allow vacuumdb to report its commands without running them using option (Corey Huinker) -§ - - - - - - - -Allow pg_verifybackup to read WAL files stored in tar archives (Amul Sul) -§ - - - -Add option as an alias for the existing and deprecated option. - - - - - - - -Allow pg_waldump to read WAL files stored in tar archives (Amul Sul) -§ - - - - - - - -Improve performance of pg_upgrade copying large object metadata (Nathan Bossart) -§ -§ -§ -§ - - - -Various methods are used, depending on the PostgreSQL version of the old cluster. - - - - - - - -Allow pg_upgrade to process non-default tablespaces stored in the PGDATA directory (Nathan Bossart) -§ - - - -Previously such tablespaces generated an error. - - - - - - - -Add pgbench option to continue after SQL errors (Rintaro Ikeda, Yugo Nagata, Fujii Masao) -§ - - - - - - - -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 . - - - - - - - <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> - - - - - - -Allow pg_dump to include restorable extended statistics (Corey Huinker) -§ - - - - - - - - - <link linkend="app-pgcreatesubscriber"><application>pg_createsubscriber</application></link> - - - - - - -Allow pg_createsubscriber to ignore specified publications that already exist (Shubham Khanna) -§ - - - -Previously this generated an error. - - - - - - - -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. - - - - - - - -Add pg_createsubscriber option / to redirect output to files (Gyan Sreejith, Hayato Kuroda) -§ - - - - - - - - - - - Source Code - - - - - - -Restore support for AIX (Aditya Kamath, Srirama Kucherlapati, Peter Eisentraut) -§ -§ - - - -This uses gcc and only supports 64-bit builds. - - - - - - - -Change Solaris to use unnamed POSIX semaphores (Tom Lane) -§ - - - -Previously it used System V semaphores. - - - - - - - -Require Visual Studio 2019 or later (Peter Eisentraut) -§ - - - - - - - -Allow MSVC to create PL/Python using the Python Limited API (Bryan Green) -§ - - - - - - - -Allow building on AArch64 using MSVC (Niyas Sait, Greg Burd, Dave Cramer) -§ - - - - - - - -Allow execution stack backtraces on Windows using DbgHelp (Bryan Green) -§ - - - - - - - -Change the supported C language version to C11 (Peter Eisentraut) -§ -§ - - - -Previously C99 was used. - - - - - - - -Use standard C23 and C++ attributes if available (Peter Eisentraut) -§ - - - - - - - -Use AVX2 CPU instructions for calculating page checksums (Matthew Sterrett, Andrew Kim) -§ - - - - - - - -Use ARM Crypto Extension to Compute CRC32C (John Naylor) -§ - - - - - - - -Change hex_encode() and hex_decode() to use SIMD CPU instructions (Nathan Bossart, Chiranmoy Bhattacharya) -§ - - - - - - - -Require Meson version 0.57.2 or later (Peter Eisentraut) -§ - - - - - - - -Add Meson option to build both shared and static libraries, or only shared (Peter Eisentraut) -§ - - - - - - - -Update Unicode data to version 17.0.0 (Peter Eisentraut) -§ - - - - - - - -Add hooks planner_setup_hook, planner_shutdown_hook, joinrel_setup_hook, and join_path_setup_hook (Robert Haas) -§ -§ - - - - - - - -Allow extensions to replace set-returning functions in the FROM clause with SQL queries (Paul A. Jungwirth) -§ - - - - - - - -Make multixid members 64-bit (Maxim Orlov) -§ - - - - - - - -Change function prototypes to use uint* instead of bit* typedefs (Nathan Bossart) -§ - - - - - - - -Allow logical decoding plugins to specify if they do not access shared catalogs (Antonin Houska) -§ - - - - - - - -Add simplified and improved shared memory registration function ShmemRequestStruct() (Heikki Linnakangas, Ashutosh Bapat) -§ - - - -Functions ShmemInitStruct() and ShmemInitHash() remain for backward compatibility. - - - - - - - -Add server variable debug_exec_backend to report how parameters are passed to new backends (Daniel Gustafsson) -§ - - - - - - - -Add documentation section about temporal tables (Paul A. Jungwirth) -§ - - - - - - - -Document the environment variables that control the regression tests (Michael Paquier) -§ - - - - - - - -Update documented systemd example to include a restart setting (Andrew Jackson) -§ - - - - - - - - - Additional Modules - - - - - - -Add module to stabilize and control planner decisions (Robert Haas) -§ -§ - - - - - - - -Add extension to allow per-query-id advice to be specified (Robert Haas, Lukas Fittl) -§ -§ - - - - - - - -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 plan counts to (Sami Imseih) -§ - - - - - - - -Refactor 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. - - - - - - - -Add functions to 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(). - - - - - - - -Allow pushdown of array comparisons in prepared statements to foreign servers (Alexander Pyhalov) -§ - - - - - - - -Allow the retrieval of statistics from foreign data wrapper servers (Corey Huinker, Etsuro Fujita) -§ - - - -This is enabled for by using the option restore_stats. The default is for ANALYZE to retrieve rows from the remote server to locally generate statistics. - - - - - - - -Allow to read files or program output that uses multi-line headers (Shinya Kato) -§ - - - - - - - -Add server variable auto_explain.log_io to add IO reporting to auto_explain (Tomas Vondra) -§ - - - - - - - -Allow auto_explain to add extension-specific EXPLAIN options via server variable auto_explain.log_extension_options (Robert Haas) -§ - - - - - - - -Change to support all btree-supported cross-type comparisons (Tom Lane) -§ -§ - - - - - - - -Improve performance of indexes by using streaming reads (Xuneng Zhou) -§ -§ - - - - - - - -Improve performance of by using streaming reads (Xuneng Zhou) -§ -§ - - - - - - - -Allow 's dmetaphone() to use single-byte encodings beyond ASCII (Peter Eisentraut) -§ - - - - - - - -Modify oid2name to report the relation file path (David Bidoc) -§ - - - - - - - - - - - Acknowledgments - - - The following individuals (in alphabetical order) have contributed - to this release as patch authors, committers, reviewers, testers, - or reporters of issues. - - - - fill in later - - - - diff --git a/doc/src/sgml/release-20.sgml b/doc/src/sgml/release-20.sgml new file mode 100644 index 00000000000..5fe36c1d7d2 --- /dev/null +++ b/doc/src/sgml/release-20.sgml @@ -0,0 +1,16 @@ + + + + + Release 20 + + + Release date: + 2026-??-?? + + + + This is just a placeholder for now. + + + diff --git a/doc/src/sgml/release.sgml b/doc/src/sgml/release.sgml index ae6cc3cc2cb..9d861a0f8c0 100644 --- a/doc/src/sgml/release.sgml +++ b/doc/src/sgml/release.sgml @@ -70,7 +70,7 @@ For new features, add links to the documentation sections. All the active branches have to be edited concurrently when doing that. --> -&release-19; +&release-20; Prior Releases diff --git a/meson.build b/meson.build index 568e0e150bf..d88a7a70308 100644 --- a/meson.build +++ b/meson.build @@ -8,7 +8,7 @@ project('postgresql', ['c'], - version: '19beta1', + version: '20devel', license: 'PostgreSQL', # We want < 0.62 for python 3.6 compatibility on old platforms. diff --git a/src/tools/git_changelog b/src/tools/git_changelog index d5f651ecf5b..c92c6cfe3e3 100755 --- a/src/tools/git_changelog +++ b/src/tools/git_changelog @@ -59,7 +59,7 @@ require IPC::Open2; # (We could get this from "git branches", but not worth the trouble.) # NB: master must be first! my @BRANCHES = qw(master - REL_18_STABLE + REL_19_STABLE REL_18_STABLE REL_17_STABLE REL_16_STABLE REL_15_STABLE REL_14_STABLE REL_13_STABLE REL_12_STABLE REL_11_STABLE REL_10_STABLE REL9_6_STABLE REL9_5_STABLE REL9_4_STABLE REL9_3_STABLE REL9_2_STABLE REL9_1_STABLE REL9_0_STABLE diff --git a/src/tools/version_stamp.pl b/src/tools/version_stamp.pl index ea50ee41c69..8f94e9e2886 100755 --- a/src/tools/version_stamp.pl +++ b/src/tools/version_stamp.pl @@ -25,7 +25,7 @@ use warnings FATAL => 'all'; # Major version is hard-wired into the script. We update it when we branch # a new development version. -my $majorversion = 19; +my $majorversion = 20; # Validate argument and compute derived variables my $minor = shift;