summaryrefslogtreecommitdiff
path: root/src/mongo/db/storage/biggie/store.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/mongo/db/storage/biggie/store.h')
-rw-r--r--src/mongo/db/storage/biggie/store.h10
1 files changed, 7 insertions, 3 deletions
diff --git a/src/mongo/db/storage/biggie/store.h b/src/mongo/db/storage/biggie/store.h
index 80da6009cf9..a2f74a29945 100644
--- a/src/mongo/db/storage/biggie/store.h
+++ b/src/mongo/db/storage/biggie/store.h
@@ -1407,9 +1407,13 @@ private:
current->_children[key] = other->_children[key];
}
} else if (baseNode && otherNode && baseNode != otherNode) {
- // If all three are unique and leaf nodes, then it is a merge conflict.
- if (node->isLeaf() && baseNode->isLeaf() && otherNode->isLeaf())
- throw merge_conflict_exception();
+ // If all three are unique and leaf nodes with different data, then it is a merge
+ // conflict.
+ if (node->isLeaf() && baseNode->isLeaf() && otherNode->isLeaf()) {
+ if (node->_data != baseNode->_data || baseNode->_data != otherNode->_data)
+ throw merge_conflict_exception();
+ continue;
+ }
// If the keys and data are all the exact same, then we can keep recursing.
// Otherwise, we manually resolve the differences element by element. The