[
https://issues.apache.org/jira/browse/FLINK-5881?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15903198#comment-15903198
]
ASF GitHub Bot commented on FLINK-5881:
---------------------------------------
Github user twalthr commented on a diff in the pull request:
https://github.com/apache/flink/pull/3389#discussion_r105187427
--- Diff:
flink-libraries/flink-table/src/main/scala/org/apache/flink/table/functions/utils/UserDefinedFunctionUtils.scala
---
@@ -139,9 +143,35 @@ object UserDefinedFunctionUtils {
s"Function class '${function.getClass.getCanonicalName}' does not
implement at least " +
s"one method named 'eval' which is public, not abstract and " +
s"(in case of table functions) not static.")
- } else {
- methods
}
+
+ verifyScalaVarargsAnnotation(methods)
+ methods
+ }
+
+ /**
+ * If users specified an @varargs, Scala will generate two methods
indeed.
+ * If there does not exist corresponding varargs method of the Seq
method,
+ * we will throw an ValidationException.
+ */
+ def verifyScalaVarargsAnnotation(methods: Array[Method]) = {
+ methods.foreach(method => {
+ val signatures = method.getParameterTypes
+ if (signatures.nonEmpty &&
+ signatures.last.getName.equals("scala.collection.Seq") &&
--- End diff --
Can you add a test data to `UserDefinedScalaFunctionTest` with
```
data: testData.setField(9, Seq("Hello", "World"))
typeInfo: org.apache.flink.api.scala.createTypeInformation[Seq[String]]
test: testAllApis(
Func16('f9),
"Func15(f9)",
"Func15(f9)",
"Hello, World"
)
```
> 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)