Uploaded image for project: 'Core Server'
  1. Core Server
  2. SERVER-85234

Create classic_runtime_planner_for_sbe namespace with stub implementations of PlannerInterface

    • Type: Icon: Improvement Improvement
    • Resolution: Fixed
    • Priority: Icon: Major - P3 Major - P3
    • 7.3.0-rc0
    • 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

       

            Assignee:
            ivan.fefer@mongodb.com Ivan Fefer
            Reporter:
            ivan.fefer@mongodb.com Ivan Fefer
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

              Created:
              Updated:
              Resolved: