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

ZiLin Chen updated CALCITE-4677:
--------------------------------
    Description: 
Whenever new physical nodes are on produce, we need to fire rules in case of 
different physical conventions conversion.

DeriveTrait Task deal with this case, while some physical node maybe missing.

 

LogicalSortToTopNRuleLogicalSortToTopNRuleLogicalSortToLimitMemSortRuleTopNToSomeRelNodeRule
 (Need Match Physical Convention Node like TopN)
LogicalAggreate          -> 1. RelSet1  - LogicalSort  -> 2. RelSet2 fires 
LogicalSortToTopNRule and LogicalSortToLimitMemSortRule
ApplyRuleTask LogicalSortToLimitMemSortRule alread scheduleApplyRuleTask 
LogicalSortToTopNRule still on stack
when RelSet3 on Merge (Merge with other RelSets)RelSet2 clearProcessed(): 
subset.resetTaskState()RelSet1 clearProcessed(): subset.resetTaskState()
because RelSet1 is root so OptimizeGroup will schedule again
Now the task stack
Task Stack:Task about RelSet1Task about RelSet2 ApplyRuleTask 
LogicalSortToTopNRuleTask about RelSet3Task about RelSet1 root schedule 
againTask about RelSet2Task about RelSet3 (current task)
next
Task Stack:Task about RelSet1Task about RelSet2Task about RelSet3Task about 
RelSet1 Task about RelSet2 RelSubSet setOptimized so taskState -> Completed.  
rels on RelSet (LogicalSort and LimitMemSort)
next...
Task Stack:Task about RelSet1Task about RelSet2 ApplyRuleTask 
LogicalSortToTopNRule. 
Here we found when TopN is on produce, every RelSubSet can not fire 
OptimizeInputTask. so TopNToSomeRelNodeRule can not fire 

  was:
Whenever new physical nodes are on produce, we need to fire rules in case of 
different physical conventions conversion.

DeriveTrait Task deal with this case, while some physical node maybe missing.

 


> Different physical conventions conversion on  new physical node producing
> -------------------------------------------------------------------------
>
>                 Key: CALCITE-4677
>                 URL: https://issues.apache.org/jira/browse/CALCITE-4677
>             Project: Calcite
>          Issue Type: Bug
>          Components: core
>    Affects Versions: 1.28.0
>            Reporter: ZiLin Chen
>            Priority: Major
>              Labels: pull-request-available
>          Time Spent: 10m
>  Remaining Estimate: 0h
>
> Whenever new physical nodes are on produce, we need to fire rules in case of 
> different physical conventions conversion.
> DeriveTrait Task deal with this case, while some physical node maybe missing.
>  
> LogicalSortToTopNRuleLogicalSortToTopNRuleLogicalSortToLimitMemSortRuleTopNToSomeRelNodeRule
>  (Need Match Physical Convention Node like TopN)
> LogicalAggreate          -> 1. RelSet1  - LogicalSort  -> 2. RelSet2 fires 
> LogicalSortToTopNRule and LogicalSortToLimitMemSortRule
> ApplyRuleTask LogicalSortToLimitMemSortRule alread scheduleApplyRuleTask 
> LogicalSortToTopNRule still on stack
> when RelSet3 on Merge (Merge with other RelSets)RelSet2 clearProcessed(): 
> subset.resetTaskState()RelSet1 clearProcessed(): subset.resetTaskState()
> because RelSet1 is root so OptimizeGroup will schedule again
> Now the task stack
> Task Stack:Task about RelSet1Task about RelSet2 ApplyRuleTask 
> LogicalSortToTopNRuleTask about RelSet3Task about RelSet1 root schedule 
> againTask about RelSet2Task about RelSet3 (current task)
> next
> Task Stack:Task about RelSet1Task about RelSet2Task about RelSet3Task about 
> RelSet1 Task about RelSet2 RelSubSet setOptimized so taskState -> Completed.  
> rels on RelSet (LogicalSort and LimitMemSort)
> next...
> Task Stack:Task about RelSet1Task about RelSet2 ApplyRuleTask 
> LogicalSortToTopNRule. 
> Here we found when TopN is on produce, every RelSubSet can not fire 
> OptimizeInputTask. so TopNToSomeRelNodeRule can not fire 



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to