summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/mongo/db/catalog/multi_index_block.cpp6
-rw-r--r--src/mongo/db/catalog/multi_index_block.h2
2 files changed, 7 insertions, 1 deletions
diff --git a/src/mongo/db/catalog/multi_index_block.cpp b/src/mongo/db/catalog/multi_index_block.cpp
index 24ac0c90eb2..37025a4656a 100644
--- a/src/mongo/db/catalog/multi_index_block.cpp
+++ b/src/mongo/db/catalog/multi_index_block.cpp
@@ -459,7 +459,7 @@ Status MultiIndexBlock::insertAllDocumentsInCollection(
// The external sorter is not part of the storage engine and therefore does not need a
// WriteUnitOfWork to write keys.
- uassertStatusOK(insertSingleDocumentForInitialSyncOrRecovery(opCtx, objToIndex, loc));
+ uassertStatusOK(_insert(opCtx, objToIndex, loc));
_failPointHangDuringBuild(opCtx,
&hangIndexBuildDuringCollectionScanPhaseAfterInsertion,
@@ -552,6 +552,10 @@ Status MultiIndexBlock::insertAllDocumentsInCollection(
Status MultiIndexBlock::insertSingleDocumentForInitialSyncOrRecovery(OperationContext* opCtx,
const BSONObj& doc,
const RecordId& loc) {
+ return _insert(opCtx, doc, loc);
+}
+
+Status MultiIndexBlock::_insert(OperationContext* opCtx, const BSONObj& doc, const RecordId& loc) {
invariant(!_buildIsCleanedUp);
for (size_t i = 0; i < _indexes.size(); i++) {
if (_indexes[i].filterExpression && !_indexes[i].filterExpression->matchesBSON(doc)) {
diff --git a/src/mongo/db/catalog/multi_index_block.h b/src/mongo/db/catalog/multi_index_block.h
index 9c82ceb9a3c..8a625a4267b 100644
--- a/src/mongo/db/catalog/multi_index_block.h
+++ b/src/mongo/db/catalog/multi_index_block.h
@@ -317,6 +317,8 @@ private:
const CollectionPtr& collection,
const IndexCatalogEntry* refIdx);
+ Status _insert(OperationContext* opCtx, const BSONObj& wholeDocument, const RecordId& loc);
+
// Is set during init() and ensures subsequent function calls act on the same Collection.
boost::optional<UUID> _collectionUUID;