summaryrefslogtreecommitdiff
path: root/src/mongo/db/catalog/database_impl.cpp
diff options
context:
space:
mode:
authorJennifer Peshansky <jennifer.peshansky@mongodb.com>2022-11-03 16:13:20 +0000
committerJennifer Peshansky <jennifer.peshansky@mongodb.com>2022-11-03 16:13:20 +0000
commite74d2910bbe76790ad131d53fee277829cd95982 (patch)
treecabe148764529c9623652374fbc36323a550cd44 /src/mongo/db/catalog/database_impl.cpp
parent280145e9940729480bb8a35453d4056afac87641 (diff)
parentba467f46cc1bc49965e1d72b541eff0cf1d7b22e (diff)
downloadmongo-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.cpp16
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());