-- -- content_type__register_child_type/5 -- create or replace function content_type__register_child_type( character varying, character varying, character varying, integer, integer ) returns int4 as $$ declare register_child_type__parent_type alias for $1; register_child_type__child_type alias for $2; register_child_type__relation_tag alias for $3; -- default 'generic' register_child_type__min_n alias for $4; -- default 0 register_child_type__max_n alias for $5; -- default null v_exists integer; begin select count(*) into v_exists from cr_type_children where parent_type = register_child_type__parent_type and child_type = register_child_type__child_type; if v_exists = 0 then insert into cr_type_children ( parent_type, child_type, relation_tag, min_n, max_n ) values ( register_child_type__parent_type, register_child_type__child_type, register_child_type__relation_tag, register_child_type__min_n, register_child_type__max_n ); else update cr_type_children set min_n = register_child_type__min_n, max_n = register_child_type__max_n where parent_type = register_child_type__parent_type and child_type = register_child_type__child_type and relation_tag = register_child_type__relation_tag; end if; return 0; end;$$ language plpgsql;