xiong duan created CALCITE-6650:
-----------------------------------

             Summary: Optimize the IN sub-query and SOME sub-query by Metadata 
RowCount
                 Key: CALCITE-6650
                 URL: https://issues.apache.org/jira/browse/CALCITE-6650
             Project: Calcite
          Issue Type: Improvement
            Reporter: xiong duan


SQL:
{code:java}
select * from dept as d where deptno not in (select count(*) from emp e having 
false)
Before this PR:
LogicalProject(DEPTNO=[$0], NAME=[$1])
  LogicalProject(DEPTNO=[$0], NAME=[$1])
    LogicalFilter(condition=[OR(=($2, 0), AND(IS NULL($5), >=($3, $2)))])
      LogicalJoin(condition=[=(CAST($0):BIGINT NOT NULL, $4)], joinType=[left])
        LogicalJoin(condition=[true], joinType=[inner])\n          
          LogicalTableScan(table=[[CATALOG, SALES, DEPT]])
          LogicalProject(c=[$0], ck=[$0])
            LogicalAggregate(group=[{}], c=[COUNT()])
              LogicalValues(tuples=[[]])
        LogicalProject(EXPR$0=[$0], i=[true])
          LogicalValues(tuples=[[]])\n
After this PR:
LogicalProject(DEPTNO=[$0], NAME=[$1])
  LogicalTableScan(table=[[CATALOG, SALES, DEPT]]) {code}



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

Reply via email to