-
Type: Task
-
Resolution: Fixed
-
Priority: Major - P3
-
Affects Version/s: None
-
Component/s: None
-
None
-
Query Optimization
-
Fully Compatible
-
QO 2023-10-02, QO 2023-10-16, QO 2023-10-30, QO 2023-11-13
This ticket exposes the physical ABT in the queryPlanner output under winningPlan.queryPlan. This may involve adding a new version to the optimizer::ExplainVersion enum. It also adds the queryFramework field to the explain output if the framework used was CQF. It also takes care of EOF stage plans (for example, query on an empty collection).
Follow up work, which has been split off into tickets linked to this one, includes but is not limited to:
- Expose the physical ABT in the queryPlanner output under winningPlan.queryPlan. This may involve adding a new version to the optimizer::ExplainVersion enum.
- Investigate whether projection names in explain plans can be "descriptive" (see internalCascadesOptimizerUseDescriptiveVarNames)
- Omit the classic-only fields from the queryPlanner output
- Add CQF-specific fields to the output, such as maxPartialSchemaReqCountReached.
- Update the parsedQuery field to include the input query passed to the ABT translation component
- Ensure the server parameters list includes internalQueryCardinalityEstimatorMode and internalQueryFrameworkControl – possibly this should wait until we have a decision on exposing "bonsai"
- Bump the explain version to v3
- As a final check: ensure the explain output matches the examples in the syntax document
- is depended on by
-
SERVER-80542 [CQF] Implement explain for M2 based on WRITING-14698 syntax
- Closed
- is related to
-
SERVER-82869 [CQF] Clean up explain helpers use of optimizerPlan
- Closed
-
SERVER-82870 [CQF] Can projection names in explain be "descriptive"?
- Closed
-
SERVER-82871 [CQF] Add/remove fields for CQF explain output
- Closed
-
SERVER-82873 [CQF] Update parsedQuery field
- Closed
-
SERVER-82874 [CQF] Update server params list in explain
- Closed
-
SERVER-82875 [CQF] Ensure explain output matches syntax doc examples
- Closed
-
SERVER-82879 [CQF] Respect the internalQueryExplainSizeThresholdBytes param
- Closed
-
SERVER-83054 [CQF] Remove CE and costEstimate from queryPlanner explain
- Closed
-
SERVER-83284 [CQF] Separate user-facing explain from internal-explain functions
- Closed