Index: openacs-4/packages/file-storage/sql/postgresql/upgrade/upgrade-4.6.2-4.7d3.sql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/file-storage/sql/postgresql/upgrade/Attic/upgrade-4.6.2-4.7d3.sql,v diff -u -r1.1 -r1.1.2.1 --- openacs-4/packages/file-storage/sql/postgresql/upgrade/upgrade-4.6.2-4.7d3.sql 7 Jul 2003 12:37:39 -0000 1.1 +++ openacs-4/packages/file-storage/sql/postgresql/upgrade/upgrade-4.6.2-4.7d3.sql 1 Dec 2003 14:39:28 -0000 1.1.2.1 @@ -34,3 +34,55 @@ select inline_0(); drop function inline_0(); + +create function file_storage__new_version ( + -- + -- Create a new version of a file + -- Wrapper for content_revision__new + -- + varchar, -- cr_revisions.title%TYPE, + varchar, -- cr_revisions.description%TYPE, + varchar, -- cr_revisions.mime_type%TYPE, + integer, -- cr_items.item_id%TYPE, + integer, -- acs_objects.creation_user%TYPE, + varchar -- acs_objects.creation_ip%TYPE +) returns integer as ' -- cr_revisions.revision_id +declare + new_version__filename alias for $1; + new_version__description alias for $2; + new_version__mime_type alias for $3; + new_version__item_id alias for $4; + new_version__creation_user alias for $5; + new_version__creation_ip alias for $6; + v_revision_id cr_revisions.revision_id%TYPE; + v_folder_id cr_items.parent_id%TYPE; +begin + -- Create a revision + v_revision_id := content_revision__new ( + new_version__filename, -- title + new_version__description, -- description + now(), -- publish_date + new_version__mime_type, -- mime_type + null, -- nls_language + null, -- data (default) + new_version__item_id, -- item_id + null, -- revision_id + now(), -- creation_date + new_version__creation_user, -- creation_user + new_version__creation_ip -- creation_ip + ); + + -- Make live the newly created revision + perform content_item__set_live_revision(v_revision_id); + + select cr_items.parent_id + into v_folder_id + from cr_items + where cr_items.item_id = new_version__item_id; + + perform acs_object__update_last_modified(v_folder_id,new_version__creation_user,new_version__creation_ip); + perform acs_object__update_last_modified(new_version__item_id,new_version__creation_user,new_version__creation_ip); + + return v_revision_id; + +end;' language 'plpgsql';