-- -- content_folder__is_registered/3 -- create or replace function content_folder__is_registered( integer, character varying, boolean ) returns bool as $$ declare is_registered__folder_id alias for $1; is_registered__content_type alias for $2; is_registered__include_subtypes alias for $3; -- default 'f' v_is_registered integer; v_subtype_val record; begin if is_registered__include_subtypes = 'f' or is_registered__include_subtypes is null then select count(1) into v_is_registered from cr_folder_type_map where folder_id = is_registered__folder_id and content_type = is_registered__content_type; else -- select -- object_type -- from -- acs_object_types -- where -- object_type <> 'acs_object' -- connect by -- prior object_type = supertype -- start with -- object_type = is_registered.content_type v_is_registered := 1; for v_subtype_val in select o.object_type from acs_object_types o, acs_object_types o2 where o.object_type <> 'acs_object' and o2.object_type = is_registered__content_type and o.tree_sortkey between o2.tree_sortkey and tree_right(o2.tree_sortkey) order by o.tree_sortkey LOOP if content_folder__is_registered(is_registered__folder_id, v_subtype_val.object_type, 'f') = 'f' then v_is_registered := 0; end if; end loop; end if; if v_is_registered = 0 then return 'f'; else return 't'; end if; end;$$ language plpgsql;