[ https://issues.apache.org/jira/browse/FLINK-5881?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15898850#comment-15898850 ]
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_r104600115 --- Diff: flink-libraries/flink-table/src/main/scala/org/apache/flink/table/codegen/calls/ScalarFunctionCallGen.scala --- @@ -44,14 +44,24 @@ class ScalarFunctionCallGen( operands: Seq[GeneratedExpression]) : GeneratedExpression = { // determine function signature and result class - val matchingSignature = getSignature(scalarFunction, signature) + val matchingMethod = getEvalMethod(scalarFunction, signature) .getOrElse(throw new CodeGenException("No matching signature found.")) + val matchingSignature = matchingMethod.getParameterTypes val resultClass = getResultTypeClass(scalarFunction, matchingSignature) + // zip for variable signatures + var paramToOperands = matchingSignature.zip(operands) + var i = paramToOperands.length + while (i < operands.length --- End diff -- Forget zipAll, i think you can write codes like this instead of a while loop ``` if (operands.length > matchingSignature.length) { operands.drop(matchingSignature.length).foreach(op => paramToOperands = paramToOperands :+ (matchingSignature.last.getComponentType, op)) } ``` > 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)