summaryrefslogtreecommitdiff
path: root/src/mongo/db/index/duplicate_key_tracker.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mongo/db/index/duplicate_key_tracker.cpp')
-rw-r--r--src/mongo/db/index/duplicate_key_tracker.cpp14
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);