You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@phoenix.apache.org by "Andrew Kyle Purtell (Jira)" <ji...@apache.org> on 2026/06/11 00:22:00 UTC
[jira] [Resolved] (PHOENIX-7891) Explain the query optimizer's index selection rationale
[ https://issues.apache.org/jira/browse/PHOENIX-7891?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Andrew Kyle Purtell resolved PHOENIX-7891.
------------------------------------------
Resolution: Fixed
> 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 with a new data model and a closed set of {{RULE_\*}} and {{REASON_\*}} string constants plumbed through {{QueryPlan}}/{{BaseQueryPlan}}/{{DelegateQueryPlan}}. {{AddPlanResult}} returns from the two {{addPlan}} overloads, and a {{DecisionState}} accumulator is threaded through. A new helper method assigns the winning rule and collected rejections. New {{ExplainPlanAttributes}} fields {{indexRule}} and {{indexRejected}} are set in {{BaseQueryPlan}} from {{getOptimizerDecision()}}, with matching {{ExplainPlanTestUtil}} fluent assertions {{indexRule}}, {{indexRuleStartsWith}}, {{indexRejectedCount}}, {{indexRejected}}, and {{indexRejectedNone}}.
> {{EXPLAIN}} output gains {{INDEX <name> [<kind>] [/* <rule> */]}} for chosen index and one {{/* !INDEX <name> -- <reason> */}} line per rejected index.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)