Hi Parag,

I added this test to `RelToSqlConverterTest`:
```java
@Test void testTest() {
  final String sql = "select FLOOR(TIMESTAMP '2022-08-01' TO Year)";
  final String expected = "SELECT DATE_TRUNC('YEAR', TIMESTAMP '2022-08-01
00:00:00')\nFROM " +
      "(VALUES (0)) AS \"t\" (\"ZERO\")";
  sql(sql)
      .withPostgresql()
      .ok(expected);
}
```
And it passed both on the latest main branch and 1.30.0 tag.

I don't know what I'm missing, could you give us an example which could
reproduce this?


Parag Jain <pja...@apache.org> 于2022年9月1日周四 19:34写道:

> Using Calcite(1.30.0) to parse this query - select FLOOR(TIMESTAMP
> '2022-08-01' TO Year)
>
> Parsing is successful but while doing
> `toSqlString(PostgresqlSqlDialect.DEFAULT).getSql()`. on the parsed SqlNode
> I am getting following exception -
>
> Request failed: java.lang.ClassCastException: class
> org.apache.calcite.sql.SqlIntervalQualifier cannot be cast to class
> org.apache.calcite.sql.SqlLiteral
> at
>
> org.apache.calcite.sql.dialect.PostgresqlSqlDialect.unparseCall(PostgresqlSqlDialect.java:128)
> at org.apache.calcite.sql.SqlCall.unparse(SqlCall.java:126)
> at
>
> org.apache.calcite.sql.pretty.SqlPrettyWriter$FrameImpl.list2(SqlPrettyWriter.java:1303)
> at
>
> org.apache.calcite.sql.pretty.SqlPrettyWriter$FrameImpl.list(SqlPrettyWriter.java:1283)
> at
>
> org.apache.calcite.sql.pretty.SqlPrettyWriter.list(SqlPrettyWriter.java:1080)
> at
>
> org.apache.calcite.sql.SqlSelectOperator.unparse(SqlSelectOperator.java:154)
> at org.apache.calcite.sql.SqlDialect.unparseCall(SqlDialect.java:460)
> at
>
> org.apache.calcite.sql.dialect.PostgresqlSqlDialect.unparseCall(PostgresqlSqlDialect.java:137)
> at org.apache.calcite.sql.SqlSelect.unparse(SqlSelect.java:261)
> at org.apache.calcite.sql.SqlNode.toSqlString(SqlNode.java:156)
> at org.apache.calcite.sql.SqlNode.toSqlString(SqlNode.java:178)
> at org.apache.calcite.sql.SqlNode.toSqlString(SqlNode.java:187)
>
> Looks like a bug as the "Year" token gets parsed to SqlIntervalQualifier
> but expectation is of SqlLiteral ?
>


-- 

Best,
Benchao Li

Reply via email to