[ https://issues.apache.org/jira/browse/CALCITE-5271?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17601284#comment-17601284 ]
Parag Jain commented on CALCITE-5271: ------------------------------------- Thanks please go ahead with the fix. I am not sure how to appropriately fix it as I am not much familiar with it yet. > Error while unparsing FLOOR function using Postgres dialect > ----------------------------------------------------------- > > Key: CALCITE-5271 > URL: https://issues.apache.org/jira/browse/CALCITE-5271 > Project: Calcite > Issue Type: Bug > Reporter: Parag Jain > Priority: Minor > > 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* > getting following exception - > > {code:java} > 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){code} > Looks like a bug as the "Year" token gets parsed to SqlIntervalQualifier but > expectation is of SqlLiteral. Here's a > [PR|https://github.com/apache/calcite/pull/2897] with test case to reproduce > the issue. -- This message was sent by Atlassian Jira (v8.20.10#820010)