[ https://issues.apache.org/jira/browse/FLINK-5795?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15873010#comment-15873010 ]
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_r101885634 --- 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 -- I find that the md5Hex string in the fieldTerm is never used. What about using `CodeGenUtils.newName` to generate a new function field name (as shown below). It is a common usage in `CodeGenerator` and there must be no naming collisions and the generated name will be more readable. What do you think @sunjincheng121 @fhueske ? ``` CodeGenUtils.newName(s"function_${classQualifier.replace('.', '$')}") ``` Regarding to another PR for scalar UDFs, I think you are right. We can that in this PR. > 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)