Provided by: slony1-doc_1.2.15-1_all bug


       MERGE SET - Merge Slony-I replication sets together


       MERGE SET (options);


       Merge  a set of tables and sequences into another one. This function is
       a  workaround  for  the  problem  that  it  is  not  possible  to   add
       tables/sequences to already-subscribed sets. One may create a temporary
       set, add the  new  objects  to  that,  subscribe  all  nodes  currently
       subscribed  to  the  other  set to this new one, and then merge the two
       together, eliminating the set ID that was being added.

       This operation will refuse to be run  if  the  two  sets  do  not  have
       exactly the same set of subscribers.

       ID = ival
              Unique  ID  of  the set to contain the union of the two separate

       ADD ID = ival
              Unique ID of the set whose objects should be transferred.

       ORIGIN = ival
              Current origin node for both sets.

       This uses “schemadocmergeset( integer, integer )” [not available  as  a
       man page].


            # Assuming that set 1 has direct subscribers 2 and 3
            SUBSCRIBE SET (ID = 999, PROVIDER = 1, RECEIVER = 2);
            SYNC (ID=1);
            WAIT FOR EVENT (ORIGIN = 1, CONFIRMED = 2, WAIT ON=1);
            SUBSCRIBE SET (ID = 999, PROVIDER = 1, RECEIVER = 3);
            SYNC (ID=1);
            WAIT FOR EVENT (ORIGIN = 1, CONFIRMED = 3, WAIT ON=1);
            MERGE SET ( ID = 1, ADD ID = 999, ORIGIN = 1 );


       No application-visible locking should take place.


       Merging takes place based on the configuration on the origin node. If a
       merge is requested while subscriptions are still being processed,  this
       can  cause in-progress subscribers’ replication to break, as they’ll be
       looking for configuration for this set which the merge request deletes.
       Do not be too quick to merge sets.


       This  command  was  introduced  in  Slony-I  1.0.5.  In  1.2.1,  a race
       condition was rectified where the  merge  request  would  be  submitted
       while subscriptions were still in process on subscribers; it refuses to
       merge before subscriptions are complete.

                               17 November 2008                   MERGE SET(7)