-- -- membership_rels_del_tr/0 -- create or replace function membership_rels_del_tr( ) returns trigger as $$ declare v_error text; map record; begin -- First check if removing this relation would violate any relational constraints v_error := rel_constraint__violation_if_removed(old.rel_id); if v_error is not null then raise EXCEPTION '-20000: %', v_error; end if; for map in select group_id, element_id, rel_type from group_element_index where rel_id = old.rel_id loop perform party_approved_member__remove(map.group_id, map.element_id, old.rel_id, map.rel_type); end loop; delete from group_element_index where rel_id = old.rel_id; return old; end;$$ language plpgsql;