alter table acs_object_types alter column table_name drop not null;
alter table acs_object_types alter column id_column drop not null;
create or replace function apm_package__delete (integer) returns integer as '
declare
delete__package_id alias for $1;
cur_val record;
v_folder_row record;
begin
-- Delete all parameters.
for cur_val in select value_id from apm_parameter_values
where package_id = delete__package_id loop
PERFORM apm_parameter_value__delete(cur_val.value_id);
end loop;
-- Delete the folders
for v_folder_row in select
folder_id
from cr_folders
where package_id = delete__package_id
loop
perform content_folder__del(v_folder_row.folder_id,''t'');
end loop;
delete from apm_applications where application_id = delete__package_id;
delete from apm_services where service_id = delete__package_id;
delete from apm_packages where package_id = delete__package_id;
-- Delete the site nodes for the objects.
for cur_val in select node_id from site_nodes
where object_id = delete__package_id loop
PERFORM site_node__delete(cur_val.node_id);
end loop;
-- Delete the object.
PERFORM acs_object__delete (
delete__package_id
);
return 0;
end;' language 'plpgsql';
-- procedure drop_type
create or replace function acs_object_type__drop_type (varchar,boolean)
returns integer as '
declare
drop_type__object_type alias for $1;
drop_type__cascade_p alias for $2; -- default ''f''
row record;
object_row record;
begin
if drop_type__cascade_p then
for object_row in select object_id
from acs_objects
where object_type = drop_type__object_type
loop
PERFORM acs_object__delete (object_row.object_id);
end loop;
end if;
-- drop all the attributes associated with this type
for row in select attribute_name
from acs_attributes
where object_type = drop_type__object_type
loop
PERFORM acs_attribute__drop_attribute (drop_type__object_type,
row.attribute_name);
end loop;
delete from acs_attributes
where object_type = drop_type__object_type;
delete from acs_object_types
where object_type = drop_type__object_type;
return 0;
end;' language 'plpgsql';