[ 
https://issues.apache.org/jira/browse/CALCITE-7379?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

weihua zhang updated CALCITE-7379:
----------------------------------
    Description: 
case1:
{code:sql}
WITH
  t1(a, b, c) AS (VALUES (2, 2, 2), (3, 3, 3), (4, 4, 4)),
  t2(a, b, c) AS (VALUES (1, 1, 1), (3, 3, 3), (4, 4, 4)),
  t3(a, b, c) AS (VALUES (1, 1, 1), (2, 2, 2), (4, 4, 4))
SELECT * FROM t1 WHERE EXISTS (
SELECT * FROM t2
LEFT JOIN
(SELECT * FROM t3 WHERE t3.a = t1.a) foo
ON t2.a = foo.a
);

--return wrong result:
--4, 4, 4

--right result is:
--2, 2, 2
--3, 3, 3
--4, 4, 4
{code}

case2:

{code:sql}
SELECT * FROM dept
WHERE EXISTS (
    SELECT * FROM emp
    LEFT JOIN (
        SELECT * FROM emp e_sub
        WHERE e_sub.deptno = dept.deptno
    ) foo
    ON emp.deptno = foo.deptno
);

--return wrong result:
-- +--------+------------+----------+
-- | DEPTNO | DNAME      | LOC      |
-- +--------+------------+----------+
-- |     10 | ACCOUNTING | NEW YORK |
-- |     20 | RESEARCH   | DALLAS   |
-- |     30 | SALES      | CHICAGO  |
-- +--------+------------+----------+
-- (3 rows)

--right result is:
--   dname    | deptno |   loc    
-- ------------+--------+----------
-- ACCOUNTING |     10 | NEW YORK
-- RESEARCH   |     20 | DALLAS
-- SALES      |     30 | CHICAGO
-- OPERATIONS |     40 | BOSTON
--(4 rows)
{code}


  was:
{code:sql}
WITH
  t1(a, b, c) AS (VALUES (2, 2, 2), (3, 3, 3), (4, 4, 4)),
  t2(a, b, c) AS (VALUES (1, 1, 1), (3, 3, 3), (4, 4, 4)),
  t3(a, b, c) AS (VALUES (1, 1, 1), (2, 2, 2), (4, 4, 4))
SELECT * FROM t1 WHERE EXISTS (
SELECT * FROM t2
LEFT JOIN
(SELECT * FROM t3 WHERE t3.a = t1.a) foo
ON t2.a = foo.a
);

return wrong result:
4, 4, 4


right result is:
2, 2, 2
3, 3, 3
4, 4, 4
{code:sql}



> LHS correlated variables are shadowed by nullable RHS outputs in LEFT JOIN
> --------------------------------------------------------------------------
>
>                 Key: CALCITE-7379
>                 URL: https://issues.apache.org/jira/browse/CALCITE-7379
>             Project: Calcite
>          Issue Type: Bug
>          Components: core
>            Reporter: weihua zhang
>            Priority: Major
>              Labels: pull-request-available
>
> case1:
> {code:sql}
> WITH
>   t1(a, b, c) AS (VALUES (2, 2, 2), (3, 3, 3), (4, 4, 4)),
>   t2(a, b, c) AS (VALUES (1, 1, 1), (3, 3, 3), (4, 4, 4)),
>   t3(a, b, c) AS (VALUES (1, 1, 1), (2, 2, 2), (4, 4, 4))
> SELECT * FROM t1 WHERE EXISTS (
> SELECT * FROM t2
> LEFT JOIN
> (SELECT * FROM t3 WHERE t3.a = t1.a) foo
> ON t2.a = foo.a
> );
> --return wrong result:
> --4, 4, 4
> --right result is:
> --2, 2, 2
> --3, 3, 3
> --4, 4, 4
> {code}
> case2:
> {code:sql}
> SELECT * FROM dept
> WHERE EXISTS (
>     SELECT * FROM emp
>     LEFT JOIN (
>         SELECT * FROM emp e_sub
>         WHERE e_sub.deptno = dept.deptno
>     ) foo
>     ON emp.deptno = foo.deptno
> );
> --return wrong result:
> -- +--------+------------+----------+
> -- | DEPTNO | DNAME      | LOC      |
> -- +--------+------------+----------+
> -- |     10 | ACCOUNTING | NEW YORK |
> -- |     20 | RESEARCH   | DALLAS   |
> -- |     30 | SALES      | CHICAGO  |
> -- +--------+------------+----------+
> -- (3 rows)
> --right result is:
> --   dname    | deptno |   loc    
> -- ------------+--------+----------
> -- ACCOUNTING |     10 | NEW YORK
> -- RESEARCH   |     20 | DALLAS
> -- SALES      |     30 | CHICAGO
> -- OPERATIONS |     40 | BOSTON
> --(4 rows)
> {code}



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

Reply via email to