Update SetUnion() to use distinct bags for scalability