Details
-
Improvement
-
Status: Closed
-
Major
-
Resolution: Fixed
-
None
-
None
Description
Do we need IntersectToSemiJoinRule? like this:
from:
LogicalIntersect(all=[false])
LogicalProject(EMPNO=[$0], ENAME=[$1], JOB=[$2], MGR=[$3], HIREDATE=[$4], SAL=[$5], COMM=[$6], DEPTNO=[$7], SLACKER=[$8])
LogicalFilter(condition=[=($7, 10)])
LogicalTableScan(table=[[CATALOG, SALES, EMP]])
LogicalProject(EMPNO=[$0], ENAME=[$1], JOB=[$2], MGR=[$3], HIREDATE=[$4], SAL=[$5], COMM=[$6], DEPTNO=[$7], SLACKER=[$8])
LogicalFilter(condition=[=($7, 20)])
LogicalTableScan(table=[[CATALOG, SALES, EMP]])
to:
LogicalJoin(condition=[AND(=($0, $9), =($1, $10), =($2, $11), =($3, $12), =($4, $13), =($5, $14), =($6, $15), =($7, $16), =($8, $17))], joinType=[semi]) LogicalProject(EMPNO=[$0], ENAME=[$1], JOB=[$2], MGR=[$3], HIREDATE=[$4], SAL=[$5], COMM=[$6], DEPTNO=[$7], SLACKER=[$8]) LogicalFilter(condition=[=($7, 10)]) LogicalTableScan(table=[[CATALOG, SALES, EMP]]) LogicalProject(EMPNO=[$0], ENAME=[$1], JOB=[$2], MGR=[$3], HIREDATE=[$4], SAL=[$5], COMM=[$6], DEPTNO=[$7], SLACKER=[$8]) LogicalFilter(condition=[=($7, 20)]) LogicalTableScan(table=[[CATALOG, SALES, EMP]])
Attachments
Issue Links
- relates to
-
CALCITE-6836 Add Rule to convert INTERSECT to EXISTS
-
- Closed
-
-
CALCITE-6948 Implement MinusToAntiJoinRule
-
- Closed
-
- links to