summaryrefslogtreecommitdiff
path: root/src/mongo/db/exec/requires_collection_stage.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/mongo/db/exec/requires_collection_stage.h')
-rw-r--r--src/mongo/db/exec/requires_collection_stage.h17
1 files changed, 16 insertions, 1 deletions
diff --git a/src/mongo/db/exec/requires_collection_stage.h b/src/mongo/db/exec/requires_collection_stage.h
index 8265323458b..43a9c854302 100644
--- a/src/mongo/db/exec/requires_collection_stage.h
+++ b/src/mongo/db/exec/requires_collection_stage.h
@@ -32,6 +32,7 @@
#include "mongo/db/catalog/collection.h"
#include "mongo/db/catalog/collection_catalog.h"
#include "mongo/db/exec/plan_stage.h"
+#include "mongo/db/shard_role.h"
#include "mongo/util/uuid.h"
namespace mongo {
@@ -101,6 +102,20 @@ private:
};
// Type alias for use by PlanStages that write to a Collection.
-using RequiresMutableCollectionStage = RequiresCollectionStage;
+class RequiresWritableCollectionStage : public RequiresCollectionStage {
+public:
+ RequiresWritableCollectionStage(const char* stageType,
+ ExpressionContext* expCtx,
+ const ScopedCollectionAcquisition& coll)
+ : RequiresCollectionStage(stageType, expCtx, coll.getCollectionPtr()),
+ _collectionAcquisition(coll) {}
+
+ const ScopedCollectionAcquisition& collectionAcquisition() const {
+ return _collectionAcquisition;
+ }
+
+private:
+ const ScopedCollectionAcquisition& _collectionAcquisition;
+};
} // namespace mongo