diff options
Diffstat (limited to 'src/mongo/db/query/plan_executor_impl.h')
-rw-r--r-- | src/mongo/db/query/plan_executor_impl.h | 14 |
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; |