1.57. forwardconfirm( integer, integer, bigint, timestamp without time zone )

関数特性

言語: PLPGSQL

戻り値: bigint

forwardConfirm (p_con_origin, p_con_received, p_con_seqno, p_con_timestamp) p_con_origin から p_con_seqno までの項目は p_con_timestamp 時点でノード p_con_received で受け取られ、この確認を送出する事象を立ち上げるという、(sl_confirm に記録された)確認を行います。

declare
	p_con_origin            alias for $1;
	p_con_received		alias for $2;
	p_con_seqno		alias for $3;
	p_con_timestamp		alias for $4;
	v_max_seqno		bigint;
begin
	select into v_max_seqno coalesce(max(con_seqno), 0)
			from sl_confirm
			where con_origin = p_con_origin
			and con_received = p_con_received;
	if v_max_seqno < p_con_seqno then
		insert into sl_confirm 
				(con_origin, con_received, con_seqno, con_timestamp)
				values (p_con_origin, p_con_received, p_con_seqno,
					p_con_timestamp);
		notify "_schemadoc_Confirm";
		v_max_seqno = p_con_seqno;
	end if;

	return v_max_seqno;
end;