Uploaded image for project: 'Ignite'
  1. Ignite
  2. IGNITE-16905

Sql. ClassCastException when deserialising TIMESTAMP literal

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Resolved
    • Major
    • Resolution: Cannot Reproduce
    • None
    • 3.0.0-beta1
    • sql

    Description

      The problem appears to be caused by an inconsistency of RelReader and RexBuilder: RelReader diserializes every integer value as a value of type Integer, but the RexBuilder assumes that for TIMESTAMP literal a value of type Long will be passed, and make the explicit cast:

      // RexBuilder#clean(Object, RelDataType)
      case TIMESTAMP:
        if (o instanceof TimestampString) {
          return o;
        } else if (o instanceof Calendar) {
          if (!((Calendar) o).getTimeZone().equals(DateTimeUtils.UTC_ZONE)) {
            throw new AssertionError();
          }
          return TimestampString.fromCalendarFields((Calendar) o);
        } else {
          return TimestampString.fromMillisSinceEpoch((Long) o);
        } 

       

      Here is a stack trace:

      Caused by: java.lang.ClassCastException: class java.lang.Integer cannot be cast to class java.lang.Long (java.lang.Integer and java.lang.Long are in module java.base of loader 'bootstrap')
      	at org.apache.calcite.rex.RexBuilder.clean(RexBuilder.java:1780)
      	at org.apache.calcite.rex.RexBuilder.makeLiteral(RexBuilder.java:1558)
      	at org.apache.calcite.rex.RexBuilder.makeLiteral(RexBuilder.java:1520)
      	at org.apache.ignite.internal.sql.engine.externalize.RelJson.toRex(RelJson.java:759)
      	at org.apache.ignite.internal.sql.engine.externalize.RelJsonReader$RelInputImpl.getTuple(RelJsonReader.java:367)
      	at org.apache.ignite.internal.sql.engine.externalize.RelJsonReader$RelInputImpl.getTuples(RelJsonReader.java:347)
      	... 24 more 

      Attachments

        Issue Links

          Activity

            People

              xtern Pavel Pereslegin
              korlov Konstantin Orlov
              Votes:
              0 Vote for this issue
              Watchers:
              4 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: