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.