-- -- membership_rels_up_tr/0 -- create or replace function membership_rels_up_tr( ) returns trigger as $$ declare map record; begin if new.member_state = old.member_state then return new; end if; for map in select group_id, element_id, rel_type from group_element_index where rel_id = new.rel_id loop if new.member_state = 'approved' then perform party_approved_member__add(map.group_id, map.element_id, new.rel_id, map.rel_type); else perform party_approved_member__remove(map.group_id, map.element_id, new.rel_id, map.rel_type); end if; end loop; return new; end;$$ language plpgsql;