diff options
-rw-r--r-- | src/mongo/db/catalog/multi_index_block.cpp | 6 | ||||
-rw-r--r-- | src/mongo/db/catalog/multi_index_block.h | 2 |
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; |