Re: NOT ENFORCED constraint feature
amul sul <sulamul@gmail.com>
From: Amul Sul <sulamul@gmail.com>
To: Joel Jacobson <joel@compiler.org>
Cc: pgsql-hackers <pgsql-hackers@postgresql.org>
Date: 2024-11-04T12:17:27Z
Lists: pgsql-hackers
Commits
Same data as JSON:
GET /api/v1/messages/:b64id/commits
the thread's linked commits as JSON, with link sources.
API reference →
-
Add support for NOT ENFORCED in foreign key constraints
- eec0040c4bcd 18.0 landed
-
Expand test a bit
- 5d5f415816a6 18.0 landed
-
refactor: Pass relation OID instead of Relation to createForeignKeyCheckTriggers()
- ef7a5af77d44 18.0 landed
-
refactor: Split ATExecAlterConstraintInternal()
- 639238b978fe 18.0 landed
-
refactor: Move some code that updates pg_constraint to a separate function
- a3280e2a494f 18.0 landed
-
Move RemoveInheritedConstraint() call slightly earlier
- dabccf45139a 18.0 landed
-
refactor: Split tryAttachPartitionForeignKey()
- 1d26c2d2c4b8 18.0 landed
-
refactor: re-add ATExecAlterChildConstr()
- 64224a834ce4 18.0 landed
-
Add ATAlterConstraint struct for ALTER .. CONSTRAINT
- 80d7f990496b 18.0 landed
-
refactor: split ATExecAlterConstrRecurse()
- 7a947ed25b54 18.0 landed
-
Add support for NOT ENFORCED in CHECK constraints
- ca87c415e2fc 18.0 landed
Attachments
- v2-0001-Add-support-for-NOT-ENFORCED-in-CHECK-constraints.patch (application/octet-stream) patch v2-0001
- v2-0002-refactor-split-ATExecAlterConstrRecurse.patch (application/octet-stream) patch v2-0002
- v2-0003-refactor-Change-ATExecAlterConstrRecurse-argument.patch (application/octet-stream) patch v2-0003
- v2-0004-Remove-hastriggers-flag-check-before-fetching-FK-.patch (application/octet-stream) patch v2-0004
- v2-0005-Add-support-for-NOT-ENFORCED-in-foreign-key-const.patch (application/octet-stream) patch v2-0005
On Tue, Oct 15, 2024 at 10:00 AM Amul Sul <sulamul@gmail.com> wrote: > > On Wed, Oct 9, 2024 at 2:44 PM Joel Jacobson <joel@compiler.org> wrote: > > > > On Tue, Oct 8, 2024, at 11:06, Amul Sul wrote: > > > The attached patch proposes adding the ability to define CHECK and > > > FOREIGN KEY constraints as NOT ENFORCED. > > > > Thanks for working on this! > > > > > Adding NOT ENFORCED to CHECK constraints is simple, see 0001 patch, > > > > I've looked at the 0001 patch and think it looks simple and straight forward. > > > > Thanks for looking into it. > > > > but implementing it for FOREIGN KEY constraints requires more code due > > > to triggers, see 0002 - 0005 patches. > > > > I can't say that much yet about the code changes in 0002 - 0005 yet, > > but I've tested the patches and successfully experimented with the feature. > > > > Also think the documentation is good and sound. Only found a minor typo: > > - Adding a enforced <literal>CHECK</literal> or <literal>NOT NULL</literal> > > + Adding an enforced <literal>CHECK</literal> or <literal>NOT NULL</literal> > > > > Ok, will fix it in the next version. Attached is the rebased version on the latest master(5b0c46ea093), including the aforesaid fix. Regards, Amul