1.62. initializelocalnode( integer, text )

関数特性

言語: PLPGSQL

戻り値: integer

no_id - Node ID # no_comment - 人手によるコメント 新規ノード no_id の初期化

declare
	p_local_node_id		alias for $1;
	p_comment		alias for $2;
	v_old_node_id		int4;
	v_first_log_no		int4;
	v_event_seq		int8;
begin
	-- ----
	-- 中枢構成にロックの取得
	-- ----
	lock table sl_config_lock;

	-- ----
	-- このノードは初期化されていないか、リセットされるかの確認
	-- ----
	select last_value::int4 into v_old_node_id from sl_local_node_id;
	if v_old_node_id != -1 then
		raise exception 'Slony-I: This node is already initialized';
	end if;

	-- ----
	-- sl_local_node_id を要求値に設定し、
	-- 自分のシステムを  sl_node に加えます。
	-- ----
	perform setval('sl_local_node_id', p_local_node_id);
	perform setval('sl_rowid_seq', 
			p_local_node_id::int8 * '1000000000000000'::int8);
	perform storeNode_int (p_local_node_id, p_comment, false);
	
	return p_local_node_id;
end;