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)