| 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:31:43 |
| Message-ID: | CALHMmB-wB_=ZtCB+MVjrELZ8vdujMop82hpyX4UjHKx1LMHnfA@mail.gmail.com |
| Views: | Whole Thread | Raw Message | Download mbox | Resend email |
| Thread: | |
| Lists: | pgsql-bugs |
Hi Marko,
Apologies for the noise — I replied off the original report and only
afterward noticed you'd already posted a complete patch back on the 4th.
Please disregard the patch I sent; yours is clearly further along
(backpatch-tested and already in review).
Happy to review or test it if a second pair of eyes would help. Sorry for
the overlap.
Regards,
Vismay
On Thu, Jul 9, 2026 at 2:45 PM Vismay Tiwari <vismay(dot)t(at)gmail(dot)com> wrote:
>
> 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
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Konstantin Knizhnik | 2026-07-09 10:08:43 | Re: BUG #19519: REPACK can fail due to missing chunk for toast value |
| Previous Message | Vismay Tiwari | 2026-07-09 09:15:50 | Re: BUG #19507: Auto-named partition table constraint conflicts |