Github user fhueske commented on a diff in the pull request:
https://github.com/apache/flink/pull/3733#discussion_r113044668
--- Diff:
flink-libraries/flink-table/src/main/scala/org/apache/flink/table/plan/nodes/CommonCalc.scala
---
@@ -23,26 +23,28 @@ import org.apache.calcite.rel.`type`.RelDataType
import org.apache.calcite.rex._
import org.apache.flink.api.common.functions.{FlatMapFunction,
RichFlatMapFunction}
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.calcite.FlinkTypeFactory
import org.apache.flink.table.codegen.{CodeGenerator, GeneratedFunction}
import org.apache.flink.table.runtime.FlatMapRunner
+import org.apache.flink.table.runtime.types.CRowTypeInfo
import org.apache.flink.types.Row
import scala.collection.JavaConversions._
import scala.collection.JavaConverters._
trait CommonCalc {
- private[flink] def functionBody(
+ private[flink] def functionBody[T](
--- End diff --
I would follow a similar strategy as with the `TableEnvironment` sink
conversion for the `CommonX` classes.
The `CommonX` class has a method to generate the code for a function that
operates on `Row`. Each class that extends `CommonX` has a dedicated method to
instantiate the wrapper class (e..g, `MapRunner`, `FlatMapRunner`. ). The
runner classes use the generated function to operate on Rows. For streaming
operators, the runner classes unwrap the `Row` from `CRow` before calling the
generated code.
---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at [email protected] or file a JIRA ticket
with INFRA.
---