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

ASF GitHub Bot commented on FLINK-5881:
---------------------------------------

Github user clarkyzl commented on a diff in the pull request:

    https://github.com/apache/flink/pull/3389#discussion_r102628111
  
    --- Diff: 
flink-libraries/flink-table/src/main/scala/org/apache/flink/table/functions/utils/UserDefinedFunctionUtils.scala
 ---
    @@ -140,6 +147,25 @@ 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 trailingArray = false
    +      methods.foreach(method => {
    +        val signatures = method.getParameterTypes
    +        if (signatures.nonEmpty) {
    +          val trailingArg = signatures(signatures.length - 1)
    +          if (trailingArg.getName.equals("scala.collection.Seq")) {
    +            trailingSeq = true
    +          } else if (trailingArg.isArray) {
    +            trailingArray = true
    +          }
    +        }
    +      })
    +      if (trailingSeq && !trailingArray) {
    --- End diff --
    
    If the users use the annotation `@scala.annotation.varargs`, Scala will 
generate two signatures of the method. One is `T eval(scala.collection.Seq<T> 
args)`, the other is `T eval(T[] args)`. A better idea is to compare every 
arguments of the signature. We can make sure either there is only one method `T 
eval(T[] args)`, or there are two methods: `T eval(scala.collection.Seq<T> 
args)` and `T eval(T[] args)`.


> 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