suibianwanwan created CALCITE-7010:
--------------------------------------

             Summary: The well-known count bug
                 Key: CALCITE-7010
                 URL: https://issues.apache.org/jira/browse/CALCITE-7010
             Project: Calcite
          Issue Type: Bug
            Reporter: suibianwanwan


What is the count-bug: [Optimization of Nested SQL Queries 
Revisited|https://dl.acm.org/doi/pdf/10.1145/38714.38723]
{quote}The well-known "count-bug" is not specific to the count aggregate, and 
outer-join does not solve it. The anomaly can occur on any aggregate function; 
aggregates need modification to distiguish empty set from null values; and 
optimizing out the outerjoin depends on utilization context
{quote}
Test in sub-query.iq:
{code:java}
SELECT deptno
FROM dept d
WHERE 0 IN (
    SELECT COUNT(*)
    FROM emp e
    WHERE d.deptno = e.deptno
);
+--------+
| DEPTNO |
+--------+
|     40 |
+--------+
(1 row)

!ok

SELECT deptno
FROM dept d
WHERE 'Regular' IN (
    SELECT CASE WHEN SUM(sal) > 10 then 'VIP' else 'Regular' END expr
    FROM emp e
    WHERE d.deptno = e.deptno
);
+--------+
| DEPTNO |
+--------+
|     40 |
+--------+
(1 row)

!ok
{code}
Actual results:
{code:java}
+--------+
| DEPTNO |
+--------+
+--------+
(0 rows)

+--------+
| DEPTNO |
+--------+
+--------+
(0 rows)
{code}



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

Reply via email to