[ 
https://issues.apache.org/jira/browse/PHOENIX-7891?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Andrew Kyle Purtell updated PHOENIX-7891:
-----------------------------------------
    Description: 
Capture the query optimizer's index selection rationale and surface it in 
{{EXPLAIN}} output.

A new {{OptimizerDecision}} data model describing chosen indexes, decision 
rules, and rejected candidates with reasons is plumbed through {{QueryPlan}} 
and populated during planning, tagging each comparator and short-circuit branch 
(point lookup, hint, cost-based, CDC index, order-preserving, local-vs-global 
tie-break, partial index, etc.) and recording index selection or rejection 
reasons. {{QueryOptimizer.addPlan}} returns {{Optional<RejectedIndexEntry>}}. 
{{ExplainTable}} renders the chosen target as {{INDEX <name> [<kind>]  /\* 
<rule> \*/}} (omitting {{<kind>}} for base table targets plus a {{/\* !INDEX 
<name> -- <reason> \*/}} line per rejected candidate index, with IT coverage 
across every rule, rejection reason, and index kind.

  was:
Capture the query optimizer's index selection rationale and surface it in 
{{EXPLAIN}} output.

A new {{OptimizerDecision}} data model describing chosen indexes, decision 
rules, and rejected candidates with reasons is plumbed through {{QueryPlan}} 
and populated during planning, tagging each comparator and short-circuit branch 
(point lookup, hint, cost-based, CDC index, order-preserving, local-vs-global 
tie-break, partial index, etc.) and recording index selection or rejection 
reasons. {{QueryOptimizer.addPlan}} returns {{Optional<RejectedIndexEntry>}}. 
{{ExplainTable}} renders the chosen target as {{INDEX <name> [<kind>]  /* 
<rule> */}} (omitting {{<kind>}} for base table targets plus a {{/* !INDEX 
<name> -- <reason> */}} line per rejected candidate index, with IT coverage 
across every rule, rejection reason, and index kind.


> Explain the query optimizer's index selection rationale
> -------------------------------------------------------
>
>                 Key: PHOENIX-7891
>                 URL: https://issues.apache.org/jira/browse/PHOENIX-7891
>             Project: Phoenix
>          Issue Type: Sub-task
>            Reporter: Andrew Kyle Purtell
>            Assignee: Andrew Kyle Purtell
>            Priority: Major
>             Fix For: PHOENIX-7876-feature
>
>
> Capture the query optimizer's index selection rationale and surface it in 
> {{EXPLAIN}} output.
> A new {{OptimizerDecision}} data model describing chosen indexes, decision 
> rules, and rejected candidates with reasons is plumbed through {{QueryPlan}} 
> and populated during planning, tagging each comparator and short-circuit 
> branch (point lookup, hint, cost-based, CDC index, order-preserving, 
> local-vs-global tie-break, partial index, etc.) and recording index selection 
> or rejection reasons. {{QueryOptimizer.addPlan}} returns 
> {{Optional<RejectedIndexEntry>}}. {{ExplainTable}} renders the chosen target 
> as {{INDEX <name> [<kind>]  /\* <rule> \*/}} (omitting {{<kind>}} for base 
> table targets plus a {{/\* !INDEX <name> -- <reason> \*/}} line per rejected 
> candidate index, with IT coverage across every rule, rejection reason, and 
> index kind.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to