[jira] [Created] (FLINK-7959) Split CodeGenerator into CodeGeneratorContext and ExprCodeGenerator

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

[jira] [Created] (FLINK-7959) Split CodeGenerator into CodeGeneratorContext and ExprCodeGenerator

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