Konstantin Orlov created IGNITE-24195:
-----------------------------------------

             Summary: Sql. Add normalization of expressions generated by 
RexBuilder 
                 Key: IGNITE-24195
                 URL: https://issues.apache.org/jira/browse/IGNITE-24195
             Project: Ignite
          Issue Type: Improvement
          Components: sql
            Reporter: Konstantin Orlov


At the moment, RexBuilder creates RexCall with operands in order provided by a 
caller site. Although this is the most correct way to create a call, such an 
approach may result in a sub-efficient use of memoization for expressions 
having commutative property.

For example, the same join node due to applied rules may be represented by two 
distinct string (e.g. two distinct digests. which are used as memoization key):

{code}
    HashJoin(condition=[... OR(=($10, _UTF-8'GERMANY'), =($14, 
_UTF-8'GERMANY')), OR(=($14, _UTF-8'FRANCE'), =($10, _UTF-8'FRANCE')))]
                     vs
    HashJoin(condition=[... OR(=($14, _UTF-8'FRANCE'), =($10, _UTF-8'FRANCE')), 
OR(=($10, _UTF-8'GERMANY'), =($14, _UTF-8'GERMANY')))]
{code}

It would be nice to provide some sort of normalization for operations having 
commutative property.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to