Details
-
Bug
-
Status: Closed
-
Major
-
Resolution: Fixed
-
None
-
None
-
None
Description
Firstly of all, this issue happens when HepPlanner is used with ProjectToWindowRule.PROJECT rule.
A query with this pattern:
select fn(col) over w, fn(expr) over w from ...
will generate two "LogicalWindow" even if we have only an identical window frame.
For example,
select sum(deptno) over(partition by deptno order by sal) as sum1, sum(deptno + deptno) over(partition by deptno order by sal) as sum2 from emp
gives:
LogicalProject($0=[$2], $1=[$4]) LogicalWindow(window#0=[window(partition {1} order by [0] range between UNBOUNDED PRECEDING and CURRENT ROW aggs [SUM($3)])]) LogicalProject(SAL=[$0], DEPTNO=[$1], $2=[$2], $3=[+($1, $1)]) LogicalProject(SAL=[$5], DEPTNO=[$7], $2=[$9]) LogicalWindow(window#0=[window(partition {7} order by [5] range between UNBOUNDED PRECEDING and CURRENT ROW aggs [SUM($7)])]) LogicalTableScan(table=[[CATALOG, SALES, EMP]])