Kurt Young created FLINK-7959:
---------------------------------
Summary: Split CodeGenerator into CodeGeneratorContext and
ExprCodeGenerator
Key: FLINK-7959
URL: https://issues.apache.org/jira/browse/FLINK-7959
Project: Flink
Issue Type: Improvement
Components: Table API & SQL
Reporter: Kurt Young
Assignee: Kurt Young
Priority: Major
Right now {{CodeGenerator}} actually acts two roles, one is responsible for
generating codes from RexNode, and the other one is keeping lots of reusable
statements. It makes more sense to split these logic into two dedicated class.
The new {{CodeGeneratorContext}} will keep all the reusable statements, while
the new {{ExprCodeGenerator}} will only do generating codes from RexNode.
And classes like {{AggregationCodeGenerator}} or {{FunctionCodeGenerator}}, I
think the should not be subclass of the {{CodeGenerator}}, but all as
standalone classes. They can create {{ExprCodeGenerator}} when the need to
generating codes from RexNode, and they can also generating codes by
themselves. The {{CodeGeneratorContext}} can be passed around to collect all
reusable statements, and list them in the final generated class.
--
This message was sent by Atlassian JIRA
(v6.4.14#64029)