Prevent unauthorized code execution
during
pg_dump (Masahiko Sawada)
Prevent infinite loop in VACUUM
(Melanie Plageman)
Fix failure after attaching a table as a partition, if the
table had previously had inheritance children
(Álvaro Herrera)
Fix ALTER TABLE DETACH PARTITION for cases
involving inconsistent index-based constraints
(Álvaro Herrera, Tender Wang)
Fix partition pruning setup during ALTER TABLE DETACH
PARTITION CONCURRENTLY (Álvaro Herrera)
Correctly update a partitioned table's
pg_class.reltuples
field to zero after its last child partition is dropped (Noah Misch)
Fix handling of polymorphic output arguments for procedures
(Tom Lane)
Fix behavior of stable functions called from
a CALL statement's argument list (Tom Lane)
Detect integer overflow in money calculations
(Joseph Koshakow)
Fix over-aggressive clamping of the scale argument
in round(numeric)
and trunc(numeric) (Dean Rasheed)
Fix result for pg_size_pretty() when applied to
the smallest possible bigint value (Joseph Koshakow)
Prevent pg_sequence_last_value() from failing
on unlogged sequences on standby servers and on temporary sequences
of other sessions (Nathan Bossart)
Fix parsing of ignored operators
in websearch_to_tsquery() (Tom Lane)
Detect another integer overflow case while computing new array
dimensions (Joseph Koshakow)
Detect another case of a new catalog cache entry becoming stale
while detoasting its fields (Noah Misch)
Correctly check updatability of view columns targeted
by INSERT ... DEFAULT
(Tom Lane)
Avoid reporting an unhelpful internal error for incorrect recursive
queries (Tom Lane)
Lock owned sequences during ALTER TABLE SET
LOGGED|UNLOGGED (Noah Misch)
Don't throw an error if a queued AFTER trigger no
longer exists (Tom Lane)
Fix failure to remove pg_init_privs entries
for column-level privileges when their table is dropped (Tom Lane)
Fix selection of an arbiter index for ON CONFLICT
when the desired index has expressions or predicates (Tom Lane)
Refuse to modify a temporary table of another session
with ALTER TABLE (Tom Lane)
Fix handling of extended statistics on expressions
in CREATE TABLE LIKE STATISTICS (Tom Lane)
Fix failure to recalculate sub-queries generated
from MIN() or MAX()
aggregates (Tom Lane)
Avoid crashing when a JIT-inlined backend function throws an error
(Tom Lane)
Cope with behavioral changes in
libxml2
version 2.13.x (Erik Wienhold, Tom Lane)
Fix handling of subtransactions of prepared transactions
when starting a hot standby server (Heikki Linnakangas)
Prevent incorrect initialization of logical replication slots
(Masahiko Sawada)
Avoid can only drop stats once
error during
replication slot creation and drop (Floris Van Nee)
-->
Fix resource leakage in logical replication WAL sender (Hou Zhijie)
Avoid memory leakage after servicing a notify or sinval interrupt
(Tom Lane)
Prevent leakage of reference counts for the shared memory block used
for statistics (Anthonin Bonnefoy)
Prevent deadlocks and assertion failures during truncation of the
multixact SLRU log (Heikki Linnakangas)
Avoid possibly missing end-of-input events on Windows sockets
(Thomas Munro)
Fix buffer overread in JSON parse error reports for incomplete byte
sequences (Jacob Champion)
Disable creation of stateful TLS session tickets by OpenSSL
(Daniel Gustafsson)
When replanning a
PL/pgSQL simple
expression, check it's still simple (Tom Lane)
Fix incompatibility between
PL/Perl and
Perl 5.40 (Andrew Dunstan)
Fix recursive RECORD-returning
PL/Python functions (Tom Lane)
Don't corrupt
PL/Python's
TD dictionary during a recursive trigger call
(Tom Lane)
Fix
PL/Tcl's reporting of invalid list
syntax in the result of a function returning tuple (Erik Wienhold,
Tom Lane)
Avoid non-thread-safe usage of strerror()
in
libpq (Peter Eisentraut)
Avoid memory leak within
pg_dump during a
binary upgrade (Daniel Gustafsson)
Ensure that pg_restore
reports dependent TOC entries correctly (Tom Lane)
Avoid cursor can only scan forward
error
in contrib/postgres_fdw (Etsuro Fujita)
In contrib/postgres_fdw, do not
send FETCH FIRST WITH TIES clauses to the remote
server (Japin Li)
Avoid clashing with
system-provided <regex.h> headers
(Thomas Munro)
Fix otherwise-harmless assertion failure in Memoize cost estimation
(David Rowley)
Fix otherwise-harmless assertion failures in REINDEX
CONCURRENTLY applied to an SP-GiST index (Tom Lane)
Restrict visibility of pg_stats_ext and
pg_stats_ext_exprs entries to the table
owner (Nathan Bossart)
Fix INSERT from
multiple VALUES rows into a target column that is
a domain over an array or composite type (Tom Lane)
Require SELECT privilege on the target table
for MERGE with a DO NOTHING
clause (Álvaro Herrera)
Fix handling of self-modified tuples in MERGE
(Dean Rasheed)
Fix incorrect pruning of NULL partition when a table is partitioned
on a boolean column and the query has a boolean IS
NOT clause (David Rowley)
Make ALTER FOREIGN TABLE SET SCHEMA move any
owned sequences into the new schema (Tom Lane)
Make ALTER TABLE ... ADD COLUMN create
identity/serial sequences with the same persistence as their owning
tables (Peter Eisentraut)
Improve ALTER TABLE ... ALTER COLUMN TYPE's error
message when there is a dependent function or publication (Tom Lane)
In CREATE DATABASE, recognize strategy keywords
case-insensitively for consistency with other options (Tomas Vondra)
Fix EXPLAIN's counting of heap pages accessed by
a bitmap heap scan (Melanie Plageman)
Fix EXPLAIN's output for subplans
in MERGE (Dean Rasheed)
Avoid deadlock during removal of orphaned temporary tables
(Mikhail Zhilin)
Avoid race condition while examining per-relation frozen-XID values
(Noah Misch)
-->
Fix buffer usage reporting for parallel vacuuming (Anthonin Bonnefoy)
Disallow converting a table to a view within an outer SQL command
that is using that table (Tom Lane)
Ensure that join conditions generated from equivalence classes are
applied at the correct plan level (Tom Lane)
Prevent potentially-incorrect optimization of some window functions
(David Rowley)
Avoid unnecessary use of moving-aggregate mode with a non-moving
window frame (Vallimaharajan G)
Avoid use of already-freed data while planning partition-wise joins
under GEQO (Tom Lane)
Avoid freeing still-in-use data in Memoize (Tender Wang, Andrei
Lepikhov)
Fix incorrectly-reported statistics kind codes in requested
statistics kind X is not yet
built error messages (David Rowley)
Be more careful with RECORD-returning functions
in FROM (Tom Lane)
Fix confusion about the return rowtype of SQL-language procedures
(Tom Lane)
Add protective stack depth checks to some recursive functions
(Egor Chindyaskin)
Fix mis-rounding and overflow hazards
in date_bin() (Moaaz Assali)
Detect integer overflow when adding or subtracting
an interval to/from a timestamp
(Joseph Koshakow)
Avoid race condition in pg_get_expr()
(Tom Lane)
Fix detection of old transaction IDs in XID status functions
(Karina Litskevich)
Ensure that a table's freespace map won't return a page that's past
the end of the table (Ronan Dunklau)
Fix file descriptor leakage when an error is thrown while waiting
in WaitEventSetWait (Etsuro Fujita)
Avoid corrupting exception stack if an FDW implements async append
but doesn't configure any wait conditions for the Append plan node
to wait for (Alexander Pyhalov)
Throw an error if an index is accessed while it is being reindexed
(Tom Lane)
Ensure that index-only scans on name columns return a
fully-padded value (David Rowley)
Fix race condition in deciding whether a table sync operation is
needed in logical replication (Vignesh C)
-->
Fix crash with DSM allocations larger than 4GB (Heikki Linnakangas)
Disconnect if a new server session's client socket cannot be put
into non-blocking mode (Heikki Linnakangas)
Fix inadequate error reporting
with
OpenSSL 3.0.0 and later (Heikki
Linnakangas, Tom Lane)
Avoid concurrent calls to bindtextdomain()
Fix crash in
ecpg's preprocessor if
the program tries to redefine a macro that was defined on the
preprocessor command line (Tom Lane)
false unsupported feature will be passed to server
warnings (Tom Lane)
Ensure that the string result
function is correctly zero-terminated (Oleg Tselebrovskiy)
In
psql, avoid leaking a query result
after the query is cancelled (Tom Lane)
present, will be dumped regardless of the setting
of (Daniel Gustafsson,
Álvaro Herrera)
and
pg_rewind (Daniel Gustafsson)
Fix
PL/pgSQL's parsing of single-line
comments (---style comments) following
expressions (Erik Wienhold, Tom Lane)
In contrib/amcheck, don't report false match
failures due to short- versus long-header values (Andrey Borodin,
Michael Zhilin)
-->
Fix bugs in BRIN output functions (Tomas Vondra)
In contrib/postgres_fdw, avoid emitting
requests to sort by a constant (David Rowley)
Make contrib/postgres_fdw set the remote
session's time zone to GMT
not UTC (Tom Lane)
In contrib/xml2, avoid use of library functions
that have been deprecated in recent versions
of
libxml2 (Dmitry Koval)
-->
Fix incompatibility with LLVM 18 (Thomas Munro, Dmitry Dolgov)
Allow make check to work with
the
musl C library (Thomas Munro, Bruce
Momjian, Tom Lane)
Tighten security restrictions within REFRESH MATERIALIZED
VIEW CONCURRENTLY (Heikki Linnakangas)
Fix memory leak when performing JIT inlining (Andres Freund,
Daniel Gustafsson)
When dequeueing from an LWLock, avoid needing to search the list of
waiting processes (Andres Freund)
-->
Avoid generating incorrect partitioned-join plans (Richard Guo)
Fix incorrect wrapping of subquery output expressions in
PlaceHolderVars (Tom Lane)
-->
Fix misprocessing of window function run conditions (Richard Guo)
Skip inappropriate actions when MERGE causes a
cross-partition update (Dean Rasheed)
Cope with BEFORE ROW DELETE triggers in
cross-partition MERGE updates (Dean Rasheed)
Prevent access to a no-longer-pinned buffer in BEFORE ROW
UPDATE triggers (Alexander Lakhin, Tom Lane)
Avoid requesting an oversize shared-memory area in parallel hash
join (Thomas Munro, Andrei Lepikhov, Alexander Korotkov)
and heap_delete() when a tuple to be updated by
a foreign-key enforcement trigger fails the extra visibility
crosscheck (Alexander Lakhin)
Fix overly tight assertion
about false_positive_rate parameter of
BRIN bloom operator classes (Alexander Lakhin)
Fix possible failure during ALTER TABLE ADD
COLUMN on a complex inheritance tree (Tender Wang)
Fix problems with duplicate token names in ALTER TEXT
SEARCH CONFIGURATION ... MAPPING commands (Tender Wang,
Michael Paquier)
Properly lock the associated table during DROP
STATISTICS (Tomas Vondra)
Fix function volatility checking for GENERATED
and DEFAULT expressions (Tom Lane)
Detect that a new catalog cache entry became stale while detoasting
its fields (Tom Lane)
Fix edge-case integer overflow detection bug on some platforms (Dean
Rasheed)
Detect Julian-date overflow when adding or subtracting
an interval to/from a timestamp (Tom Lane)
Add more checks for overflow in interval_mul()
and interval_div() (Dean Rasheed)
Ensure cached statistics are discarded after a change
to stats_fetch_consistency (Shinya Kato)
validity of unapplied values for settings
with backend
or superuser-backend context (Tom Lane)
Match collation too when matching an existing index to a new
partitioned index (Peter Eisentraut)
Avoid failure if a child index is dropped concurrently
with REINDEX INDEX on a partitioned index
(Fei Changhong)
Fix insufficient locking when cleaning up an incomplete split of
a GIN index's internal page (Fei Changhong, Heikki Linnakangas)
Avoid premature release of buffer pin in GIN index insertion
(Tom Lane)
-->
Avoid failure with partitioned SP-GiST indexes (Tom Lane)
-->
Fix ownership change reporting for large objects (Tom Lane)
Fix reporting of I/O timing data in EXPLAIN
(BUFFERS) (Michael Paquier)
-->
Ensure durability of CREATE DATABASE (Noah Misch)
Add more LOG messages when starting and ending
recovery from a backup (Andres Freund)
Prevent standby servers from incorrectly processing dead index
tuples during subtransactions (Fei Changhong)
Fix integer overflow hazard in checking whether a record will fit
into the WAL decoding buffer (Thomas Munro)
Fix deadlock between a logical replication apply worker, its
tablesync worker, and a session process trying to alter the
subscription (Shlok Kyal)
Ensure that column default values are correctly transmitted by
the
pgoutput logical replication plugin
(Nikhil Benesch)
Fix failure of logical replication's initial sync for a table with
no columns (Vignesh C)
Prevent examining system catalogs with the wrong snapshot during
logical decoding (Fei Changhong)
Return the correct status code when a new client disconnects without
responding to the server's password challenge (Liu Lang, Tom Lane)
Fix incompatibility with
OpenSSL 3.2
(Tristan Partin, Bo Andreson)
Be more wary about
OpenSSL not
setting errno on error (Tom Lane)
Fix file descriptor leakage when a foreign data
wrapper's ForeignAsyncRequest function fails
(Heikki Linnakangas)
Report ENOMEM errors from file-related system
calls as ERRCODE_OUT_OF_MEMORY,
not ERRCODE_INTERNAL_ERROR (Alexander Kuzmenkov)
In
PL/pgSQL, support SQL commands that
are CREATE FUNCTION/CREATE
PROCEDURE with SQL-standard bodies (Tom Lane)
handling of errors in pipelines (Álvaro Herrera)
PQsendFlushRequest() function flush the client
output buffer under the same rules as
other PQsend functions (Jelte Fennema-Nio)
Avoid race condition when
libpq
initializes OpenSSL support concurrently in two different threads
(Willi Mann, Michael Paquier)
-->
Fix timing-dependent failure in GSSAPI data transmission (Tom Lane)
In
pg_dump, don't dump RLS policies or
security labels for extension member objects (Tom Lane, Jacob
Champion)
In
pg_dump, don't dump an extended
statistics object if its underlying table isn't being dumped
(Rian McGuire, Tom Lane)
Make it an error for a
pgbench script to
end with an open pipeline (Anthonin Bonnefoy)
an element equal to INT_MAX is inserted into
a gist__int_ops index
(Alexander Lakhin, Tom Lane)
when contrib/pageinspect's
hash_bitmap_info() function is applied to a
partitioned hash index (Alexander Lakhin, Michael Paquier)
when contrib/pgstattuple's
pgstathashindex() function is applied to a
partitioned hash index (Alexander Lakhin)
On Windows, suppress autorun options when launching subprocesses
and
pg_regress (Kyotaro Horiguchi)
Move is_valid_ascii()
from mb/pg_wchar.h
to utils/ascii.h (Jubilee Young)
Fix compilation failures with
libxml2
version 2.12.0 and later (Tom Lane)
Fix compilation failure of WAL_DEBUG code on
Windows (Bharath Rupireddy)
Suppress compiler warnings from Python's header files
(Peter Eisentraut, Tom Lane)
-->
Avoid deprecation warning when compiling with LLVM 18 (Thomas Munro)
Palestine, plus corrections for the Antarctic stations Casey and
Vostok. Also historical corrections for Vietnam, Toronto, and
Miquelon. (Tom Lane)
Fix handling of unknown-type arguments
in DISTINCT "any" aggregate
functions (Tom Lane)
Detect integer overflow while computing new array dimensions
(Tom Lane)
Prevent the pg_signal_backend role from
signalling background workers and autovacuum processes
(Noah Misch, Jelte Fennema-Nio)
Fix misbehavior during recursive page split in GiST index build
(Heikki Linnakangas)
Prevent de-duplication of btree index entries
for interval columns (Noah Misch)
Process date values more sanely in
BRIN datetime_minmax_multi_ops indexes
(Tomas Vondra)
values more sanely in
BRIN datetime_minmax_multi_ops indexes
(Tomas Vondra)
Avoid calculation overflows in
BRIN interval_minmax_multi_ops indexes with
extreme interval values (Tomas Vondra)
Fix partition step generation and runtime partition pruning for
hash-partitioned tables with multiple partition keys (David Rowley)
Fix inconsistent rechecking of concurrently-updated rows
during MERGE (Dean Rasheed)
inherited UPDATE/DELETE/MERGE
even when the parent table is excluded by constraints (Amit Langote,
Tom Lane)
Fix edge case in btree mark/restore processing of ScalarArrayOpExpr
clauses (Peter Geoghegan)
Fix intra-query memory leak in Memoize execution
(Orlov Aleksej, David Rowley)
Fix intra-query memory leak when a set-returning function repeatedly
returns zero rows (Tom Lane)
Don't crash if cursor_to_xmlschema() is applied
to a non-data-returning Portal (Boyu Yang)
Throw the intended error if pgrowlocks() is
applied to a partitioned table (David Rowley)
Handle invalid indexes more cleanly in assorted SQL functions
(Noah Misch)
Fix pg_stat_reset_single_table_counters() to do
the right thing for a shared catalog (Masahiro Ikeda)
Avoid premature memory allocation failure with long inputs
to to_tsvector() (Tom Lane)
Fix over-allocation of the constructed tsvector
in tsvectorrecv() (Denis Erokhin)
Fix incorrect coding in gtsvector_picksplit()
(Alexander Lakhin)
-->
Improve checks for corrupt PGLZ compressed data (Flavien Guedez)
In COPY FROM, fail cleanly when an unsupported
encoding conversion is needed (Tom Lane)
Avoid crash in EXPLAIN if a parameter marked to
be displayed by EXPLAIN has a NULL boot-time
value (Xing Guo, Aleksander Alekseev, Tom Lane)
Ensure we have a snapshot while dropping ON COMMIT
DROP temp tables (Tom Lane)
Avoid improper response to shutdown signals in child processes
just forked by system() (Nathan Bossart)
Cope with torn reads of pg_control in frontend
programs (Thomas Munro)
Avoid torn reads of pg_control in relevant SQL
functions (Thomas Munro)
Avoid integer overflow when computing size of backend activity
string array (Jakub Wartak)
Fix briefly showing inconsistent progress statistics
for ANALYZE on inherited tables
(Heikki Linnakangas)
Fix the background writer to report any WAL writes it makes to the
statistics counters (Nazir Bilal Yavuz)
Fix confusion about forced-flush behavior
in pgstat_report_wal()
(Ryoga Yoshida, Michael Paquier)
Track the dependencies of cached CALL statements,
and re-plan them when needed (Tom Lane)
Avoid a possible pfree-a-NULL-pointer crash after an error in
OpenSSL connection setup (Sergey Shinderuk)
Track nesting depth correctly when
inspecting RECORD-type Vars from outer query levels
(Richard Guo)
Track hash function and negator function dependencies of
ScalarArrayOpExpr plan nodes (David Rowley)
Fix error-handling bug in RECORD type cache management
(Thomas Munro)
Fix assertion failure when logical decoding is retried in the same
session after an error (Hou Zhijie)
Treat out-of-memory failures as fatal while reading WAL
(Michael Paquier)
Fix possible recovery failure due to trying to allocate memory based
on a bogus WAL record length field (Thomas Munro, Michael Paquier)
Fix race condition in database dropping that could lead to the
autovacuum launcher getting stuck (Andres Freund, Will Mortensen,
Jacob Speidel)
Fix datatype size confusion in logical tape management
(Ranier Vilela)
Avoid unintended close of syslogger process's stdin
(Heikki Linnakangas)
Avoid doing plan cache revalidation of utility statements
that do not receive interesting processing during parse analysis
(Tom Lane)
Keep by-reference attmissingval values in
a long-lived context while they are being used (Andrew Dunstan)
Recalculate the effective value of search_path
after ALTER ROLE (Jeff Davis)
Fix could not duplicate handle
error occurring on
Windows when min_dynamic_shared_memory is set
above zero (Thomas Munro)
Fix order of operations in GenericXLogFinish
(Jeff Davis)
Remove incorrect assertion in PL/Python exception handling
(Alexander Lakhin)
Fix assertion failure in
pg_dump when
it's asked to dump the pg_catalog schema (Peter
Eisentraut)
Fix
pg_restore so that selective restores
will include both table-level and column-level ACLs for selected
tables (Euler Taveira, Tom Lane)
Add logic to
pg_upgrade to check for use
of abstime, reltime,
and tinterval data types (Álvaro Herrera)
Avoid generating invalid temporary slot names
in
pg_basebackup (Jelte Fennema)
Avoid false too many client connections
errors
in
pgbench on Windows (Noah Misch)
In contrib/amcheck, do not report interrupted
page deletion as corruption (Noah Misch)
on interval columns,
when an indexscan using the <
or <= operator is performed (Dean Rasheed)
-->
Add support for LLVM 16 and 17 (Thomas Munro, Dmitry Dolgov)
Suppress assorted build-time warnings on
fall back to using python
if --with-python was not given and make
variable PYTHON was not set (Japin Li)
Remove PHOT (Phoenix Islands Time) from the
default timezone abbreviations list (Tom Lane)
Disallow substituting a schema or owner name into an extension script
if the name contains a quote, backslash, or dollar sign (Noah Misch)
Fix MERGE to enforce row security policies
properly (Dean Rasheed)
Fix confusion between empty (no rows) ranges and all-NULL ranges in
BRIN indexes, as well as incorrect merging of all-NULL summaries
(Tomas Vondra)
Avoid leaving a corrupted database behind when DROP
DATABASE is interrupted (Andres Freund)
Ensure that partitioned indexes are correctly marked as valid or not
at creation (Michael Paquier)
Ignore invalid child indexes when matching partitioned indexes to
child indexes during ALTER TABLE ATTACH PARTITION
(Michael Paquier)
Fix possible failure when marking a partitioned index valid after
all of its partitions have been attached (Michael Paquier)
Fix ALTER EXTENSION SET SCHEMA to complain if the
extension contains any objects outside the extension's schema
(Michael Paquier, Heikki Linnakangas)
-->
Fix tracking of tables' access method dependencies (Michael Paquier)
Don't use partial unique indexes for uniqueness proofs in the
planner (David Rowley)
Don't Memoize lateral joins with volatile join conditions
(Richard Guo)
Avoid producing incorrect plans for foreign joins with
pseudoconstant join clauses (Etsuro Fujita)
Correctly handle sub-SELECTs in RLS policy expressions and
security-barrier views when expanding rule actions (Tom Lane)
Fix race conditions in conflict detection
for SERIALIZABLE isolation mode
(Thomas Munro)
Fix misbehavior of EvalPlanQual checks with inherited or partitioned
target tables (Tom Lane)
Fix hash join with an inner-side hash key that contains Params
coming from an outer nested loop (Tom Lane)
Fix intermittent failures when trying to update a field of a
composite column (Tom Lane)
Prevent query-lifespan memory leaks in some UPDATE
queries with triggers (Tomas Vondra)
Prevent query-lifespan memory leaks when an Incremental Sort plan
node is rescanned (James Coleman, Laurenz Albe, Tom Lane)
Accept fractional seconds in the input to jsonpath's
datetime() method (Tom Lane)
Prevent stack-overflow crashes with very complex text search
patterns (Tom Lane)
Allow tokens up to 10240 bytes long
in pg_hba.conf
and pg_ident.conf (Tom Lane)
Ensure that all existing placeholders are checked for matches when
an extension declares its GUC prefix to be reserved (Karina
Litskevich, Ekaterina Sokolova)
-->
Fix mishandling of C++ out-of-memory conditions (Heikki Linnakangas)
Fix rare null-pointer crash in plancache.c
(Tom Lane)
Avoid leaking a stats entry for a subscription when it is dropped
(Masahiko Sawada)
Avoid losing track of possibly-useful shared memory segments when a
page free results in coalescing ranges of free space (Dongming Liu)
Allow VACUUM to continue after detecting certain
types of b-tree index corruption (Peter Geoghegan)
in pg_database.datfrozenxid
or pg_database.datminmxid
(Andres Freund)
Avoid double replay of prepared transactions during crash
recovery (suyu.cmj, Michael Paquier)
Ensure that a newly created, but still empty table
is fsync'ed at the next checkpoint (Heikki
Linnakangas)
Ensure that creation of the init fork of an unlogged index is
WAL-logged (Heikki Linnakangas)
-->
Silence bogus missing contrecord
errors (Thomas Munro)
Fix overly strict assertion in jsonpath code
(David Rowley)
Avoid assertion failure when processing an empty statement via the
extended query protocol in an already-aborted transaction (Tom Lane)
Avoid assertion failure when
the stats_fetch_consistency setting is changed
intra-transaction (Kyotaro Horiguchi)
Fix contrib/fuzzystrmatch's
Soundex difference() function to handle empty
input sanely (Alexander Lakhin, Tom Lane)
Tighten whitespace checks in contrib/hstore
input (Evan Jones)
with contrib/intarray's
gist__int_ops index opclass (Ankit Kumar Pandey,
Alexander Lakhin)
Avoid useless double decompression of GiST index entries
in contrib/intarray (Konstantin Knizhnik,
Matthias van de Meent, Tom Lane)
Fix contrib/pageinspect's
gist_page_items() function to work when there
are included index columns (Alexander Lakhin, Michael Paquier)
the PSQL_WATCH_PAGER environment variable when
stdin/stdout are not a terminal (Tom Lane)
Fix
pg_dump to correctly handle new-style
SQL-language functions whose bodies require parse-time dependencies
on unique indexes (Tom Lane)
Improve
pg_dump's display of details
about dependency-loop problems (Tom Lane)
Avoid crash in
pgbench with an empty
pipeline and prepared mode (Álvaro Herrera)
Ensure
that pg_index.indisreplident
is kept up-to-date in relation cache entries (Shruthi Gowda)
Fix
make_etags script to work with
non-Exuberant
ctags (Masahiko Sawada)
Prevent CREATE SCHEMA from defeating changes
in search_path (Alexander Lakhin)
Enforce row-level security policies correctly after inlining a
set-returning function (Stephen Frost, Tom Lane)
Fix potential corruption of the template (source) database after
CREATE DATABASE with the STRATEGY
WAL_LOG option (Nathan Bossart, Ryo Matsumura)
Fix memory leakage and unnecessary disk reads
during CREATE DATABASE with the STRATEGY
WAL_LOG option (Andres Freund)
Avoid crash when the new schema name is omitted
in CREATE SCHEMA (Michael Paquier)
Fix various planner failures with MERGE
commands (Tom Lane)
Fix the row count reported by MERGE for some
corner cases (Dean Rasheed)
Fix MERGE problems with concurrent updates
(Dean Rasheed, Álvaro Herrera)
Add support for decompiling MERGE
commands (Álvaro Herrera)
Fix enabling/disabling of foreign-key triggers in partitioned tables
(Tom Lane)
Disallow altering composite types that are stored in indexes
(Tom Lane)
-->
Disallow system columns as elements of foreign keys (Tom Lane)
Ensure that COPY TO from an RLS-enabled parent
table does not copy any rows from child tables (Antonin Houska)
Avoid possible crash when array_position()
or array_positions() is passed an empty array
(Tom Lane)
Fix possible out-of-bounds fetch in to_char()
(Tom Lane)
Avoid buffer overread in translate() function
(Daniil Anisimov)
Adjust text-search-related character classification logic to
correctly detect whether the prevailing locale
is C (Jeff Davis)
Avoid possible crash on empty input for type interval
(Tom Lane)
Re-allow exponential notation in ISO-8601 interval fields
(Tom Lane)
Fix error cursor setting for parse errors in JSON string literals
(Tom Lane)
Fix data corruption due to vacuum_defer_cleanup_age
being larger than the current 64-bit xid (Andres Freund)
Fix parser's failure to detect some cases of improperly-nested
aggregates (Tom Lane)
Fix data structure corruption during parsing of
serial SEQUENCE NAME options (David Rowley)
Correctly update plan nodes' parallel-safety markings when moving
initplans from one node to another (Tom Lane)
Avoid failure with PlaceHolderVars in extended-statistics code
(Tom Lane)
Fix incorrect tests for whether a qual clause applied to a subquery
can be transformed into a window aggregate run
condition within the subquery (David Rowley)
Disable the inverse-transition optimization for window aggregates
when the call contains sub-SELECTs (David Rowley)
Fix oversights in execution of nested ARRAY[]
constructs (Alexander Lakhin, Tom Lane)
Prevent crash when updating a field within an
array-of-domain-over-composite-type column (Dmitry Dolgov)
Fix partition pruning logic for partitioning on boolean columns
(David Rowley)
Fix race condition in per-batch cleanup during parallel hash join
(Thomas Munro, Melanie Plageman)
Recalculate GENERATED columns after an
EvalPlanQual check (Tom Lane)
-->
Fix memory leak in Memoize plan execution (David Rowley)
Fix buffer refcount leak when using batched inserts for a foreign
table included in a partitioned tree (Alexander Pyhalov)
Restore support for
sub-millisecond vacuum_cost_delay settings
(Thomas Munro)
Don't balance vacuum cost delay when a table has a
per-relation vacuum_cost_delay setting of zero
(Masahiko Sawada)
Fix corner-case crashes when columns have been added to the end of a
view (Tom Lane)
Repair rare failure of MULTIEXPR_SUBLINK subplans in partitioned
updates (Andres Freund, Tom Lane)
multi-row INSERT ... VALUES query on a view that
has a DO ALSO INSERT ... SELECT rule (Dean
Rasheed)
Support references to OLD
and NEW within subqueries in rule actions
(Dean Rasheed, Tom Lane)
containing INSERT/UPDATE/DELETE
within WITH, take care to print the correct alias
for the target table (Tom Lane)
Fix glitches in SERIALIZABLE READ ONLY
optimization (Thomas Munro)
Avoid leaking cache callback slots in
the pgoutput logical decoding plugin (Shi Yu)
Avoid unnecessary calls to custom validators for index operator
class options (Alexander Korotkov)
Avoid useless work while scanning a multi-column BRIN index with
multiple scan keys (Tomas Vondra)
Fix netmask handling in BRIN inet_minmax_multi_ops opclass
(Tomas Vondra)
Fix dereference of dangling pointer during buffering build of a GiST
index (Alexander Lakhin)
Ignore dropped columns and generated columns during logical
replication of an update or delete action (Onder Kalaci, Shi Yu)
Correct the name of the wait event for SLRU buffer I/O for commit
timestamps (Alexander Lakhin)
Re-activate reporting of wait event SLRUFlushSync
(Thomas Munro)
Avoid possible underflow when calculating how many WAL segments to
keep (Kyotaro Horiguchi)
Disable startup progress reporting overhead in standby mode
(Bharath Rupireddy)
Support RSA-PSS certificates with SCRAM-SHA-256 channel binding
(Jacob Champion, Heikki Linnakangas)
-->
Avoid race condition with process ID tracking on Windows (Thomas Munro)
Fix list_copy_head() to work correctly on an
empty List (David Rowley)
Add missing cases to SPI_result_code_string()
(Dean Rasheed)
Fix erroneous Valgrind markings
in AllocSetRealloc() (Karina Litskevich)
Fix assertion failure for MERGE into a
partitioned table with row-level security enabled (Dean Rasheed)
Avoid assertion failure when decoding a transactional logical
replication message (Tomas Vondra)
Avoid locale sensitivity when processing regular expression escapes
(Jeff Davis)
Avoid trying to write an empty WAL record
in log_newpage_range() when the last few pages
in the specified range are empty (Matthias van de Meent)
Fix session-lifespan memory leakage in
plpgsql
DO blocks that use cast expressions
(Ajit Awekar, Tom Lane)
Tighten array dimensionality checks when converting Perl
list structures to multi-dimensional SQL arrays (Tom Lane)
Tighten array dimensionality checks when converting Python
list structures to multi-dimensional SQL arrays (Tom Lane)
Fix unwinding of exception stack
PQconnectPoll()
(Michael Paquier)
Fix possible data corruption in
ecpg
programs built with the option
(Kyotaro Horiguchi)
Fix
pg_dump so that partitioned tables
that are hash-partitioned on an enum-type column can be restored
successfully (Tom Lane)
Correctly detect non-seekable files on Windows
(Juan José Santamaría Flecha, Michael Paquier, Daniel Watzinger)
mode, prepare all the commands in a pipeline before starting the
pipeline (Álvaro Herrera)
In contrib/amcheck's heap checking code, deal
correctly with tuples having zero xmin or xmax (Robert Haas)
In contrib/amcheck, deal sanely with xids that
appear to be before epoch zero (Andres Freund)
In contrib/basebackup_to_shell, properly detect
failure to open a pipe (Robert Haas)
In contrib/hstore_plpython, avoid crashing if
the Python value to be transformed isn't a mapping (Dmitry Dolgov,
Tom Lane)
Require the siglen option of a GiST index on
an ltree column, if specified, to be a multiple of 4
(Alexander Korotkov)
In contrib/pageinspect, add defenses against
incorrect input for the gist_page_items() function
(Dmitry Koval)
Fix misbehavior in contrib/pg_trgm with an
unsatisfiable regular expression (Tom Lane)
in contrib/postgres_fdw's
application_name parameter (Kyotaro Horiguchi,
Michael Paquier)
In contrib/pg_walinspect, limit memory usage
of pg_get_wal_records_info() (Bharath Rupireddy)
Use the option when stripping
static libraries with
GNU-compatible
strip (Tom Lane)
Stop recommending auto-download of DTD files for building the
documentation, and indeed disable it (Aleksander Alekseev, Peter
Eisentraut, Tom Lane)
When running TAP tests in PGXS builds, use a saner location for the
temporary portlock directory (Peter Eisentraut)
Update time zone data files to
tzdata
release 2023c for DST law changes in Egypt, Greenland, Morocco, and
Palestine. (Tom Lane)
libpq can leak memory contents after
GSSAPI transport encryption initiation fails (Jacob Champion)
Fix calculation of which GENERATED columns need
to be updated in child tables during an UPDATE on
a partitioned table or inheritance tree (Amit Langote, Tom Lane)
Fix possible failure of MERGE to compute
GENERATED columns (Dean Rasheed)
Fix MERGE's check for
unreachable WHEN clauses (Dean Rasheed)
-->
Fix MERGE's rule-detection test (Dean Rasheed)
In MERGE, don't count a DO
NOTHING action as a processed tuple (Álvaro Herrera)
Allow a WITH RECURSIVE ... CYCLE CTE
to access its output column (Tom Lane)
Fix handling of pending inserts when doing a bulk insertion to a
foreign table (Etsuro Fujita)
Allow REPLICA IDENTITY
to be set on an index that's not (yet) valid (Tom Lane)
Fix handling of DEFAULT markers in rules that
perform an INSERT from a
multi-row VALUES list (Dean Rasheed)
Reject uses of undefined variables in jsonpath
existence checks (Alexander Korotkov, David G. Johnston)
Fix jsonb subscripting to cope with toasted subscript
values (Tom Lane, David G. Johnston)
-->
Fix edge-case data corruption in parallel hash joins (Dmitry Astapov)
Honor non-default settings
of checkpoint_completion_target
(Bharath Rupireddy)
Log the correct ending timestamp
in recovery_target_xid mode (Tom Lane)
Improve error reporting for some buffered file read failures
(Peter Eisentraut)
Remove arbitrary limit on number of elements
in int2vector and oidvector (Tom Lane)
In extended query protocol, avoid an immediate commit
after ANALYZE if we're running a pipeline
(Tom Lane)
Reject cancel request packets having the wrong length
(Andrey Borodin)
Fix planner preprocessing oversights for window function run-condition
expressions (Richard Guo, David Rowley)
Fix possible dangling-pointer access during execution of window
function run-condition expressions (David Rowley)
-->
Add recursion and looping defenses in subquery pullup (Tom Lane)
Fix planner issues when combining Memoize nodes with partitionwise
joins or parameterized nestloops (Richard Guo)
Fix partitionwise-join code to tolerate failure to produce a plan for
each partition (Tom Lane)
Limit the amount of cleanup work done
by get_actual_variable_range (Simon Riggs)
Prevent the statistics machinery from getting confused when a
relation's relkind changes (Andres Freund)
Fix under-parenthesized display of AT TIME ZONE
constructs (Tom Lane)
Prevent clobbering of cached parsetrees for utility statements in
SQL functions (Tom Lane, Daniel Gustafsson)
Ensure that execution of full-text-search queries can be cancelled
while they are performing phrase matches (Tom Lane)
Fix memory leak in hashing strings with nondeterministic collations
(Jeff Davis)
Fix deadlock between DROP DATABASE and logical
replication worker process (Hou Zhijie)
Clean up the
libpq connection object
after a failed replication connection attempt (Andres Freund)
In hot-standby servers, reduce processing effort for tracking XIDs
known to be active on the primary (Simon Riggs, Michail Nikolaev)
Ignore invalidated logical-replication slots while determining
oldest catalog xmin (Sirisha Chamarthi)
In logical decoding, notify the remote node when a transaction is
detected to have crashed (Hou Zhijie)
-->
Fix uninitialized-memory usage in logical decoding (Masahiko Sawada)
Acquire spinlock while updating shared state during logical decoding
context creation (Masahiko Sawada)
Fix
pgoutput replication plug-in to not
send columns not listed in a table's replication column list
(Hou Zhijie)
Avoid rare failed to acquire cleanup lock
panic
during WAL replay of hash-index page split operations (Robert Haas)
Advance a heap page's LSN when setting its all-visible bit during
WAL replay (Jeff Davis)
Fix int64_div_fast_to_numeric() to work for a
wider range of inputs (Dean Rasheed)
Fix latent buffer-overrun problem in WaitEventSet
logic (Thomas Munro)
Avoid nominally-undefined behavior when accessing shared memory in
32-bit builds (Andres Freund)
-->
Fix assertion failure in BRIN minmax-multi opclasses (Tomas Vondra)
Remove faulty assertion in useless-RESULT-RTE optimization logic
(Tom Lane)
Fix copy-and-paste errors in cache-lookup-failure messages for ACL
checks (Justin Pryzby)
Fix possible corruption of very large tablespace map files
in
pg_basebackup (Antonin Houska)
Avoid harmless warning from
pg_dump
in mode (Tom Lane)
and \ef commands to handle SQL-language functions
that have
SQL-standard function bodies (Tom Lane)
Fix tab completion of ALTER
FUNCTION/PROCEDURE/ROUTINE ... SET
SCHEMA (Dean Rasheed)
Update contrib/pageinspect to mark its
disk-accessing functions as PARALLEL RESTRICTED
(Tom Lane)
Fix contrib/seg to not crash or print garbage
if an input number has more than 127 digits (Tom Lane)
-->
Fix build on Microsoft Visual Studio 2013 (Tom Lane)
Fix compile failure in building PL/Perl with MSVC when using
Strawberry Perl (Andrew Dunstan)
Fix mismatch of PL/Perl built with MSVC versus a Perl library built
with gcc (Andrew Dunstan)
-->
Suppress compiler warnings from Perl's header files (Andres Freund)
Fix
pg_waldump to build on compilers that
don't discard unused static-inline functions (Tom Lane)
release 2022g for DST law changes in Greenland and Mexico,
plus historical corrections for northern Canada, Colombia, and
Singapore. (Tom Lane)
Fix failure to remove non-first segments of large tables
(Tom Lane)
Fix handling of DEFAULT tokens that appear
in a multi-row VALUES clause of an
INSERT on an updatable view (Tom Lane)
Disallow rules named _RETURN that are
not ON SELECT (Tom Lane)
Avoid failure in EXPLAIN VERBOSE for a query
using SEARCH BREADTH FIRST with constant
initial values (Tom Lane)
Prevent use of MERGE on a partitioned table with
foreign-table partitions (Álvaro Herrera)
Fix construction of per-partition foreign key constraints while
doing ALTER TABLE ATTACH PARTITION
(Jehan-Guillaume de Rorthais, Álvaro Herrera)
Fix planner failure with extended statistics on partitioned or
inherited tables (Richard Guo, Justin Pryzby)
Fix mis-ordering of WAL operations in fast insert path for GIN
indexes (Matthias van de Meent, Zhang Mingli)
Fix bugs in logical decoding when replay starts from a point
between the beginning of a transaction and the beginning of its
subtransaction (Masahiko Sawada, Kuroda Hayato)
Accept interrupts in more places during logical decoding (Amit
Kapila, Masahiko Sawada)
Prevent attempts to replicate into a foreign-table partition in
replication workers (Shi Yu, Tom Lane)
Avoid crash after function syntax error in replication workers
(Maxim Orlov, Anton Melnikov, Masahiko Sawada, Tom Lane)
Avoid double call of the shutdown callback of an archiver module
(Nathan Bossart, Bharath Rupireddy)
Add plan-time check for attempted access to a table that has no
table access method (Tom Lane)
Prevent postmaster crash when shared-memory state is corrupted
(Tom Lane)
In
libpq, handle single-row mode
correctly when pipelining (Denis Laxalde)
Fix
psql's exit status when a
command-line query is canceled (Peter Eisentraut)
Allow cross-platform tablespace relocation
in
pg_basebackup (Robert Haas)
Fix
pg_dump's failure to dump comments
attached to some CHECK constraints (Tom Lane)
Fix CREATE DATABASE to allow
its oid parameter to exceed
231 (Tom Lane)
In
pg_stat_statements, fix access to
already-freed memory (zhaoqigui)
-->
Fix incompatibilities with LLVM 15 (Thomas Munro, Andres Freund)
Allow use of __sync_lock_test_and_set() for
spinlocks on any machine (Tom Lane)
Rename symbol REF to REF_P to
avoid compile failure on recent macOS (Tom Lane)
Avoid using sprintf, to avoid compile-time
deprecation warnings (Tom Lane)
release 2022f for DST law changes in Chile, Fiji, Iran, Jordan,
Mexico, Palestine, and Syria, plus historical corrections for Chile,
Crimea, Iran, and Mexico. (Tom Lane)
Remove
PUBLIC creation permission on the
linkend="ddl-schemas-public">public schema
(Noah Misch)
Change the owner of the public schema to be the
new pg_database_owner role (Noah Misch)
Remove long-deprecated exclusive
backup mode (David Steele, Nathan Bossart)
Increase
linkend="guc-hash-mem-multiplier">hash_mem_multiplier
default to 2.0 (Peter Geoghegan)
Remove server-side language
linkend="plpython">plpython2u and generic
Python language plpythonu (Andres Freund)
Generate an error if
linkend="textsearch-functions-table">array_to_tsvector()
is passed an empty-string array element (Jean-Christophe Arnu)
Generate an error when
linkend="functions-string-other">chr()
is supplied with a negative argument (Peter Eisentraut)
Prevent CREATE OR REPLACE
VIEW from changing the collation of an output column
(Tom Lane)
linkend="sql-syntax-identifiers">Unicode identifiers,
e.g., U&""
(Peter Eisentraut)
Prevent numeric
literals from having non-numeric trailing characters (Peter
Eisentraut)
numeric literal processing to match the
Eisentraut)
When interval
input provides a fractional value for a unit greater than months,
round to the nearest month (Bruce Momjian)
Improve consistency of interval parsing with trailing
periods (Tom Lane)
function as stable, not immutable, since it depends on
linkend="guc-intervalstyle">IntervalStyle
(Tom Lane)
Detect integer overflow in
linkend="functions-datetime-table">interval justification
functions (Joe Koshakow)
Change the I/O format of type "char" for non-ASCII
characters (Tom Lane)
Remove the default ADMIN
OPTION privilege a login role has on its own role
membership (Robert Haas)
Allow logical replication
to run as the owner of the subscription (Mark Dilger)
logical replication
operations on tables where the subscription owner does not have
SELECT permission on the table (Jeff Davis)
When EXPLAIN
references the session's temporary object schema, refer to it as
pg_temp (Amul Sul)
linkend="monitoring-pg-statio-all-tables-view">pg_statio_all_tables
to sum values for the rare case of
TOAST tables
with multiple indexes (Andrei Zubkov)
options that match the name of an installed extension, but
are not one of the extension's declared variables
(Florin Irion, Tom Lane)
Remove obsolete server variable
stats_temp_directory (Andres Freund, Kyotaro
Horiguchi)
Improve the algorithm used to compute
linkend="functions-math-random-table">random()
(Fabien Coelho)
libpq's
linkend="libpq-PQsendQuery">PQsendQuery()
function is no longer supported in pipeline mode (Álvaro Herrera)
On non-Windows platforms, consult the HOME environment
variable to find the user's home directory (Anders Kaseorg)
Remove
linkend="app-pgdump">
pg_dump's
option (Tom Lane)
final COMMIT command
to ROLLBACK only
if ON_ERROR_STOP is set (Michael Paquier)
Avoid unnecessary casting of constants in queries sent by
linkend="postgres-fdw">postgres_fdw (Dian Fay)
Remove xml2's
xml_is_well_formed() function (Tom Lane)
Allow custom scan providers
to indicate if they support projections (Sven Klemm)
Record and check the collation version of each
linkend="sql-createdatabase">database (Peter Eisentraut)
collations to be set as the default for clusters and databases
(Peter Eisentraut)
linkend="view-pg-ident-file-mappings">pg_ident_file_mappings
to report pg_ident.conf information (Julien
Rouhaud)
Improve planning time for queries referencing partitioned tables
(David Rowley)
Allow ordered scans of partitions to avoid sorting in more cases
(David Rowley)
Improve foreign key behavior of updates on partitioned tables
that move rows between partitions (Amit Langote)
Allow CLUSTER
on partitioned tables (Justin Pryzby)
Fix ALTER TRIGGER
RENAME on partitioned tables to properly rename
triggers on all partitions (Arne Roland, Álvaro Herrera)
Allow btree indexes on system and
linkend="storage-toast">
TOAST
tables to efficiently store duplicates (Peter Geoghegan)
that were built using sorting (Aliaksandr Kalenik, Sergei
Shoulbakov, Andrey Borodin)
Allow unique constraints and indexes to treat
NULL values as not distinct (Peter Eisentraut)
linkend="functions-string-other">^@
starts-with operator and the starts_with()
function to use btree indexes if using the C collation (Tom Lane)
Allow extended
statistics to record statistics for a parent with all its
children (Tomas Vondra, Justin Pryzby)
to allow the user to specify the expected size of the working
table of a recursive
query (Simon Riggs)
Allow hash lookup for
linkend="functions-subquery-notin">NOT IN
clauses with many constants (David Rowley, James Coleman)
Allow SELECT DISTINCT to be parallelized
(David Rowley)
Speed up encoding validation of
UTF-8 text
by processing 16 bytes at a time
(John Naylor, Heikki Linnakangas)
Improve performance for sorts that exceed
linkend="guc-work-mem">work_mem
(Heikki Linnakangas)
Improve performance and reduce memory consumption of in-memory
sorts (Ronan Dunklau, David Rowley, Thomas Munro, John Naylor)
Allow
WAL
linkend="guc-full-page-writes">full page writes to use
LZ4 and Zstandard compression (Andrey Borodin, Justin Pryzby)
Add support for writing
WAL
using direct I/O on
macOS (Thomas Munro)
Allow vacuum to be more
aggressive in setting the oldest frozen and multi transaction id
(Peter Geoghegan)
linkend="ddl-foreign-data">foreign tables to perform
parallel foreign table scans in more cases (Andrey Lepikhov,
Etsuro Fujita)
rank(), dense_rank() and
count()
(David Rowley)
Improve the performance of spinlocks on high-core-count ARM64
systems (Geoffrey Blake)
Enable default logging of checkpoints and slow autovacuum
operations (Bharath Rupireddy)
Generate progress messages in the server log during slow server
starts (Nitin Jadhav, Robert Haas)
Store cumulative statistics
system data in shared memory (Kyotaro Horiguchi, Andres
Freund, Melanie Plageman)
Add additional information to VACUUM VERBOSE
and autovacuum logging messages (Peter Geoghegan)
Add EXPLAIN
(BUFFERS) output for temporary file block I/O
(Masahiko Sawada)
Allow log output in
JSON format (Sehrope Sarkuni, Michael Paquier)
linkend="monitoring-stats-funcs-table">pg_stat_reset_single_table_counters()
to reset the counters of relations shared across all databases
(Sadhuprasad Patro)
Add wait events for local
shell commands (Fujii Masao)
Allow table accesses done by
a view to optionally be
controlled by privileges of the view's caller (Christoph Heiss)
linkend="predefined-roles-table">pg_write_server_files
predefined role to perform server-side base backups (Dagfinn
Ilmari Mannsåker)
to grant permissions to change individual server variables via
SET and ALTER SYSTEM
(Mark Dilger)
linkend="predefined-roles-table">pg_checkpoint
that allows members to run CHECKPOINT
(Jeff Davis)
and
linkend="view-pg-shmem-allocations">pg_shmem_allocations
(Bharath Rupireddy)
to grant permissions on
linkend="functions-admin-signal">pg_log_backend_memory_contexts()
(Jeff Davis)
Add server variable
linkend="guc-shared-memory-size">shared_memory_size
to report the size of allocated shared memory (Nathan Bossart)
Add server variable
linkend="guc-shared-memory-size-in-huge-pages">shared_memory_size_in_huge_pages
to report the number of huge memory pages required (Nathan Bossart)
Honor server variable
linkend="guc-shared-preload-libraries">shared_preload_libraries
in single-user mode (Jeff Davis)
On Solaris, make the default setting of
linkend="guc-dynamic-shared-memory-type">dynamic_shared_memory_type
be sysv (Thomas Munro)
Allow postgres
-C to properly report runtime-computed values
(Nathan Bossart)
Add support for LZ4 and Zstandard compression of server-side
linkend="backup-base-backup">base backups (Jeevan Ladhe,
Robert Haas)
Run the checkpointer and bgwriter processes during crash recovery
(Thomas Munro)
Allow
WAL processing to pre-fetch needed file
contents (Thomas Munro)
Allow archiving via loadable modules (Nathan Bossart)
No longer require
linkend="protocol-replication">IDENTIFY_SYSTEM
to be run before START_REPLICATION (Jeff Davis)
Allow publication of
all tables in a schema (Vignesh C, Hou Zhijie, Amit Kapila)
Allow publication content to be filtered using a
WHERE clause (Hou Zhijie, Euler Taveira,
Peter Smith, Ajin Cherian, Tomas Vondra, Amit Kapila)
Allow publication content to
be restricted to specific columns (Tomas Vondra, Álvaro Herrera,
Rahila Syed)
Allow skipping of transactions on a subscriber using
linkend="sql-altersubscription">ALTER SUBSCRIPTION
... SKIP (Masahiko Sawada)
Add support for prepared (two-phase) transactions to logical
replication (Peter Smith, Ajin Cherian, Amit Kapila, Nikhil
Sontakke, Stas Kelvich)
Prevent logical replication of empty transactions (Ajin Cherian,
Hou Zhijie, Euler Taveira)
Add
SQL functions to monitor the directory
contents of logical replication slots (Bharath Rupireddy)
Allow subscribers to stop the application of logical replication changes on error
(Osumi Takamichi, Mark Dilger)
Adjust subscriber server variables to match the publisher so
datetime and float8 values are interpreted consistently (Japin Li)
Add system view
linkend="monitoring-pg-stat-subscription-stats">pg_stat_subscription_stats
to report on subscriber activity (Masahiko Sawada)
Suppress duplicate entries in the
linkend="view-pg-publication-tables">pg_publication_tables
system view (Hou Zhijie)
linkend="sql-merge">MERGE
command to adjust one table to match another (Simon Riggs, Pavan
Deolasee, Álvaro Herrera, Amit Langote)
Add support for
HEADER option in
linkend="sql-copy">COPY text format
(Rémi Lapeyre)
Add new
WAL-logged method for
linkend="sql-createdatabase">database creation (Dilip Kumar)
Allow CREATE
DATABASE to set the database
OID
(Shruthi Gowda, Antonin Houska)
linkend="sql-alterdatabase">ALTER DATABASE SET
TABLESPACE from occasionally failing during
concurrent use on Windows (Thomas Munro)
Allow foreign key ON
DELETE SET actions to affect only specified columns
(Paul Martinez)
Allow ALTER
TABLE to modify a table's ACCESS
METHOD (Justin Pryzby, Jeff Davis)
Properly call object access hooks when
linkend="sql-altertable">ALTER TABLE
causes table rewrites (Michael Paquier)
Allow creation of unlogged
linkend="sql-createsequence">sequences (Peter Eisentraut)
Track dependencies on individual columns in the results of
functions returning composite types (Tom Lane)
a numeric
value to be negative, or greater than its precision (Dean Rasheed,
Tom Lane)
Improve overflow detection when casting values to
linkend="datatype-datetime">interval (Joe Koshakow)
Change the I/O format of type "char" for non-ASCII
characters (Tom Lane)
Update the display width information of modern Unicode characters,
like emojis (Jacob Champion)
Add multirange input to
linkend="functions-aggregate-table">range_agg()
(Paul Jungwirth)
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 the ability to compute the distance between
linkend="datatype-polygon">polygons (Tom Lane)
linkend="functions-formatting-table">to_char()
format codes of, tzh, and
tzm (Nitin Jadhav)
TIME ZONE to a time with time zone
value, use the transaction start time rather than wall clock time
to determine whether DST applies (Aleksander Alekseev, Tom Lane)
linkend="textsearch-functions-table">ts_delete() and
setweight() functions with array arguments
(Jean-Christophe Arnu)
Add support for petabyte units to
linkend="functions-admin-dbsize">pg_size_pretty()
and pg_size_bytes() (David Christensen)
linkend="pg-event-trigger-ddl-command-end-functions">pg_event_trigger_ddl_commands()
to output references to other sessions' temporary schemas using the
actual schema name (Tom Lane)
Fix enforcement of PL/pgSQL variable CONSTANT
markings (Tom Lane)
Allow
IP address matching against a server
certificate's Subject Alternative Name (Jacob Champion)
Allow PQsslAttribute() to report the
SSL library type without requiring a libpq
connection (Jacob Champion)
Change query cancellations sent by the client to use the same
TCP settings as normal client connections
(Jelte Fennema)
Prevent libpq event callback failures from forcing an error result
(Tom Lane)
linkend="pgbench">
pgbench to
retry after serialization and deadlock failures (Yugo Nagata,
Marina Polyakova)
Improve performance
command, by sending data in larger chunks (Heikki Linnakangas)
Add \dconfig command to report server variables
(Mark Dilger, Tom Lane)
Add \getenv command
to assign the value of an environment variable to a
Add + option to the
\lo_list and \dl commands to
show large-object privileges (Pavel Luzanov)
Add a pager option for the \watch
command (Pavel Stehule, Thomas Munro)
Make
psql include intra-query double-hyphen
comments in queries sent to the server (Tom Lane, Greg Nancarrow)
meta-# command will insert a double-hyphen
comment marker (Tom Lane)
Make
psql output all results when multiple
queries are passed to the server at once (Fabien Coelho)
final COMMIT command
to ROLLBACK only
if ON_ERROR_STOP is set (Michael Paquier)
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's backslash
commands to servers running
PostgreSQL
9.2 or later (Tom Lane)
public schema ownership changes and security
labels (Noah Misch)
Improve performance of dumping databases with many objects
(Tom Lane)
Improve parallel
pg_dump's performance
for tables with large
TOAST tables (Tom Lane)
Add dump/restore option
to force restore to only use the default table access method
(Justin Pryzby)
linkend="app-pg-dumpall">
pg_dumpall
to servers running
PostgreSQL 9.2 or
later (Tom Lane)
linkend="app-pgbasebackup">
pg_basebackup
option to control the base backup location
(Robert Haas)
gzip, LZ4, and Zstandard compression and client-side LZ4 and
Zstandard compression of base backup files (Dipesh Pandit,
Jeevan Ladhe)
Allow
pg_basebackup to compress on
the server side and decompress on the client side before storage
(Dipesh Pandit)
option to control the compression
location (server or client), compression method, and compression
options (Michael Paquier, Robert Haas)
Add the LZ4 compression method to
linkend="app-pgreceivewal">
pg_receivewal
(Georgios Kokolatos)
Add additional capabilities to
option (Georgios Kokolatos)
Improve
pg_receivewal's ability to
restart at the proper
WAL location (Ronan
Dunklau)
option to simplify use when server
configuration files are stored outside the data directory (Gunnar
Bluth)
Store
pg_upgrade's log and
temporary files in a subdirectory of the new cluster called
pg_upgrade_output.d (Justin Pryzby)
Disable default status reporting during
pg_upgrade operation if the output is
not a terminal (Andres Freund)
Make
pg_upgrade report all databases
with invalid connection settings (Jeevan Ladhe)
Make
pg_upgrade preserve tablespace
and database OIDs, as well as relation relfilenode numbers
(Shruthi Gowda, Antonin Houska)
Add a option to
pg_upgrade (Michael Paquier)
Limit support of
pg_upgrade to old
servers running
PostgreSQL 9.2 or later
(Tom Lane)
Allow
pg_waldump output to be filtered by
relation file node, block number, fork number, and full page images
(David Christensen, Thomas Munro)
Make
pg_waldump report statistics
before an interrupted exit (Bharath Rupireddy)
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)
linkend="functions-info-catalog-table">pg_encoding_to_char()
and pg_char_to_encoding() (Ian Lawrence
Barwick)
Document the
linkend="functions-string-other">^@
starts-with operator (Tom Lane)
Add support for continuous integration testing using cirrus-ci
(Andres Freund, Thomas Munro, Melanie Plageman)
linkend="configure-options-features">
to enable Zstandard builds (Jeevan Ladhe, Robert Haas, Michael
Paquier)
non-community
PostgreSQL distributions
to identify libraries that are not compatible with other builds
(Peter Eisentraut)
Create a new
linkend="catalog-pg-type">pg_type.typcategory
value for "char" (Tom Lane)
linkend="protocol-replication-base-backup">TARGET
to specify a new COPY method to be used for base
backups (Robert Haas)
linkend="protocol-replication-base-backup">COMPRESSION
and COMPRESSION_DETAIL to specify the compression
method and options (Robert Haas)
Remove server support for old BASE_BACKUP
command syntax and base backup protocol (Robert Haas)
Add support for extensions to set custom backup targets (Robert
Haas)
Allow extensions to define custom
WAL
resource managers (Jeff Davis)
Add function
linkend="functions-info-catalog-table">pg_settings_get_flags()
to get the flags of server variables (Justin Pryzby)
On Windows, export all the server's global variables using
PGDLLIMPORT markers (Robert Haas)
Require GNU
make version 3.81 or later
to build
PostgreSQL (Tom Lane)
Require OpenSSL to build the
linkend="pgcrypto">
pgcrypto
extension (Peter Eisentraut)
version 5.8.3 or later (Dagfinn Ilmari Mannsåker)
version 3.2 or later (Andres Freund)
Allow
linkend="amcheck">
amcheck to
check sequences (Mark Dilger)
Improve
amcheck sanity checks for
TOAST tables (Mark Dilger)
Add new module
linkend="basebackup-to-shell">basebackup_to_shell
as an example of a custom backup target (Robert Haas)
Add new module
linkend="basic-archive">
basic_archive
as an example of performing archiving via a library (Nathan Bossart)
Allow
linkend="btree-gist">
btree_gist
indexes on boolean columns (Emre Hasegeli)
linkend="pageinspect">
pageinspect's
page_header() to handle 32-kilobyte page sizes
(Quan Zongliang)
Add counters for temporary file block I/O to
linkend="pgstatstatements">
pg_stat_statements
(Masahiko Sawada)
Add
JIT counters to pg_stat_statements (Magnus
Hagander)
Add new module
linkend="pgwalinspect">
pg_walinspect
(Bharath Rupireddy)
Indicate the permissive/enforcing state in
linkend="sepgsql">
sepgsql log
messages (Dave Page)
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)
Allow parallel commit on
postgres_fdw
servers (Etsuro Fujita)