From: Tom Lane Date: Sun, 9 Nov 2025 17:30:08 +0000 (-0500) Subject: Release notes for 18.1, 17.7, 16.11, 15.15, 14.20, 13.23. X-Git-Tag: REL_18_1~5 X-Git-Url: http://git.postgresql.org/gitweb/static/gitweb.js?a=commitdiff_plain;h=5632d2f5deca271af7dd26a8e2a4a28f45f003dd;p=postgresql.git Release notes for 18.1, 17.7, 16.11, 15.15, 14.20, 13.23. --- diff --git a/doc/src/sgml/release-18.sgml b/doc/src/sgml/release-18.sgml index 1a567225831..7b04859d32f 100644 --- a/doc/src/sgml/release-18.sgml +++ b/doc/src/sgml/release-18.sgml @@ -52,82 +52,6 @@ Branch: REL_17_STABLE [1e6dfdaa0] 2025-11-04 12:25:20 +0100 - - Correctly treat JSON constructor expressions, such - as JSON_OBJECT(), as non-strict (Tender Wang, - Richard Guo) - § - - - - In some cases these expressions can yield a non-null result despite - having one or more null inputs, making them non-strict. The planner - incorrectly classified them as strict and could perform incorrect - query transformations as a result. - - - - - - - Further fix processing of character classes within SIMILAR - TO regular expressions (Laurenz Albe) - § - - - - The previous fix for translating SIMILAR TO - pattern matching expressions to POSIX-style regular expressions - broke a corner case that formerly worked: if there is an escape - character right after the opening bracket and then a closing bracket - right after the escape sequence (for - example [\w]), the closing bracket was no longer - seen as terminating the character class. - - - - - - - Fix parsing of aggregate functions whose arguments contain a - sub-select with a FROM reference to a CTE outside - the aggregate function (Tom Lane) - § - - - - Such a CTE reference must act like a outer-level column reference - when determining the aggregate's semantic level; but it was not - being accounted for, leading to obscure planner or executor errors. - - - - - - - Fix no relation entry for relid errors in corner - cases while estimating SubPlan costs (Richard Guo) - § - - - - - - - Avoid unlikely use-after-free in planner's expansion of partitioned - tables (Bernd Reiß) - § - - - - There was a hazard only when the last live partition was - concurrently dropped. - - - - - - - Fix possible infinite loop in GIN index scans with multiple scan - conditions (Tom Lane) - § - - - - GIN can handle scan conditions that can reject non-matching entries - but are not useful for searching for relevant entries, for example - a tsquery clause like !term. But - such a condition must not be first in the array of scan conditions. - The code failed to ensure that in all cases, with the result that a - query having a mix of such conditions with normal conditions might - work or not depending on the order in which the conditions were - given in the query. - - - - - - - Ensure that GIN index scans can be canceled (Tom Lane) - § - - - - Some code paths were capable of running for a long time without - checking for interrupts. - - - - - - - Add missing EvalPlanQual rechecks for TID Scan and TID Range Scan - plan nodes (Sophie Alpert, David Rowley) - § - § - - - - This omission led to possibly not rechecking a condition - on ctid during concurrent-update - situations, causing the update's behavior to vary depending on which - plan type had been selected. - - - - - - - Fix pg_event_trigger_dropped_objects()'s - reporting of temporary status (Antoine Violin, Tom Lane) - § - § - - - - If a dropped column default, trigger, or RLS policy belongs to a - temporary table, report it with is_temporary - true. - - - - - - - Fix memory leakage in hashed subplans (Haiyang Li) - § - - - - Any memory consumed by the hash functions used for hashing tuples - constituted a query-lifespan memory leak. One way that could happen - is if the values being hashed require de-toasting. - - - - - - - Avoid leaking SMgrRelation objects in the - startup process (Jingtang Zhang) - § - - - - In a long-running standby server, the hashtable holding these - objects could bloat substantially, because there was no mechanism - for freeing no-longer-interesting entries. - - - - - - - Fix corruption of the shared statistics table after out-of-memory - failures (Mikhail Kot) - § - - - - Previously, an out-of-memory failure partway through creating a new - hash table entry left a broken entry behind, potentially causing - errors in other sessions later. - - - - - - - Fix concurrent update issue in MERGE - (Yugo Nagata) - § - - - - When executing a MERGE UPDATE action, if there is - more than one concurrent update of the target row, the - lock-and-retry code would sometimes incorrectly identify the latest - version of the target tuple, leading to incorrect results. - - - - - - - Add missing replica identity checks in MERGE and - INSERT ... ON CONFLICT DO UPDATE - (Zhijie Hou) - § - § - - - - If MERGE may require update or delete actions, - and the target table publishes updates or deletes, insist that it - have a REPLICA IDENTITY defined. Failing to - require this can silently break replication. - Likewise, INSERT with - an UPDATE option must require REPLICA - IDENTITY if the target table publishes either inserts or - updates. - - - - - - - Avoid deadlock during DROP SUBSCRIPTION when - publisher is on the same server as subscriber (Dilip Kumar) - § - - - - - - - Avoid failures in logical replication due to chance collisions of - file numbers between regular and temporary tables (Vignesh C) - § - - - - This low-probability problem manifested as transient errors - like unexpected duplicate for - tablespace X, - relfilenode Y. - contrib/autoprewarm was also affected. - A side-effect of the fix is that the SQL - function pg_filenode_relation() will now ignore - temporary tables. - - - - - - - Avoid assertion failure when trying to release a replication slot in - single-user mode (Hayato Kuroda) - § - - - - - - - Avoid startup failure on macOS and BSD platforms when there is a - collision with a pre-existing semaphore set (Tom Lane) - § - - - - If the pre-existing set has fewer semaphores than we asked for, - these platforms return EINVAL - not EEXIST as our code expected, resulting - in failure to start the database. - - - - - - - Fix libpq's trace output of characters - with the high bit set (Ran Benita) - § - - - - On platforms where char is considered signed, the - output included unsightly \xffffff decoration. - - - - - - - In pg_dump, dump security labels on - subscriptions and event triggers (Jian He, Fujii Masao) - § - - - - Labels on these types of objects were previously missed. - - - - - - Fix pg_dump's sorting of default ACLs and - foreign key constraints (Kirill Reshke, Álvaro Herrera) - § - § + Fix pg_dump's sorting of + foreign key constraints (Álvaro Herrera) § - Ensure consistent ordering of these database object types, as was + Ensure consistent ordering of these database objects, as was already done for other object types. - - In pg_dump, label comments for - separately-dumped domain constraints with the proper dependency - (Noah Misch) - § - - - - This error could lead to - parallel pg_restore attempting to create - the comment before the constraint itself has been restored. - - - - - - - In pg_restore, skip comments and security - labels for publications and subscriptions that are not being - restored (Jian He, Fujii Masao) - § - § - - - - Do not emit COMMENT or SECURITY - LABEL commands for these objects - when - or is specified. - - - - - - - Fix building with LLVM version 21 and later (Holger Hoffstätte) - § - - - - - - When building with meson, apply the same special optimization flags - for numeric.c - and checksum.c as the makefile build does - (Nathan Bossart, Jeff Davis) - § - § + Harden our read and write barrier macros to satisfy Clang + (Thomas Munro) + § - Use for both files, as well - as - for checksum.c, to match what the makefiles - have long done. + We supposed that __atomic_thread_fence() is a + sufficient barrier to prevent the C compiler from re-ordering memory + accesses around it, but it appears that that's not true for Clang, + allowing it to generate incorrect code for at least RISC-V, MIPS, + and LoongArch machines. Add explicit compiler barriers to fix that.