--
-- bt_patch__new/10
--
create or replace function bt_patch__new(
integer,
integer,
integer,
text,
text,
text,
text,
integer,
integer,
character varying
) returns int4 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;