Can you log that a JIRA case to make “autoCommit” an accepted parameter in the 
JDBC URL? I think it would solve this problem.

> On Nov 22, 2017, at 8:52 AM, Christian Tzolov <[email protected]> wrote:
> 
> Hi Josh,
> 
> Here
> ​is
> ​Z
> eppelin
> ​'s JDBC Interpreter forcefull auto-commit implementation​
> :
> http://bit.ly/2zrykP9
> 
> ​So if the connection is not auto-commit = true the JDBC interpreter will
> forcefully call commit.
> 
> But Avatica's connection defaults to auto-commit = true and there is no way
> to configure it from the properties! I can not call
> Connection#setAutoCommit(boolean) without the Zeppelin's generic JDBC
> interpret implementation. There is ZEPPELIN-2451 issue that tries to
> address this but i'm not sure the approach is right (see my comment in
> https://github.com/apache/zeppelin/pull/2396)
> 
> The connection.commit() called by Zeppelin hits the CalciteMetaImpl#commit
> ​(). Later throws an explicit ​
> UnsupportedOperationException
> ​. E.g. ​
> 
> @Override public void commit(ConnectionHandle ch) {
>  throw new UnsupportedOperationException();
> }
> 
> 
> 
> On 22 November 2017 at 17:11, Josh Elser <[email protected]> wrote:
> 
>> Hey Christian,
>> 
>> Thanks for sharing this. Sounds cool.
>> 
>> I'm curious what you mean when you say that the Avatica connection doesn't
>> support commit. This was implemented in CALCITE-767.
>> 
>> Also, is there a reason that Zeppelin needs a property to control
>> autoCommit and can't use the Connection#setAutoCommit(boolean) method?
>> 
>> 
>> On 11/22/17 8:09 AM, Christian Tzolov wrote:
>> 
>>> FYI,
>>> 
>>> you can use the Apache Zeppelin's generic JDBC interpreter to plug a
>>> Calcite based JDBC adapter.
>>> 
>>> Here are my results of plug-in the Geode-Calcite adapter:
>>> https://www.linkedin.com/pulse/advanced-apache-geode-data-
>>> analytics-zeppelin-over-sqljdbc-tzolov/
>>> 
>>> Although i've been testing with particular adapter i believe the approach
>>> and the findings would be applicable for any Avatica JDBC adapter too.
>>> 
>>> The only minor but blocking !!! issue is related to the fact that
>>> Zeppelin's JDBC interpreter tries to 'commit' the jdbc connection if later
>>> is not set as 'auto-commit=true'. But the Avatica connection does NOT
>>> support commits.
>>> 
>>> At the moment there is no way to switch this behavior off on the Zeppelin
>>> side. The ZEPPELIN-2451 issue and PR hopefully will resolve this.
>>> 
>>> Unfortunately Avatica doesn't provide properties to set the auto-commit to
>>> true (default is hardcoded to false).
>>> 
>>> As a temporal solution you can build Zeppelin from my fork (
>>> https://github.com/tzolov/zeppelin/tree/calcite) and play with Zeppelin
>>> and
>>> Calcite adapters.
>>> 
>>> Cheers,
>>> Christian
>>> 
>>> 
> 
> 
> -- 
> Christian Tzolov <http://www.linkedin.com/in/tzolov> | Principle Software
> Engineer | Pivotal <http://pivotal.io/> | [email protected] |+31610285517

Reply via email to