[ 
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)

Reply via email to