[ 
https://issues.apache.org/jira/browse/CALCITE-7369?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

lincoln lee updated CALCITE-7369:
---------------------------------
    Summary: ProjectToWindowRule loses column alias when optimizing OVER window 
queries  (was: ProjectToWindowRule loses column alias when optimizing nested 
OVER window queries)

> ProjectToWindowRule loses column alias when optimizing OVER window queries
> --------------------------------------------------------------------------
>
>                 Key: CALCITE-7369
>                 URL: https://issues.apache.org/jira/browse/CALCITE-7369
>             Project: Calcite
>          Issue Type: Improvement
>          Components: core
>    Affects Versions: 1.41.0
>            Reporter: lincoln lee
>            Assignee: lincoln lee
>            Priority: Major
>
> When compile a nested over window query, the optimized result lost some 
> column alias
> Take the following case as an example:
> {code}
>   @Test void testProjectToWindowRuleForNestedOver() {
>     HepProgramBuilder builder = new HepProgramBuilder();
>     builder.addRuleClass(ProjectToWindowRule.class);
>     HepPlanner hepPlanner = new HepPlanner(builder.build());
>     hepPlanner.addRule(CoreRules.PROJECT_TO_LOGICAL_PROJECT_AND_WINDOW);
>     final String sql = "select deptno, f1, f2 from (select *, 
> last_value(deptno) over (order by empno) f2\n"
>             + "from (select *, first_value(deptno) over (order by empno) f1 
> from emp))\n";
>     sql(sql).withPlanner(hepPlanner)
>             .check();
>   }
> {code}
> the final output column alias 'F2' lost(became '$2'):
> {code}
> LogicalProject(DEPTNO=[$7], F1=[$9], $2=[$10])
>   LogicalWindow(window#0=[window(order by [0] aggs [LAST_VALUE($7)])])
>     LogicalWindow(window#0=[window(order by [0] aggs [FIRST_VALUE($7)])])
>       LogicalTableScan(table=[[CATALOG, SALES, EMP]])
> {code}



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

Reply via email to