[
https://issues.apache.org/jira/browse/CALCITE-5271?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17607292#comment-17607292
]
Parag Jain edited comment on CALCITE-5271 at 9/20/22 4:26 PM:
--------------------------------------------------------------
Sorry for the confusion. I am not suggesting to remove the FLOOR function. I
was suggesting removing the support for FLOOR(Timestamp to TIMEUNIT) syntax in
PostgresSqlDialect since as per my knowledge even standard sql does not support
FLOOR(Timestamp to TIMEUNIT) operator.
But now I think more about it, you mentioned Calcite extends standard SQL to
support this and even users may convert from some dialect which supports this
syntax to Postgres in which case this conversion will be super useful. So I was
wrong in suggesting this.
was (Author: pjain1):
Sorry for the confusion. I am not suggesting to remove the FLOOR function. I
was suggesting removing the support for FLOOR(Timestamp to TIMEUNIT) syntax in
PostgresSqlDialect since as per my knowledge even standard sql does not support
FLOOR(Timestamp to TIMEUNIT) operator.
But now I think more about it, you mentioned Calcite extends standard SQL to
support this and even users may convert from some dialect which supports this
syntax to Postgres in which case this conversion will be super useful.
> 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
> Assignee: Mou Wu
> 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)