[ https://issues.apache.org/jira/browse/FLINK-11120?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
xuqianjin updated FLINK-11120: ------------------------------ Description: 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(RexBuilder.java:1520) at org.apache.calcite.rex.RexBuilder.makeLiteral(RexBuilder.java:1318) at org.apache.flink.table.codegen.ExpressionReducer.reduce(ExpressionReducer.scala:135) at org.apache.calcite.rel.rules.ReduceExpressionsRule.reduceExpressionsInternal(ReduceExpressionsRule.java:620) at org.apache.calcite.rel.rules.ReduceExpressionsRule.reduceExpressions(ReduceExpressionsRule.java:540) at org.apache.calcite.rel.rules.ReduceExpressionsRule$ProjectReduceExpressionsRule.onMatch(ReduceExpressionsRule.java:288) I think it should meet the following conditions: ||expression||Expect the result|| |timestampadd(MINUTE, -1, time '00:00:00')|23:59:00| |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. CALCITE-2699 > The bug of timestampadd handles time > ------------------------------------- > > Key: FLINK-11120 > URL: https://issues.apache.org/jira/browse/FLINK-11120 > Project: Flink > Issue Type: Sub-task > Reporter: xuqianjin > Assignee: xuqianjin > Priority: Major > > 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(RexBuilder.java:1520) > at org.apache.calcite.rex.RexBuilder.makeLiteral(RexBuilder.java:1318) > at > org.apache.flink.table.codegen.ExpressionReducer.reduce(ExpressionReducer.scala:135) > at > org.apache.calcite.rel.rules.ReduceExpressionsRule.reduceExpressionsInternal(ReduceExpressionsRule.java:620) > at > org.apache.calcite.rel.rules.ReduceExpressionsRule.reduceExpressions(ReduceExpressionsRule.java:540) > at > org.apache.calcite.rel.rules.ReduceExpressionsRule$ProjectReduceExpressionsRule.onMatch(ReduceExpressionsRule.java:288) > I think it should meet the following conditions: > ||expression||Expect the result|| > |timestampadd(MINUTE, -1, time '00:00:00')|23:59:00| > |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. > CALCITE-2699 -- This message was sent by Atlassian JIRA (v7.6.3#76005)