Vineet Garg created CALCITE-3824:
------------------------------------
Summary: JoinProjectTransposeRule should skip Projects containing
windowing expression
Key: CALCITE-3824
URL: https://issues.apache.org/jira/browse/CALCITE-3824
Project: Calcite
Issue Type: Bug
Components: core
Reporter: Vineet Garg
Assignee: Vineet Garg
This rule could push windowing expressions within join condition which doesn't
make sense.
For example
{code:sql}
select * from dept a
join (select rank() over (order by name) as r, 1 + 1 from dept) as b
on a.name = b.r
{code}
Above query produces following plan after the rule
{code}
LogicalProject(DEPTNO=[$0], NAME=[$1], R=[$3], EXPR$1=[$4])
LogicalProject(DEPTNO=[$0], NAME=[$1], NAME0=[CAST($1):BIGINT NOT NULL],
R=[RANK() OVER (ORDER BY $3 RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT
ROW)], EXPR$1=[+(1, 1)])
LogicalJoin(condition=[=(CAST($1):BIGINT NOT NULL, RANK() OVER (ORDER BY $3
RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW))], joinType=[inner])
LogicalTableScan(table=[[CATALOG, SALES, DEPT]])
LogicalTableScan(table=[[CATALOG, SALES, DEPT]])
{code}
--
This message was sent by Atlassian Jira
(v8.3.4#803005)