Re: pg_restore error with partitioned table having exclude constraint

Japin Li <japinli@hotmail.com>

From: Japin Li <japinli@hotmail.com>
To: Álvaro Herrera <alvherre@kurilemu.de>
Cc: Keith Paskett <keith.paskett@logansw.com>, pgsql-bugs@lists.postgresql.org
Date: 2025-04-29T14:44:16Z
Lists: pgsql-bugs
On Mon, 28 Apr 2025 at 10:42, Álvaro Herrera <alvherre@kurilemu.de> wrote:
> On 2025-Apr-24, Japin Li wrote:
>
>> On Thu, 17 Apr 2025 at 17:18, Álvaro Herrera <alvherre@kurilemu.de> wrote:
>> > On 2025-Apr-17, Japin Li wrote:
>> >
>> >> It seems PG 16 does not support exclusion constraints on
>> >> partitioned tables.
>> >
>> > Yeah, my recollection is that they were purposefully disallowed
>> > (mainly because I didn't want to research how to fully make them
>> > work when adding local partitioned indexes), and that we needed to
>> > do more work if we wanted to let them through.  I suspect commit
>> > 8c852ba9a4 was mistaken to allow that case without looking for
>> > further implications.
>> 
>> Sorry, I’m unclear on “more work.” Can you explain further?
>
> Well, there are no tests in the patch.  8c852ba9a434 added some, but
> it's now clear that something was overlooked.  I think this patch should
> make more of an effort to cover all interesting cases in regression
> tests if there are holes in coverage; and also add something to verify
> that pg_dump and pg_upgrade work correctly for these constraints.
>

My understanding, based on the src/bin/pg_dump tests, is that they don't
involve a genuine restore of the dumped data to a database.  Instead, it
dumps to a file using pg_restore.   Is that correct?

I doubt whether I can add a test to pg_dump that would cover this issue.

-- 
Regrads,
Japin Li



Commits

Same data as JSON: GET /api/v1/messages/:b64id/commits the thread's linked commits as JSON, with link sources. API reference →
  1. Allow some exclusion constraints on partitions

  2. Local partitioned indexes