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)

Reply via email to