[
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)