summaryrefslogtreecommitdiff
path: root/src/mongo/db/query/plan_executor_impl.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/mongo/db/query/plan_executor_impl.h')
-rw-r--r--src/mongo/db/query/plan_executor_impl.h14
1 files changed, 10 insertions, 4 deletions
diff --git a/src/mongo/db/query/plan_executor_impl.h b/src/mongo/db/query/plan_executor_impl.h
index 629f66c6474..8d796e33ca4 100644
--- a/src/mongo/db/query/plan_executor_impl.h
+++ b/src/mongo/db/query/plan_executor_impl.h
@@ -61,17 +61,21 @@ public:
CanonicalQuery* getCanonicalQuery() const final;
const NamespaceString& nss() const final;
OperationContext* getOpCtx() const final;
+ const boost::intrusive_ptr<ExpressionContext>& getExpCtx() const final;
void saveState() final;
void restoreState() final;
void detachFromOperationContext() final;
void reattachToOperationContext(OperationContext* opCtx) final;
void restoreStateWithoutRetrying() final;
+ ExecState getNextSnapshotted(Snapshotted<Document>* objOut, RecordId* dlOut) final;
ExecState getNextSnapshotted(Snapshotted<BSONObj>* objOut, RecordId* dlOut) final;
- ExecState getNext(BSONObj* objOut, RecordId* dlOut) final;
+ ExecState getNext(Document* objOut, RecordId* dlOut) final;
+ ExecState getNext(BSONObj* out, RecordId* dlOut) final;
bool isEOF() final;
Status executePlan() final;
void markAsKilled(Status killStatus) final;
void dispose(OperationContext* opCtx) final;
+ void enqueue(const Document& obj) final;
void enqueue(const BSONObj& obj) final;
bool isMarkedAsKilled() const final;
Status getKillStatus() final;
@@ -79,6 +83,8 @@ public:
bool isDetached() const final;
Timestamp getLatestOplogTimestamp() const final;
BSONObj getPostBatchResumeToken() const final;
+
+ Status getMemberObjectStatus(const Document& memberObj) const final;
Status getMemberObjectStatus(const BSONObj& memberObj) const final;
private:
@@ -142,12 +148,12 @@ private:
* describing the error.
*/
ExecState _waitForInserts(CappedInsertNotifierData* notifierData,
- Snapshotted<BSONObj>* errorObj);
+ Snapshotted<Document>* errorObj);
/**
* Common implementation for getNext() and getNextSnapshotted().
*/
- ExecState _getNextImpl(Snapshotted<BSONObj>* objOut, RecordId* dlOut);
+ ExecState _getNextImpl(Snapshotted<Document>* objOut, RecordId* dlOut);
// The OperationContext that we're executing within. This can be updated if necessary by using
// detachFromOperationContext() and reattachToOperationContext().
@@ -181,7 +187,7 @@ private:
// A stash of results generated by this plan that the user of the PlanExecutor didn't want
// to consume yet. We empty the queue before retrieving further results from the plan
// stages.
- std::queue<BSONObj> _stash;
+ std::queue<Document> _stash;
enum { kUsable, kSaved, kDetached, kDisposed } _currentState = kUsable;