-- -- 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;