[
https://issues.apache.org/jira/browse/FLINK-16726?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17067312#comment-17067312
]
Jark Wu commented on FLINK-16726:
---------------------------------
Hi [~Matrix42], {{2.2}} is a decimal type in SQL which can't be casted to
double impicitly. So you have to cast manually for now. In the future, Flink
will provide implicit casting which can be useful in your case.
> 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
> Priority: Major
> 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)