On Mon, Jul 22, 2024 at 1:52 PM Tender Wang <tndrw...@gmail.com> wrote:
>
>
>
> Alvaro Herrera <alvhe...@alvh.no-ip.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: v2-0001-Fix-partition-detach-on-tables-with-FKs-to-partit.patch
Description: Binary data

Reply via email to