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

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

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

    https://github.com/apache/flink/pull/3389#discussion_r104614715
  
    --- Diff: 
flink-libraries/flink-table/src/main/scala/org/apache/flink/table/functions/utils/UserDefinedFunctionUtils.scala
 ---
    @@ -94,23 +94,28 @@ object UserDefinedFunctionUtils {
         val evalMethods = checkAndExtractEvalMethods(function)
     
         val filtered = evalMethods
    -      // go over all eval methods and find one matching
    -      .filter { cur =>
    -      val signatures = cur.getParameterTypes
    -      // match parameters of signature to actual parameters
    -      (actualSignature.length >= signatures.length &&
    -        actualSignature.zipWithIndex.forall { case (clazz, i) =>
    -          (i < signatures.length && parameterTypeEquals(clazz, 
signatures(i))) ||
    -            (i >= signatures.length - 1 && cur.isVarArgs &&
    +      // go over all eval methods and filter out one and only one matching
    +      .filter {
    +        case cur if !cur.isVarArgs =>
    +          val signatures = cur.getParameterTypes
    +          // match parameters of signature to actual par(ameters
    +          actualSignature.length == signatures.length &&
    +            signatures.zipWithIndex.forall { case (clazz, i) =>
    +              parameterTypeEquals(actualSignature(i), clazz)
    +          }
    +        case cur if cur.isVarArgs =>
    +          val signatures = cur.getParameterTypes
    +          actualSignature.zipWithIndex.forall { case (clazz, i) =>
    +            (i < signatures.length - 1 &&
    +              parameterTypeEquals(clazz, signatures(i))) ||
    +            (i >= signatures.length - 1 &&
                   parameterTypeEquals(clazz, signatures.last.getComponentType))
    -        }) ||
    -        // match empty variable arguments
    -        (actualSignature.length == signatures.length - 1 && cur.isVarArgs)
    +          } || (actualSignature.isEmpty && signatures.length == 1)
    --- End diff --
    
    move this to a new line 


> 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