Function Properties
Language: PLPGSQL
Return Type: integer
enableSubscription_int (sub_set, sub_provider, sub_receiver) Internal function to enable subscription of node sub_receiver to set sub_set via node sub_provider. slon does most of the work; all we need do here is to remember that it happened. The function updates sl_subscribe, indicating that the subscription has become active.declare p_sub_set alias for $1; p_sub_provider alias for $2; p_sub_receiver alias for $3; v_n int4; begin -- ---- -- Grab the central configuration lock -- ---- lock table sl_config_lock; -- ---- -- The real work is done in the replication engine. All -- we have to do here is remembering that it happened. -- ---- -- ---- -- Well, not only ... we might be missing an important event here -- ---- 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;