create or replace function content_item__get_root_folder (integer) returns integer as ' declare get_root_folder__item_id alias for $1; -- default null v_folder_id cr_folders.folder_id%TYPE; begin if get_root_folder__item_id is NULL or get_root_folder__item_id in (-4,-100,-200) then v_folder_id := content_item_globals.c_root_folder_id; else select i2.item_id into v_folder_id from cr_items i1, cr_items i2 where i2.parent_id = -4 and i1.item_id = get_root_folder__item_id and i1.tree_sortkey between i2.tree_sortkey and tree_right(i2.tree_sortkey); if NOT FOUND then raise EXCEPTION '' -20000: Could not find a root folder for item ID %. Either the item does not exist or its parent value is corrupted.'', get_root_folder__item_id; end if; end if; return v_folder_id; end;' language 'plpgsql' stable;