Index: openacs-4/packages/file-storage/sql/oracle/file-storage-package-create.sql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/file-storage/sql/oracle/file-storage-package-create.sql,v diff -u -r1.11 -r1.11.2.1 --- openacs-4/packages/file-storage/sql/oracle/file-storage-package-create.sql 20 Feb 2004 23:46:17 -0000 1.11 +++ openacs-4/packages/file-storage/sql/oracle/file-storage-package-create.sql 10 May 2004 00:19:46 -0000 1.11.2.1 @@ -142,8 +142,12 @@ procedure delete_folder( -- -- Delete a folder - -- - folder_id in cr_folders.folder_id%TYPE + -- adding cascade_p but defaulting to false + -- this will fail if a folder contains anything + -- but just in case some other application uses + -- this api it will not change the behavior + folder_id in cr_folders.folder_id%TYPE, + cascade_p in char default 'f' ); end file_storage; @@ -601,12 +605,14 @@ -- -- Delete a folder -- - folder_id in cr_folders.folder_id%TYPE + folder_id in cr_folders.folder_id%TYPE, + cascade_p in char default 'f' ) is begin content_folder.del( - folder_id => file_storage.delete_folder.folder_id + folder_id => file_storage.delete_folder.folder_id, + cascade_p => file_storage.delete_folder.cascade_p ); end delete_folder; Index: openacs-4/packages/file-storage/sql/postgresql/file-storage-package-create.sql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/file-storage/sql/postgresql/file-storage-package-create.sql,v diff -u -r1.19.2.1 -r1.19.2.2 --- openacs-4/packages/file-storage/sql/postgresql/file-storage-package-create.sql 7 May 2004 16:24:31 -0000 1.19.2.1 +++ openacs-4/packages/file-storage/sql/postgresql/file-storage-package-create.sql 10 May 2004 00:19:47 -0000 1.19.2.2 @@ -645,8 +645,28 @@ delete_folder__folder_id alias for $1; begin + return file_storage__delete_folder( + delete_folder__folder_id, -- folder_id + 'f' + ); + +end;' language 'plpgsql'; + +create or replace function file_storage__delete_folder( + -- + -- Delete a folder + -- + integer, -- cr_folders.folder_id%TYPE + boolean +) returns integer as ' -- 0 for success +declare + delete_folder__folder_id alias for $1; + delete_folder__cascade_p alias for $2; +begin + return content_folder__delete( - delete_folder__folder_id -- folder_id + delete_folder__folder_id, -- folder_id + delete_folder__cascade_p ); end;' language 'plpgsql';