in glean/rts/factset.cpp [282:302]
bool FactSet::appendable(const FactSet& other) const {
if (empty() || other.empty()) {
return true;
}
if (firstFreeId() != other.startingId()) {
return false;
}
for (const auto& k : other.keys) {
if (const auto *p = keys.lookup(k.first)) {
for (auto i = k.second.begin(); i != k.second.end(); ++i) {
if (p->contains((*i)->key())) {
return false;
}
}
}
}
return true;
}