[ 
https://issues.apache.org/jira/browse/FLINK-5881?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15903184#comment-15903184
 ] 

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_r105186593
  
    --- 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 --
    
    I think this condition is too strict. It wouldn't allow `Seq`s in functions 
which is one of the most important classes in Scala. This does not work right 
now:
    
    ```
    object Func16 extends ScalarFunction {
    
      def eval(a: Seq[String]): String = {
        a.mkString(", ")
      }
    }
    ```


> 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)

Reply via email to