Kurt Young created FLINK-5266:
---------------------------------
Summary: 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
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)