2023-01-01 [d747dc85a] In plpgsql, don't preassign portal names to bound cursor
-->
-
-
-Change assignment rules for PL/pgSQL bound cursor variables (Tom Lane)
-
+
+
+ Change assignment rules for
+ linkend="plpgsql-open-bound-cursor">PL/pgSQL
+ bound cursor variables (Tom Lane)
+
-
-Previously, the string value of such variables was set to match the variable name during cursor assignment; now it will be assigned during OPEN, and will not match the variable name.
-To restore the previous behavior, assign the desired portal name to the cursor variable before OPEN.
-
-
+
+ Previously, the string value of such variables
+ was set to match the variable name during cursor
+ assignment; now it will be assigned during
+ linkend="plpgsql-cursor-opening">OPEN,
+ and will not match the variable name. To restore the previous
+ behavior, assign the desired portal name to the cursor variable
+ before OPEN.
+
+
-
-
-Disallow NULLS NOT DISTINCT indexes for primary keys (Daniel Gustafsson)
-
-
+
+
+ Disallow NULLS NOT
+ DISTINCT indexes for primary keys (Daniel
+ Gustafsson)
+
+
-
-
-Change REINDEX DATABASE and reindexdb to not process indexes on system catalogs (Simon Riggs)
-
+
+
+ Change REINDEX
+ DATABASE and
+ linkend="app-reindexdb">reindexdb
+ to not process indexes on system catalogs (Simon Riggs)
+
-
-Processing such indexes is still possible using REINDEX SYSTEM and reindexdb --system.
-
-
+
+ Processing such indexes is still possible using REINDEX
+ SYSTEM and reindexdb
+ --system.
+
+
-
-
-Tighten GENERATED expression restrictions on inherited and partitioned tables (Amit Langote, Tom Lane)
-
+
+
+ Tighten
+ linkend="ddl-generated-columns">GENERATED
+ expression restrictions on inherited and partitioned tables (Amit
+ Langote, Tom Lane)
+
-
-Columns of parent/partitioned and child/partition tables must all have the same generation status, though now the actual generation expressions can be different.
-
-
+
+ Columns of parent/partitioned and child/partition tables must all
+ have the same generation status, though now the actual generation
+ expressions can be different.
+
+
-
-
-Remove pg_walinspect functions pg_get_wal_records_info_till_end_of_wal() and pg_get_wal_stats_till_end_of_wal() (Bharath Rupireddy)
-
-
+
+
+ Remove
+ linkend="pgwalinspect">pg_walinspect
+ functions
+ pg_get_wal_records_info_till_end_of_wal()
+ and pg_get_wal_stats_till_end_of_wal()
+ (Bharath Rupireddy)
+
+
-
-
-Rename server variable force_parallel_mode to debug_parallel_query (David Rowley)
-Remove read-only server variables lc_collate and lc_ctype (Peter Eisentraut)
-
+
+
+ Remove read-only server variables lc_collate
+ and lc_ctype (Peter Eisentraut)
+
-
-Collations and locales can vary between databases so having them as read-only server variables was unhelpful.
-
-
+
+ Collations and locales can vary between databases so having them
+ as read-only server variables was unhelpful.
+
+
-
-
-Role inheritance now controls the default inheritance status of member roles added during GRANT (Robert Haas)
-
+
+
+ Role inheritance now controls the default
+ inheritance status of member roles added during
+ linkend="sql-grant">GRANT (Robert Haas)
+
-
-The role's default inheritance behavior can be overridden with the new GRANT ... WITH INHERIT clause.
-This allows inheritance of some roles and not others because the members' inheritance status is set at GRANT time.
-Previously the inheritance status of member roles was controlled only by the role's inheritance status, and
-changes to a role's inheritance status affected all previous and future member roles.
-
-
+
+ The role's default inheritance behavior can be overridden with the
+ new GRANT ... WITH INHERIT clause. This allows
+ inheritance of some roles and not others because the members'
+ inheritance status is set at GRANT time.
+ Previously the inheritance status of member roles was controlled
+ only by the role's inheritance status, and changes to a role's
+ inheritance status affected all previous and future member roles.
+
+
-
-
-Restrict the privileges of CREATEROLE and its ability to modify other roles (Robert Haas)
-
+
+
+ Restrict the privileges of
+ linkend="sql-createrole">CREATEROLE
+ and its ability to modify other roles (Robert Haas)
+
-
-Previously roles with CREATEROLE privileges could change many aspects of any non-superuser role. Such changes, including adding members, now require the role requesting the change to have ADMIN OPTION
-permission. For example, they can now change the CREATEDB, REPLICATION, and BYPASSRLS properties only if they also have those permissions.
-
-
+
+ Previously roles with CREATEROLE privileges could
+ change many aspects of any non-superuser role. Such changes,
+ including adding members, now require the role requesting
+ the change to have ADMIN OPTION permission.
+ For example, they can now change the CREATEDB,
+ REPLICATION, and BYPASSRLS
+ properties only if they also have those permissions.
+
+
-
-
-Remove symbolic links for the postmaster binary (Peter Eisentraut)
-
-
+
+
+ Remove symbolic links for the postmaster
+ binary (Peter Eisentraut)
+
+
@@ -283,11+335,11 @@ Remove symbolic links for the postmaster binary (Pete
Changes
-
- Below you will find a detailed account of the changes between
+
+ Below you will find a detailed account of the changes between
-Improve performance by caching RANGE and LIST partition lookups (Amit Langote, Hou Zhijie, David Rowley)
-
-
+
+
+ Improve performance by caching
+ linkend="ddl-partitioning-overview">RANGE
+ and LIST partition lookups (Amit Langote,
+ Hou Zhijie, David Rowley)
+
+
-
-
-Allow control of the shared buffer usage by vacuum and analyze (Melanie Plageman)
-
+
+
+ Allow control of the shared buffer usage by vacuum and analyze
+ (Melanie Plageman)
+
-
-The VACUUM/ANALYZE option is BUFFER_USAGE_LIMIT, and the vacuumdb option is . The default value is set by server variable vacuum_buffer_usage_limit, which also controls autovacuum.
-Previously the ability to perform LOCK TABLE at various lock levels was bound to specific query-type permissions. For example, UPDATE could perform all lock levels except ACCESS SHARE, which
-required SELECT permissions. Now UPDATE can issue all lock levels. MORE?
-
-
+
+ Previously the ability to perform LOCK
+ TABLE at various lock levels was bound to
+ specific query-type permissions. For example,
+ linkend="sql-update">UPDATE
+ could perform all lock levels except
+ ACCESS SHARE, which required
+ linkend="sql-select">SELECT permissions.
+ Now UPDATE can issue all lock levels. MORE?
+
+
-
-
-Allow GRANT group_name TO user_name to be performed with ADMIN OPTION (Robert Haas)
-
+
+
+ Allow GRANT group_name TO
+ user_name to be performed with ADMIN
+ OPTION (Robert Haas)
+
-
-Previously CREATEROLE permission was required.
-
-
+
+Previously CREATEROLE permission was required.
+
+
-
-
-Allow GRANT to use WITH ADMIN TRUE/FALSE syntax (Robert Haas)
-
+
+
+ Allow GRANT
+ to use WITH ADMIN TRUE/FALSE
+ syntax (Robert Haas)
+
-
-Previously only the WITH ADMIN OPTION syntax was supported.
-
-
+
+ Previously only the WITH ADMIN OPTION syntax
+ was supported.
+
+
-
-
-Allow roles that create other roles to automatically inherit the new role's rights or the ability to SET ROLE to the new role (Robert Haas, Shi Yu)
-
+
+
+ Allow roles that create other roles to automatically
+ inherit the new role's rights or the ability to
+ linkend="sql-set-role">SET ROLE to the
+ new role (Robert Haas, Shi Yu)
+
-
-This is controlled by server variable createrole_self_grant.
-Allow the SCRAM iteration count to be set with server variable scram_iterations (Daniel Gustafsson)
-
-
+
+
+ Allow the SCRAM iteration
+ count to be set with server variable
+ linkend="guc-scram-iterations">scram_iterations
+ (Daniel Gustafsson)
+
+
-
-
-Improve performance of server variable management (Tom Lane)
-
-
+
+
+Improve performance of server variable management (Tom Lane)
+
+
-
-
-Tighten restrictions on which server variables can be reset (Masahiko Sawada)
-
+
+
+ Tighten restrictions on which server variables can be reset
+ (Masahiko Sawada)
+
-
-Previously, while certain variables, like transaction_isolation, were not affected by RESET ALL, they could be individually reset in inappropriate situations.
-Allow huge pages to work on newer versions of Windows 10 (Thomas Munro)
-
+
+
+ Allow huge pages to
+ work on newer versions of Windows
+ 10 (Thomas Munro)
+
-
-This adds the special handling required to enable huge pages on newer versions of Windows 10.
-
-
+
+ This adds the special handling required to enable huge pages
+ on newer versions of Windows
+ 10.
+
+
-
-
-Add debug_io_direct setting for developer usage (Thomas Munro, Andres Freund, Bharath Rupireddy)
-
+
+
+ Add
+ linkend="guc-debug-io-direct">debug_io_direct
+ setting for developer usage (Thomas Munro, Andres Freund,
+ Bharath Rupireddy)
+
-
-While primarily for developers, wal_sync_method=open_sync/open_datasync has been modified to not use direct I/O with wal_level=minimal; this is now enabled with debug_io_direct=wal.
2022-10-24 [8fea86830] Add support for regexps on database and user entries in
-->
-
-
-Add support for regular expression matching on database and role entries in pg_hba.conf (Bertrand Drouvot)
-
+
+
+ Add support for regular expression matching on database and role
+ entries in pg_hba.conf (Bertrand Drouvot)
+
-
-Regular expression patterns are prefixed with a slash. Database and role names that begin with slashes need to be double-quoted if referenced in pg_hba.conf.
-
-
+
+ Regular expression patterns are prefixed with a slash. Database
+ and role names that begin with slashes need to be double-quoted
+ if referenced in pg_hba.conf.
+
+
-
-
-Improve user-column handling of pg_ident.conf to match pg_hba.conf (Jelte Fennema)
-Specifically, add support for all, role membership with +, and regular expressions with a leading slash. Any user name that matches these patterns must be double-quoted.
-
-
+
+ Specifically, add support for all, role
+ membership with +, and regular expressions
+ with a leading slash. Any user name that matches these patterns
+ must be double-quoted.
+
+
-
-
-Allow include files in pg_hba.conf and pg_ident.conf (Julien Rouhaud)
-
+
+
+ Allow include files in pg_hba.conf and
+ pg_ident.conf (Julien Rouhaud)
+
-
-These are controlled by include, include_if_exists, and include_dir. System views pg_hba_file_rules and pg_ident_file_mappings now display the file name.
-Allow logical replication initial table synchronization to copy rows in binary format (Melih Mutlu)
-
+
+
+ Allow logical replication initial table synchronization to copy
+ rows in binary format (Melih Mutlu)
+
-
-This is only possible for subscriptions marked as binary.
-
-
+
+This is only possible for subscriptions marked as binary.
+
+
-
-
-Allow parallel application of logical replication (Hou Zhijie, Wang Wei, Amit Kapila)
-
-
-
-The CREATE SUBSCRIPTION option now supports parallel to enable application of large transactions by parallel workers. The number of parallel workers is controlled by
-the new server variable max_parallel_apply_workers_per_subscription. Wait events LogicalParallelApplyMain, LogicalParallelApplyStateChange, and LogicalApplySendData were also added. Column leader_pid was
-added to system view pg_stat_subscription to track parallel activity.
-
-
+
+
+ Allow parallel application of logical replication (Hou Zhijie,
+ Wang Wei, Amit Kapila)
+
+
+
+ The CREATE
+ SUBSCRIPTION
+ option now supports parallel to enable
+ application of large transactions by parallel workers. The number
+ of parallel workers is controlled by the new server variable
+ apply without a primary key (Onder Kalaci, Amit Kapila)
+
-
-Specifically, REPLICA IDENTITY FULL can now use btree indexes rather than sequentially scanning the table to find matches.
-
-
+
+ Specifically, REPLICA IDENTITY FULL can now
+ use btree indexes rather than sequentially scanning the table to
+ find matches.
+
+
-
-
-Allow logical replication subscribers to process only changes that have no origin (Vignesh C, Amit Kapila)
-
+
+
+ Allow logical replication subscribers to process only changes that
+ have no origin (Vignesh C, Amit Kapila)
+
-
-This can be used to avoid replication loops. This is controlled by the new CREATE SUBSCRIPTION ... ORIGIN option.
-
-
+
+ This can be used to avoid replication loops. This is controlled
+ by the new CREATE SUBSCRIPTION ... ORIGIN option.
+
+
-
-
-Perform logical replication SELECT and DML actions as the table owner (Robert Haas)
-
+
+
+ Perform logical replication
+ linkend="sql-select">SELECT and
+ DML actions as the table owner (Robert Haas)
+
-
-This improves security and now requires subscription owners to be either superusers or to have SET ROLE permissions on all tables in the replication set. The previous behavior of performing all operations
-as the subscription owner can be enabled with the subscription option.
-
-
+
+ This improves security and now requires subscription
+ owners to be either superusers or to have
+ linkend="sql-set-role">SET ROLE
+ permissions on all tables in the replication set.
+ The previous behavior of performing all operations as the
+ subscription owner can be enabled with the subscription
+ linkend="sql-createsubscription">
+ option.
+
+
-
-
-Have wal_retrieve_retry_interval operate on a per-subscription basis (Nathan Bossart)
-Add initdb option to set server variables for the duration of initdb and all future server starts (Tom Lane)
-
+
+
+ Add
+ linkend="app-initdb">initdb
+ option to set server variables for the duration of
+ initdb and all future server starts
+ (Tom Lane)
+
-
-The option is .
-
-
+
+The option is .
+
+
-
-
-Add options to createuser to control more user options (Shinya Kato)
-
+
+
+ Add options to
+ linkend="app-createuser">createuser
+ to control more user options (Shinya Kato)
+
-
-Specifically, the new options control the valid-until date, bypassing of row-level security, and role membership.
-
-
+
+ Specifically, the new options control the valid-until date,
+ bypassing of row-level security, and role membership.
+
+
-
-
-Deprecate createuser option (Nathan Bossart)
-
+
+
+ Deprecate
+ linkend="app-createuser">createuser
+ option (Nathan Bossart)
+
-
-This option could be easily confused with new createuser role membership options, so option has been added with the same functionality.
-The option can still be used.
-
-
+
+ This option could be easily confused with new
+ createuser role membership options,
+ so option has been added with the
+ same functionality. The option can still
+ be used.
+
+
-
-
-Allow control of vacuumdb schema processing (Gilles Darold)
-
+
+
+ Allow control of
+ linkend="app-vacuumdb">vacuumdb
+ schema processing (Gilles Darold)
+
-
-These are controlled by options and .
-
-
+
+ These are controlled by options and
+ .
+
+
-
-
-Use new VACUUM options to improve the performance of vacuumdb (Tom Lane, Nathan Bossart)
-
-
+
+
+ Use new VACUUM
+ options to improve the performance of
+ linkend="app-vacuumdb">vacuumdb
+ (Tom Lane, Nathan Bossart)
+
+
-
-
-Have pg_upgrade set the new cluster's locale and encoding (Jeff Davis)
-
+
+
+ Have
+ linkend="pgupgrade">pg_upgrade
+ set the new cluster's locale and encoding (Jeff Davis)
+
-
-This removes the requirement that the new cluster be created with the same locale and encoding settings.
-
-
+
+ This removes the requirement that the new cluster be created with
+ the same locale and encoding settings.
+
+
-
-
-Add pg_upgrade option to specify the default transfer mode (Peter Eisentraut)
-
+
+
+ Add
+ linkend="pgupgrade">pg_upgrade
+ option to specify the default transfer mode (Peter Eisentraut)
+
-
-The option is .
-
-
+
+The option is .
+
+
-
-
-Improve pg_basebackup to accept numeric compression options (Georgios Kokolatos, Michael Paquier)
-
+
+
+ Improve
+ linkend="app-pgbasebackup">pg_basebackup
+ to accept numeric compression options (Georgios Kokolatos,
+ Michael Paquier)
+
-
-Options like are now supported.
-
-
+
+Options like are now supported.
+
+
-
-
-Fix pg_basebackup to handle tablespaces stored in the PGDATA directory (Robert Haas)
-
-
+
+
+ Fix
+ linkend="app-pgbasebackup">pg_basebackup
+ to handle tablespaces stored in the PGDATA directory
+ (Robert Haas)
+
+
-
-
-Add pg_waldump option to dump full page images (David Christensen)
-
-
+
+
+ Add
+ linkend="pgwaldump">pg_waldump
+ option to dump full page images
+ (David Christensen)
+
+
-
-
-Allow pg_waldump options / to accept hexadecimal values (Peter Eisentraut)
-
-
+
+
+ Allow
+ linkend="pgwaldump">pg_waldump
+ options / to accept
+ hexadecimal values (Peter Eisentraut)
+
+
-
-
-Add support for progress reporting to pg_verifybackup (Masahiko Sawada)
-
-
+
+
+ Add support for progress reporting to
+ linkend="app-pgverifybackup">pg_verifybackup
+ (Masahiko Sawada)
+
+
-
-
-Allow pg_rewind to properly track timeline changes (Heikki Linnakangas)
-
+
+
+ Allow
+ linkend="app-pgrewind">pg_rewind
+ to properly track timeline changes (Heikki Linnakangas)
+
-
-Previously if pg_rewind was run after a timeline switch but before a checkpoint was issued, it might incorrectly determine that a rewind was unnecessary.
-
-
+
+ Previously if pg_rewind was run after
+ a timeline switch but before a checkpoint was issued, it might
+ incorrectly determine that a rewind was unnecessary.
+
+
-
-
-Have pg_receivewal and pg_recvlogical cleanly exit on SIGTERM (Christoph Berg)
2022-09-02 [ff720a597] Fix planner to consider matches to boolean columns in ex
-->
-
-
-Improve use of extension-based indexes on boolean columns (Zongliang Quan, Tom Lane)
-
-
+
+
+ Improve use of extension-based indexes on boolean columns (Zongliang
+ Quan, Tom Lane)
+
+
-
-
-Add support for Daitch-Mokotoff Soundex to fuzzystrmatch (Dag Lem)
-
-
+
+
+ Add support for Daitch-Mokotoff Soundex to
+ linkend="fuzzystrmatch">fuzzystrmatch
+ (Dag Lem)
+
+
-
-
-Allow auto_explain to log values passed to parameterized statements (Dagfinn Ilmari Mannsåker)
-
+
+
+ Allow
+ linkend="auto-explain">auto_explain
+ to log values passed to parameterized statements (Dagfinn Ilmari
+ Mannsåker)
+
-
-This affects queries using server-side PREPARE/EXECUTE and client-side parse/bind. Logging is controlled by auto_explain.log_parameter_max_length; by default query parameters will
-be logged with no length restriction.
-
-
+
+ This affects queries using server-side
+ linkend="sql-prepare">PREPARE/
+ linkend="sql-execute">EXECUTE
+ and client-side parse/bind. Logging is controlled by
-Add pg_buffercache function pg_buffercache_usage_counts() to report usage totals (Nathan Bossart)
-
-
+
+
+ Add
+ linkend="pgbuffercache">pg_buffercache
+ function pg_buffercache_usage_counts() to
+ report usage totals (Nathan Bossart)
+
+
-
-
-Add pg_buffercache function pg_buffercache_summary() to report summarized buffer statistics (Melih Mutlu)
-
-
+
+
+ Add
+ linkend="pgbuffercache">pg_buffercache
+ function pg_buffercache_summary() to report
+ summarized buffer statistics (Melih Mutlu)
+
+
-
-
-Allow the schemas of required extensions to be referenced in extension scripts using the new syntax @extschema:referenced_extension_name@ (Regina Obe)
-
-
+
+
+ Allow the schemas of required extensions to be
+ referenced in extension scripts using the new syntax
+ @extschema:referenced_extension_name@
+ (Regina Obe)
+
+
-
-
-Allow required extensions to be marked as non-relocatable using no_relocate (Regina Obe)