Provided by: slony1-2-doc_2.2.10-3_all bug

NAME

       MERGE SET - Merge Slony-I replication sets together

SYNOPSIS

       MERGE SET (options);

DESCRIPTION

       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 formerly separate sets.

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

       ORIGIN = ival
              Current origin node for both sets.

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

EXAMPLE

            # Assuming that node 1 is the origin of set 999 that has direct subscribers 2 and 3
            SUBSCRIBE SET (ID = 999, PROVIDER = 1, RECEIVER = 2);
            SUBSCRIBE SET (ID = 999, PROVIDER = 1, RECEIVER = 3);
            MERGE SET ( ID = 1, ADD ID = 999, ORIGIN = 1 );

LOCKING BEHAVIOUR

       No application-visible locking should take place.

DANGEROUS/UNINTUITIVE BEHAVIOUR

       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.

SLONIK EVENT CONFIRMATION BEHAVIOUR

       Slonik waits for the command submitted to the previous event node to be confirmed  on  the
       specified  event  node  before  submitting  this command. Slonik will also wait for any in
       progress subscriptions involving the ADD ID to be subscribed before submitting  the  MERGE
       SET command.

VERSION INFORMATION

       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.

                                         1 November 2021                      SLONIK MERGE SET(7)