[
https://issues.apache.org/jira/browse/PHOENIX-7890?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Andrew Kyle Purtell updated PHOENIX-7890:
-----------------------------------------
Description:
The chosen {{JoinCompiler.Strategy}} and the {{SKIP MERGE}} and {{DELAYED
EVALUATION}} decorators move out of inline parentheticals into a single
trailing SQL comment per join operator line. {{HashJoinPlan}} and
{{SortMergeJoinPlan}} gain a {{JoinCompiler.Strategy strategy}} field and
getter/setter. {{QueryCompiler.compileJoinQuery}} threads the chosen strategy
through {{{}HashJoinPlan.create(...){}}}.
{{UnionPlan.getExplainPlan()}} is rewritten to compose recursively from each
branch's {{getExplainPlan()}} (like
{{{}SortMergeJoinPlan.getExplainPlan(){}}}). The N branches are represented via
the existing {{subPlans}} list. A new
{{UnionResultIterators.explainBranches(plans, planSteps, builder)}} helper is
the single source of truth for branch composition. The two
{{ResultIterators.explain(...)}} SPI overrides on {{UnionResultIterators}}
become thin delegates to it. {{UnionPlan.getExplainPlan()}} no longer triggers
sub-plan execution, so connectionless tests can check them.
Minor housekeeping: Replace string 'Truncate Table' with 'TRUNCATE TABLE' in
EXPLAIN DDL.
was:
The chosen {{JoinCompiler.Strategy}} and the {{SKIP MERGE}} and {{DELAYED
EVALUATION}} decorators move out of inline parentheticals into a single
trailing SQL comment per join operator line. {{HashJoinPlan}} and
{{SortMergeJoinPlan}} gain a {{JoinCompiler.Strategy strategy}} field and
getter/setter. {{QueryCompiler.compileJoinQuery}} threads the chosen strategy
through {{{}HashJoinPlan.create(...){}}}.
{{
UnionPlan.getExplainPlan()}} is rewritten to compose recursively from each
branch's {{getExplainPlan()}} (like
{{{}SortMergeJoinPlan.getExplainPlan(){}}}). The N branches are represented via
the existing {{subPlans}} list. A new
{{UnionResultIterators.explainBranches(plans, planSteps, builder)}} helper is
the single source of truth for branch composition. The two
{{ResultIterators.explain(...)}} SPI overrides on {{UnionResultIterators}}
become thin delegates to it. {{UnionPlan.getExplainPlan()}} no longer triggers
sub-plan execution, so connectionless tests can check them.
Minor housekeeping: Replace string 'Truncate Table' with 'TRUNCATE TABLE' in
EXPLAIN DDL.
> Improve EXPLAIN for joins and unions
> ------------------------------------
>
> Key: PHOENIX-7890
> URL: https://issues.apache.org/jira/browse/PHOENIX-7890
> Project: Phoenix
> Issue Type: Sub-task
> Reporter: Andrew Kyle Purtell
> Assignee: Andrew Kyle Purtell
> Priority: Major
> Fix For: PHOENIX-7876-feature
>
>
> The chosen {{JoinCompiler.Strategy}} and the {{SKIP MERGE}} and {{DELAYED
> EVALUATION}} decorators move out of inline parentheticals into a single
> trailing SQL comment per join operator line. {{HashJoinPlan}} and
> {{SortMergeJoinPlan}} gain a {{JoinCompiler.Strategy strategy}} field and
> getter/setter. {{QueryCompiler.compileJoinQuery}} threads the chosen strategy
> through {{{}HashJoinPlan.create(...){}}}.
> {{UnionPlan.getExplainPlan()}} is rewritten to compose recursively from each
> branch's {{getExplainPlan()}} (like
> {{{}SortMergeJoinPlan.getExplainPlan(){}}}). The N branches are represented
> via the existing {{subPlans}} list. A new
> {{UnionResultIterators.explainBranches(plans, planSteps, builder)}} helper is
> the single source of truth for branch composition. The two
> {{ResultIterators.explain(...)}} SPI overrides on {{UnionResultIterators}}
> become thin delegates to it. {{UnionPlan.getExplainPlan()}} no longer
> triggers sub-plan execution, so connectionless tests can check them.
> Minor housekeeping: Replace string 'Truncate Table' with 'TRUNCATE TABLE' in
> EXPLAIN DDL.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)