1.45. droppath_int( integer, integer )

関数特性

言語: PLPGSQL

戻り値: integer

pa_server から pa_client への経路を削除する DROP_PATH 事象の処理。

declare
	p_pa_server		alias for $1;
	p_pa_client		alias for $2;
begin
	-- ----
	-- 中枢構成にロックの取得
	-- ----
	lock table sl_config_lock;

	-- ----
	-- 全ての宙ぶらりんの sl_listen エントリをプロバイダとしての
	-- サーバ、およびレシーバとしてのクライアントから削除する。
	-- これはもっと早く掃除されるべきだが、明らかにそうなっていません。
	-- ----
	delete from sl_listen
			where li_provider = p_pa_server
			and li_receiver = p_pa_client;

	delete from sl_path
			where pa_server = p_pa_server
			and pa_client = p_pa_client;

	if found then
		-- sl_listen テーブルの書き換え
		perform RebuildListenEntries();

		return 1;
	else
		-- sl_listen テーブルの書き換え
		perform RebuildListenEntries();

		return 0;
	end if;
end;