[ https://issues.apache.org/jira/browse/CALCITE-4073?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17159698#comment-17159698 ]
Danny Chen commented on CALCITE-4073: ------------------------------------- Thanks. There was indeed a discussion on the mail list, hope we can make a consensus [1] [1] https://lists.apache.org/x/thread.html/r24ce699508819b6f984b7de5078ff29e2ca293d1510fb32d0eab4fc1@%3Cdev.calcite.apache.org%3E > Add a new component RexNormalize for more effect rex nodes normalization > ------------------------------------------------------------------------ > > Key: CALCITE-4073 > URL: https://issues.apache.org/jira/browse/CALCITE-4073 > Project: Calcite > Issue Type: Bug > Components: core > Affects Versions: 1.24.0 > Reporter: Danny Chen > Assignee: Danny Chen > Priority: Major > Labels: pull-request-available > Fix For: 1.24.0 > > Time Spent: 6h 10m > Remaining Estimate: 0h > > Currently, we only have simple normalization such as: > $2 = $1 => $1 = $2 > $2 > $1 => $1 < $2 > we can extend the logic to more like: > - put the complex predicates behind, like OR(OR(udf($1), $2), $3) => OR($3, > OR(udf($1), $2)) > - put the udf operand behind, like OR(udf($1), $2) => OR($2, udf($1)) > - put the local variables that appears more frequently in the front, which is > more user-friendly to code generation because the variable can be cached and > reused. > Also note that, we should allows flexible configuration for switch this > function on/off(not a system calcite property now) for downstream users and > projects(because the normalization may have some performance trade-off). -- This message was sent by Atlassian Jira (v8.3.4#803005)