Jesus Camacho Rodriguez created CALCITE-2189:

             Summary: RelMdAllPredicates fast bail out creates mismatch with 
                 Key: CALCITE-2189
             Project: Calcite
          Issue Type: Bug
          Components: core
            Reporter: Jesus Camacho Rodriguez
            Assignee: Jesus Camacho Rodriguez
             Fix For: 1.16.0

The idea behind the metadata providers introduced in CALCITE-1682 is that we 
can identify the lineage of the expressions. If we bypass assigning a unique 
identifier for the table in RelMdAllPredicates because there are no predicates 
on those tables, then we will end up referencing wrong tables.

select x.sal from
(select a.deptno, c.sal from (select * from emp limit 7) as a
cross join (select * from dept limit 1) as b
cross join (select * from emp where empno = 5 limit 2) as c) as x;
Table refs: {{[[CATALOG, SALES, DEPT].#0, [CATALOG, SALES, EMP].#0, [CATALOG, 
SALES, EMP].#1]}}
Extracted predicate without fix (wrong): {{=([CATALOG, SALES, EMP].#0.$0, 5)}}
Extracted predicate with fix (correct): {{=([CATALOG, SALES, EMP].#1.$0, 5)}}

This message was sent by Atlassian JIRA

Reply via email to