-- -- Fix type of v_is_registered to boolean (was "varchar") -- (This chance is necessary at least for pg 9.5) -- -- -- procedure content_folder__register_content_type/3 -- CREATE OR REPLACE FUNCTION content_folder__register_content_type( register_content_type__folder_id integer, register_content_type__content_type varchar, register_content_type__include_subtypes boolean -- default 'f' ) RETURNS integer AS $$ DECLARE v_is_registered boolean; BEGIN if register_content_type__include_subtypes = 'f' then v_is_registered := content_folder__is_registered( register_content_type__folder_id, register_content_type__content_type, 'f' ); if v_is_registered = 'f' then insert into cr_folder_type_map ( folder_id, content_type ) values ( register_content_type__folder_id, register_content_type__content_type ); end if; else insert into cr_folder_type_map select register_content_type__folder_id as folder_id, o.object_type as content_type from acs_object_types o, acs_object_types o2 where o.object_type <> 'acs_object' and not exists (select 1 from cr_folder_type_map where folder_id = register_content_type__folder_id and content_type = o.object_type) and o2.object_type = register_content_type__content_type and o.tree_sortkey between o2.tree_sortkey and tree_right(o2.tree_sortkey); end if; return 0; END; $$ LANGUAGE plpgsql;