-
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
-
None
-
None
-
None
-
None
-
None
-
None
-
None
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
-