2021-09-09 [b073c3ccd] Revoke PUBLIC CREATE from public schema, now owned by pg
-->
-
-
-Remove PUBLIC 'creation' permission on the 'public' schema (Noah Misch)
-
+
+
+ Remove PUBLIC creation permission on the
+ linkend="ddl-schemas-public">public schema
+ (Noah Misch)
+
-
-This is a change in the default for newly-created databases in existing clusters and for new clusters; usage permissions on the 'public' schema has not been changed. Databases restored from previous
-Postgres releases will be restored with their current permissions. Users wishing to have the old permissions on new objects will need to grant 'create' permission for PUBLIC on the 'public' schema; this
-change can be made on 'template1' to cause all new databases to have these permissions. template1 permissions for pg_dumpall and pg_upgrade?
-
-
+
+ This is a change in the default for newly-created databases in existing
+ clusters and for new clusters; USAGE permissions on
+ the public schema has not been changed. Databases
+ restored from previous Postgres releases will be restored with their
+ current permissions. Users wishing to have the old permissions on
+ new objects will need to grant CREATE permission
+ for PUBLIC on the public schema;
+ this change can be made on template1 to cause all new
+ databases to have these permissions. template1
+ permissions for pg_dumpall and
+ pg_upgrade?
+
+
-
-
-Change the owner of the public schema to pg_database_owner (Noah Misch)
-
+
+
+ Change the owner of the public schema to
+ pg_database_owner (Noah Misch)
+
-
-Previously it was the literal user name of the database owner. Databases restored from previous Postgres releases will be restored with their current owner specification.
-
-
+
+ Previously it was the literal user name of the database owner. Databases
+ restored from previous Postgres releases will be restored with their
-If the database server stops abruptly while in this mode, the server could fail to start. The non-exclusive backup mode requires a continuous database connection during the
-backup. Functions pg_start_backup()/pg_stop_backup() have been renamed to pg_backup_start()/pg_backup_stop(), and the functions pg_backup_start_time() and pg_is_in_backup() have been removed.
-
-
+
+ If the database server stops abruptly while in this mode, the
+ server could fail to start. The non-exclusive backup mode requires
+ a continuous database connection during the backup. Functions
+ pg_start_backup()/pg_stop_backup()
+ have been renamed to
+ pg_backup_start()/pg_backup_stop(),
+ and the functions pg_backup_start_time() and
+ pg_is_in_backup() have been removed.
+
+
-
-
-Increase hash_mem_multiplier default to 2.0 (Peter Geoghegan)
+ is passed an empty array element (Jean-Christophe Arnu)
+
-
-This is prohibited because lexemes should never be empty. Users of previous Postgres releases should verify that no empty lexemes are stored because they can lead to dump/restore failures and inconsistent
-results.
-
-
+
+ This is prohibited because lexemes should never be empty. Users of
+ previous Postgres releases should verify that no empty lexemes are stored
+ because they can lead to dump/restore failures and inconsistent results.
+
+
-
-
-Generate an error when char() is supplied with a negative argument (Peter Eisentraut)
-
-
+
+
+ Generate an error when
+ linkend="functions-string-other">chr() is
+ supplied with a negative argument (Peter Eisentraut)
-Specifically, functions justify_interval(), justify_hours(), and justify_days() are affected.
-
-
+
+ Specifically, functions justify_interval(),
+ justify_hours(), and
+ justify_days() are affected.
+
+
-
-
-Remove the default ADMIN OPTION privilege a login role has on its own role membership (Robert Haas)
-
+
+
+ Remove the default ADMIN
+ OPTION privilege a login role has on its own role
+ membership (Robert Haas)
+
-
-Previously, login roles could add/remove members of its own role, even without ADMIN OPTION privilege.
-
-
+
+ Previously, login roles could add/remove members of its own role, even
+ without ADMIN OPTION privilege.
+
+
-
-
-Allow logical replication to run as the owner of the subscription (Mark Dilger)
-
+
+
+ Allow logical replication
+ to run as the owner of the subscription (Mark Dilger)
+
-
-Because row-level security policies are not checked, only superusers, roles with bypassrls, and table owners can replicate into tables with row-level security policies.
-
-
+
+ Because row-level security policies are not checked, only superusers,
+ roles with bypassrls, and table owners can replicate
+ into tables with row-level security policies.
+
+
-
-
-Prevent UPDATE and DELETE logical replication operations on tables where the subscription owner does not have SELECT permission on the table (Jeff Davis)
-
+
+
+ Prevent UPDATE and DELETE
+ linkend="logical-replication">logical replication operations on
+ tables where the subscription owner does not have SELECT
+ permission on the table (Jeff Davis)
+
-
-UPDATE and DELETE perform SELECT, so require the subscription owner to have table SELECT permission.
-
-
+
+ UPDATE and DELETE perform
+ SELECT, so require the subscription owner to have
+ table SELECT permission.
+
+
-
-
-When EXPLAIN references the temporary object schema, refer to it as pg_temp (Amul Sul)
-
+
+
+ When EXPLAIN
+ references the temporary object schema, refer to it as
+ pg_temp (Amul Sul)
+
-
-Previously the actual schema name was used.
-
-
+
+Previously the actual schema name was used.
+
+
-
-
-Modify SPI's SPI_commit() and SPI_commit_and_chain() to automatically start a new transaction at completion (Peter Eisentraut, Tom Lane)
-
+
+
+ Modify SPI's
+ SPI_commit() and
+ SPI_commit_and_chain() to automatically start a new
+ transaction at completion (Peter Eisentraut, Tom Lane)
+
-
-BACKPATCHED?
-
-
+
+BACKPATCHED?
+
+
-
-
-Fix pg_statio_all_tables to sum values for the rare case of TOAST tables with multiple indexes (Andrei Zubkov)
-This is designed to detect collation mismatches to avoid data corruption. Function pg_database_collation_actual_version() reports the underlying operating system collation version, and ALTER DATABASE ...
-REFRESH sets the database to match the operating system collation version. DETAILS?
-
-
+
+ This is designed to detect collation mismatches to avoid data corruption.
+ Function pg_database_collation_actual_version()
+ reports the underlying operating system collation version, and
+ ALTER DATABASE ... REFRESH sets the database to match
+ the operating system collation version. DETAILS?
+
+
-
-
-Allow ICU collations to be set as the default for clusters and databases (Peter Eisentraut)
-
+
+
+ Allow ICU collations to
+ be set as the default for clusters and databases (Peter Eisentraut)
+
-
-Previously, ICU collations could only be specified in CREATE COLLATION and used with the COLLATE clause.
-
-
+
+ Previously, ICU collations could only be
+ specified in CREATE
+ COLLATION and used with the COLLATE
+ clause.
+
+
-
-
-Add system view pg_ident_file_mappings to report pg_ident.conf information (Julien Rouhaud)
2021-08-03 [475dbd0b7] Track a Bitmapset of non-pruned partitions in RelOptInfo
-->
-
-
-Improve planning time for queries referencing partitioned tables (David Rowley)
-
+
+
+ Improve planning time for queries referencing partitioned tables (David
+ Rowley)
+
-
-Specifically this helps if only a small number of the many partitions are relevant.
-
-
+
+ Specifically this helps if only a small number of the many partitions
+ are relevant.
+
+
-
-
-Allow ordered scans of partitions to avoid sorting in more cases (David Rowley)
-
+
+
+ Allow ordered scans of partitions to avoid sorting in more cases (David
+ Rowley)
+
-
-Previously, a partitioned table with a DEFAULT partition or a LIST partition containing multiple values could not be used for ordered partition scans. Now they can be used if these partitions are pruned.
-
-
+
+ Previously, a partitioned table with a DEFAULT partition
+ or a LIST partition containing multiple values could
+ not be used for ordered partition scans. Now they can be used if these
+ partitions are pruned.
+
+
-
-
-Improve foreign key behavior of updates on partitioned tables that move rows between partitions (Amit Langote)
-
+
+
+ Improve foreign key behavior of updates on partitioned tables that move
+ rows between partitions (Amit Langote)
+
-
-Previously, such updates ran delete actions on the source partition and insert actions on the target partition. PostgreSQL will now run update actions on the referenced partition root.
-
-
+
+ Previously, such updates ran delete actions on the
+ source partition and insert actions on the target partition.
+ PostgreSQL will now run update actions on the
+ referenced partition root.
+
+
-
-
-Allow CLUSTER on partitioned tables (Justin Pryzby)
-
-
+
+
+ Allow CLUSTER
+ on partitioned tables (Justin Pryzby)
+
+
-
-
-Fix ALTER TRIGGER RENAME on partitioned tables to properly rename triggers an all partitions (Arne Roland, Álvaro Herrera)
-
+
+
+ Fix ALTER TRIGGER
+ RENAME on partitioned tables to properly rename triggers
+ an all partitions (Arne Roland, Álvaro Herrera)
+
-
-Also prohibit cloned triggers from being renamed.
-
-
+
+Also prohibit cloned triggers from being renamed.
2021-10-02 [2903f1404] Enable deduplication in system catalog indexes.
-->
-
-
-Enable system and TOAST btree indexes to efficiently store duplicates (Peter Geoghegan)
-
+
+
+ Enable system and
+ linkend="storage-toast">TOAST btree indexes to
+ efficiently store duplicates (Peter Geoghegan)
+
-
-Previously de-duplication was disabled for these types of indexes.
-
-
+
+Previously de-duplication was disabled for these types of indexes.
+
+
-
-
-Improve lookup performance of GiST indexes built using sorting (Aliaksandr Kalenik, Sergei Shoulbakov, Andrey Borodin)
-
-
+
+
+ Improve lookup performance of
+ linkend="gist">GiST indexes built using sorting
+ (Aliaksandr Kalenik, Sergei Shoulbakov, Andrey Borodin)
+
+
-
-
-Prevent changes to columns only indexed by BRIN indexes from disabling HOT updates (Josef Simanek)
-
-
+
+
+ Prevent changes to columns only indexed by
+ linkend="brin">BRIN indexes from disabling
+ HOT updates (Josef Simanek)
+
+
-
-
-Allow unique constraints and indexes to treat NULL values as not distinct (Peter Eisentraut)
-
+
+
+ Allow unique constraints and indexes to treat NULL
+ values as not distinct (Peter Eisentraut)
+
-
-Previously NULL values were always indexed as distinct values, but this can now be changed by creating constraints and indexes using UNIQUE NULLS NOT DISTINCT.
-
-
+
+ Previously NULL values were always indexed as distinct
+ values, but this can now be changed by creating constraints and indexes
+ using UNIQUE NULLS NOT DISTINCT.
+
+
-
-
-Allow ^@ and starts_with() to use btree indexes if using a C collation (Tom Lane)
-
+
+
+ Allow ^@
+ and starts_with() to use btree indexes if using a
2021-12-13 [64da07c41] Default to log_checkpoints=on, log_autovacuum_min_durati
-->
-
-
-Enable default logging of checkpoints and slow autovacuum operations (Bharath Rupireddy)
-
+
+
+ Enable default logging of checkpoints and slow autovacuum operations
+ (Bharath Rupireddy)
+
-
-Specifically, this changes the default of log_checkpoints to on and log_autovacuum_min_duration to 10 minutes. This will cause idle servers to generate log output, which might cause problems on
-resource-constrained servers with insufficient log file removal. The defaults should be changed in such cases.
+ to report the number of huge memory pages required (Nathan Bossart)
+
-
-This is only supported on Linux.
-
-
+
+This is only supported on Linux.
+
+
-
-
-Allow postgres -C to properly report runtime-computed values (Nathan Bossart)
-
-
-
-Previously runtime-computed values data_checksums, wal_segment_size, and data_directory_mode would report values that would not be accurate on the running server. However, this does not work on a running server.
-
-
+
+
+ Allow postgres -C
+ to properly report runtime-computed values (Nathan Bossart)
2021-12-08 [1a2aaeb0d] Fix changing the ownership of ALL TABLES IN SCHEMA publi
-->
-
-
-Allow publication of all tables in a schema (Vignesh C, Hou Zhijie, Amit Kapila)
-
+
+
+ Allow publication of all tables in a schema (Vignesh C, Hou Zhijie,
+ Amit Kapila)
+
-
-For example, this syntax is now supported: CREATE PUBLICATION pub1 FOR ALL TABLES IN SCHEMA s1,s2;ALTER PUBLICATION supports a similar syntax. Tables added to the listed schemas in the future will also
+ Prevent logical replication of empty transactions (Ajin Cherian, Hou
+ Zhijie, Euler Taveira)
+
-
-Previously, write transactions would send empty transactions to subscribers if subscribed tables were not modified.
-
-
+
+ Previously, write transactions would send empty transactions to subscribers
+ if subscribed tables were not modified.
+
+
-
-
-Add SQL functions to monitor the directory contents of logical replication slots (Bharath Rupireddy)
-
+
+
+ Add SQL functions to monitor the directory contents
+ of logical replication slots (Bharath Rupireddy)
+
-
-Specifically, the functions are pg_ls_logicalsnapdir(), pg_ls_logicalmapdir(), and pg_ls_replslotdir(). They can be run by members of the predefined pg_monitor role.
2022-03-30 [7ae1619bc] Add range_agg with multirange inputs
-->
-
-
-Add multirange input to range_agg() (Paul Jungwirth)
-
-
+
+
+ Add multirange input to
+ linkend="functions-aggregate-table">range_agg()
+ (Paul Jungwirth)
+
+
-
-
-Add min() and max() aggregates for the xid8 data type (Ken Kato)
-
-
+
+
+ Add MIN()
+ and MAX() aggregates for the
+ linkend="datatype-int">xid8 data type (Ken Kato)
+
+
-
-
-Add regular expression functions for compatibility with other relational systems (Gilles Darold, Tom Lane)
-
+
+
+ Add regular expression functions for compatibility with other relational
+ systems (Gilles Darold, Tom Lane)
+
-
-Specifically, the new functions are regexp_count(), regexp_instr(), regexp_like(), and regexp_substr(). Some new optional arguments were also added to regexp_replace().
-The construction functions are JSON(), JSON_SCALAR(), and JSON_SERIALIZE(), JSON_ARRAY(), JSON_ARRAYAGG(), JSON_OBJECT(), and JSON_OBJECTAGG(). They have a few functional advantages over the existing JSON functions.
-
-
+
+ The construction functions are
+ linkend="functions-sqljson-producing">json(),
+ json_scalar(), and
+ json_serialize(), json_array(),
+ json_arrayagg(), json_object(),
+ and json_objectagg(). They have a few functional
+ advantages over the existing JSON functions.
+
+
-
-
-Add SQL/JSON query functions JSON_EXISTS(), JSON_QUERY(), and JSON_VALUE() (Nikita Glukhov)
2022-01-09 [376ce3e40] Prefer $HOME when looking up the current user's home dir
-->
-
-
-On Unix platforms, have client applications like psql check HOME environment variable for the user's home directory before checking the operating system definition (Anders Kaseorg)
-
-
+
+
+ On Unix platforms, have client applications like
+ linkend="app-psql">psql check
+ HOME environment variable for the user's home directory
+ before checking the operating system definition (Anders Kaseorg)
+
+
-
-
+
+
-
+
-
-
-Improve performance of psql's \copy command (Heikki Linnakangas)
-
-
+
+
+ Improve performance of psql's \copy command
+ (Heikki Linnakangas)
+
+
-
-
-Add psql command \getenv to assign the value of an environment variable to a psql variable (Tom Lane)
-
-
+
+
+ Add psql command \getenv to assign the value
+ of an environment variable to a psql variable
+ (Tom Lane)
+
+
-
-
-Add '+' option to psql's \lo_list/\dl to show object privileges (Pavel Luzanov)
-
-
+
+
+ Add '+' option to psql's
+ \lo_list/\dl to show object
+ privileges (Pavel Luzanov)
+
+
-
-
-Add psql \dconfig to report server variables (Mark Dilger, Tom Lane)
-
+
+
+ Add psql \dconfig to report server variables
+ (Mark Dilger, Tom Lane)
+
-
-This is similar to the server-side SHOW command but can process patterns.
-
-
+
+ This is similar to the server-side SHOW command but
+ can process patterns.
+
+
-
-
-Add pager option for psql's \watch command (Pavel Stehule, Thomas Munro)
-
+
+
+ Add pager option for psql's \watch command
+ (Pavel Stehule, Thomas Munro)
+
-
-This is only supported on Unix, and is controlled by PSQL_WATCH_PAGER.
-
-
+
+ This is only supported on Unix, and is controlled by
+ PSQL_WATCH_PAGER.
+
+
-
-
-Have psql send intra-query double-hyphen comments to the server (Tom Lane, Greg Nancarrow)
-
+
+
+ Have psql send intra-query double-hyphen
+ comments to the server (Tom Lane, Greg Nancarrow)
+
-
-Previously such comments were removed from the query before being sent. Double-hyphen comments that are before query text are not sent, and are not recorded as separate psql history entries.
-
-
+
+ Previously such comments were removed from the query before being sent.
+ Double-hyphen comments that are before query text are not sent, and are
+ not recorded as separate psql history entries.
+
+
-
-
-Adjust psql's readline meta-# to insert a double-hyphen comment marker (Tom Lane)
-
+
+
+ Adjust psql's readline meta-# to insert a
+ double-hyphen comment marker (Tom Lane)
+
-
-Previously an unhelpful pound marker was inserted.
-
-
+
+Previously an unhelpful pound marker was inserted.
+
+
-
-
-Have psql output all results if multiple queries are passed to the server at once (Fabien Coelho)
-
+
+
+ Have psql output all results if multiple
+ queries are passed to the server at once (Fabien Coelho)
+
-
-This can be disabled by setting SHOW_ALL_RESULTS.
-
-
+
+This can be disabled by setting SHOW_ALL_RESULTS.
+
+
-
-
-Improve psql's tab completion (Shinya Kato, Dagfinn Ilmari Mannsåker, Peter Smith, Koyu Tanigawa, Ken Kato, David Fetter, Haiying Tang, Peter Eisentraut, Álvaro Herrera, Tom Lane, Masahiko Sawada)
-
-
+
+
+ Improve psql's tab completion (Shinya Kato,
+ Dagfinn Ilmari Mannsåker, Peter Smith, Koyu Tanigawa, Ken Kato, David
+ Fetter, Haiying Tang, Peter Eisentraut, Álvaro Herrera, Tom Lane,
+ Masahiko Sawada)
+
+
-
-
-Limit support of psql to servers running PostgreSQL 9.2 and later (Tom Lane)
2022-01-20 [3500ccc39] Support base backup targets.
-->
-
-
-Add new pg_basebackup option to control the base backup location (Robert Haas)
-
+
+
+ Add new
+ linkend="app-pgbasebackup">pg_basebackup
+ option to control the base backup location
+ (Robert Haas)
+
-
-New output options are 'server' to write the backup locally and 'blackhole' to discard the backup (for testing).
-
-
+
+ New output options are server to write the backup
+ locally and blackhole to discard the backup (for
+ testing).
+
+
-
-
-Allow pg_basebackup to decompress LZ4 and Zstandard compressed server-side base backups, and compress output files with LZ4 and Zstandard (Dipesh Pandit, Jeevan Ladhe)
-
-
+
+
+ Allow pg_basebackup to decompress LZ4 and
+ Zstandard compressed server-side base backups, and compress output files
+ with LZ4 and Zstandard (Dipesh Pandit, Jeevan Ladhe)
+
+
-
-
-Allow pg_basebackup's option to control the compression method and options (Michael Paquier, Robert Haas)
-
+
+
+ Allow pg_basebackup's
+ option to control the compression method and
+ options (Michael Paquier, Robert Haas)
+
-
-New options include server-gzip (gzip on the server), client-gzip (same as gzip).
-
-
+
+ New options include server-gzip (gzip on the server),
+ client-gzip (same as gzip).
+
+
-
-
-Allow pg_basebackup to compress on the server side and decompress on the client side before storage (Dipesh Pandit)
-
+
+
+ Allow pg_basebackup to compress on the server
+ side and decompress on the client side before storage (Dipesh Pandit)
+
-
-This is accomplished by specifying compression on the server side and plain output format.
-
-
+
+ This is accomplished by specifying compression on the server side and
+ plain output format.
+
+
-
-
-Add the LZ4 compression method to pg_receivewal (Georgios Kokolatos)
-
+
+
+ Add the LZ4 compression method to
+ linkend="app-pgreceivewal">pg_receivewal
+ (Georgios Kokolatos)
+
-
-This is enabled via --compress=lz4 and requires binaries to be built using .
-
-
+
+ This is enabled via --compress=lz4 and requires binaries
+ to be built using .
+
+
-
-
-Add additional capabilities to pg_receivewal's option (Georgios Kokolatos)
-
-
+
+
+ Add additional capabilities to pg_receivewal's
+ option (Georgios Kokolatos)
+
+
-
-
-Improve pg_receivewal's ability to restart at the proper WAL location (Ronan Dunklau)
-
+
+
+ Improve pg_receivewal's ability to restart at
+ the proper WAL location (Ronan Dunklau)
+
-
-Previously, pg_receivewal would start based on the WAL file stored in the local archive directory, or at the sending server's current WAL flush location. With this change, if the sending server is running
-Postgres 15 or later, the local archive directory is empty, and a replication slot is specified, the replication slot's restart point will be used.
-
-
+
+ Previously, pg_receivewal would start based
+ on the WAL file stored in the local archive directory,
+ or at the sending server's current WAL flush location.
+ With this change, if the sending server is running Postgres 15 or later,
+ the local archive directory is empty, and a replication slot is specified,
+ the replication slot's restart point will be used.
+
+
+
+
+
+
+
+ Add pg_rewind option
+ to simplify use when server configuration
+ files are stored outside the data directory (Gunnar Bluth)
+
+
-
-
-Allow pgbench to retry after serialization and deadlock failures (Yugo Nagata, Marina Polyakova)
-
-
+
+
+ Allow pgbench
+ to retry after serialization and deadlock failures (Yugo Nagata, Marina
2022-03-25 [52b556843] Improve command line options for pg_waldump.
-->
-
-
-Allow pg_waldump to be filtered by relation file node, block number, fork number, and full page images (David Christensen, Thomas Munro)
-
-
+
+
+ Allow pg_waldump to be filtered by relation file
+ node, block number, fork number, and full page images (David Christensen,
+ Thomas Munro)
+
+
-
-
-Have pg_waldump report statistics before an interrupted exit (Bharath Rupireddy)
-
+
+
+ Have pg_waldump report statistics before an
+ interrupted exit (Bharath Rupireddy)
+
-
-For example, issuing a control-C in a terminal running pg_waldump --stats --follow will report the current statistics before exiting. This does not work on Windows.
-
-
+
+ For example, issuing a control-C in a terminal running pg_waldump
+ --stats --follow will report the current statistics before
+ exiting. This does not work on Windows.
+
+
-
-
-Improve descriptions of some transaction WAL records reported by pg_waldump (Masahiko Sawada, Michael Paquier)
-
-
+
+
+ Improve descriptions of some transaction WAL records
+ reported by pg_waldump (Masahiko Sawada,
+ Michael Paquier)
+
+
-
-
-Allow pg_waldump to dump information about multiple resource managers (Heikki Linnakangas)
-
+
+
+ Allow pg_waldump to dump information about
+ multiple resource managers (Heikki Linnakangas)
+
-
-This is enabled by specifying the option multiple times.
-
-
-
-
-
-
-
-Add pg_rewind option to simplify use when server configuration files are stored outside the data directory (Gunnar "Nick" Bluth)
-
-
+
+ This is enabled by specifying the option multiple
2021-07-30 [5d44fff01] In postgres_fdw, allow CASE expressions to be pushed to
-->
-
-
-Allow postgres_fdw to push down CASE expressions (Alexander Pyhalov)
-
-
+
+
+ Allow postgres_fdw to push down CASE expressions
+ (Alexander Pyhalov)
+
+
-
-
-Add server variable postgres_fdw.application_name to control the application name of postgres_fdw connections (Hayato Kuroda)
-
+
+
+ Add server variable postgres_fdw.application_name
+ to control the application name of postgres_fdw connections (Hayato Kuroda)
+
-
-Previously the remote application_name could only be set on the remote server or via postgres_fdw connection specification. postgres_fdw.application_name also supports escape sequences for customization.
-
-
+
+ Previously the remote
+ linkend="guc-application-name">application_name
+ could only be set on the remote server or via
+ postgres_fdw connection specification.
+ postgres_fdw.application_name also supports escape
+ sequences for customization.
+
+
-
-
-Allow parallel commit on postgres_fdw servers (Etsuro Fujita)
-
+
+
+ Allow parallel commit on postgres_fdw servers
+ (Etsuro Fujita)
+
-
-This is enabled with the CREATE SERVER option parallel_commit when using postgres_fdw.