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

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

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

    https://github.com/apache/flink/pull/5206#discussion_r158604394
  
    --- Diff: 
flink-libraries/flink-table/src/main/scala/org/apache/flink/table/functions/utils/ScalarSqlFunction.scala
 ---
    @@ -153,15 +154,19 @@ object ScalarSqlFunction {
           override def getOperandCountRange: SqlOperandCountRange = {
             var min = 255
             var max = -1
    +        var isVarargs = false
             signatures.foreach( sig => {
    -          var len = sig.length
    -          if (len > 0 && sig(sig.length - 1).isArray) {
    -            max = 254  // according to JVM spec 4.3.3
    -            len = sig.length - 1
    +          var len = sig._2.length
    +          if (len > 0 && sig._1 && sig._2(sig._2.length - 1).isArray) {
    +            isVarargs = true
    +            len = sig._2.length - 1
    --- End diff --
    
    **approach 1:**
    sig._2.length - 1 => len -1 
    len = sig._2.length - 1 => len-1
    
    **approach2**
    methods.foreach(
              m => {
                var len = m.getParameterTypes.length
                if (len > 0 && m.isVarArgs && m.getParameterTypes()(len - 
1).isArray) {
                  isVarargs = true
                  len = len - 1
                }
                max = Math.max(len, max)
                min = Math.min(len, min)
              })
    
    Using approach2 we can remove 
    "val signatures = methods.map(m => m.isVarArgs -> m.getParameterTypes)"
    
    What do you think?



> Fix ScalarFunction varargs length exceeds 254 for SQL
> -----------------------------------------------------
>
>                 Key: FLINK-8312
>                 URL: https://issues.apache.org/jira/browse/FLINK-8312
>             Project: Flink
>          Issue Type: Bug
>          Components: Table API & SQL
>            Reporter: Ruidong Li
>            Assignee: Ruidong Li
>
> With Varargs, TableAPI can handle scalar function call with parameters 
> exceeds 254 correctly.
> This issue is intend to support long parameters for SQL



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

Reply via email to