You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@calcite.apache.org by "Danny Chen (Jira)" <ji...@apache.org> on 2020/06/19 03:12:00 UTC

[jira] [Created] (CALCITE-4073) Add a new component RexNormalize for more effect rex nodes normalization

Danny Chen created CALCITE-4073:
-----------------------------------

             Summary: 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
             Fix For: 1.24.0


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)