-- @author Eric Lorenzo (eric@openforce.net)
-- @creation-date 2002/10/24
-- apm-create.sql - Converting nextval references to not use view;
-- bug causes failure in some cases.
-- create or replace package body apm_package_version
create or replace function apm_package_version__new (integer,varchar,varchar,varchar,varchar,varchar,varchar,timestamp,varchar,varchar,boolean,boolean) returns integer as '
declare
apm_pkg_ver__version_id alias for $1; -- default null
apm_pkg_ver__package_key alias for $2;
apm_pkg_ver__version_name alias for $3; -- default null
apm_pkg_ver__version_uri alias for $4;
apm_pkg_ver__summary alias for $5;
apm_pkg_ver__description_format alias for $6;
apm_pkg_ver__description alias for $7;
apm_pkg_ver__release_date alias for $8;
apm_pkg_ver__vendor alias for $9;
apm_pkg_ver__vendor_uri alias for $10;
apm_pkg_ver__installed_p alias for $11; -- default ''f''
apm_pkg_ver__data_model_loaded_p alias for $12; -- default ''f''
v_version_id apm_package_versions.version_id%TYPE;
begin
if apm_pkg_ver__version_id = '''' or apm_pkg_ver__version_id is null then
select nextval(''t_acs_object_id_seq'')
into v_version_id
from dual;
else
v_version_id := apm_pkg_ver__version_id;
end if;
v_version_id := acs_object__new(
v_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, installed_p, data_model_loaded_p)
values
(v_version_id, apm_pkg_ver__package_key, apm_pkg_ver__version_name,
apm_pkg_ver__version_uri, apm_pkg_ver__summary,
apm_pkg_ver__description_format, apm_pkg_ver__description,
apm_pkg_ver__release_date, apm_pkg_ver__vendor, apm_pkg_ver__vendor_uri,
apm_pkg_ver__installed_p, apm_pkg_ver__data_model_loaded_p);
return v_version_id;
end;' language 'plpgsql';
-- function copy
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)
select v_version_id, package_key, copy__new_version_name,
copy__new_version_uri, summary, description_format, description,
release_date, vendor, vendor_uri
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_files(file_id, version_id, path, file_type, db_type)
select nextval(''t_acs_object_id_seq''), v_version_id, path, file_type, db_type
from apm_package_files
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';
-- function add_file
create or replace function apm_package_version__add_file (integer,integer,varchar,varchar, varchar)
returns integer as '
declare
add_file__file_id alias for $1; -- default null
add_file__version_id alias for $2;
add_file__path alias for $3;
add_file__file_type alias for $4;
add_file__db_type alias for $5; -- default null
v_file_id apm_package_files.file_id%TYPE;
v_file_exists_p integer;
begin
select file_id into v_file_id from apm_package_files
where version_id = add_file__version_id
and path = add_file__path;
if NOT FOUND
then
if add_file__file_id is null then
select nextval(''t_acs_object_id_seq'') into v_file_id from dual;
else
v_file_id := add_file__file_id;
end if;
insert into apm_package_files
(file_id, version_id, path, file_type, db_type)
values
(v_file_id, add_file__version_id, add_file__path, add_file__file_type, add_file__db_type);
end if;
return v_file_id;
end;' language 'plpgsql';
-- function add_interface
create or replace function apm_package_version__add_interface (integer,integer,varchar,varchar)
returns integer as '
declare
add_interface__interface_id alias for $1; -- default null
add_interface__version_id alias for $2;
add_interface__interface_uri alias for $3;
add_interface__interface_version alias for $4;
v_dep_id apm_package_dependencies.dependency_id%TYPE;
begin
if add_interface__interface_id is null then
select nextval(''t_acs_object_id_seq'') into v_dep_id from dual;
else
v_dep_id := add_interface__interface_id;
end if;
insert into apm_package_dependencies
(dependency_id, version_id, dependency_type, service_uri, service_version)
values
(v_dep_id, add_interface__version_id, ''provides'', add_interface__interface_uri,
add_interface__interface_version);
return v_dep_id;
end;' language 'plpgsql';
-- function add_dependency
create or replace function apm_package_version__add_dependency (integer,integer,varchar,varchar)
returns integer as '
declare
add_dependency__dependency_id alias for $1; -- default null
add_dependency__version_id alias for $2;
add_dependency__dependency_uri alias for $3;
add_dependency__dependency_version alias for $4;
v_dep_id apm_package_dependencies.dependency_id%TYPE;
begin
if add_dependency__dependency_id is null then
select nextval(''t_acs_object_id_seq'') into v_dep_id from dual;
else
v_dep_id := add_dependency__dependency_id;
end if;
insert into apm_package_dependencies
(dependency_id, version_id, dependency_type, service_uri, service_version)
values
(v_dep_id, add_dependency__version_id, ''requires'', add_dependency__dependency_uri,
add_dependency__dependency_version);
return v_dep_id;
end;' language 'plpgsql';
-- show errors