Contents
- Release schedule and pre-release test versions
- CommitFests
- Features
- Source code and build changes
- Backend changes
- Data type changes
- SQL changes
- Partitioning changes
- Indexing changes
- System catalog changes
- System function changes
- Configuration changes
- Users / roles
- Authentication changes
- Procedural language changes
- libpq changes
- Information schema changes
- Replication changes
- Core utilities
- Server utilities
- psql changes
- Contrib modules
- Testing
- Other
PostgreSQL 17
PostgreSQL 17
is the next PostgreSQL major release, scheduled to be released in late 2024.
- Documentation: PostgreSQL 17 (Index)
- Release notes: draft version (source)
Initial commit marking the start of PostgreSQL 17
development is 5bcc7e6d (2023-06-29).
Release schedule and pre-release test versions
17beta3
(REL_17_BETA3
) - commit b18b3a81 (2024-08-05); announcement (2024-08-08): PostgreSQL 16.4, 15.8, 14.13, 13.16, 12.20, and 17 Beta 3 Released!17beta2
(REL_17_BETA2
) - commit 23c5a0e7 (2024-06-24); announcement (2024-06-27): PostgreSQL 17 Beta 2 Released!17beta1
(REL_17_BETA1
) - commit 86a2d2a3 (2024-05-20); announcement (2024-05-23): PostgreSQL 17 Beta 1 Released!
CommitFests
- CommitFest 47 (2024-03-01 - 2024-03-31; closed)
- CommitFest 46 (2024-01-01 - 2024-01-31; closed)
- CommitFest 45 (2023-11-01 - 2023-11-31; closed)
- CommitFest 44 (2023-09-01 - 2023-09-30; closed)
- CommitFest 43 (2023-07-01 - 2023-07-31; closed)
Features
- support for incremental backup (initial commit dc212340)
Source code and build changes
Configuration
- configuration option
--disable-thread-safety
removed (commit 68a4b58e)
Source code
- Code and documentation related to wait events generated automatically (commit fa889284)
Platform support
- support for AIX removed (commit 0b16bb87)
Backend changes
General
- database and user names in startup packets no longer truncated (commit 562bee0f) compatibility change
- WAL summarizer process added (commit 174c4805)
- internal
TIDStore
functionality for storing large sets ofTID
s added (initial commit 30e14428)
Background workers
- length of
bgw_library_name
increased from96
to1024
bytes (commit 95784578)]
Character sets and collation
- collation provider "
builtin
" added (commit 2d819a08)
Event triggers
Optimizer
WAL
- WAL insertion lock acquisition and release optimized (commit 71e4cc6b)
Data type changes
interval
- support for
+infinity
/-infinity
added (commit 519fc1bd)
JSON
- following SQL standard
JSON
functions added (commit 03734a7f):JSON()
JSON_SCALAR()
JSON_SERIALIZE()
- following SQL standard
JSON
query functions added (commit 6185c973):JSON_EXISTS()
JSON_QUERY()
JSON_VALUE()
JSON_TABLE()
constructor added (commit de360045)
XML
SQL changes
- support for named
NOT NULL
constraints added (commit b0e96f31) - support for temporal
PRIMARY KEY
andUNIQUE
constraints added (commit 46a0cd4c) reverted (commit 8aee330a) - support for temporal
FOREIGN KEY
constraints added (commit 34768ee3) reverted (commit 8aee330a)
Modified:
ALTER OPERATOR
COMMUTATOR
,NEGATOR
,MERGES
, andHASHES
attributes can now be set (commit 2b5154be)
ALTER STATISTICS
ALTER STATISTICS ... SET STATISTICS DEFAULT
syntax added (commit 012460ee)
ALTER SUBSCRIPTION
- parameter
failover
added (commit 776621a5)
- parameter
ALTER SYSTEM
ALTER TABLE
CONSTRAINT ... NOT NULL ...
syntax added (commit b0e96f31)ALTER TABLE ... SET EXPRESSION AS ...
syntax added (commit 5d06e99a)ALTER TABLE ... SET STATISTICS DEFAULT
syntax added (commit 4f622503)ALTER TABLE ... SET ACCESS METHOD DEFAULT
syntax added (commit d61a6cad)ALTER TABLE ... MERGE PARTITIONS ...
syntax added (commit 1adf16b8) reverted (commit 3890d90c1508125729ed20038d90513694fc3a7b)ALTER TABLE ... SPLIT PARTITION ...
syntax added (commit 87c21bb9) reverted (commit 3890d90c1508125729ed20038d90513694fc3a7b)
COPY
CREATE SUBSCRIPTION
- parameter
failover
added (commit 776621a5)
- parameter
CREATE TABLE
CONSTRAINT ... NOT NULL ...
syntax added (commit b0e96f31)UNIQUE ... WITHOUT OVERLAPS
andPRIMARY KEY ... WITHOUT OVERLAPS
syntax added (commit 46a0cd4c) reverted (commit 8aee330a)- specification of an access method with
CREATE TABLE ... USING
possible for partitioned tables (commit 374c7a22)
EXPLAIN
GRANT
MAINTAIN
privilege added (commit ecb0fd33)
MERGE
Partitioning changes
- some kinds of exclusion constraint allowed on partitions (commit 8c852ba9)
- support for identity columns on partitioned tables added (commit 69958631)
- an access method can be defined for partitioned tables (commit 374c7a22)
Indexing changes
BRIN
- parallel
CREATE INDEX
now supported (commit b4375717)
GiST
- support for Incremental sorts added (commit 625d5b3c)
SP-GiST
- support for Incremental sorts added (commit 625d5b3c)
System catalog changes
Tables
Modified:
pg_attribute
pg_collation
- column
colliculocale
renamed tocolllocale
(commit f696c0cd)
- column
pg_constraint
NOT NULL
now managed inpg_constraint
(commit b0e96f31)- column
conperiod
added (initial commit 46a0cd4c asconwithoutoverlaps
, renamed in 030e10ff) reverted (commit 8aee330a)
pg_database
pg_depend]
pg_stat_bgwriter
- following columns removed (commit 74604a37):
buffers_backend
buffers_backend_fsync
- following columns removed following the introduction of
pg_stat_checkpointer
(commit 96f05261):checkpoints_timed
checkpoints_req
checkpoint_write_time
checkpoint_sync_time
buffers_checkpoint
- following columns removed (commit 74604a37):
pg_statistic_ext
Views
Added:
pg_stat_checkpointer
(commit 96f05261)pg_wait_events
(commit 1e68e43d)
Modified:
pg_replication_slots
pg_stat_progress_copy
- column
tuples_skipped
added (commit 72943960)
- column
pg_stat_progress_vacuum
pg_stat_slru
- SLRU caches renamed (commit bcdfa5f2)
pg_stat_subscription
- column
worker_type
added (commit 13aeaf07)
- column
pg_stats
- following columns added (commit bc3c8db8):
range_length_histogram
range_empty_frac
range_bounds_histogram
- following columns added (commit bc3c8db8):
pg_subscription
- column
subfailover
added (commit 776621a5)
- column
System function changes
Added:
icu_unicode_version()
(commit a02b37fc)jsonb_populate_record_valid()
(commit 1edb3b49|]]pg_available_wal_summaries()
(commit 174c4805)pg_basetype()
(commit b154d8a6)pg_column_toast_chunk_id()
(commit d1162cfd)pg_get_wal_summarizer_state()
(commit d9ef650f)pg_sync_replication_slots()
(commit ddd5f4f5)pg_wal_replay_wait()
(commit 06c418e1) reverted (commit 772faafc)pg_wal_summary_contents()
(commit 174c4805)to_bin()
(commit 260a1f18)to_oct()
(commit 260a1f18)to_regtypemod()
(commit 1218ca99)unicode_assigned()
(commit a02b37fc)unicode_version()
(commit a02b37fc)uuid_extract_timestamp()
(commit 794f10f6)uuid_extract_version()
(commit 794f10f6)xmltext()
(commit 526fe0d7)
Modified:
pg_create_logical_replication_slot()
- option
failover
added (commit c393308b)
- option
pg_current_logfile()
- can be executed by member of predefined role pg_monitor (commit 8d8afd48)
pg_logical_emit_message()
- option
flush
added (commit 173b56f1)
- option
pg_promote()
- reports failure on
kill()
or postmaster failure (commit f593c551)
- reports failure on
pg_stat_reset_shared()
pg_stat_reset_slru()
pg_walfile_name()
- current segment number returned if the LSN is on a segment boundary (commit 344afc77)
pg_walfile_name_offset()
- current segment number returned if the LSN is on a segment boundary (commit 344afc77)
random()
random(min, max)
variants added (commit e6341323)
Configuration changes
Added:
allow_alter_system
(commit d3ae2a24)backtrace_on_internal_error
(commit a740b213) reverted (commit 592a2283))enable_self_join_removal
(commit d3d55ce5) reverted (commit d3d55ce5)event_triggers
(commit 7750fefd)huge_pages_status
(commit a14354ca)io_combine_limit
(commit 210622c6)max_notify_queue_pages
(commit 2cdf131c)or_to_any_transform_limit
(commit 72bd38cc) reverted (commit ff9f72c6)summarize_wal
(commit 174c4805)sync_replication_slots
(commit 93db6cbd)synchronized_standby_slots
(commit bf279ddd)trace_connection_negotiation
(commit 705843d2)transaction_timeout
(commit 51efe38c)wal_summary_keep_time
(commit 174c4805)
Modified:
log_connections
- explicitly log connections without an authn ID, such as
trust
(commit e48b19c5)
- explicitly log connections without an authn ID, such as
log_replication_commands
- replication slot acquisition and release logged (7c3fb505)
vacuum_buffer_usage_limit
- default value changed to
2MB
(commit 98f320eb)
- default value changed to
wal_sync_method
fsync_writethrough
option removed on Windows (commit 8c852ba9)
Removed:
db_user_namespace
(commit 884eee5b)old_snapshot_threshold
(commit f691f5b8)trace_recovery_messages
(commit c7a3e6b4)
Users / roles
Authentication changes
- support for OpenSSL 1.0.1 removed (commit 8e278b65)
Procedural language changes
PL/pgSQL
%TYPE
and%ROWTYPE
can now be followed by array decoration (commit 5e8674dc)
libpq changes
- functions for closing portals and statements added (commit 28b57265)
- function
PQchangePassword()
added (commit a7be2a6c) - function
PQsendPipelineSync()
added (commit 4794c2d3) - various non-blocking query cancellation functions added (commit 61461a30)
- function
PQsocketPoll()
added (commit f5e4dedf)
- function
PQsetChunkedRowsMod()
added (commit 4643a2b2)
Information schema changes
domain_default
column removed fromelement_types
view (commit 78806a95)
Replication changes
Replication protocol
- command
ALTER_REPLICATION_SLOT
added (commit 73292404) - option
FAILOVER
added to commandCREATE_REPLICATION_SLOT
(commit 73292404)
Logical replication
- binary upgrades can now preserve the full state of a subscription (commit 9a17be1e)
Core utilities
Added:
pg_combinebackup
(commit dc212340)pg_createsubscriber
(commit d44032d0)pg_walsummary
(commit ee1bfd16)
Modified:
clusterdb
- option
-a
/--all
can be combined with option-t/--table
(commit 1b49d56d)
- option
createdb
- option
--locale-provider
accepts additional valuebuiltin
(commit 2d819a08)
- option
pg_amcheck
- option
--checkunique
added (commit 5ae20872)
- option
pg_archivecleanup
pg_basebackup
pgbench
pg_dump
pg_dumpall
- option
--filter
added (commit a5cf808b)
- option
pg_receivewal
pg_restore
reindexdb
vacuumdb
- option
-a
/--all
can now be used in conjunction with--table
,--schema
, and--exclude-schema
(commit 648928c7)
- option
Server utilities
initdb
pg_checksums
- option
--sync-method
added (commit 8c16ad3b)
- option
pg_rewind
- option
--sync-method
added (commit 8c16ad3b)
- option
pg_upgrade
psql changes
\drg
command added (commit d65ddaca)min_rows
parameter added to\watch
command (commit f347ec76)- default and empty privilege display improved (commit d1379ebf)
- database reconnections can now be cancelled by
SIGINT
(commit cafe1056)
Contrib modules
Removed:
Modified:
amcheck
- support for checking unique constraint violation added (commit 5ae20872)
dblink
- remote queries are now interruptible (commit d3c5f37d)
ltree
- hash support added ((commit 485f0aa8)
pg_buffercache
- function
pg_buffercache_evict()
added (commit 13453eed)
- function
pgrowlocks
- labels
Share
andKey Share
changed toFor Share
andFor Key Share
(commit 15d5d740)
- labels
pg_stat_statements
- savepoint names now displayed as constants (commit 31de7e60)
- GIDs of two-phase commit commands now displayed as constants (commit 638d42a3)
- names of
DEALLOCATE
statements shown as constants bb45156f) - columns
jit_deform_count
andjit_deform_time
added to viewpg_stat_statements
(commit 5a3423ad) CALL
parameters now displayed as constants (commit 11c34b34)- columns
local_blk_read_time
andlocal_blk_write_time
added to viewpg_stat_statements
(commit 5147ab1d) - columns
stats_since
andminmax_stats_since
added to viewpg_stat_statements
(commit dc9f8a79)
pg_prewarm
- modified to use streaming I/O (commit 3a352df0)
postgres_fdw
test_decoding
unaccent
- support for quoted translated characters added (59f47fb9)
Testing
- backend support for injection points added (initial commit d86d20f0)
pg_regress
TAP tests
Test modules
worker_spi
- custom wait event renamed to
WorkerSpiMain
(commit c8e318b1)
- custom wait event renamed to
Other
\v
now handled as a whitespace character in various parsers (commit ae6d06f0)