diff options
Diffstat (limited to 'src/mongo/db/index/duplicate_key_tracker.cpp')
-rw-r--r-- | src/mongo/db/index/duplicate_key_tracker.cpp | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/src/mongo/db/index/duplicate_key_tracker.cpp b/src/mongo/db/index/duplicate_key_tracker.cpp index 0f997415068..4d3d88bd075 100644 --- a/src/mongo/db/index/duplicate_key_tracker.cpp +++ b/src/mongo/db/index/duplicate_key_tracker.cpp @@ -55,6 +55,20 @@ DuplicateKeyTracker::DuplicateKeyTracker(OperationContext* opCtx, const IndexCat invariant(_indexCatalogEntry->descriptor()->unique()); } +DuplicateKeyTracker::DuplicateKeyTracker(OperationContext* opCtx, + const IndexCatalogEntry* entry, + StringData ident) + : _indexCatalogEntry(entry) { + _keyConstraintsTable = + opCtx->getServiceContext()->getStorageEngine()->makeTemporaryRecordStoreFromExistingIdent( + opCtx, ident); + + invariant(_indexCatalogEntry->descriptor()->unique(), + str::stream() << "Duplicate key tracker table exists on disk with ident: " << ident + << " but the index is not unique: " + << _indexCatalogEntry->descriptor()); +} + void DuplicateKeyTracker::finalizeTemporaryTable(OperationContext* opCtx, TemporaryRecordStore::FinalizationAction action) { _keyConstraintsTable->finalizeTemporaryTable(opCtx, action); |