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

Reply via email to