[ https://issues.apache.org/jira/browse/FLINK-5266?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15724936#comment-15724936 ]
Kurt Young commented on FLINK-5266: ----------------------------------- Actually these are two separate issues. The pull request is aiming to do the optimization of pushing projects into scan. But this issue wants to add the "missing" project node when we select aggregations from table. > Eagerly project unused fields when selecting aggregation fields > --------------------------------------------------------------- > > Key: FLINK-5266 > URL: https://issues.apache.org/jira/browse/FLINK-5266 > Project: Flink > Issue Type: Improvement > Components: Table API & SQL > Reporter: Kurt Young > Assignee: Kurt Young > > When we call table's {{select}} method and if it contains some aggregations, > we will project fields after the aggregation. Would be better to project > unused fields before the aggregation, and can furthermore leave the > opportunity to push the project into scan. > For example, the current logical plan of a simple query: > {code} > table.select('a.sum as 's, 'a.max) > {code} > is > {code} > LogicalProject(s=[$0], TMP_2=[$1]) > LogicalAggregate(group=[{}], TMP_0=[SUM($5)], TMP_1=[MAX($5)]) > LogicalTableScan(table=[[supplier]]) > {code} > Would be better if we can project unused fields right after scan, and looks > like this: > {code} > LogicalProject(s=[$0], EXPR$1=[$0]) > LogicalAggregate(group=[{}], EXPR$1=[SUM($0)]) > LogicalProject(a=[$5]) > LogicalTableScan(table=[[supplier]]) > {code} -- This message was sent by Atlassian JIRA (v6.3.4#6332)