[ 
https://issues.apache.org/jira/browse/CALCITE-7080?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17986810#comment-17986810
 ] 

Guillaume Massé edited comment on CALCITE-7080 at 6/30/25 3:21 AM:
-------------------------------------------------------------------

[~julianhyde] 

[https://github.com/apache/calcite/pull/4451/commits/5d6a4ecb90b84f4c080d0ec1deb247463491b2e3#diff-766dbf236baaf33399a8d3620404b261faa80c27dadb95379e0747f915380e44R6579]

 

> SqlUpdate operator does not override createCall. When we visit a SqlUpdate it 
> will be converted to a SqlBasicCall and it won't call SqlUpdate unparse.

 

It's really similar to https://issues.apache.org/jira/browse/CALCITE-4022, if 
you do any operation that happens to call createCall on SqlUpdate, when you try 
to unparse it, it will throw at SqlSyntax / unsupported. This is because you 
loose the class SqlUpdate, and you are left with a SqlBasicCall without any 
unparse implementation.

 


was (Author: masseguillaume):
[~julianhyde] 

[https://github.com/apache/calcite/pull/4451/commits/5d6a4ecb90b84f4c080d0ec1deb247463491b2e3#diff-766dbf236baaf33399a8d3620404b261faa80c27dadb95379e0747f915380e44R6579]

 

> SqlUpdate operator does not override createCall. When we visit a SqlUpdate it 
> will be converted to a SqlBasicCall and it won't call SqlUpdate unparse.

 

> Support unparse special syntax when operator is UPDATE
> ------------------------------------------------------
>
>                 Key: CALCITE-7080
>                 URL: https://issues.apache.org/jira/browse/CALCITE-7080
>             Project: Calcite
>          Issue Type: Bug
>          Components: core
>    Affects Versions: 1.40.0
>            Reporter: Guillaume Massé
>            Assignee: Guillaume Massé
>            Priority: Major
>             Fix For: 1.41.0
>
>
> {code:java}
> > Task :core:test FAILED
> FAILURE   0.1sec, org.apache.calcite.sql.parser.CoreSqlParserTest > 
> testVisitSqlUpdateWithSqlShuttle()
>     java.lang.UnsupportedOperationException: class 
> org.apache.calcite.sql.SqlSyntax$7: SPECIAL
>         at org.apache.calcite.util.Util.needToImplement(Util.java:1112)
>         at org.apache.calcite.sql.SqlSyntax$7.unparse(SqlSyntax.java:129)
>         at org.apache.calcite.sql.SqlOperator.unparse(SqlOperator.java:414)
>         at org.apache.calcite.sql.SqlDialect.unparseCall(SqlDialect.java:468)
>         at org.apache.calcite.sql.SqlCall.unparse(SqlCall.java:140)
>         at org.apache.calcite.sql.SqlNode.toSqlString(SqlNode.java:157)
>         at org.apache.calcite.sql.SqlNode.toString(SqlNode.java:132)
>         at 
> org.apache.calcite.sql.parser.SqlParserTest.testVisitSqlUpdateWithSqlShuttle(SqlParserTest.java:6592)
>  {code}
> SqlUpdate operator does not override createCall. When we visit a SqlUpdate it 
> will be converted to a SqlBasicCall and it won't call SqlUpdate unparse.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to