-- ******* START Bug upgrade -- Create each of the bugs with the new API that creates a content -- item, an initial revision, and populates the bt_bugs denormalization table create or replace function inline_0 () returns integer as ' declare -- Project loop project_rec record; v_workflow_id integer; v_open_action_id integer; -- Bug loop bug_rec record; notifications_rec record; v_state_id integer; v_item_id integer; v_new_bug_id integer; v_severity_id integer; v_priority_id integer; v_bug_type_id integer; v_bug_revision_id integer; begin for project_rec in select project_id from bt_projects loop -- Get the bug workflow id select workflow_id into v_workflow_id from workflows where short_name = ''bug'' and object_id = project_rec.project_id; select action_id into v_open_action_id from workflow_actions where workflow_id = v_workflow_id and short_name = ''open''; for bug_rec in select b.bug_id, b.bug_number, b.project_id, b.component_id, b.found_in_version, b.fix_for_version, b.fixed_in_version, b.resolution, b.summary, b.user_agent, b.severity, b.priority, b.bug_type, cr.content, cr.mime_type, o.creation_user, o.creation_date, o.creation_ip from bt_bugs_temp b, acs_objects o, workflow_cases c, workflow_case_log wcl, cr_items ci, cr_revisions cr where b.bug_id = o.object_id and b.project_id = project_rec.project_id and b.bug_id = c.object_id and c.workflow_id = v_workflow_id and wcl.case_id = c.case_id and wcl.action_id = v_open_action_id and ci.item_id = wcl.entry_id and cr.revision_id = ci.live_revision loop -- Use a modified version of bt_bug__new that doesn''t -- create a new acs_object perform bt_bug__new ( bug_rec.bug_id, -- bug_id bug_rec.bug_number, -- bug_number bug_rec.project_id, -- package_id bug_rec.component_id, -- component_id bug_rec.found_in_version, -- found_in_version bug_rec.summary, -- summary bug_rec.user_agent, -- user_agent bug_rec.content, -- comment_content bug_rec.mime_type, -- comment_format bug_rec.creation_date, -- creation_date bug_rec.creation_user, -- creation_user bug_rec.creation_ip, -- creation_ip ''bt_bug'', -- item_subtype ''bt_bug_revision'' -- content_type ); -- Get the revision id select live_revision into v_bug_revision_id from cr_items where item_id = bug_rec.bug_id; -- Update with fix_for_version, fixed_in_version, resolution update bt_bug_revisions set fix_for_version = bug_rec.fix_for_version, fixed_in_version = bug_rec.fixed_in_version, resolution = bug_rec.resolution where bug_revision_id = v_bug_revision_id; -- update the cache in the item update bt_bugs set fix_for_version = bug_rec.fix_for_version, fixed_in_version = bug_rec.fixed_in_version, resolution = bug_rec.resolution where bug_id = bug_rec.bug_id; -- Map severity select keyword_id into v_severity_id from code_keyword_map_temp where code_id = bug_rec.severity; perform content_keyword__item_assign ( bug_rec.bug_id, v_severity_id, null, bug_rec.creation_user, bug_rec.creation_ip ); -- Map priority select keyword_id into v_priority_id from code_keyword_map_temp where code_id = bug_rec.priority; perform content_keyword__item_assign ( bug_rec.bug_id, v_priority_id, null, bug_rec.creation_user, bug_rec.creation_ip ); -- Map bug type select keyword_id into v_bug_type_id from bug_type_keyword_map_temp where project_id = bug_rec.project_id and bug_type = bug_rec.bug_type; perform content_keyword__item_assign ( bug_rec.bug_id, v_bug_type_id, null, bug_rec.creation_user, bug_rec.creation_ip ); end loop; end loop; return 0; end;' language 'plpgsql'; select inline_0(); drop function inline_0(); -- ******* Drop tables no longer used -- drop table bt_severity_codes; -- drop table bt_priority_codes; -- ******* Drop temporary upgrade tables -- drop table code_keyword_map_temp; -- drop table bug_type_keyword_map_temp; -- drop table bt_bugs_temp; -- drop table project_temp; -- ******* Drop temporary upgrade functions --drop function bt_bug__new_temp( -- integer, -- bug_id -- integer, -- bug_number -- integer, -- package_id -- integer, -- component_id -- integer, -- found_in_version -- varchar, -- summary -- varchar, -- user_agent -- text, -- comment_content -- varchar, -- comment_format -- timestamp, -- creation_date -- integer, -- creation_user -- varchar, -- creation_ip -- varchar, -- item_subtype -- varchar -- content_type --); drop function content_item__new_temp (varchar,integer,integer,varchar,timestamp with time zone,integer,integer,varchar,varchar,varchar,varchar,varchar,varchar,varchar,integer); drop function content_item__new_temp (varchar,integer,integer,varchar,timestamp with time zone,integer,integer,varchar,varchar,varchar,varchar,varchar,varchar,varchar,varchar,varchar);