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
v2-0001-Fix-partition-detach-on-tables-with-FKs-to-partit.patch
Description: Binary data