[jira] [Created] (FLINK-5266) Eagerly project unused fields when selecting aggregation fields

classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

[jira] [Created] (FLINK-5266) Eagerly project unused fields when selecting aggregation fields

Shang Yuanchun (Jira)
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)