[
https://issues.apache.org/jira/browse/FLINK-5795?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15871955#comment-15871955
]
ASF GitHub Bot commented on FLINK-5795:
---------------------------------------
Github user fhueske commented on a diff in the pull request:
https://github.com/apache/flink/pull/3330#discussion_r101762354
--- Diff:
flink-libraries/flink-table/src/main/scala/org/apache/flink/table/codegen/CodeGenerator.scala
---
@@ -1463,21 +1465,23 @@ class CodeGenerator(
*/
def addReusableFunction(function: UserDefinedFunction): String = {
val classQualifier = function.getClass.getCanonicalName
- val fieldTerm = s"function_${classQualifier.replace('.', '$')}"
+ val functionSerializedData = serialize(function)
+ val fieldTerm =
+ s"""
+ |function_${classQualifier.replace('.',
'$')}_${DigestUtils.md5Hex(functionSerializedData)}
+ """.stripMargin
val fieldFunction =
s"""
|transient $classQualifier $fieldTerm = null;
|""".stripMargin
reusableMemberStatements.add(fieldFunction)
- val constructorTerm = s"constructor_${classQualifier.replace('.',
'$')}"
val constructorAccessibility =
s"""
- |java.lang.reflect.Constructor $constructorTerm =
- | $classQualifier.class.getDeclaredConstructor();
- |$constructorTerm.setAccessible(true);
- |$fieldTerm = ($classQualifier) $constructorTerm.newInstance();
+ |$fieldTerm = ($classQualifier)
+ |org.apache.flink.table.functions.utils.UserDefinedFunctionUtils
--- End diff --
replace hardcoded class name by
`${UserDefinedFunctionUtils.getClass.getName.stripSuffix("$")}`
> Improve “UDTF" to support constructor with parameter.
> -----------------------------------------------------
>
> Key: FLINK-5795
> URL: https://issues.apache.org/jira/browse/FLINK-5795
> Project: Flink
> Issue Type: Sub-task
> Components: Table API & SQL
> Reporter: sunjincheng
> Assignee: sunjincheng
>
--
This message was sent by Atlassian JIRA
(v6.3.15#6346)