Re: NOT ENFORCED constraint feature

From: Amul Sul <sulamul(at)gmail(dot)com>
To: Peter Eisentraut <peter(at)eisentraut(dot)org>
Cc: jian he <jian(dot)universality(at)gmail(dot)com>, Alvaro Herrera <alvherre(at)alvh(dot)no-ip(dot)org>, pgsql-hackers <pgsql-hackers(at)postgresql(dot)org>, Joel Jacobson <joel(at)compiler(dot)org>
Subject: Re: NOT ENFORCED constraint feature
Date: 2025-01-17 12:50:15
Message-ID: CAAJ_b95wXG8Nc=HGK9b-jmAEpdpgg-+y6uUETPMya+6CiSUkkQ@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

On Thu, Jan 16, 2025 at 6:55 PM Amul Sul <sulamul(at)gmail(dot)com> wrote:
>
> On Thu, Jan 16, 2025 at 6:07 PM Peter Eisentraut <peter(at)eisentraut(dot)org> wrote:
> >
> > On 11.01.25 18:26, Amul Sul wrote:
> > > On Saturday, 11 January 2025, Peter Eisentraut <peter(at)eisentraut(dot)org
> > > <mailto:peter(at)eisentraut(dot)org>> wrote:
> > >
> > > I have applied v8-0001, with some editing of the documentation and
> > > in the tests. I'll continue reviewing the subsequent patches.
> > >
> > >
> > > Thank you for the improvement and commit.
> >
> > I have also committed v8-0002, the refactor of ATExecAlterConstrRecurse().
> >
> > All the remaining patches go together, so w are now waiting on an
> > updated patch set from you.
> >
>
> Thanks!
>
> Yes, I'm working on it and will post it tomorrow.
>

Attached is a new set of patches. Please ignore patch 0001 here, which
was posted separately [1] -- proposes allowing invalid foreign key
constraints on partitioned tables. Patch 0002 refactors
tryAttachPartitionForeignKey(), primarily needed by the new patch
v9-0006 included in this set. This patch handles merging constraints
with different enforceability. Without it, a new constraint would be
created on the child. However, this patch introduces additional code
that may appear somewhat messy or confusing. I've added plenty of
comments to clarify the logic. While I’ve done some testing, it hasn’t
been extensive. I plan to do more testing in the next week.

Please let me know if we should continue with patch 0006 improvement,
or if the feature up to patch 0005, which enforces matching
enforceability before merging constraints, is sufficient.

1] https://postgr.es/m/CAAJ_b96Bp=-ZwihPPtuaNX=SrZ0U6ZsXD3+fgARO0JuKa8v2jQ@mail.gmail.com

Regards,
Amul

Attachment Content-Type Size
v9-0001-POSTED_SEPARATLY-Allow_NOT_VALID_FK_on_Partitione.patch application/x-patch 19.7 KB
v9-0002-refactor-Split-tryAttachPartitionForeignKey.patch application/x-patch 14.3 KB
v9-0003-refactor-Change-ATExecAlterConstrRecurse-argument.patch application/x-patch 5.0 KB
v9-0004-Remove-hastriggers-flag-check-before-fetching-FK-.patch application/x-patch 10.8 KB
v9-0005-Add-support-for-NOT-ENFORCED-in-foreign-key-const.patch application/x-patch 56.9 KB
v9-0006-Merge-the-parent-and-child-constraints-with-diffe.patch application/x-patch 17.6 KB

In response to

Browse pgsql-hackers by date

  From Date Subject
Next Message Shlok Kyal 2025-01-17 13:20:41 Re: Introduce XID age and inactive timeout based replication slot invalidation
Previous Message Vladimir Sitnikov 2025-01-17 12:22:18 Re: Add a property to automatically suspend portals as they produce given number of bytes