Forum OpenACS Development: Re: Differences between Oracle and PostgreSQL on db_exec_plsql function

Well, xowiki does not call fs::get_root_folder, but dotlrn does it. xowiki calls - in case dotlrn is installed - dotlrn_fs::get_community_shared_folder to determine the folder where the xinha plugin should add uploaded files. Since version 0.91 (August this year), xowiki programs around this problem with oracle.

Nevertheless, the behavior of an API call should be identical for PostgreSQL and Oracle. Since the API has no fs::exists_root_folder returning empty sounds ok to me in case the package has no root folder. Otherwise, the API documentation should mention a word about this. The argument, that the "file storage package works fine in Oracle for years now" cannot certainly mean that the fs::*-api is free of bugs.

Ignoring all errors in db_exec_plsql is certainly no good idea. For get_root_folder, adding an exception handler for "No data found" in file-storage-procs-oracle.xql seems like a good option to me (see for example
http://www.oracle.com/technology/oramag/oracle/03-jul/o43plsql.html).

By looking at the file-storage code: the procs fs_get_root_folder (and friends) should be replaced by fs::get_root_folder (and friends) (or marked as deprecated for the short range). Additionally, the code with the Oracle notation in fs_get_folder_name in file-storage-procs.tcl is at least misleading. So getting rid of fs_* should be on our todo list for the mid range.

-gustaf neumann