Sean Hsuan-Yi Chu created CALCITE-876:
-----------------------------------------
Summary: ProjectWindowTransposeRule would produce a LogicalWindow
which mis-refers constant fields
Key: CALCITE-876
URL: https://issues.apache.org/jira/browse/CALCITE-876
Project: Calcite
Issue Type: Bug
Components: core
Reporter: Sean Hsuan-Yi Chu
Assignee: Sean Hsuan-Yi Chu
A query like:
{code}
select col1, col2 \n"
from (
select empno, sum(100) over (partition by deptno order by sal) as col1,
sum(1000) over(partition by deptno order by sal) as col2
from emp
{code}
where the inner query generates columns which are never used in the main query.
If we use the three rules in the hep planner:
{code}
ProjectToWindowRule
ProjectMergeRule
ProjectWindowTransposeRule
{code}
, we will get a plan:
{code}
LogicalProject(COL1=[$2], COL2=[$3])
LogicalWindow(window#0=[window(partition {1} order by [0] range between
UNBOUNDED PRECEDING and CURRENT ROW aggs [SUM($2), SUM($2)])])
LogicalProject(SAL=[$1], DEPTNO=[$2])
LogicalProject(EMPNO=[$0], SAL=[$5], DEPTNO=[$7])
LogicalTableScan(table=[[CATALOG, SALES, EMP]])
{code}
Note that the second SUM() in the LogicalWindow should have pointed to the
second constant (i.e., $3).
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)