--
-- 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;