Jinpeng Wu created CALCITE-4050:
-----------------------------------

             Summary: Traits Propagation for EnumerableMergeJoin Produces 
Incorrect Result
                 Key: CALCITE-4050
                 URL: https://issues.apache.org/jira/browse/CALCITE-4050
             Project: Calcite
          Issue Type: Bug
            Reporter: Jinpeng Wu


In EnumerableMergeJoin's deriveTraits method, it uses a Map to record mapping 
from left keys to right keys (the keyMap variable). However, the left keys 
could have duplicate entries. 
One example is JdbcTest.testJoinInCorrelatedSubQuery, the expected plan is 

EnumerableProject(deptno=[$0], name=[$1], employees=[$2], location=[$3])
  EnumerableMergeJoin(condition=[AND(=($0, $5), =($0, $4))], joinType=[inner])
    EnumerableSort(sort0=[$0], dir0=[ASC])
      EnumerableTableScan(table=[[hr, depts]])
    EnumerableSort(sort0=[$1], sort1=[$0], dir0=[ASC], dir1=[ASC])
      ...

where left keys are [0, 0] , and  right keys are [1, 0]. Deriving right child's 
traits may result in incorrect output. 



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

Reply via email to