[ 
https://issues.apache.org/jira/browse/CALCITE-3851?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17059399#comment-17059399
 ] 

Haisheng Yuan commented on CALCITE-3851:
----------------------------------------

{{String}} is immutable, but it has mutable field {{hash}}, once {{hash}} is 
set, it can't be changed again. The {{pruned}} field of {{AbstractRelNode}} 
serves the same purpose of {{String.hash}}. {{pruned}} can also be its own 
state of {{RelNode}}. Once it is pruned, it can't be un-pruned. It doesn't 
needs to planner state. Pruned relnode should not passed across different 
planner, otherwise, it is planner's bug, some pruned relnode is still used.

> Replace the node importance map with a set for pruned nodes
> -----------------------------------------------------------
>
>                 Key: CALCITE-3851
>                 URL: https://issues.apache.org/jira/browse/CALCITE-3851
>             Project: Calcite
>          Issue Type: Improvement
>          Components: core
>            Reporter: Liya Fan
>            Priority: Minor
>              Labels: pull-request-available
>          Time Spent: 1h 40m
>  Remaining Estimate: 0h
>
> Currently, volcano planner stores rel node importances with a map. In fact, 
> the value of the map can only be 0. 
> So there is no need to store the values, and we replace the map with a set to 
> store nodes whose importances are 0. 
> This makes the code logic clearer, and avoids instability caused by comparing 
> floating point values. 



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

Reply via email to