[
https://issues.apache.org/jira/browse/FLINK-16727?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17066487#comment-17066487
]
Matrix42 commented on FLINK-16727:
----------------------------------
Exception in thread "main" java.lang.AssertionError: cannot cast 2020-11-12 as
class java.time.LocalDate
at org.apache.calcite.sql.SqlLiteral.getValueAs(SqlLiteral.java:351)
at
org.apache.calcite.sql.SqlCallBinding.getOperandLiteralValue(SqlCallBinding.java:217)
at
org.apache.flink.table.planner.functions.utils.ScalarSqlFunction$$anon$1$$anonfun$1.apply(ScalarSqlFunction.scala:92)
at
org.apache.flink.table.planner.functions.utils.ScalarSqlFunction$$anon$1$$anonfun$1.apply(ScalarSqlFunction.scala:88)
at
scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:234)
at
scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:234)
at scala.collection.immutable.Range.foreach(Range.scala:160)
at scala.collection.TraversableLike$class.map(TraversableLike.scala:234)
at scala.collection.AbstractTraversable.map(Traversable.scala:104)
at
org.apache.flink.table.planner.functions.utils.ScalarSqlFunction$$anon$1.inferReturnType(ScalarSqlFunction.scala:88)
at org.apache.calcite.sql.SqlOperator.inferReturnType(SqlOperator.java:470)
at org.apache.calcite.sql.SqlOperator.validateOperands(SqlOperator.java:437)
at org.apache.calcite.sql.SqlFunction.deriveType(SqlFunction.java:303)
at org.apache.calcite.sql.SqlFunction.deriveType(SqlFunction.java:219)
at
org.apache.calcite.sql.validate.SqlValidatorImpl$DeriveTypeVisitor.visit(SqlValidatorImpl.java:5599)
at
org.apache.calcite.sql.validate.SqlValidatorImpl$DeriveTypeVisitor.visit(SqlValidatorImpl.java:5586)
at org.apache.calcite.sql.SqlCall.accept(SqlCall.java:139)
at
org.apache.calcite.sql.validate.SqlValidatorImpl.deriveTypeImpl(SqlValidatorImpl.java:1690)
at
org.apache.calcite.sql.validate.SqlValidatorImpl.deriveType(SqlValidatorImpl.java:1675)
at org.apache.calcite.sql.SqlAsOperator.deriveType(SqlAsOperator.java:133)
at
org.apache.calcite.sql.validate.SqlValidatorImpl$DeriveTypeVisitor.visit(SqlValidatorImpl.java:5599)
at
org.apache.calcite.sql.validate.SqlValidatorImpl$DeriveTypeVisitor.visit(SqlValidatorImpl.java:5586)
at org.apache.calcite.sql.SqlCall.accept(SqlCall.java:139)
at
org.apache.calcite.sql.validate.SqlValidatorImpl.deriveTypeImpl(SqlValidatorImpl.java:1690)
at
org.apache.calcite.sql.validate.SqlValidatorImpl.deriveType(SqlValidatorImpl.java:1675)
at
org.apache.calcite.sql.validate.SqlValidatorImpl.expandSelectItem(SqlValidatorImpl.java:478)
at
org.apache.calcite.sql.validate.SqlValidatorImpl.validateSelectList(SqlValidatorImpl.java:4104)
at
org.apache.calcite.sql.validate.SqlValidatorImpl.validateSelect(SqlValidatorImpl.java:3388)
at
org.apache.calcite.sql.validate.SelectNamespace.validateImpl(SelectNamespace.java:60)
at
org.apache.calcite.sql.validate.AbstractNamespace.validate(AbstractNamespace.java:84)
at
org.apache.calcite.sql.validate.SqlValidatorImpl.validateNamespace(SqlValidatorImpl.java:1007)
at
org.apache.calcite.sql.validate.SqlValidatorImpl.validateQuery(SqlValidatorImpl.java:967)
at org.apache.calcite.sql.SqlSelect.validate(SqlSelect.java:216)
at
org.apache.calcite.sql.validate.SqlValidatorImpl.validateScopedExpression(SqlValidatorImpl.java:942)
at
org.apache.calcite.sql.validate.SqlValidatorImpl.validate(SqlValidatorImpl.java:649)
at
org.apache.flink.table.planner.calcite.FlinkPlannerImpl.org$apache$flink$table$planner$calcite$FlinkPlannerImpl$$validate(FlinkPlannerImpl.scala:125)
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.TestDateFunction.main(TestDateFunction.java:41)
Process finished with exit code 1
> cannot cast 2020-11-12 as class java.time.LocalDate
> ---------------------------------------------------
>
> Key: FLINK-16727
> URL: https://issues.apache.org/jira/browse/FLINK-16727
> 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 defined as ScalarFunction as follow:
>
> {code:java}
> public class DateFunc extends ScalarFunction {
> public String eval(Date date) {
> return date.toString();
> }
> @Override
> public TypeInformation<?> getResultType(Class<?>[] signature) {
> return Types.STRING;
> }
> @Override
> public TypeInformation<?>[] getParameterTypes(Class<?>[] signature) {
> return new TypeInformation[]{Types.INT};
> }
> }
> {code}
> I ues it in sql: `select func(DATE '2020-11-12') as a from source` , Flink
> throws 'cannot cast 2020-11-12 as class java.time.LocalDate '
>
> The full code is in the [^Flinktest.zip] Main class is
> com.lorinda.template.TestDateFunction
--
This message was sent by Atlassian Jira
(v8.3.4#803005)