-- -- membership_rel__check_representation/1 -- create or replace function membership_rel__check_representation( integer ) returns bool as $$ declare check_representation__rel_id alias for $1; group_id groups.group_id%TYPE; member_id parties.party_id%TYPE; result boolean; row record; begin result := 't'; if acs_object__check_representation(check_representation__rel_id) = 'f' then result := 'f'; end if; select r.object_id_one, r.object_id_two into group_id, member_id from acs_rels r, membership_rels m where r.rel_id = m.rel_id and m.rel_id = check_representation__rel_id; if membership_rel__check_index(group_id, member_id, group_id) = 'f' then result := 'f'; end if; for row in select * from group_member_index where rel_id = check_representation__rel_id LOOP if composition_rel__check_path_exists_p(row.container_id, row.group_id) = 'f' then result := 'f'; PERFORM acs_log__error('membership_rel.check_representation', 'Extra row in group_member_index: ' || 'group_id = ' || row.group_id || ', ' || 'member_id = ' || row.member_id || ', ' || 'container_id = ' || row.container_id || '.'); end if; end loop; return result; end;$$ language plpgsql;