Re: BUG #19507: Auto-named partition table constraint conflicts

From: Vismay Tiwari <vismay(dot)t(at)gmail(dot)com>
To: pgsql-bugs(at)lists(dot)postgresql(dot)org
Subject: Re: BUG #19507: Auto-named partition table constraint conflicts
Date: 2026-07-09 09:15:50
Message-ID: CALHMmB_q1Sme-7_OvGiZAyJ6eSB8eKkfRuwreZK3rO88Nfk78w@mail.gmail.com
Views: Whole Thread | Raw Message | Download mbox | Resend email
Thread:
Lists: pgsql-bugs

Hi,

Thanks for the report, Marko. I could reproduce both cases on current master.

The root of it is that when the constraint name is auto-generated for the
partitioned parent, ChooseConstraintName only checks for a clash within the
parent's own schema. So a partition sitting in another schema that already has
a constraint by that name isn't noticed, and the name then collides once it's
propagated down. A same-schema partition doesn't trip this, because the
namespace-scoped lookup already sees that one and picks a non-conflicting name;
that makes it specific to partitions in other schemas.

The attached patch gathers the constraint names already present on the
descendants and passes them to ChooseConstraintName as names to avoid, so the
generated name comes out unique across the whole hierarchy. I deliberately kept
those names out of the checknames/nnnames lists, since those also drive the
duplicate check for explicitly-named constraints, and folding them in would
break legitimate merges of same-named inherited constraints. It's guarded on
relhassubclass, so there's no extra work for tables without children.

I added a regression test in constraints.sql covering both the SET NOT NULL and
ADD CHECK cases; make check passes.

One thing I didn't chase down: foreign-key names go through a similar
auto-naming path, so they may have the same issue. I haven't tested that, so
I'm flagging it in case it's worth a look.

Regards,
Vismay Tiwari

Attachment Content-Type Size
v1-0001-Avoid-auto-generated-constraint-name-collisions-a.patch application/octet-stream 12.6 KB

Responses

Browse pgsql-bugs by date

  From Date Subject
Next Message Vismay Tiwari 2026-07-09 09:31:43 Re: BUG #19507: Auto-named partition table constraint conflicts
Previous Message PG Bug reporting form 2026-07-09 08:57:00 BUG #19549: Physical replication slot xmin value stuck