diff options
author | Jennifer Peshansky <jennifer.peshansky@mongodb.com> | 2022-11-03 16:13:20 +0000 |
---|---|---|
committer | Jennifer Peshansky <jennifer.peshansky@mongodb.com> | 2022-11-03 16:13:20 +0000 |
commit | e74d2910bbe76790ad131d53fee277829cd95982 (patch) | |
tree | cabe148764529c9623652374fbc36323a550cd44 /src/mongo/db/catalog/database_impl.cpp | |
parent | 280145e9940729480bb8a35453d4056afac87641 (diff) | |
parent | ba467f46cc1bc49965e1d72b541eff0cf1d7b22e (diff) | |
download | mongo-jenniferpeshansky/SERVER-70854.tar.gz |
Merge branch 'master' into jenniferpeshansky/SERVER-70854jenniferpeshansky/SERVER-70854
Diffstat (limited to 'src/mongo/db/catalog/database_impl.cpp')
-rw-r--r-- | src/mongo/db/catalog/database_impl.cpp | 16 |
1 files changed, 9 insertions, 7 deletions
diff --git a/src/mongo/db/catalog/database_impl.cpp b/src/mongo/db/catalog/database_impl.cpp index 618ecedc65a..0a3c9754e16 100644 --- a/src/mongo/db/catalog/database_impl.cpp +++ b/src/mongo/db/catalog/database_impl.cpp @@ -573,20 +573,22 @@ Status DatabaseImpl::_finishDropCollection(OperationContext* opCtx, "namespace"_attr = nss, "uuid"_attr = uuid); - auto status = catalog::dropCollection( - opCtx, collection->ns(), collection->getCatalogId(), collection->getSharedIdent()); - if (!status.isOK()) - return status; + // A virtual collection does not have a durable catalog entry. + if (auto sharedIdent = collection->getSharedIdent()) { + auto status = catalog::dropCollection( + opCtx, collection->ns(), collection->getCatalogId(), sharedIdent); + if (!status.isOK()) + return status; - opCtx->recoveryUnit()->onCommit( - [opCtx, nss, uuid, ident = collection->getSharedIdent()->getIdent()]( - boost::optional<Timestamp> commitTime) { + opCtx->recoveryUnit()->onCommit([opCtx, nss, uuid, ident = sharedIdent->getIdent()]( + boost::optional<Timestamp> commitTime) { if (!commitTime) { return; } HistoricalIdentTracker::get(opCtx).recordDrop(ident, nss, uuid, commitTime.value()); }); + } CollectionCatalog::get(opCtx)->dropCollection( opCtx, collection, opCtx->getServiceContext()->getStorageEngine()->supportsPendingDrops()); |