Re: [BUG] Fix DETACH with FK pointing to a partitioned table fails

Jehan-Guillaume de Rorthais <jgdr@dalibo.com>

From: Jehan-Guillaume de Rorthais <jgdr@dalibo.com>
To: Tender Wang <tndrwang@gmail.com>
Cc: Alvaro Herrera <alvherre@alvh.no-ip.org>, Junwang Zhao <zhjwpku@gmail.com>, "pgsql-hackers@postgresql.org" <pgsql-hackers@postgresql.org>, Alexander Lakhin <exclusion@gmail.com>, Baehler Thomas SBB CFF FFS <thomas.baehler2@sbb.ch>, Guillaume Lelarge <guillaume@lelarge.info>, Michael Paquier <michael@paquier.xyz>
Date: 2024-09-03T09:26:37Z
Lists: pgsql-hackers
Hi Tender,

On Tue, 3 Sep 2024 10:16:44 +0800
Tender Wang <tndrwang@gmail.com> wrote:

> Jehan-Guillaume de Rorthais <jgdr@dalibo.com> 于2024年9月3日周二 05:02写道:
[…]
> > * Constraint & trigger catalog cleanup [1] (this thread)
> > * FK broken after DETACH [2]
> > * Maintenance consideration about self referencing FK between partitions
> > [3]
> >  
> 
> The third issue has been fixed, and codes have been pushed.  Because of my
> misunderstanding,
> It should not be here.

I just retried the SQL scenario Guillaume gave on both master and master with
Alvaro's patch. See:

https://www.postgresql.org/message-id/flat/CAECtzeWHCA%2B6tTcm2Oh2%2Bg7fURUJpLZb-%3DpRXgeWJ-Pi%2BVU%3D_w%40mail.gmail.com

It doesn't seem fixed at all. Maybe you are mixing up with another thread/issue?

> > 0. Splitting in two commits
> >
> >   […]
> >
> >   Unfortunately, this discussion about the first bug slipped to the second
> >   one when Tender stumbled on this bug as well and reported it. But, both
> >   bugs can be triggered independently, and have distinct fixes.
> 
> It's ok that these two issues are fixed together.  It is  because current
> codes don't handle better when the referenced side is the partition table.

I don't feel the same. Mixing two discussions and fixes together in the same
thread and commit makes life harder.

Last year, when you found the other bug, I tried to point you to the
right thread to avoid mixing subjects:

https://www.postgresql.org/message-id/20230810170345.26e41b05%40karst

If I wrote about the third (non fixed) issue yesterday, it's just because
Alvaro included a reference to it in his commit message. But I think we should
really keep up with this issue on its own, dedicated discussion:

https://www.postgresql.org/message-id/flat/CAECtzeWHCA%2B6tTcm2Oh2%2Bg7fURUJpLZb-%3DpRXgeWJ-Pi%2BVU%3D_w%40mail.gmail.com

Regards



Commits

  1. Fix some more bugs in foreign keys connecting partitioned tables

  2. Restructure foreign key handling code for ATTACH/DETACH

  3. Create foreign key triggers in partitioned tables too