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 ?
