summaryrefslogtreecommitdiff
path: root/src/mongo/db/db_raii.h
diff options
context:
space:
mode:
authorSiyuan Zhou <siyuan.zhou@mongodb.com>2017-08-30 23:58:30 -0400
committerSiyuan Zhou <siyuan.zhou@mongodb.com>2017-09-15 17:20:22 -0400
commit7626535bbcc2f90b7815cbf1a8e6d2c0bef732f1 (patch)
tree8638e4aafe02c50a616e8f319f8ed0cae068210f /src/mongo/db/db_raii.h
parentc9e5bcbc0dacfa8031f3a2aaa1c6e369d0bc26c3 (diff)
downloadmongo-7626535bbcc2f90b7815cbf1a8e6d2c0bef732f1.tar.gz
SERVER-30591 Do changeStream lookups by UUID instead of namespace.
Diffstat (limited to 'src/mongo/db/db_raii.h')
-rw-r--r--src/mongo/db/db_raii.h16
1 files changed, 16 insertions, 0 deletions
diff --git a/src/mongo/db/db_raii.h b/src/mongo/db/db_raii.h
index 7ff6b8f1a1d..e251d1fe05d 100644
--- a/src/mongo/db/db_raii.h
+++ b/src/mongo/db/db_raii.h
@@ -268,6 +268,12 @@ public:
AutoGetCollectionForRead(OperationContext* opCtx, const NamespaceString& nss)
: AutoGetCollectionForRead(opCtx, nss, AutoGetCollection::ViewMode::kViewsForbidden) {}
+ AutoGetCollectionForRead(OperationContext* opCtx, const NamespaceString& nss, Lock::DBLock lock)
+ : AutoGetCollectionForRead(
+ opCtx, nss, AutoGetCollection::ViewMode::kViewsForbidden, std::move(lock)) {}
+
+ AutoGetCollectionForRead(OperationContext* opCtx, const StringData dbName, const UUID& uuid);
+
/**
* This constructor is intended for internal use and should not be used outside this file.
* AutoGetCollectionForReadCommand and AutoGetCollectionOrViewForReadCommand use 'viewMode' to
@@ -283,10 +289,16 @@ public:
AutoGetCollection::ViewMode viewMode,
Lock::DBLock lock);
Database* getDb() const {
+ if (!_autoColl) {
+ return nullptr;
+ }
return _autoColl->getDb();
}
Collection* getCollection() const {
+ if (!_autoColl) {
+ return nullptr;
+ }
return _autoColl->getCollection();
}
@@ -325,6 +337,10 @@ public:
: AutoGetCollectionForReadCommand(
opCtx, nss, AutoGetCollection::ViewMode::kViewsForbidden, std::move(lock)) {}
+ AutoGetCollectionForReadCommand(OperationContext* opCtx,
+ const StringData dbName,
+ const UUID& uuid);
+
Database* getDb() const {
return _autoCollForRead->getDb();
}