unsubscribeSet_int (sub_set, sub_receiver)
All the REAL work of removing the subscriber is done before the event
is generated, so this function just has to drop the references to the
subscription in sl_subscribe.

declare
begin
-- ----
-- Grab the central configuration lock
-- ----
lock table sl_config_lock;
-- ----
-- All the real work is done before event generation on the
-- subscriber.
-- ----
--if this event unsubscribes the provider of this node
--then this node should unsubscribe itself from the set as well.
if exists (select true from
sl_subscribe where
sub_set=p_sub_set and sub_provider=p_sub_receiver
and sub_receiver=getLocalNodeId('_schemadoc'))
then
perform unsubscribeSet(p_sub_set,getLocalNodeId('_schemadoc'),true);
end if;
delete from sl_subscribe
where sub_set = p_sub_set
and sub_receiver = p_sub_receiver;
-- Rewrite sl_listen table
perform RebuildListenEntries();
return p_sub_set;
end;