関数特性
言語: PLPGSQL
戻り値: integer
enableSubscription_int (sub_set, sub_provider, sub_receiver) node sub_provider によりセット sub_set に対しノード sub_receiver を購読できるようにする内部関数。 slon はこの作業の殆どを行います。このようなことが起こると言うことを覚えておく必要があります。、関数は購読動作が有効になった事を示唆する sl_subscribe を更新します。declare p_sub_set alias for $1; p_sub_provider alias for $2; p_sub_receiver alias for $3; v_n int4; begin -- ---- -- 中枢構成にロックの取得 -- ---- lock table sl_config_lock; -- ---- -- 実際の仕事は複製エンジン内で行われます。 -- 私たちの役目はこういう事が起こる事を覚えておく事です。 -- ---- -- ---- -- それだけでは無い? … 何か重要な事象を忘れているかもしれません。 -- ---- if not exists (select true from sl_path where pa_server = p_sub_provider and pa_client = p_sub_receiver) then insert into sl_path (pa_server, pa_client, pa_conninfo, pa_connretry) values (p_sub_provider, p_sub_receiver, '<event pending>', 10); end if; update sl_subscribe set sub_active = 't' where sub_set = p_sub_set and sub_receiver = p_sub_receiver; get diagnostics v_n = row_count; if v_n = 0 then insert into sl_subscribe (sub_set, sub_provider, sub_receiver, sub_forward, sub_active) values (p_sub_set, p_sub_provider, p_sub_receiver, false, true); end if; -- Rewrite sl_listen table perform RebuildListenEntries(); return p_sub_set; end;