postgresql7.2 select content_item__get_root_folder(null); select f.folder_id, i.name, f.label, f.has_child_folders, tree_level(i.tree_sortkey) as level, tree_level(p.tree_sortkey) as parent_level $addtnl_select from cr_items i, cr_folders f, (select tree_sortkey from cr_items where item_id = :parent_id) p where f.folder_id = i.item_id and tree_ancestor_p(p.tree_sortkey, i.tree_sortkey) $addtnl_where order by i.tree_sortkey select a.item_id as folder_id, o.name, f.label, f.has_child_folders, tree_level(a.tree_sortkey_trail) as level, tree_level(parent_sortkey) as parent_level $addtnl_select from cr_items o, cr_folders f, (select tree_ancestor_keys(i.tree_sortkey) as tree_sortkey_trail, p.tree_sortkey as parent_sortkey, i.item_id, i.tree_sortkey from cr_items i, (select tree_sortkey from cr_items where item_id = :parent_id) p where tree_ancestor_p(p.tree_sortkey, i.tree_sortkey) and content_type = 'content_folder' $addtnl_where) a where o.item_id = f.folder_id and o.tree_sortkey = a.tree_sortkey_trail and tree_ancestor_p(parent_sortkey, o.tree_sortkey) order by a.tree_sortkey select content_folder__new(:name, :folder_label, :description, :parent_id) select content_folder__delete(:folder_id) select label as folder_name, folder_id, tree_level(i.tree_sortkey) as level, tree_level(a.tree_sortkey) as parent_level from cr_folders f, cr_items i, (select tree_sortkey from cr_items where item_id = :bcms_parent_folder) a where i.item_id = f.folder_id and tree_ancestor_p(a.tree_sortkey, i.tree_sortkey)