-- -- static_page__delete_folder/1 -- create or replace function static_page__delete_folder( integer ) returns int4 as $$ declare p_folder_id alias for $1; v_folder_row RECORD; v_page_row RECORD; begin for v_folder_row in select s1.folder_id, tree_level(s1.tree_sortkey) as path_depth from sp_folders s1, sp_folders s2 where s2.folder_id = p_folder_id and s1.tree_sortkey between s2.tree_sortkey and tree_right(s2.tree_sortkey) order by path_depth desc loop for v_page_row in select static_page_id from static_pages where folder_id = v_folder_row.folder_id loop PERFORM static_page__delete(v_page_row.static_page_id); end loop; delete from sp_folders where folder_id = v_folder_row.folder_id; PERFORM content_folder__delete(v_folder_row.folder_id); end loop; return 0; end;$$ language plpgsql;