--
-- acs_mail_multipart__add_content/2
--
create or replace function acs_mail_multipart__add_content(
  integer,
  integer
) returns int4 as $$
 
declare
	p_multipart_id			alias for $1;
    p_content_item_id		alias for $2;
    v_multipart_id			integer;
    v_max_num				integer;
begin
    -- get a row lock on the multipart item
    select multipart_id into v_multipart_id from acs_mail_multiparts
        where multipart_id = p_multipart_id for update;

    select coalesce(max(sequence_number),0) into v_max_num
        from acs_mail_multipart_parts
        where multipart_id = p_multipart_id;

    insert into acs_mail_multipart_parts
        (multipart_id, sequence_number, content_item_id)
    values
        (p_multipart_id, v_max_num + 1, p_content_item_id);

	return v_max_num + 1;
end;
$$ language plpgsql;