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)