関数特性
言語: PLPGSQL
戻り値: bigint
pa_server から pa_client への経路を削除する DROP_PATH 事象を生成します。declare
p_pa_server alias for $1;
p_pa_client alias for $2;
v_row record;
begin
-- ----
-- 中枢構成にロックの取得
-- ----
lock table sl_config_lock;
-- ----
-- 既存の購読が存在しません。
-- 自動購読解除は非常に危険と考えられます。
-- ----
for v_row in select sub_set, sub_provider, sub_receiver
from sl_subscribe
where sub_provider = p_pa_server
and sub_receiver = p_pa_client
loop
raise exception
'Slony-I: Path cannot be dropped, subscription of set % needs it',
v_row.sub_set;
end loop;
-- ----
-- この経路に依存する全ての sl_listen エントリを削除します。
-- ----
for v_row in select li_origin, li_provider, li_receiver
from sl_listen
where li_provider = p_pa_server
and li_receiver = p_pa_client
loop
perform dropListen(
v_row.li_origin, v_row.li_provider, v_row.li_receiver);
end loop;
-- ----
-- ここで経路を削除し事象を作成します。
-- ----
perform dropPath_int(p_pa_server, p_pa_client);
-- Rewrite sl_listen table
perform RebuildListenEntries();
return createEvent ('_schemadoc', 'DROP_PATH',
p_pa_server, p_pa_client);
end;