[
https://issues.apache.org/jira/browse/FLINK-5795?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15869286#comment-15869286
]
ASF GitHub Bot commented on FLINK-5795:
---------------------------------------
Github user wuchong commented on a diff in the pull request:
https://github.com/apache/flink/pull/3330#discussion_r101450405
--- 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)}
--- End diff --
It seems that if we register two identical function (not the same
reference), the field term will the same, which will compile error here. Such
as:
```
val func1 = new MyFunction
val func2 = new MyFunction
env.register("func1", func1)
env.register("func2", func2)
```
The func1 and func2 is two different object but the serialized bytes are
equals.
BTW, I will suggest to include this case into your new IT cases.
> 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)