-- Remove obsolete parts of the APM datamodel not used -- -- @author Peter Marklund -- *** Remove a column not needed -- See http://openacs.org/bugtracker/openacs/bug?bug%5fnumber=555 -- Seems PG 7.2 doesn't support this alter table apm_packages drop enabled_p; -- View was dropped by previous drop drop view apm_file_info; drop function apm_package_version__add_file (integer,integer,varchar,varchar, varchar); 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'; create or replace function apm_package_version__delete (integer) returns integer as ' declare delete__version_id alias for $1; begin delete from apm_package_owners where version_id = delete__version_id; delete from apm_package_dependencies where version_id = delete__version_id; delete from apm_package_versions where version_id = delete__version_id; PERFORM acs_object__delete(delete__version_id); return 0; end;' language 'plpgsql'; create or replace function apm_package_version__copy (integer,integer,varchar,varchar,boolean) returns integer as ' declare copy__version_id alias for $1; copy__new_version_id alias for $2; -- default null copy__new_version_name alias for $3; copy__new_version_uri alias for $4; copy__copy_owners_p alias for $5; v_version_id integer; begin v_version_id := acs_object__new( copy__new_version_id, ''apm_package_version'', now(), null, null, null ); insert into apm_package_versions(version_id, package_key, version_name, version_uri, summary, description_format, description, release_date, vendor, vendor_uri, auto_mount) select v_version_id, package_key, copy__new_version_name, copy__new_version_uri, summary, description_format, description, release_date, vendor, vendor_uri, auto_mount from apm_package_versions where version_id = copy__version_id; insert into apm_package_dependencies(dependency_id, version_id, dependency_type, service_uri, service_version) select nextval(''t_acs_object_id_seq''), v_version_id, dependency_type, service_uri, service_version from apm_package_dependencies where version_id = copy__version_id; insert into apm_package_callbacks (version_id, type, proc) select v_version_id, type, proc from apm_package_callbacks where version_id = copy__version_id; if copy__copy_owners_p then insert into apm_package_owners(version_id, owner_uri, owner_name, sort_key) select v_version_id, owner_uri, owner_name, sort_key from apm_package_owners where version_id = copy__version_id; end if; return v_version_id; end;' language 'plpgsql'; -- *** Get rid of file-related data no longer used drop table apm_package_file_types; drop table apm_package_files;