From: | Junwang Zhao <zhjwpku(at)gmail(dot)com> |
---|---|
To: | Tender Wang <tndrwang(at)gmail(dot)com> |
Cc: | Alvaro Herrera <alvherre(at)alvh(dot)no-ip(dot)org>, Jehan-Guillaume de Rorthais <jgdr(at)dalibo(dot)com>, "pgsql-hackers(at)postgresql(dot)org" <pgsql-hackers(at)postgresql(dot)org>, Alexander Lakhin <exclusion(at)gmail(dot)com> |
Subject: | Re: [BUG] Fix DETACH with FK pointing to a partitioned table fails |
Date: | 2024-07-26 06:36:16 |
Message-ID: | CAEG8a3KsXSW+nSBFEhc2_F_FYCPu5eDDcy_1CFrtP6oQOVeqEQ@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
On Mon, Jul 22, 2024 at 1:52 PM Tender Wang <tndrwang(at)gmail(dot)com> wrote:
>
>
>
> Alvaro Herrera <alvherre(at)alvh(dot)no-ip(dot)org> 于2024年7月19日周五 21:18写道:
>>
>> Hello,
>>
>> I think the fix for the check triggers should be as the attached. Very
>> close to what you did, but you were skipping some operations that needed
>> to be kept. AFAICS this patch works correctly for the posted cases.
>
>
> After applying the attached, the r_1_p_id_fkey1 will have redundant action
> triggers, as below:
> postgres=# select oid, conname, contype, conrelid, conindid,conparentid, confrelid,conislocal,coninhcount, connoinherit from pg_constraint where oid = 16402;
> oid | conname | contype | conrelid | conindid | conparentid | confrelid | conislocal | coninhcount | connoinherit
> -------+----------------+---------+----------+----------+-------------+-----------+------------+-------------+--------------
> 16402 | r_1_p_id_fkey1 | f | 16394 | 16392 | 0 | 16389 | t | 0 | f
> (1 row)
>
> postgres=# select oid, tgrelid, tgparentid, tgconstrrelid, tgconstrindid, tgconstraint from pg_trigger where tgconstraint = 16402;
> oid | tgrelid | tgparentid | tgconstrrelid | tgconstrindid | tgconstraint
> -------+---------+------------+---------------+---------------+--------------
> 16403 | 16389 | 16400 | 16394 | 16392 | 16402
> 16404 | 16389 | 16401 | 16394 | 16392 | 16402
> 16422 | 16389 | 0 | 16394 | 16392 | 16402
> 16423 | 16389 | 0 | 16394 | 16392 | 16402
> (4 rows)
>
Yes, seems Alvaro has mentioned that he hasn't looked at the
action triggers, in the attached patch, I add some logic that
first check if there exists action triggers, if yes, just update
their Parent Trigger to InvalidOid.
>
> --
> Tender Wang
--
Regards
Junwang Zhao
Attachment | Content-Type | Size |
---|---|---|
v2-0001-Fix-partition-detach-on-tables-with-FKs-to-partit.patch | application/octet-stream | 8.0 KB |
From | Date | Subject | |
---|---|---|---|
Next Message | Junwang Zhao | 2024-07-26 06:56:51 | Re: [BUG] Fix DETACH with FK pointing to a partitioned table fails |
Previous Message | Amit Kapila | 2024-07-26 06:26:03 | Re: Conflict detection and logging in logical replication |