Feng Zhu created CALCITE-3512:
---------------------------------

             Summary: Support type cast from Time/TimeStamp to Integer/Long
                 Key: CALCITE-3512
                 URL: https://issues.apache.org/jira/browse/CALCITE-3512
             Project: Calcite
          Issue Type: Bug
          Components: core
    Affects Versions: 1.21.0
            Reporter: Feng Zhu
            Assignee: Feng Zhu


A similar test like *ReflectiveSchemaTest#testDateCanCompare*
{code:java}
@Test public void testDateCanCompare2() {
  final String sql = "select a.v1, a.v2\n"
      + "from (select \"sqlTime\" v1, \"sqlTimestamp\" v2\n"
      + "  from \"s\".\"everyTypes\" "
      + "  group by \"sqlTime\", \"sqlTimestamp\") a,"
      + "    (select \"sqlTime\" v1, \"sqlTimestamp\" v2\n"
      + "  from \"s\".\"everyTypes\"\n"
      + "  group by \"sqlTime\", \"sqlTimestamp\") b\n"
      + "where a.v1 >= b.v1 and a.v2 >= b.v2\n"
      + "group by a.v1, a.v2";
  CalciteAssert.that()
      .withSchema("s", CATCHALL)
      .query(sql)
      .returnsUnordered("V1=00:00:00; V2=1970-01-01 00:00:00");
}{code}
The query fails with exception:
{code:java}
Caused by: java.lang.ClassCastException: java.sql.Time cannot be cast to 
java.lang.Integer
 at Baz$10$1.moveNext(Unknown Source)
 at 
org.apache.calcite.linq4j.EnumerableDefaults.groupBy_(EnumerableDefaults.java:825)
 at 
org.apache.calcite.linq4j.EnumerableDefaults.groupBy(EnumerableDefaults.java:764)
 at 
org.apache.calcite.linq4j.DefaultEnumerable.groupBy(DefaultEnumerable.java:308)
 at Baz.bind(Unknown Source){code}
We also need to support type cast from *Time/TimeStamp* to *Integer/Long*



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to