tOn Sat, Sep 19, 2026 at 02:49:55PM +0000, PG Doc comments form wrote:
> The following documentation comment has been logged on the website:
>
> Page: https://www.postgresql.org/docs/18/release-18.html
> Description:
>
> Commit 086c84b23 changed what a foreign key with ON DELETE RESTRICT or ON
> UPDATE RESTRICT raises when it refuses a change: SQLSTATE 23001
> (restrict_violation) instead of 23503 (foreign_key_violation), and the
> message now says "violates RESTRICT setting of foreign key constraint". The
> PostgreSQL 18 release notes do not mention it.
>
> Code that catches 23503 to report that a row is still referenced stops
> matching RESTRICT keys after upgrading, while NO ACTION keys still raise
> 23503. The same notes list the change to the XML error codes (cd838e200), so
> this one seems to belong there as well.
How do we want to handle such cases in the release notes? The new codes
are not mentioned in the commit message, and there are no doc changes in the
patch. We have a similar commit from August, which was later reverted:
commit c16a1b4f2ce
Author: Peter Eisentraut <[email protected]>
Date: Fri Aug 21 13:55:58 2026 +0200
Fix error code for null FOR PORTION OF target
When the target expression of FOR PORTION OF (...) evaluated to
NULL,
ExecInitModifyTable raised an error without an errcode, so clients
got
the internal error code XX000 for a user-reachable condition.
Oversight in commit 8e72d914c52.
To fix, report ERRCODE_NULL_VALUE_NOT_ALLOWED, and reword the
message
to "FOR PORTION OF target must not be null", matching similar
executor
messages such as "frame starting offset must not be null".
Bug: #19630
Reported-by: Zheng Wang <[email protected]>
Reported-by: Yanjie Zhao
Reported-by: Yiyang Liu
Author: Zsolt Parragi <[email protected]>
Discussion:
https://www.postgresql.org/message-id/flat/19630-9f10ca28426295fa%40postgresql.org
--
Bruce Momjian <[email protected]> https://momjian.us
EDB https://enterprisedb.com
Do not let urgent matters crowd out time for investment in the future.