--
-- apm_package_type__drop_type/2
--
create or replace function apm_package_type__drop_type(
character varying,
boolean
) returns int4 as $$
declare
drop_type__package_key alias for $1;
drop_type__cascade_p alias for $2; -- default 'f'
cur_val record;
begin
if drop_type__cascade_p = 't' then
for cur_val in select package_id
from apm_packages
where package_key = drop_type__package_key
loop
PERFORM apm_package__delete(
cur_val.package_id
);
end loop;
-- Unregister all parameters.
for cur_val in select parameter_id from apm_parameters
where package_key = drop_type__package_key
loop
PERFORM apm__unregister_parameter(cur_val.parameter_id);
end loop;
-- Unregister all versions
for cur_val in select version_id from apm_package_versions
where package_key = drop_type__package_key
loop
PERFORM apm_package_version__delete(cur_val.version_id);
end loop;
end if;
delete from apm_package_types
where package_key = drop_type__package_key;
return 0;
end;$$ language plpgsql;