E.10. Release 17#
Release date: 2024-09-26
E.10.1. Overview#
PostgreSQL 17 contains many new features and enhancements, including:
New memory management system for
VACUUM
, which reduces memory consumption and can improve overall vacuuming performance.NewSQL/JSON capabilities, including constructors, identity functions, and the
JSON_TABLE()
function, which converts JSON data into a table representation.Various query performance improvements, including for sequential reads using streaming I/O, write throughput under high concurrency, and searches over multiple values in abtree index.
Logical replication enhancements, including:
Failover control
pg_createsubscriber, a utility that creates logical replicas from physical standbys
pg_upgrade now preserves logical replication slots on publishers and full subscription state on subscribers. This will allow upgrades to future major versions to continue logical replication without requiring copy to resynchronize.
New client-side connection option,
sslnegotiation=direct
, that performs a direct TLS handshake to avoid a round-trip negotiation.pg_basebackup now supports incremental backup.
COPY
adds a new option,ON_ERROR ignore
, that allows a copy operation to continue in the event of an error.
The above items and other new features ofPostgreSQL 17 are explained in more detail in the sections below.
E.10.2. Migration to Version 17#
A dump/restore usingpg_dumpall or use ofpg_upgrade or logical replication is required for those wishing to migrate data from any previous release. SeeSection 17.6 for general information on migrating to new major releases.
Version 17 contains a number of changes that may affect compatibility with previous releases. Observe the following incompatibilities:
Change functions to use a safesearch_path during maintenance operations (Jeff Davis)§§
This prevents maintenance operations (
ANALYZE
,CLUSTER
,CREATE INDEX
,CREATE MATERIALIZED VIEW
,REFRESH MATERIALIZED VIEW
,REINDEX
, orVACUUM
) from performing unsafe access. Functions used by expression indexes and materialized views that need to reference non-default schemas must specify a search path during function creation.Restrict
ago
to only appear at the end ininterval
values (Joseph Koshakow)§§Also, prevent empty interval units from appearing multiple times.
Remove server variable old_snapshot_threshold (Thomas Munro)§
This variable allowed vacuum to remove rows that potentially could be still visible to running transactions, causing "snapshot too old" errors later if accessed. This feature might be re-added toPostgreSQL later if an improved implementation is found.
Change
SET SESSION AUTHORIZATION
handling of the initial session user's superuser status (Joseph Koshakow)§The new behavior is based on the session user's superuser status at the time the
SET SESSION AUTHORIZATION
command is issued, rather than their superuser status at connection time.Remove feature which simulated per-database users (Nathan Bossart)§
The feature,
db_user_namespace
, was rarely used.Removeadminpack contrib extension (Daniel Gustafsson)§
This was used by now end-of-lifepgAdmin III.
Removewal_sync_method value
fsync_writethrough
onWindows (Thomas Munro)§This value was the same as
fsync
onWindows.Change file boundary handling of twoWAL file name functions (Kyotaro Horiguchi, Andres Freund, Bruce Momjian)§
The functions
pg_walfile_name()
andpg_walfile_name_offset()
used to report the previousLSN segment number when theLSN was on a file segment boundary; it now returns the currentLSN segment.Remove server variable
trace_recovery_messages
since it is no longer needed (Bharath Rupireddy)§Removeinformation schema column
element_types
.domain_default
(Peter Eisentraut)§Changepgrowlocks lock mode output labels (Bruce Momjian)§
Remove
buffers_backend
andbuffers_backend_fsync
frompg_stat_bgwriter
(Bharath Rupireddy)§These fields are considered redundant to similar columns in
pg_stat_io
.Rename I/O block read/write timing statistics columns ofpg_stat_statements (Nazir Bilal Yavuz)§
This renames
blk_read_time
toshared_blk_read_time
, andblk_write_time
toshared_blk_write_time
.Change
pg_attribute
.attstattarget
andpg_statistic_ext
.stxstattarget
to represent the default statistics target asNULL
(Peter Eisentraut)§§Rename
pg_collation
.colliculocale
tocolllocale
andpg_database
.daticulocale
todatlocale
(Jeff Davis)§Rename
pg_stat_progress_vacuum
columnmax_dead_tuples
tomax_dead_tuple_bytes
, renamenum_dead_tuples
tonum_dead_item_ids
, and adddead_tuple_bytes
(Masahiko Sawada)§§RenameSLRU columns in system view
pg_stat_slru
(Alvaro Herrera)§The column names accepted by
pg_stat_reset_slru()
are also changed.
E.10.3. Changes#
Below you will find a detailed account of the changes betweenPostgreSQL 17 and the previous major release.
E.10.3.1. Server#
E.10.3.1.1. Optimizer#
Allow the optimizer to improveCTE plans by considering the statistics and sort order of columns referenced in earlier row output clauses (Jian Guo, Richard Guo, Tom Lane)§§
Improve optimization of
IS NOT NULL
andIS NULL
query restrictions (David Rowley, Richard Guo, Andy Fan)§§Remove
IS NOT NULL
restrictions from queries onNOT NULL
columns and eliminate scans onNOT NULL
columns ifIS NULL
is specified.Allow partition pruning on boolean columns on
IS [NOT] UNKNOWN
conditionals (David Rowley)§Improve optimization of range values when using containment operators <@ and @> (Kim Johan Andersson, Jian He)§
Allow correlated
IN
subqueries to be transformed into joins (Andy Fan, Tom Lane)§Improve optimization of the
LIMIT
clause on partitioned tables, inheritance parents, andUNION ALL
queries (Andy Fan, David Rowley)§Allow query nodes to be run in parallel in more cases (Tom Lane)§
Allow
GROUP BY
columns to be internally ordered to matchORDER BY
(Andrei Lepikhov, Teodor Sigaev)§This can be disabled using server variableenable_group_by_reordering.
Allow
UNION
(withoutALL
) to use MergeAppend (David Rowley)§Fix MergeAppend plans to more accurately compute the number of rows that need to be sorted (Alexander Kuzmenkov)§
AllowGiST andSP-GiST indexes to be part of incremental sorts (Miroslav Bendik)§
This is particularly useful for
ORDER BY
clauses where the first column has a GiST and SP-GiST index, and other columns do not.Add columns to
pg_stats
to report range-type histogram information (Egor Rogov, Soumyadeep Chakraborty)§
E.10.3.1.2. Indexes#
E.10.3.1.3. General Performance#
Allow vacuum to more efficiently remove and freeze tuples (Melanie Plageman, Heikki Linnakangas)§
WAL traffic caused by vacuum is also more compact.
Allow vacuum to more efficiently store tuple references (Masahiko Sawada, John Naylor)§§§§
Additionally, vacuum is no longer silently limited to one gigabyte of memory whenmaintenance_work_mem orautovacuum_work_mem are higher.
Optimize vacuuming of relations with no indexes (Melanie Plageman)§
Increase defaultvacuum_buffer_usage_limit to 2MB (Thomas Munro)§
Improve performance when checking roles with many memberships (Nathan Bossart)§
Improve performance of heavily-contendedWAL writes (Bharath Rupireddy)§
Improve performance when transferring large blocks of data to a client (Melih Mutlu)§
Allow the grouping of file system reads with the new system variableio_combine_limit (Thomas Munro, Andres Freund, Melanie Plageman, Nazir Bilal Yavuz)§§§
E.10.3.1.4. Monitoring#
Create system view
pg_stat_checkpointer
(Bharath Rupireddy, Anton A. Melnikov, Alexander Korotkov)§§§Relevant columns have been removed from
pg_stat_bgwriter
and added to this new system view.Improve control over resetting statistics (Atsushi Torikoshi, Bharath Rupireddy)§§§
Allow
pg_stat_reset_shared()
(with no arguments) and pg_stat_reset_shared(NULL
) to reset all shared statistics. Allow pg_stat_reset_shared('slru') andpg_stat_reset_slru()
(with no arguments) to resetSLRU statistics, which was already possible with pg_stat_reset_slru(NULL).Add log messages related toWAL recovery from backups (Andres Freund)§
Addlog_connections log line for
trust
connections (Jacob Champion)§Add log message to report walsender acquisition and release of replication slots (Bharath Rupireddy)§
This is enabled by the server variablelog_replication_commands.
Add system view
pg_wait_events
that reports wait event types (Bertrand Drouvot)§This is useful for adding descriptions to wait events reported in
pg_stat_activity
.Addwait events for checkpoint delays (Thomas Munro)§
Allow vacuum to report the progress of index processing (Sami Imseih)§
This appears in system view
pg_stat_progress_vacuum
columnsindexes_total
andindexes_processed
.
E.10.3.1.5. Privileges#
Allow granting the right to perform maintenance operations (Nathan Bossart)§
The permission can be granted on a per-table basis using the
MAINTAIN
privilege and on a per-role basis via thepg_maintain
predefined role. Permitted operations areVACUUM
,ANALYZE
,REINDEX
,REFRESH MATERIALIZED VIEW
,CLUSTER
, andLOCK TABLE
.Allow roles with
pg_monitor
membership to executepg_current_logfile()
(Pavlo Golub, Nathan Bossart)§
E.10.3.1.6. Server Configuration#
Add system variableallow_alter_system to disallow
ALTER SYSTEM
(Jelte Fennema-Nio, Gabriele Bartolini)§Allow
ALTER SYSTEM
to set unrecognized custom server variables (Tom Lane)§This is also possible with
GRANT ON PARAMETER
.Add server variabletransaction_timeout to restrict the duration of transactions (Andrey Borodin, Japin Li, Junwang Zhao, Alexander Korotkov)§§§
Add a builtin platform-independent collation provider (Jeff Davis)§§§§
This supports
C
andC.UTF-8
collations.Add server variablehuge_pages_status to report the use of huge pages by Postgres (Justin Pryzby)§
This is useful whenhuge_pages is set to
try
.Add server variable to disable event triggers (Daniel Gustafsson)§
The setting,event_triggers, allows for the temporary disabling of event triggers for debugging.
Allow theSLRU cache sizes to be configured (Andrey Borodin, Dilip Kumar, Alvaro Herrera)§
The new server variables arecommit_timestamp_buffers,multixact_member_buffers,multixact_offset_buffers,notify_buffers,serializable_buffers,subtransaction_buffers, andtransaction_buffers.commit_timestamp_buffers,transaction_buffers, andsubtransaction_buffers scale up automatically withshared_buffers.
E.10.3.1.7. Streaming Replication and Recovery#
Add support for incremental file system backup (Robert Haas, Jakub Wartak, Tomas Vondra)§§
Incremental backups can be created usingpg_basebackup's new
--incremental
option. The new applicationpg_combinebackup allows manipulation of base and incremental file system backups.Allow the creation ofWAL summarization files (Robert Haas, Nathan Bossart, Hubert Depesz Lubaczewski)§§§§
These files record the block numbers that have changed within anLSN range and are useful for incremental file system backups. This is controlled by the server variablessummarize_wal andwal_summary_keep_time, and introspected with
pg_available_wal_summaries()
,pg_wal_summary_contents()
, andpg_get_wal_summarizer_state()
.Add the system identifier to file systembackup manifest files (Amul Sul)§
This helps detect invalidWAL usage.
Allow connection string value
dbname
to be written whenpg_basebackup writes connection information topostgresql.auto.conf
(Vignesh C, Hayato Kuroda)§Add column
pg_replication_slots
.invalidation_reason
to report the reason for invalid slots (Shveta Malik, Bharath Rupireddy)§§Add column
pg_replication_slots
.inactive_since
to report slot inactivity duration (Bharath Rupireddy)§§§Add function
pg_sync_replication_slots()
to synchronize logical replication slots (Hou Zhijie, Shveta Malik, Ajin Cherian, Peter Eisentraut)§§Add the
failover
property to thereplication protocol (Hou Zhijie, Shveta Malik)§
E.10.3.1.8. Logical Replication#
Add applicationpg_createsubscriber to create a logical replica from a physical standby server (Euler Taveira)§
Havepg_upgrade migrate valid logical slots and subscriptions (Hayato Kuroda, Hou Zhijie, Vignesh C, Julien Rouhaud, Shlok Kyal)§§
This allows logical replication to continue quickly after the upgrade. This only works for oldPostgreSQL clusters that are version 17 or later.
Enable the failover oflogical slots (Hou Zhijie, Shveta Malik, Ajin Cherian)§
This is controlled by an optional fifth argument to
pg_create_logical_replication_slot()
.Add server variablesync_replication_slots to enable failover logical slot synchronization (Shveta Malik, Hou Zhijie, Peter Smith)§§
Add logical replication failover control to
CREATE/ALTER SUBSCRIPTION
(Shveta Malik, Hou Zhijie, Ajin Cherian)§§Allow the application of logical replication changes to usehash indexes on the subscriber (Hayato Kuroda)§
Previously onlybtree indexes could be used for this purpose.
Improvelogical decoding performance in cases where there are many subtransactions (Masahiko Sawada)§
Restart apply workers if subscription owner's superuser privileges are revoked (Vignesh C)§
This forces reauthentication.
Add
flush
option topg_logical_emit_message()
(Michael Paquier)§This makes the message durable.
Allow specification of physical standbys that must be synchronized before they are visible to subscribers (Hou Zhijie, Shveta Malik)§§
The new server variable issynchronized_standby_slots.
Add worker type column to
pg_stat_subscription
(Peter Smith)§
E.10.3.2. Utility Commands#
Add new
COPY
optionON_ERROR ignore
to discard error rows (Damir Belyalov, Atsushi Torikoshi, Alex Shulgin, Jian He, Yugo Nagata)§§§§The default behavior is
ON_ERROR stop
.Add new
COPY
optionLOG_VERBOSITY
which reportsCOPY FROM
ignored error rows (Bharath Rupireddy)§Allow
COPY FROM
to report the number of skipped rows during processing (Atsushi Torikoshi)§This appears in system view column
pg_stat_progress_copy
.tuples_skipped
.In
COPY FROM
, allow easy specification that all columns should be forced null or not null (Zhang Mingli)§Allow partitioned tables to have identity columns (Ashutosh Bapat)§
Allowexclusion constraints on partitioned tables (Paul A. Jungwirth)§
As long as exclusion constraints compare partition key columns for equality, other columns can use exclusion constraint-specific comparisons.
Add clearer
ALTER TABLE
method to set a column to the default statistics target (Peter Eisentraut)§The new syntax is
ALTER TABLE ... SET STATISTICS DEFAULT
; usingSET STATISTICS -1
is still supported.Allow
ALTER TABLE
to change a column's generation expression (Amul Sul)§The syntax is
ALTER TABLE ... ALTER COLUMN ... SET EXPRESSION
.Allow specification oftable access methods on partitioned tables (Justin Pryzby, Soumyadeep Chakraborty, Michael Paquier)§§
Add
DEFAULT
setting forALTER TABLE .. SET ACCESS METHOD
(Michael Paquier)§Add support forevent triggers that fire at connection time (Konstantin Knizhnik, Mikhail Gribkov)§
Add event trigger support for
REINDEX
(Garrett Thornburg, Jian He)§Allow parenthesized syntax for
CLUSTER
options if a table name is not specified (Nathan Bossart)§
Allow
EXPLAIN
to report optimizer memory usage (Ashutosh Bapat)§The option is called
MEMORY
.Add
EXPLAIN
optionSERIALIZE
to report the cost of converting data for network transmission (Stepan Rutz, Matthias van de Meent)§Add local I/O block read/write timing statistics to
EXPLAIN
'sBUFFERS
output (Nazir Bilal Yavuz)§Improve
EXPLAIN
's display of SubPlan nodes and output parameters (Tom Lane, Dean Rasheed)§
E.10.3.3. Data Types#
Allow the
interval
data type to support+/-infinity
values (Joseph Koshakow, Jian He, Ashutosh Bapat)§Allow the use of an
ENUM
added viaALTER TYPE
if the type was created in the same transaction (Tom Lane)§This was previously disallowed.
Allow
MERGE
to modify updatable views (Dean Rasheed)§Add
WHEN NOT MATCHED BY SOURCE
toMERGE
(Dean Rasheed)§WHEN NOT MATCHED
on target rows was already supported.Allow
MERGE
to use theRETURNING
clause (Dean Rasheed)§The new
RETURNING
functionmerge_action()
reports on theDML that generated the row.
E.10.3.5. Functions#
Add function
JSON_TABLE()
to convertJSON
data to a table representation (Nikita Glukhov, Teodor Sigaev, Oleg Bartunov, Alexander Korotkov, Andrew Dunstan, Amit Langote, Jian He)§§This function can be used in the
FROM
clause ofSELECT
queries as a tuple source.AddSQL/JSON constructor functions
JSON()
,JSON_SCALAR()
, andJSON_SERIALIZE()
(Nikita Glukhov, Teodor Sigaev, Oleg Bartunov, Alexander Korotkov, Andrew Dunstan, Amit Langote)§AddSQL/JSON query functions
JSON_EXISTS()
,JSON_QUERY()
, andJSON_VALUE()
(Nikita Glukhov, Teodor Sigaev, Oleg Bartunov, Alexander Korotkov, Andrew Dunstan, Amit Langote, Peter Eisentraut, Jian He)§§§§§Addjsonpath methods to convert
JSON
values to otherJSON
data types (Jeevan Chalke)§The jsonpath methods are
.bigint()
,.boolean()
,.date()
,.decimal([precision [, scale]])
,.integer()
,.number()
,.string()
,.time()
,.time_tz()
,.timestamp()
, and.timestamp_tz()
.Add
to_timestamp()
time zone format specifiers (Tom Lane)§TZ
accepts time zone abbreviations or numeric offsets, whileOF
accepts only numeric offsets.Allow the sessiontime zone to be specified by
AT LOCAL
(Vik Fearing)§This is useful when converting adding and removing time zones from time stamps values, rather than specifying the literal session time zone.
Add functions
uuid_extract_timestamp()
anduuid_extract_version()
to returnUUID information (Andrey Borodin)§Add functions to generate random numbers in a specified range (Dean Rasheed)§
The functions are
random(min, max)
and they take values of typeinteger
,bigint
, andnumeric
.Add functions to convert integers to binary and octal strings (Eric Radman, Nathan Bossart)§
The functions are
to_bin()
andto_oct()
.Add Unicode informational functions (Jeff Davis)§
Function
unicode_version()
returns the Unicode version,icu_unicode_version()
returns theICU version, andunicode_assigned()
returns if the characters are assigned Unicode codepoints.Add function
xmltext()
to convert text to a singleXML
text node (Jim Jones)§Add function
to_regtypemod()
to return the type modifier of a type specification (David Wheeler, Erik Wienhold)§Add
pg_basetype()
function to return a domain's base type (Steve Chavez)§Add function
pg_column_toast_chunk_id()
to return a value'sTOAST identifier (Yugo Nagata)§This returns
NULL
if the value is not stored inTOAST.
Add libpq function to change role passwords (Joe Conway)§
The new function,
PQchangePassword()
, hashes the new password before sending it to the server.Add libpq functions to close portals and prepared statements (Jelte Fennema-Nio)§
The functions are
PQclosePrepared()
,PQclosePortal()
,PQsendClosePrepared()
, andPQsendClosePortal()
.Add libpqAPI which allows for blocking and non-blockingcancel requests, with encryption if already in use (Jelte Fennema-Nio)§
Previously only blocking, unencrypted cancel requests were supported.
Add libpq function
PQsocketPoll()
to allow polling of network sockets (Tristan Partin, Tom Lane)§§Add libpq function
PQsendPipelineSync()
to send a pipeline synchronization point (Anton Kirilov)§This is similar to
PQpipelineSync()
but it does not flush to the server unless the size threshold of the output buffer is reached.Add libpq function
PQsetChunkedRowsMode()
to allow retrieval of results in chunks (Daniel Vérité)§AllowTLS connections without requiring a network round-trip negotiation (Greg Stark, Heikki Linnakangas, Peter Eisentraut, Michael Paquier, Daniel Gustafsson)§§§§§§§§
This is enabled with the client-side option
sslnegotiation=direct
, requiresALPN, and only works onPostgreSQL 17 and later servers.
Improvepsql display of default and empty privileges (Erik Wienhold, Laurenz Albe)§
Command
\dp
now displays(none)
for empty privileges; default still displays as empty.Have backslash commands honor
\pset null
(Erik Wienhold, Laurenz Albe)§Previously
\pset null
was ignored.Allowpsql's
\watch
to stop after a minimum number of rows returned (Greg Sabino Mullane)§The parameter is
min_rows
.Allowpsql connection attempts to be canceled with control-C (Tristan Partin)§
Allowpsql to honor
FETCH_COUNT
for non-SELECT
queries (Daniel Vérité)§Improvepsql tab completion (Dagfinn Ilmari Mannsåker, Gilles Darold, Christoph Heiss, Steve Chavez, Vignesh C, Pavel Borisov, Jian He)§§§§§§§§
E.10.3.9. Server Applications#
Add applicationpg_walsummary to dumpWAL summary files (Robert Haas)§
Allowpg_dump's large objects to be restorable in batches (Tom Lane)§
This allows the restoration of many large objects to avoid transaction limits and to be restored in parallel.
Addpg_dump option
--exclude-extension
(Ayush Vatsa)§Allowpg_dump,pg_dumpall, andpg_restore to specify include/exclude objects in a file (Pavel Stehule, Daniel Gustafsson)§
The option is called
--filter
.Add the
--sync-method
parameter to several client applications (Justin Pryzby, Nathan Bossart)§The applications areinitdb,pg_basebackup,pg_checksums,pg_dump,pg_rewind, andpg_upgrade.
Addpg_restore option
--transaction-size
to allow object restores in transaction batches (Tom Lane)§This allows the performance benefits of transaction batches without the problems of excessively large transaction blocks.
Changepgbench debug mode option from
-d
to--debug
(Greg Sabino Mullane)§Option
-d
is now used for the database name, and the new--dbname
option can be used as well.Add pgbench option
--exit-on-abort
to exit after any client aborts (Yugo Nagata)§Add pgbench command
\syncpipeline
to allow sending of sync messages (Anthonin Bonnefoy)§Allowpg_archivecleanup to remove backup history files (Atsushi Torikoshi)§
The option is
--clean-backup-history
.Add some long options topg_archivecleanup (Atsushi Torikoshi)§
The long options are
--debug
,--dry-run
, and--strip-extension
.Allowpg_basebackup andpg_receivewal to use dbname in their connection specification (Jelte Fennema-Nio)§
This is useful for connection poolers that are sensitive to the database name.
Addpg_upgrade option
--copy-file-range
(Thomas Munro)§This is supported onLinux andFreeBSD.
Allowreindexdb
--index
to process indexes from different tables in parallel (Maxim Orlov, Svetlana Derevyanko, Alexander Korotkov)§Allowreindexdb,vacuumdb, andclusterdb to process objects in all databases matching a pattern (Nathan Bossart)§§§
The new option
--all
controls this behavior.
E.10.3.10. Source Code#
Remove support forOpenSSL 1.0.1 (Michael Paquier)§
Allow tests to pass inOpenSSLFIPS mode (Peter Eisentraut)§§
UseCPU AVX-512 instructions for bit counting (Paul Amonson, Nathan Bossart, Ants Aasma)§§
Use nativeCRC instructions on 64-bitLoongArch CPUs (Xudong Yang)§
Remove theMicrosoft Visual Studio-specificPostgreSQL build option (Michael Paquier)§
Meson is now the only available method forVisual Studio builds.
Remove configure option
--disable-thread-safety
(Thomas Munro, Heikki Linnakangas)§§We now assume all supported platforms have sufficient thread support.
Removeconfigure option
--with-CC
(Heikki Linnakangas)§Setting the
CC
environment variable is now the only supported method for specifying the compiler.User-defined data type receive functions will no longer receive their data null-terminated (David Rowley)§
Add incremental
JSON
parser for use with hugeJSON
documents (Andrew Dunstan)§Convert top-level
README
file toMarkdown (Nathan Bossart)§Remove no longer needed top-level
INSTALL
file (Tom Lane)§Removemake's
distprep
option (Peter Eisentraut)§Addmake support forAndroid shared libraries (Peter Eisentraut)§
Add backend support for injection points (Michael Paquier)§§§§
This is used for server debugging and they must be enabled at server compile time.
Add dynamic shared memory registry (Nathan Bossart)§
This allows shared libraries which are not initialized at startup to coordinate dynamic shared memory access.
Fix
emit_log_hook
to use the same time value as other log records for the same query (Kambam Vinay, Michael Paquier)§Improve documentation for using
jsonpath
for predicate checks (David Wheeler)§
E.10.3.11. Additional Modules#
Allow joins with non-join qualifications to be pushed down to foreign servers and custom scans (Richard Guo, Etsuro Fujita)§
Foreign data wrappers and custom scans will need to be modified to handle these cases.
Allow pushdown of
EXISTS
andIN
subqueries topostgres_fdw foreign servers (Alexander Pyhalov)§Increase the default foreign data wrapper tuple cost (David Rowley, Umair Shahid)§§
This value is used by the optimizer.
Allowdblink database operations to be interrupted (Noah Misch)§
Allow the creation of hash indexes onltree columns (Tommy Pavlicek)§
This also enables hash join and hash aggregation onltree columns.
Allowunaccent character translation rules to contain whitespace and quotes (Michael Paquier)§
The syntax for the
unaccent.rules
file has changed.Allowamcheck to check for unique constraint violations using new option
--checkunique
(Anastasia Lubennikova, Pavel Borisov, Maxim Orlov)§Allowcitext tests to pass in OpenSSLFIPS mode (Peter Eisentraut)§
Allowpgcrypto tests to pass in OpenSSLFIPS mode (Peter Eisentraut)§
Allow
ALTER OPERATOR
to set more optimization attributes (Tommy Pavlicek)§This is useful for extensions.
Allow extensions to definecustom wait events (Masahiro Ikeda)§§§§
Custom wait events have been added topostgres_fdw anddblink.
Addpg_buffercache function
pg_buffercache_evict()
to allow shared buffer eviction (Palak Chaturvedi, Thomas Munro)§This is useful for testing.
E.10.3.11.1. pg_stat_statements#
Replace
CALL
parameters inpg_stat_statements with placeholders (Sami Imseih)§Replace savepoint names stored in
pg_stat_statements
with placeholders (Greg Sabino Mullane)§This greatly reduces the number of entries needed to record
SAVEPOINT
,RELEASE SAVEPOINT
, andROLLBACK TO SAVEPOINT
commands.Replace the two-phase commitGIDs stored in
pg_stat_statements
with placeholders (Michael Paquier)§This greatly reduces the number of entries needed to record
PREPARE TRANSACTION
,COMMIT PREPARED
, andROLLBACK PREPARED
.Track
DEALLOCATE
inpg_stat_statements
(Dagfinn Ilmari Mannsåker, Michael Paquier)§DEALLOCATE
names are stored inpg_stat_statements
as placeholders.Add local I/O block read/write timing statistics columns of
pg_stat_statements
(Nazir Bilal Yavuz)§§The new columns are
local_blk_read_time
andlocal_blk_write_time
.AddJIT deform_counter details to
pg_stat_statements
(Dmitry Dolgov)§Add optional fourth argument (
minmax_only
) topg_stat_statements_reset()
to allow for the resetting of only min/max statistics (Andrei Zubkov)§This argument defaults to
false
.Add
pg_stat_statements
columnsstats_since
andminmax_stats_since
to track entry creation time and last min/max reset time (Andrei Zubkov)§
E.10.4. Acknowledgments#
The following individuals (in alphabetical order) have contributed to this release as patch authors, committers, reviewers, testers, or reporters of issues.
Abhijit Menon-Sen |
Adnan Dautovic |
Aidar Imamov |
Ajin Cherian |
Akash Shankaran |
Akshat Jaimini |
Alaa Attya |
Aleksander Alekseev |
Aleksej Orlov |
Alena Rybakina |
Alex Hsieh |
Alex Malek |
Alex Shulgin |
Alex Work |
Alexander Korotkov |
Alexander Kozhemyakin |
Alexander Kuzmenkov |
Alexander Lakhin |
Alexander Pyhalov |
Alexey Palazhchenko |
Alfons Kemper |
Álvaro Herrera |
Amadeo Gallardo |
Amit Kapila |
Amit Langote |
Amul Sul |
Anastasia Lubennikova |
Anatoly Zaretsky |
Andreas Karlsson |
Andreas Ulbrich |
Andrei Lepikhov |
Andrei Zubkov |
Andres Freund |
Andrew Alsup |
Andrew Atkinson |
Andrew Bille |
Andrew Dunstan |
Andrew Kane |
Andrey Borodin |
Andrey Rachitskiy |
Andrey Sokolov |
Andy Fan |
Anthonin Bonnefoy |
Anthony Hsu |
Anton Kirilov |
Anton Melnikov |
Anton Voloshin |
Antonin Houska |
Ants Aasma |
Antti Lampinen |
Aramaki Zyake |
Artem Anisimov |
Artur Zakirov |
Ashutosh Bapat |
Ashutosh Sharma |
Atsushi Torikoshi |
Attila Gulyás |
Ayush Tiwari |
Ayush Vatsa |
Bartosz Chrol |
Benoît Ryder |
Bernd Helmle |
Bertrand Drouvot |
Bharath Rupireddy |
Bo Andreson |
Boshomi Phenix |
Bowen Shi |
Boyu Yang |
Bruce Momjian |
Cameron Vogt |
Cary Huang |
Cédric Villemain |
Changhong Fei |
Chantal Keller |
Chapman Flack |
Chengxi Sun |
Chris Travers |
Christian Maurer |
Christian Stork |
Christoph Berg |
Christoph Heiss |
Christophe Courtois |
Christopher Kline |
Claudio Freire |
Colin Caine |
Corey Huinker |
Curt Kolovson |
Dag Lem |
Dagfinn Ilmari Mannsåker |
Damir Belyalov |
Daniel Fredouille |
Daniel Gustafsson |
Daniel Shelepanov |
Daniel Vérité |
Daniel Westermann |
Darren Rush |
Dave Cramer |
Dave Page |
David Christensen |
David Cook |
David G. Johnston |
David Geier |
David Hillman |
David Perez |
David Rowley |
David Steele |
David Wheeler |
David Zhang |
Dean Rasheed |
Denis Erokhin |
Denis Laxalde |
Devrim Gündüz |
Dilip Kumar |
Dimitrios Apostolou |
Dmitry Dolgov |
Dmitry Koval |
Dmitry Vasiliev |
Dominique Devienne |
Dong Wook Lee |
Donghang Lin |
Dongming Liu |
Drew Callahan |
Drew Kimball |
Dzmitry Jachnik |
Egor Chindyaskin |
Egor Rogov |
Ekaterina Kiryanova |
Elena Indrupskaya |
Elizabeth Christensen |
Emre Hasegeli |
Eric Cyr |
Eric Mutta |
Eric Radman |
Eric Ridge |
Erik Rijkers |
Erik Wienhold |
Erki Eessaar |
Ethan Mertz |
Etsuro Fujita |
Eugen Konkov |
Euler Taveira |
Evan Macbeth |
Evgeny Morozov |
Fabien Coelho |
Fabrízio de Royes Mello |
Farias de Oliveira |
Feliphe Pozzer |
Fire Emerald |
Flavien Guedez |
Floris Van Nee |
Francesco Degrassi |
Frank Streitzig |
Gabriele Bartolini |
Garrett Thornburg |
Gavin Flower |
Gavin Panella |
Gilles Darold |
Gilles Parc |
Grant Gryczan |
Greg Nancarrow |
Greg Sabino Mullane |
Greg Stark |
Gurjeet Singh |
Haiying Tang |
Hajime Matsunaga |
Hal Takahara |
Hanefi Onaldi |
Hannu Krosing |
Hans Buschmann |
Hao Wu |
Hao Zhang |
Hayato Kuroda |
Heikki Linnakangas |
Hemanth Sandrana |
Himanshu Upadhyaya |
Hironobu Suzuki |
Holger Reise |
Hongxu Ma |
Hongyu Song |
Horst Reiterer |
Hubert Lubaczewski |
Hywel Carver |
Ian Barwick |
Ian Ilyasov |
Ilya Nenashev |
Isaac Morland |
Israel Barth Rubio |
Ivan Kartyshov |
Ivan Kolombet |
Ivan Lazarev |
Ivan Panchenko |
Ivan Trofimov |
Jacob Champion |
Jacob Speidel |
Jacques Combrink |
Jaime Casanova |
Jakub Wartak |
James Coleman |
James Pang |
Jani Rahkola |
Japin Li |
Jeevan Chalke |
Jeff Davis |
Jeff Janes |
Jelte Fennema-Nio |
Jeremy Schneider |
Jian Guo |
Jian He |
Jim Jones |
Jim Keener |
Jim Nasby |
Jingtang Zhang |
Jingxian Li |
Jingzhou Fu |
Joe Conway |
Joel Jacobson |
John Ekins |
John Hsu |
John Morris |
John Naylor |
John Russell |
Jonathan Katz |
Jordi Gutiérrez |
Joseph Koshakow |
Josh Kupershmidt |
Joshua D. Drake |
Joshua Uyehara |
Jubilee Young |
Julien Rouhaud |
Junwang Zhao |
Justin Pryzby |
Kaido Vaikla |
Kambam Vinay |
Karen Talarico |
Karina Litskevich |
Karl O. Pinc |
Kashif Zeeshan |
Kim Johan Andersson |
Kirill Reshke |
Kirk Parker |
Kirk Wolak |
Kisoon Kwon |
Koen De Groote |
Kohei KaiGai |
Kong Man |
Konstantin Knizhnik |
Kouhei Sutou |
Krishnakumar R |
Kuntal Ghosh |
Kurt Roeckx |
Kyotaro Horiguchi |
Lang Liu |
Lars Kanis |
Laurenz Albe |
Lauri Laanmets |
Legs Mansion |
Lukas Fittl |
Magnus Hagander |
Mahendrakar Srinivasarao |
Maiquel Grassi |
Manos Emmanouilidis |
Marcel Hofstetter |
Marcos Pegoraro |
Marian Krucina |
Marina Polyakova |
Mark Dilger |
Mark Guertin |
Mark Sloan |
Markus Winand |
Marlene Reiterer |
Martín Marqués |
Martin Nash |
Martin Schlossarek |
Masahiko Sawada |
Masahiro Ikeda |
Masaki Kuwamura |
Masao Fujii |
Mason Sharp |
Matheus Alcantara |
Mats Kindahl |
Matthias Kuhn |
Matthias van de Meent |
Maxim Boguk |
Maxim Orlov |
Maxim Yablokov |
Maxime Boyer |
Melanie Plageman |
Melih Mutlu |
Merlin Moncure |
Micah Gate |
Michael Banck |
Michael Bondarenko |
Michael Paquier |
Michael Wang |
Michael Zhilin |
Michail Nikolaev |
Michal Bartak |
Michal Kleczek |
Mikhail Gribkov |
Mingli Zhang |
Miroslav Bendik |
Mitsuru Hinata |
Moaaz Assali |
Muralikrishna Bandaru |
Nathan Bossart |
Nazir Bilal Yavuz |
Neil Tiffin |
Ngigi Waithaka |
Nikhil Benesch |
Nikhil Raj |
Nikita Glukhov |
Nikita Kalinin |
Nikita Malakhov |
Nikolay Samokhvalov |
Nikolay Shaplov |
Nisha Moond |
Nishant Sharma |
Nitin Jadhav |
Noah Misch |
Noriyoshi Shinoda |
Ole Peder Brandtzæg |
Oleg Bartunov |
Oleg Sibiryakov |
Oleg Tselebrovskiy |
Olleg Samoylov |
Onder Kalaci |
Ondrej Navratil |
Pablo Kharo |
Palak Chaturvedi |
Pantelis Theodosiou |
Paul Amonson |
Paul Jungwirth |
Pavel Borisov |
Pavel Kulakov |
Pavel Luzanov |
Pavel Stehule |
Pavlo Golub |
Pedro Gallegos |
Pete Storer |
Peter Eisentraut |
Peter Geoghegan |
Peter Smith |
Philip Warner |
Philipp Salvisberg |
Pierre Ducroquet |
Pierre Fortin |
Przemyslaw Sztoch |
Quynh Tran |
Raghuveer Devulapalli |
Ranier Vilela |
Reid Thompson |
Rian McGuire |
Richard Guo |
Richard Vesely |
Ridvan Korkmaz |
Robert Haas |
Robert Scott |
Robert Treat |
Roberto Mello |
Robins Tharakan |
Roman Lozko |
Ronan Dunklau |
Rui Zhao |
Ryo Matsumura |
Ryoga Yoshida |
Sameer Kumar |
Sami Imseih |
Samuel Dussault |
Sanjay Minni |
Satoru Koizumi |
Sebastian Skalacki |
Sergei Glukhov |
Sergei Kornilov |
Sergey Prokhorenko |
Sergey Sargsyan |
Sergey Shinderuk |
Shaozhong Shi |
Shaun Thomas |
Shay Rojansky |
Shihao Zhong |
Shinya Kato |
Shlok Kyal |
Shruthi Gowda |
Shubham Khanna |
Shulin Zhou |
Shveta Malik |
Simon Riggs |
Soumyadeep Chakraborty |
Sravan Velagandula |
Stan Hu |
Stepan Neretin |
Stepan Rutz |
Stéphane Schildknecht |
Stephane Tachoires |
Stephen Frost |
Steve Atkins |
Steve Chavez |
Suraj Khamkar |
Suraj Kharage |
Svante Richter |
Svetlana Derevyanko |
Sylvain Frandaz |
Takayuki Tsunakawa |
Tatsuo Ishii |
Tatsuro Yamada |
Tender Wang |
Teodor Sigaev |
Thom Brown |
Thomas Munro |
Tim Carey-Smith |
Tim Needham |
Tim Palmer |
Tobias Bussmann |
Tom Lane |
Tomas Vondra |
Tommy Pavlicek |
Tomonari Katsumata |
Tristan Partin |
Tristen Raab |
Tung Nguyen |
Umair Shahid |
Uwe Binder |
Valerie Woolard |
Vallimaharajan G |
Vasya Boytsov |
Victor Wagner |
Victor Yegorov |
Victoria Shepard |
Vidushi Gupta |
Vignesh C |
Vik Fearing |
Viktor Leis |
Vinayak Pokale |
Vitaly Burovoy |
Vojtech Benes |
Wei Sun |
Wei Wang |
Wenjiang Zhang |
Will Mortensen |
Willi Mann |
Wolfgang Walther |
Xiang Liu |
Xiaoran Wang |
Xing Guo |
Xudong Yang |
Yahor Yuzefovich |
Yajun Hu |
Yaroslav Saburov |
Yong Li |
Yongtao Huang |
Yugo Nagata |
Yuhang Qiu |
Yuki Seino |
Yura Sokolov |
Yurii Rashkovskii |
Yuuki Fujii |
Yuya Watari |
Yves Colin |
Zhihong Yu |
Zhijie Hou |
Zongliang Quan |
Zubeyr Eryilmaz |
Zuming Jiang |