-- -- rel_constraints_del_tr/0 -- create or replace function rel_constraints_del_tr( ) returns trigger as $$ declare v_rec record; begin -- now update the rel_segments that depend on this segment for v_rec in select rel_segment from rc_segment_required_seg_map where required_rel_segment = old.rel_segment and rel_side = old.rel_side LOOP delete from rc_segment_required_seg_map where rel_segment = v_rec.rel_segment and rel_side = old.rel_side and required_rel_segment in (select required_rel_segment from rc_segment_required_seg_map where rel_segment = old.rel_segment and rel_side = old.rel_side); end LOOP; -- delete dependencies delete from rc_segment_required_seg_map where rel_segment = old.rel_segment and rel_side = old.rel_side and required_rel_segment in (select required_rel_segment from rc_segment_required_seg_map where rel_segment = old.required_rel_segment and rel_side = old.rel_side); -- delete the constraint delete from rc_segment_required_seg_map where rel_segment = old.rel_segment and rel_side = old.rel_side and required_rel_segment = old.required_rel_segment; return old; end;$$ language plpgsql;