tl;dr Lots of great finds, most of which I think should go into a 1.8.0 (rather than have to work around them later). Limited availability will probably keep me from fixing them until Thursday, but I am happy to work on them then.

What's your take on switching your vote on avatica-1.8.0-rc0 based on the below? I certainly won't have my feelings hurt, I'm rather happy you found all of this before we made a release :)

Julian Hyde wrote:
And also:
* Clarify what "closeStatement(StatementHandle)” should do if the statement 
handle is invalid. Throw or do nothing?

It looks like JdbcMeta logs a debug message and does not throw an error if the provided handle does not exist. We could clarify this by returning back some enum value:

enum Result {
  CLOSED, // Successfully closed
  MISSING, // Did not refer to a known Statement
  FAILED_CLOSE // Failed (SQLException) closing the Statement
}

We could have a nice rich response instead of the (essentially) empty response. I am not swayed one way or the other that we'd need to do this for 1.8.0.

I tried to upgrade Calcite to Avatica 1.8.0 and it’s not trivial. I have pushed my 
work to the branch  
https://github.com/julianhyde/calcite/tree/1280-upgrade-avatica<https://github.com/julianhyde/calcite/tree/1280-upgrade-avatica>.
 I’d like to make sure that implementing the new APIs is possible before we approve 
the Avatica 1.8.0 release. Can someone take a look?


I'll try to take a look tonight. Admittedly, I'm a bit jet-lagged already and will be at {HBase,Phoenix}Con Tuesday and Wednesday so my availability might be more sparse than normal.


On May 23, 2016, at 1:40 AM, Julian Hyde<[email protected]>  wrote:

A couple of other problems/questions:
* There still calls within Avatica to the deprecated form of prepareAndExecute. 
Wouldn’t it be wise to upgrade all internal uses?

It would certainly be proactive to do so. The code I added to make sure that older clients still work is (unintentionally) tested by this, but it's admittedly silly that I didn't switch over all of the uses.

Not a blocker for 1.8.0, but would be nice to fix if we're doing another RC (see below)

* Why does prepareAndExecuteBatch not have a PrepareCallback parameter like 
prepareAndExecute? It makes it difficult to implement it in the obvious way.

Omission on my part. We should fix this for 1.8.0 IMO.



On May 23, 2016, at 1:13 AM, Julian 
Hyde<[email protected]<mailto:[email protected]>>  wrote:

I just logged Avatica issue 
https://issues.apache.org/jira/browse/CALCITE-1254<https://issues.apache.org/jira/browse/CALCITE-1254>,
 "Support PreparedStatement.executeLargeBatch”.

Would fixing cause an incompatible change to the protocol? If so, we should 
consider putting it into 1.8.

We could fix it in a backwards compatible manner now, but it would be trivial to just change now before the original release (and my preference). It's certainly less churn for downstream people to find out they have to look at another field for the "proper" value.

I didn't even think about the new methods in JDK8. I think we should get this fixed for 1.8.0.

Reply via email to