update acs_object_types set name_method = 'bt_bug__name' where object_type = 'bt_bug' and name_method is null;
create or replace function bt_bug__name(
integer -- bug_id
) returns varchar
as '
declare
p_bug_id alias for $1;
v_name varchar;
begin
select ''Bug #''||bug_number||'': ''||summary
into v_name
from bt_bugs
where bug_id = p_bug_id;
return v_name;
end;
' language 'plpgsql';
create or replace function bt_patch__new(
integer, -- patch_id
integer, -- project_id
integer, -- component_id
text, -- summary
text, -- description
text, -- description_format
text, -- content
integer, -- generated_from_version
integer, -- creation_user
varchar -- creation_ip
) returns int
as '
declare
p_patch_id alias for $1;
p_project_id alias for $2;
p_component_id alias for $3;
p_summary alias for $4;
p_description alias for $5;
p_description_format alias for $6;
p_content alias for $7;
p_generated_from_version alias for $8;
p_creation_user alias for $9;
p_creation_ip alias for $10;
v_patch_id integer;
v_patch_number integer;
v_action_id integer;
begin
v_patch_id := acs_object__new(
p_patch_id, -- object_id
''bt_patch'', -- object_type
current_timestamp, -- creation_date
p_creation_user, -- creation_user
p_creation_ip, -- creation_ip
p_project_id, -- context_id
null, -- title
p_project_id -- package_id
);
select coalesce(max(patch_number),0) + 1
into v_patch_number
from bt_patches
where project_id = p_project_id;
insert into bt_patches
(patch_id,
project_id,
component_id,
summary,
content,
generated_from_version,
patch_number)
values
(v_patch_id,
p_project_id,
p_component_id,
p_summary,
p_content,
p_generated_from_version,
v_patch_number);
update acs_objects set title = bt_patch__name(v_patch_id) where object_id = v_patch_id;
select nextval(''t_acs_object_id_seq'')
into v_action_id;
insert into bt_patch_actions
(action_id, patch_id, action, actor, comment_text, comment_format)
values
(v_action_id, v_patch_id, ''open'', p_creation_user, p_description, p_description_format);
return v_patch_id;
end;
' language 'plpgsql';
create or replace function bt_bug_revision__new(
integer, -- bug_revision_id
integer, -- bug_id
integer, -- component_id
integer, -- found_in_version
integer, -- fix_for_version
integer, -- fixed_in_version
varchar, -- resolution
varchar, -- user_agent
varchar, -- summary
timestamptz, -- creation_date
integer, -- creation_user
varchar -- creation_ip
) returns int
as '
declare
p_bug_revision_id alias for $1;
p_bug_id alias for $2;
p_component_id alias for $3;
p_found_in_version alias for $4;
p_fix_for_version alias for $5;
p_fixed_in_version alias for $6;
p_resolution alias for $7;
p_user_agent alias for $8;
p_summary alias for $9;
p_creation_date alias for $10;
p_creation_user alias for $11;
p_creation_ip alias for $12;
v_revision_id integer;
begin
-- create the initial revision
v_revision_id := content_revision__new(
p_summary, -- title
null, -- description
current_timestamp, -- publish_date
null, -- mime_type
null, -- nls_language
null, -- new_data
p_bug_id, -- item_id
p_bug_revision_id, -- revision_id
p_creation_date, -- creation_date
p_creation_user, -- creation_user
p_creation_ip -- creation_ip
);
-- insert into the bug-specific revision table
insert into bt_bug_revisions
(bug_revision_id, component_id, resolution, user_agent, found_in_version, fix_for_version, fixed_in_version)
values
(v_revision_id, p_component_id, p_resolution, p_user_agent, p_found_in_version, p_fix_for_version, p_fixed_in_version);
-- make this revision live
PERFORM content_item__set_live_revision(v_revision_id);
-- update the cache
update bt_bugs
set live_revision_id = v_revision_id,
summary = p_summary,
component_id = p_component_id,
resolution = p_resolution,
user_agent = p_user_agent,
found_in_version = p_found_in_version,
fix_for_version = p_fix_for_version,
fixed_in_version = p_fixed_in_version
where bug_id = p_bug_id;
-- update the title in acs_objects
update acs_objects set title = bt_bug__name(p_bug_id) where object_id = p_bug_id;
return v_revision_id;
end;
' language 'plpgsql';
create or replace function bt_patch__new(
integer, -- patch_id
integer, -- project_id
integer, -- component_id
text, -- summary
text, -- description
text, -- description_format
text, -- content
integer, -- generated_from_version
integer, -- creation_user
varchar -- creation_ip
) returns int
as '
declare
p_patch_id alias for $1;
p_project_id alias for $2;
p_component_id alias for $3;
p_summary alias for $4;
p_description alias for $5;
p_description_format alias for $6;
p_content alias for $7;
p_generated_from_version alias for $8;
p_creation_user alias for $9;
p_creation_ip alias for $10;
v_patch_id integer;
v_patch_number integer;
v_action_id integer;
begin
v_patch_id := acs_object__new(
p_patch_id, -- object_id
''bt_patch'', -- object_type
current_timestamp, -- creation_date
p_creation_user, -- creation_user
p_creation_ip, -- creation_ip
p_project_id, -- context_id
null, -- title
p_project_id -- package_id
);
select coalesce(max(patch_number),0) + 1
into v_patch_number
from bt_patches
where project_id = p_project_id;
insert into bt_patches
(patch_id,
project_id,
component_id,
summary,
content,
generated_from_version,
patch_number)
values
(v_patch_id,
p_project_id,
p_component_id,
p_summary,
p_content,
p_generated_from_version,
v_patch_number);
update acs_objects set title = bt_patch__name(v_patch_id) where object_id = v_patch_id;
select nextval(''t_acs_object_id_seq'')
into v_action_id;
insert into bt_patch_actions
(action_id, patch_id, action, actor, comment_text, comment_format)
values
(v_action_id, v_patch_id, ''open'', p_creation_user, p_description, p_description_format);
return v_patch_id;
end;
' language 'plpgsql';
create or replace function bt_patch__name(
integer -- patch_id
) returns varchar
as '
declare
p_patch_id alias for $1;
v_name varchar;
begin
select ''Patch #''||patch_number||'': ''||summary
into v_name
from bt_patches
where patch_id = p_patch_id;
return v_name;
end;
' language 'plpgsql';