diff --git a/cassandra/src/main/java/org/apache/calcite/adapter/cassandra/CassandraFilter.java b/cassandra/src/main/java/org/apache/calcite/adapter/cassandra/CassandraFilter.java index aeb749a6d288..117c79a99c72 100644 --- a/cassandra/src/main/java/org/apache/calcite/adapter/cassandra/CassandraFilter.java +++ b/cassandra/src/main/java/org/apache/calcite/adapter/cassandra/CassandraFilter.java @@ -36,6 +36,7 @@ import org.apache.calcite.sql.type.SqlTypeName; import org.apache.calcite.util.DateString; import org.apache.calcite.util.TimestampString; +import org.apache.calcite.util.TimestampWithTimeZoneString; import org.apache.calcite.util.Util; import org.checkerframework.checker.nullness.qual.Nullable; @@ -192,6 +193,9 @@ private String translateMatch(RexNode condition) { private static Object literalValue(RexLiteral literal) { Comparable value = RexLiteral.value(literal); switch (literal.getTypeName()) { + case TIMESTAMP_TZ: + assert value instanceof TimestampWithTimeZoneString; + return value.toString(); case TIMESTAMP: case TIMESTAMP_WITH_LOCAL_TIME_ZONE: assert value instanceof TimestampString; diff --git a/core/src/main/codegen/templates/Parser.jj b/core/src/main/codegen/templates/Parser.jj index 78f9f590edd1..542b164e1810 100644 --- a/core/src/main/codegen/templates/Parser.jj +++ b/core/src/main/codegen/templates/Parser.jj @@ -4787,6 +4787,7 @@ SqlLiteral DateTimeLiteral() : { final String p; final Span s; + boolean local = false; } { { @@ -4818,6 +4819,7 @@ SqlLiteral DateTimeLiteral() : return SqlLiteral.createUnknown("DATETIME", p, s.end(this)); } | + LOOKAHEAD(2)