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

Alexander Shilov edited comment on CALCITE-2748 at 12/18/18 7:54 PM:
---------------------------------------------------------------------

I couldn't find a single test/example in whole calcite repository on github, 
that is actually perform UPDATE. There are only tests of SQL parsing and 
planning an UPDATE.


was (Author: ashlanderr):
I couldn't find a single test/example in whole calcite repository on github, 
that is actually perform UPDATE. There are only tests of SQL parsing, planning 
and preparing an UPDATE.

> UPDATE doesn't work
> -------------------
>
>                 Key: CALCITE-2748
>                 URL: https://issues.apache.org/jira/browse/CALCITE-2748
>             Project: Calcite
>          Issue Type: Bug
>          Components: avatica, core, jdbc-adapter
>    Affects Versions: 1.17.0
>            Reporter: Alexander Shilov
>            Priority: Major
>
> I tried to use UPDATE DML statements, but got exception:
> {code:java}
> java.lang.AssertionError: UPDATE
> at 
> org.apache.calcite.adapter.enumerable.EnumerableTableModify.implement(EnumerableTableModify.java:137)
> at 
> org.apache.calcite.adapter.enumerable.EnumerableRelImplementor.implementRoot(EnumerableRelImplementor.java:100)
> at 
> org.apache.calcite.adapter.enumerable.EnumerableInterpretable.toBindable(EnumerableInterpretable.java:92)
> at 
> org.apache.calcite.prepare.CalcitePrepareImpl$CalcitePreparingStmt.implement(CalcitePrepareImpl.java:1238)
> at org.apache.calcite.prepare.Prepare.prepareSql(Prepare.java:332)
> at org.apache.calcite.prepare.Prepare.prepareSql(Prepare.java:231)
> at 
> org.apache.calcite.prepare.CalcitePrepareImpl.prepare2_(CalcitePrepareImpl.java:772)
> at 
> org.apache.calcite.prepare.CalcitePrepareImpl.prepare_(CalcitePrepareImpl.java:636)
> at 
> org.apache.calcite.prepare.CalcitePrepareImpl.prepareSql(CalcitePrepareImpl.java:606)
> at 
> org.apache.calcite.jdbc.CalciteConnectionImpl.parseQuery(CalciteConnectionImpl.java:229)
> at 
> org.apache.calcite.jdbc.CalciteConnectionImpl.prepareStatement_(CalciteConnectionImpl.java:211)
> at 
> org.apache.calcite.jdbc.CalciteConnectionImpl.prepareStatement(CalciteConnectionImpl.java:200)
> at 
> org.apache.calcite.jdbc.CalciteConnectionImpl.prepareStatement(CalciteConnectionImpl.java:91)
> at 
> org.apache.calcite.avatica.AvaticaConnection.prepareStatement(AvaticaConnection.java:175)
> ...{code}
> The reason is that EnumerableTableModify.implement doesn't support UPDATE.
> I've tried to implement it, but it's difficult with [Collection 
> API|https://github.com/apache/calcite/blob/02752fe78f817ed317b8873d2f4c7b79bfe8b9b5/core/src/main/java/org/apache/calcite/schema/ModifiableTable.java#L40].
>  There is no method in Collection, that can handle it, and if you use 
> remove/add methods to simulate update, then updated rows count will be equals 
> to zero.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to