Matrix42 created FLINK-16726:
--------------------------------

             Summary: ScalarFunction throws Given parameters of function 'func' 
do not match any signature.
                 Key: FLINK-16726
                 URL: https://issues.apache.org/jira/browse/FLINK-16726
             Project: Flink
          Issue Type: Bug
          Components: Table SQL / Planner
    Affects Versions: 1.10.0
         Environment: [^Flinktest.zip]
            Reporter: Matrix42
         Attachments: Flinktest.zip

I write a ScalarFunction as follow:

 
{code:java}
public class UDF3 extends ScalarFunction {

    public String eval(String s, int a, double d) {
        return s + a + d;
    }

    @Override
    public boolean isDeterministic() {
        return true;
    }

    @Override
    public TypeInformation<?> getResultType(Class<?>[] signature) {
        return Types.STRING;
    }

    @Override
    public TypeInformation<?>[] getParameterTypes(Class<?>[] signature) {
        return new TypeInformation[]{Types.STRING, Types.INT, Types.DOUBLE};
    }
    
}
{code}
I use it in sql `select func(s, 1,2.2) from source`, Flink throw exception as 
follow:

 

 
{noformat}
Exception in thread "main" org.apache.flink.table.api.ValidationException: SQL 
validation failed. Given parameters of function 'func' do not match any 
signature. Exception in thread "main" 
org.apache.flink.table.api.ValidationException: SQL validation failed. Given 
parameters of function 'func' do not match any signature. Actual: 
(java.lang.String, java.lang.Integer, java.math.BigDecimal) Expected: 
(java.lang.String, int, double) at 
org.apache.flink.table.planner.calcite.FlinkPlannerImpl.org$apache$flink$table$planner$calcite$FlinkPlannerImpl$$validate(FlinkPlannerImpl.scala:129)
 at 
org.apache.flink.table.planner.calcite.FlinkPlannerImpl.validate(FlinkPlannerImpl.scala:104)
 at 
org.apache.flink.table.planner.operations.SqlToOperationConverter.convert(SqlToOperationConverter.java:127)
 at 
org.apache.flink.table.planner.delegation.ParserImpl.parse(ParserImpl.java:85) 
at 
org.apache.flink.table.api.internal.TableEnvironmentImpl.sqlQuery(TableEnvironmentImpl.java:464)
 at com.lorinda.template.TestUDF3.main(TestUDF3.java:40){noformat}
 

the full code is in the [^Flinktest.zip] , class name is 
com.lorinda.template.TestUDF3

 

 

 



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to