-- -- 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;