summaryrefslogtreecommitdiff
path: root/src/mongo/db/query/sbe_stage_builder_coll_scan.h
diff options
context:
space:
mode:
authorDrew Paroski <drew.paroski@mongodb.com>2020-10-14 18:58:23 -0400
committerEvergreen Agent <no-reply@evergreen.mongodb.com>2020-11-13 02:05:25 +0000
commit0cffa0c8c7fcf345a4e2b2013832e6d245a67c1d (patch)
treedc537be8cf9fe9e028ae9e8de651428aca78b6ce /src/mongo/db/query/sbe_stage_builder_coll_scan.h
parent31a7ccd430117935a3582775690c426624a6338d (diff)
downloadmongo-0cffa0c8c7fcf345a4e2b2013832e6d245a67c1d.tar.gz
SERVER-49536 SBE stage builder is broken for SORT when SORT comes before FETCH
Diffstat (limited to 'src/mongo/db/query/sbe_stage_builder_coll_scan.h')
-rw-r--r--src/mongo/db/query/sbe_stage_builder_coll_scan.h27
1 files changed, 14 insertions, 13 deletions
diff --git a/src/mongo/db/query/sbe_stage_builder_coll_scan.h b/src/mongo/db/query/sbe_stage_builder_coll_scan.h
index 338c5cff894..86c56fd6154 100644
--- a/src/mongo/db/query/sbe_stage_builder_coll_scan.h
+++ b/src/mongo/db/query/sbe_stage_builder_coll_scan.h
@@ -36,6 +36,9 @@
#include "mongo/db/query/query_solution.h"
namespace mongo::stage_builder {
+
+class PlanStageSlots;
+
/**
* Generates an SBE plan stage sub-tree implementing an collection scan.
*
@@ -48,17 +51,15 @@ namespace mongo::stage_builder {
*
* In cases of an error, throws.
*/
-std::tuple<sbe::value::SlotId,
- sbe::value::SlotId,
- boost::optional<sbe::value::SlotId>,
- std::unique_ptr<sbe::PlanStage>>
-generateCollScan(OperationContext* opCtx,
- const CollectionPtr& collection,
- const CollectionScanNode* csn,
- sbe::value::SlotIdGenerator* slotIdGenerator,
- sbe::value::FrameIdGenerator* frameIdGenerator,
- PlanYieldPolicy* yieldPolicy,
- sbe::RuntimeEnvironment* env,
- bool isTailableResumeBranch,
- TrialRunProgressTracker* tracker);
+std::pair<std::unique_ptr<sbe::PlanStage>, PlanStageSlots> generateCollScan(
+ OperationContext* opCtx,
+ const CollectionPtr& collection,
+ const CollectionScanNode* csn,
+ sbe::value::SlotIdGenerator* slotIdGenerator,
+ sbe::value::FrameIdGenerator* frameIdGenerator,
+ PlanYieldPolicy* yieldPolicy,
+ sbe::RuntimeEnvironment* env,
+ bool isTailableResumeBranch,
+ TrialRunProgressTracker* tracker);
+
} // namespace mongo::stage_builder