summaryrefslogtreecommitdiff
path: root/src/mongo/db/storage/mmap_v1/catalog
diff options
context:
space:
mode:
Diffstat (limited to 'src/mongo/db/storage/mmap_v1/catalog')
-rw-r--r--src/mongo/db/storage/mmap_v1/catalog/namespace_details_collection_entry.cpp21
-rw-r--r--src/mongo/db/storage/mmap_v1/catalog/namespace_details_collection_entry.h2
2 files changed, 13 insertions, 10 deletions
diff --git a/src/mongo/db/storage/mmap_v1/catalog/namespace_details_collection_entry.cpp b/src/mongo/db/storage/mmap_v1/catalog/namespace_details_collection_entry.cpp
index d010c2d2ed0..33e3e3ca78a 100644
--- a/src/mongo/db/storage/mmap_v1/catalog/namespace_details_collection_entry.cpp
+++ b/src/mongo/db/storage/mmap_v1/catalog/namespace_details_collection_entry.cpp
@@ -450,17 +450,20 @@ void NamespaceDetailsCollectionCatalogEntry::addUUID(OperationContext* opCtx,
}
bool NamespaceDetailsCollectionCatalogEntry::isEqualToMetadataUUID(OperationContext* opCtx,
- CollectionUUID uuid) {
- if (ns().coll() != "system.namespaces") {
- RecordData namespaceData;
- invariant(_namespacesRecordStore->findRecord(opCtx, _namespacesRecordId, &namespaceData));
-
- auto namespacesBson = namespaceData.releaseToBson();
- auto optionsObj = namespacesBson["options"].Obj();
- return !optionsObj["uuid"].eoo() && UUID::parse(optionsObj["uuid"]).getValue() == uuid;
- } else {
+ OptionalCollectionUUID uuid) {
+ if (ns().coll() == "system.namespaces") {
return true;
}
+ RecordData namespaceData;
+ invariant(_namespacesRecordStore->findRecord(opCtx, _namespacesRecordId, &namespaceData));
+
+ auto namespacesBson = namespaceData.releaseToBson();
+ if (ns().coll() == "system.indexes") {
+ return !uuid && (!namespacesBson["options"].isABSONObj() ||
+ namespacesBson["options"].Obj()["uuid"].eoo());
+ }
+ auto optionsObj = namespacesBson["options"].Obj();
+ return !optionsObj["uuid"].eoo() && UUID::parse(optionsObj["uuid"]).getValue() == uuid;
}
void NamespaceDetailsCollectionCatalogEntry::updateValidator(OperationContext* opCtx,
diff --git a/src/mongo/db/storage/mmap_v1/catalog/namespace_details_collection_entry.h b/src/mongo/db/storage/mmap_v1/catalog/namespace_details_collection_entry.h
index 3a8f04ee615..517128ae26d 100644
--- a/src/mongo/db/storage/mmap_v1/catalog/namespace_details_collection_entry.h
+++ b/src/mongo/db/storage/mmap_v1/catalog/namespace_details_collection_entry.h
@@ -104,7 +104,7 @@ public:
void addUUID(OperationContext* opCtx, CollectionUUID uuid, Collection* coll) final;
- bool isEqualToMetadataUUID(OperationContext* opCtx, CollectionUUID uuid);
+ bool isEqualToMetadataUUID(OperationContext* opCtx, OptionalCollectionUUID uuid);
void updateValidator(OperationContext* opCtx,
const BSONObj& validator,