Re: Foreign key validation failure in 18beta1
amul sul <sulamul@gmail.com>
From: Amul Sul <sulamul@gmail.com>
To: jian he <jian.universality@gmail.com>
Cc: Tender Wang <tndrwang@gmail.com>,
Alvaro Herrera <alvherre@alvh.no-ip.org>, pgsql-hackers@lists.postgresql.org, Antonin Houska <ah@cybertec.at>
Date: 2025-05-29T12:58:08Z
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 →
-
Avoid bogus scans of partitions when marking FKs enforced
- e6f98d8848f1 18.0 landed
-
Avoid bogus scans of partitions when validating FKs to partitioned tables
- cc733ed164c5 18.0 landed
-
Allow NOT VALID foreign key constraints on partitioned tables
- b663b9436e75 18.0 cited
On Thu, May 29, 2025 at 5:57 PM jian he <jian.universality@gmail.com> wrote: > > On Thu, May 29, 2025 at 8:12 PM Amul Sul <sulamul@gmail.com> wrote: > > > > > >> > [...] > > > The attached *draft* patch is based on your idea. > > > > > > The idea is that we only need to conditionally do > > > ``tab->constraints = lappend(tab->constraints, newcon);`` within > > > QueueFKConstraintValidation. > > > but the catalog update needs to be done recursively. > > > > I like this approach, but I don’t think the flag name "recursing" is > > appropriate, as the flag is meant to indicate whether we want to > > enqueue constraints for validation or not. > > > > Later, I came up with "need_validate", but it seems "queueValidation" > is better. > > I just realized we have the same problem with ALTER FOREIGN KEY ENFORCED. > for example: Yeah, I think adding a "currcon->confrelid == pkrelid" check before enqueueing validation in ATExecAlterConstrEnforceability() would address the issue, though I still need to test it thoroughly. Regards, Amul