Re: BUG #19393: pg_upgrade fails with duplicate key violation when CHECK constraint named *_not_null exists
Hüseyin Demir <huseyin.d3r@gmail.com>
From: Hüseyin Demir <huseyin.d3r@gmail.com>
To: Laurenz Albe <laurenz.albe@cybertec.at>
Cc: pgsql-bugs@lists.postgresql.org
Date: 2026-02-09T17:16:26Z
Lists: pgsql-bugs, pgsql-hackers
Hi, > I would prefer not to, but I don't have a strong opinion about it. > Which name PostgreSQL chooses for the generated NOT NULL constraint > is not important, as long as it doesn't conflict with the existing name. I also agree that it solves the problem in 18 which I already tested. Thanks again for your help. Laurenz Albe <laurenz.albe@cybertec.at>, 9 Şub 2026 Pzt, 12:01 tarihinde şunu yazdı: > On Mon, 2026-02-09 at 07:24 +0100, Hüseyin Demir wrote: > > Thanks for the patch and LGTM for PostgreSQL 18. > > Thanks for checking! > > > I tried to create following table on PG18 > > > > benchmark=# CREATE TABLE two_not_null_constraints ( > > col integer NOT NULL, > > CONSTRAINT two_not_null_constraints_col_not_null CHECK (col IS NOT > NULL) > > ); > > ERROR: duplicate key value violates unique constraint > "pg_constraint_conrelid_contypid_conname_index" > > DETAIL: Key (conrelid, contypid, conname)=(16385, 0, > two_not_null_constraints_col_not_null) already exists. > > > > In PG17 I was able to create the table. > > Yes, because what causes your problemm is a new feature in v18. > > > One question during the tests should we confirm the output of > pg_constraint table ? > > It would make sense during the tests but the current test is also good > to proceed. > > > > Yours, > Laurenz Albe >
Commits
-
Update .abi-compliance-history for AddRelationNotNullConstraints().
- 70eca789eaaa 18.3 landed
-
Avoid name collision with NOT NULL constraints
- 8d9a97e0bb6d 18.3 landed
- 0eeffd31bf9b 19 (unreleased) landed