[ https://issues.apache.org/jira/browse/FLINK-5881?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15887127#comment-15887127 ]
ASF GitHub Bot commented on FLINK-5881: --------------------------------------- Github user wuchong commented on a diff in the pull request: https://github.com/apache/flink/pull/3389#discussion_r103361639 --- Diff: flink-libraries/flink-table/src/main/scala/org/apache/flink/table/functions/utils/UserDefinedFunctionUtils.scala --- @@ -140,6 +138,24 @@ object UserDefinedFunctionUtils { s"one method named 'eval' which is public, not abstract and " + s"(in case of table functions) not static.") } else { + var trailingSeq = false + var noVargs = true + methods.foreach(method => { + val signatures = method.getParameterTypes + if (signatures.nonEmpty) { + if (method.isVarArgs) { + noVargs = false + } else if (signatures.last.getName.equals("scala.collection.Seq")) { + trailingSeq = true + } + } + }) + if (trailingSeq && noVargs) { + // We found trailing "scala.collection.Seq", but no trailing "Type[]", "Type..." + throw new ValidationException("The 'eval' method do not support Scala type of " + --- End diff -- If there is multiple eval methods found (not ambiguous), one is varargs, the other is not. It seems that no exception is thrown to tell users that the non-varargs eval method is not work. ``` @varargs def eval(args: String*): String = {...} // no varargs annotation def eval(args: Int*): Int = {...} ``` > ScalarFunction(UDF) should support variable types and variable arguments > ------------------------------------------------------------------------- > > Key: FLINK-5881 > URL: https://issues.apache.org/jira/browse/FLINK-5881 > Project: Flink > Issue Type: Sub-task > Reporter: Zhuoluo Yang > Assignee: Zhuoluo Yang > > As a sub-task of FLINK-5826. We would like to support the ScalarFunction > first and make the review a little bit easier. -- This message was sent by Atlassian JIRA (v6.3.15#6346)