Re: BUG #19393: pg_upgrade fails with duplicate key violation when CHECK constraint named *_not_null exists - Mailing list pgsql-bugs

From Hüseyin Demir
Subject Re: BUG #19393: pg_upgrade fails with duplicate key violation when CHECK constraint named *_not_null exists
Date
Msg-id CAB5wL7ay2WNdAJZLoDngou=qa4y=uKkQhLZbNVg8kcduwkYqpQ@mail.gmail.com
Whole thread
In response to Re: BUG #19393: pg_upgrade fails with duplicate key violation when CHECK constraint named *_not_null exists  (Laurenz Albe <laurenz.albe@cybertec.at>)
List pgsql-bugs
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

pgsql-bugs by date:

Previous
From: Tom Lane
Date:
Subject: Re: Possibly a bug
Next
From: Fujii Masao
Date:
Subject: Re: basic_archive lost archive_directory