Index: openacs-4/packages/acs-kernel/sql/postgresql/apm-create.sql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-kernel/sql/postgresql/apm-create.sql,v diff -u -N -r1.45 -r1.46 --- openacs-4/packages/acs-kernel/sql/postgresql/apm-create.sql 25 Sep 2003 02:38:20 -0000 1.45 +++ openacs-4/packages/acs-kernel/sql/postgresql/apm-create.sql 25 Sep 2003 08:59:01 -0000 1.46 @@ -2203,8 +2203,8 @@ upgrade_p__final_version_name alias for $3; v_pos1 integer; v_pos2 integer; - v_tmp apm_package_files.path%TYPE; - v_path apm_package_files.path%TYPE; + v_tmp varchar(1500); + v_path varchar(1500); v_version_from apm_package_versions.version_name%TYPE; v_version_to apm_package_versions.version_name%TYPE; begin Index: openacs-4/packages/acs-kernel/sql/postgresql/upgrade/upgrade-5.0d7-5.0d9.sql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-kernel/sql/postgresql/upgrade/upgrade-5.0d7-5.0d9.sql,v diff -u -N -r1.2 -r1.3 --- openacs-4/packages/acs-kernel/sql/postgresql/upgrade/upgrade-5.0d7-5.0d9.sql 24 Sep 2003 17:25:05 -0000 1.2 +++ openacs-4/packages/acs-kernel/sql/postgresql/upgrade/upgrade-5.0d7-5.0d9.sql 25 Sep 2003 08:59:01 -0000 1.3 @@ -15,3 +15,50 @@ drop function apm_package_version__remove_file (integer,varchar); drop function apm_package__disable (integer); drop function apm_package__enable (integer); +-- Replacing reference to apm_package_file.path%TYPE with varchar(1500) +drop function apm_package_version__upgrade_p (varchar,varchar,varchar); +create function apm_package_version__upgrade_p (varchar,varchar,varchar) +returns integer as ' +declare + upgrade_p__path alias for $1; + upgrade_p__initial_version_name alias for $2; + upgrade_p__final_version_name alias for $3; + v_pos1 integer; + v_pos2 integer; + v_tmp varchar(1500); + v_path varchar(1500); + v_version_from apm_package_versions.version_name%TYPE; + v_version_to apm_package_versions.version_name%TYPE; +begin + + -- Set v_path to the tail of the path (the file name). + v_path := substr(upgrade_p__path, instr(upgrade_p__path, ''/'', -1) + 1); + + -- Remove the extension, if it is .sql. + v_pos1 := position(''.sql'' in v_path); + if v_pos1 > 0 then + v_path := substr(v_path, 1, v_pos1 - 1); + end if; + + -- Figure out the from/to version numbers for the individual file. + v_pos1 := instr(v_path, ''-'', -1, 2); + v_pos2 := instr(v_path, ''-'', -1); + if v_pos1 = 0 or v_pos2 = 0 then + -- There aren''t two hyphens in the file name. Bail. + return 0; + end if; + + v_version_from := substr(v_path, v_pos1 + 1, v_pos2 - v_pos1 - 1); + v_version_to := substr(v_path, v_pos2 + 1); + + if apm_package_version__version_name_greater(upgrade_p__initial_version_name, v_version_from) <= 0 and + apm_package_version__version_name_greater(upgrade_p__final_version_name, v_version_to) >= 0 then + return 1; + end if; + + return 0; + -- exception when others then + -- Invalid version number. + -- return 0; + +end;' language 'plpgsql';