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)