-
Type: Improvement
-
Resolution: Fixed
-
Priority: Major - P3
-
Affects Version/s: None
-
Component/s: None
-
None
-
Query Execution
-
Fully Compatible
-
QE 2024-01-22, QE 2024-02-05
-
1
The project will be mostly contained inside classic_runtime_planner_for_sbe namespace.
In it, we should have something like
struct PlannerData { std::unique_ptr<CanonicalQuery> cq; std::unique_ptr<PlanYieldPolicySBE> sbeYieldPolicy; std::unique_ptr<WorkingSet> workingSet; const MultipleCollectionAccessor& collections; const QueryPlannerParams& plannerParams; }; class PlannerInterface { public: virtual ~PlannerInterface() = default; virtual std::unique_ptr<PlanExecutor, PlanExecutor::Deleter> plan() = 0; };
And PlannerInterface implementations for SingleSolutionPlanner, MultiPlanner, SubPlanner and CachedPlanner.
In this ticket, this implementations can be stubs, that will be expanded in the future tickets.
The corresponding classic_runtime_planner_for_sbe::*Planner should be used in mongo::getExecutorFind function by implementing a new PrepareExecutionHelper
- depends on
-
SERVER-83343 Create feature flag for Classic multi-planner for SBE
- Closed
- is depended on by
-
SERVER-85235 Implement classic_runtime_planner_for_sbe::MultiPlanner
- Closed
-
SERVER-85241 Implement classic_runtime_planner_for_sbe::SubPlanner
- Closed
-
SERVER-85237 Implement classic_runtime_planner_for_sbe::CachedPlanner without replanning
- Closed
-
SERVER-85247 Create unit tests for classic_runtime_planner_for_sbe
- Closed