[jira] [Created] (FLINK-12174) Introduce FlinkAggregateExtractProjectRule and remove extractFieldReferences

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

[jira] [Created] (FLINK-12174) Introduce FlinkAggregateExtractProjectRule and remove extractFieldReferences

Shang Yuanchun (Jira)
Hequn Cheng created FLINK-12174:
-----------------------------------

             Summary: Introduce FlinkAggregateExtractProjectRule and remove extractFieldReferences
                 Key: FLINK-12174
                 URL: https://issues.apache.org/jira/browse/FLINK-12174
             Project: Flink
          Issue Type: Improvement
          Components: Table SQL / API
            Reporter: Hequn Cheng
            Assignee: Hequn Cheng


Currently, when parsing Table API expression, an inner project will be added to projects fields for {{Aggregate}}s. As the code show below:
{code:java}
    if (!extracted.getAggregations.isEmpty) {
      val projectFields = extractFieldReferences(expressionsWithResolvedCalls)

      wrap(
        operationTreeBuilder.project(extracted.getProjections,
          operationTreeBuilder.aggregate(emptyList[Expression], extracted.getAggregations,
            operationTreeBuilder.project(projectFields, operationTree)
          )
        )
      )
    }
{code}

This optimization is not very suited to added here, instead, we can use a rule to achieve this. The `extractFieldReferences` method can also be removed if we use a rule which also makes the Expression parsing logic more clear.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)