You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
)
I feel like he's trying to skip the short-circuit expression based on the code's understanding. But there will be a problem with this one. Even if the expression is a short-circuit expression. However, it is not possible to eliminate the fact that there is a common component of the children-expression (i.g. select (heavyFunc(field1) and tinyFunc(field2)) as c1, heavyFunc(field1) and tinyFunc(field3) as c2 from t, don't eliminate children-expression heavyFunc(field1) ).
Why don't let it continue in func f_down and ignore count short-circut expression in func f_up like below code.
reacted with thumbs up emoji reacted with thumbs down emoji reacted with laugh emoji reacted with hooray emoji reacted with confused emoji reacted with heart emoji reacted with rocket emoji reacted with eyes emoji
-
I've found that DataFusion has a limited degree of elimination of common expressions. I found this line in
f_down
func:[short-circuit expression](
datafusion/datafusion/optimizer/src/common_subexpr_eliminate.rs
Line 664 in 4109f58
I feel like he's trying to skip the short-circuit expression based on the code's understanding. But there will be a problem with this one. Even if the expression is a short-circuit expression. However, it is not possible to eliminate the fact that there is a common component of the children-expression (i.g.
select (heavyFunc(field1) and tinyFunc(field2)) as c1, heavyFunc(field1) and tinyFunc(field3) as c2 from t
, don't eliminate children-expressionheavyFunc(field1)
).Why don't let it continue in func
f_down
and ignore count short-circut expression in funcf_up
like below code.datafusion/datafusion/optimizer/src/common_subexpr_eliminate.rs
Line 686 in 4109f58
Beta Was this translation helpful? Give feedback.
All reactions