[
https://issues.apache.org/jira/browse/FLINK-7959?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16265082#comment-16265082
]
ASF GitHub Bot commented on FLINK-7959:
---------------------------------------
Github user twalthr commented on a diff in the pull request:
https://github.com/apache/flink/pull/4940#discussion_r152923905
--- Diff:
flink-libraries/flink-table/src/main/scala/org/apache/flink/table/codegen/InputFormatCodeGenerator.scala
---
@@ -19,50 +19,47 @@ package org.apache.flink.table.codegen
import org.apache.flink.api.common.io.GenericInputFormat
import org.apache.flink.api.common.typeinfo.TypeInformation
-import org.apache.flink.api.java.typeutils.RowTypeInfo
-import org.apache.flink.table.api.TableConfig
import org.apache.flink.table.codegen.CodeGenUtils.newName
import org.apache.flink.table.codegen.Indenter.toISC
import org.apache.flink.types.Row
/**
* A code generator for generating Flink [[GenericInputFormat]]s.
- *
- * @param config configuration that determines runtime behavior
*/
-class InputFormatCodeGenerator(
- config: TableConfig)
- extends CodeGenerator(config, false, new RowTypeInfo(), None, None) {
-
+object InputFormatCodeGenerator {
/**
* Generates a values input format that can be passed to Java compiler.
*
+ * @param ctx The code generator context
* @param name Class name of the input format. Must not be unique but
has to be a
* valid Java class identifier.
* @param records code for creating records
* @param returnType expected return type
+ * @param outRecordTerm term of the output
* @tparam T Return type of the Flink Function.
* @return instance of GeneratedFunction
*/
def generateValuesInputFormat[T <: Row](
- name: String,
- records: Seq[String],
- returnType: TypeInformation[T])
- : GeneratedInput[GenericInputFormat[T], T] = {
+ ctx: CodeGeneratorContext,
+ name: String,
+ records: Seq[String],
+ returnType: TypeInformation[T],
+ outRecordTerm: String = CodeGeneratorContext.DEFAULT_OUT_RECORD_TERM)
--- End diff --
Do we need this parameter?
> 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
>
> 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
> classes.
> The new {{CodeGeneratorContext}} will keep all the reusable statements, while
> the new {{ExprCodeGenerator}} will only do generating codes from RexNode.
> And for classes like {{AggregationCodeGenerator}} or
> {{FunctionCodeGenerator}}, I think the should not be the subclasses of the
> {{CodeGenerator}}, but should all as standalone classes. They can create
> {{ExprCodeGenerator}} when they 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)