-- The bt_project__delete proc had a misspelled call to bt_project__keyword_delete.
-- The upgrade-0.9d1-1.2d2.sql upgrade script forgot to delete a temporary table
--
-- @author Lars Pind
-- @creation-date 2003-03-11
create or replace function bt_project__delete(
integer -- project_id
) returns integer
as '
declare
p_project_id alias for $1;
v_folder_id integer;
v_root_keyword_id integer;
rec record;
begin
-- get the content folder for this instance
select folder_id, root_keyword_id
into v_folder_id, v_root_keyword_id
from bt_projects
where project_id = p_project_id;
-- This gets done in tcl before we are called ... for now
-- Delete the bugs
-- for rec in select item_id from cr_items where parent_id = v_folder_id
-- loop
-- perform bt_bug__delete(rec.item_id);
-- end loop;
-- Delete the patches
for rec in select patch_id from bt_patches where project_id = p_project_id
loop
perform bt_patch__delete(rec.patch_id);
end loop;
-- delete the content folder
raise notice ''about to delete content_folder.'';
perform content_folder__delete(v_folder_id);
-- delete the projects keywords
perform bt_project__keywords_delete(p_project_id, ''t'');
-- These tables should really be set up to cascade
delete from bt_versions where project_id = p_project_id;
delete from bt_components where project_id = p_project_id;
delete from bt_user_prefs where project_id = p_project_id;
delete from bt_projects where project_id = p_project_id;
return 0;
end;
' language 'plpgsql';
create or replace function inline_0 ()
returns integer as '
declare
v_count integer;
begin
select count(*)
into v_count
from pg_class
where relname = ''bug_type_keyword_map_temp'';
if v_count > 0 then
drop table bug_type_keyword_map_temp;
end if;
return 0;
end;' language 'plpgsql';
select inline_0();
drop function inline_0();