[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[jira] [Created] (FLINK-10994) The bug of timestampadd handles time

xuqianjin created FLINK-10994:

             Summary: The bug of timestampadd handles time
                 Key: FLINK-10994
             Project: Flink
          Issue Type: Bug
          Components: Table API & SQL
    Affects Versions: 1.6.2, 1.7.1
            Reporter: xuqianjin

The error occur when {{timestampadd(MINUTE, 1, time '01:00:00')}} is executed:

java.lang.ClassCastException: java.lang.Integer cannot be cast to java.lang.Long

at org.apache.calcite.rex.RexBuilder.clean(
 at org.apache.calcite.rex.RexBuilder.makeLiteral(
 at org.apache.flink.table.codegen.ExpressionReducer.reduce(ExpressionReducer.scala:135)
 at org.apache.calcite.rel.rules.ReduceExpressionsRule.reduceExpressionsInternal(
 at org.apache.calcite.rel.rules.ReduceExpressionsRule.reduceExpressions(
 at org.apache.calcite.rel.rules.ReduceExpressionsRule$ProjectReduceExpressionsRule.onMatch(

Compared with M{{ysql}} database, I think it should meet the following conditions:
||expression||Expect the result||
|timestampadd(MINUTE, -1, time '00:00:00')|NULL|
|timestampadd(MINUTE, 1, time '00:00:00')|00:01:00|
|timestampadd(MINUTE, 1, time '23:59:59')|00:00:59|
|timestampadd(SECOND, 1, time '23:59:59')|00:00:00|
|timestampadd(HOUR, 1, time '23:59:59')|00:59:59|

This problem seems to be a bug in calcite. I have submitted isuse to calcite. The following is the link.

This message was sent by Atlassian JIRA