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.
Unique ID of the set to contain the union of the two separate sets.
Unique ID of the set whose objects should be transferred.
Current origin node for both sets.
This uses schemadocmergeset( integer, integer ).
# Assuming that set 1 has direct subscribers 2 and 3 SUBSCRIBE SET (ID = 999, PROVIDER = 1, RECEIVER = 2); WAIT FOR EVENT (ORIGIN = 2, CONFIRMED = 1); SYNC (ID=1); SUBSCRIBE SET (ID = 999, PROVIDER = 1, RECEIVER = 3); WAIT FOR EVENT (ORIGIN = 3, CONFIRMED = 1); SYNC (ID=1); MERGE SET ( ID = 2, ADD ID = 9999, ORIGIN = 1 );
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.