You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@phoenix.apache.org by F21 <f2...@gmail.com> on 2017/03/08 22:01:11 UTC

Go Avatica/Phoenix driver updated to support new Go 1.8 features

Hi all,

I am cross posting this from the Calcite mailing list, since the phoenix 
query server uses Avatica from the Calcite project.

Go 1.8 was released recently and the database/sql package saw a lot of 
new features. I just tagged the v1.3.0 release for the Go Avatica 
driver[0] which ships all of these new features.

The full list of changes in the database/sql package is available here: 
https://docs.google.com/document/d/1F778e7ZSNiSmbju3jsEWzShcb8lIO4kDyfKDNm4PNd8/edit

Backwards compatibility:

- The new interfaces/methods are all additive. The implementation is 
also backwards compatible, so v1.3.0 will work with Go 1.7.x and below.

Highlights:

- Methods now support using context to enable cancellation and timeouts 
so that queries can be cancelled on the client side. Note: Since there 
is no mechanism to cancel queries on the server, once a query is sent to 
the server, users should assume that it will be executed.

- The Ping method will now connect to the server and execute `SELECT 1` 
to ensure that the server is ok.

- More column type information: It is now possible to get the column 
name, type, length, precision + scale, nullability and the Go scan type 
for a column in a result set.

- Support for multiple result sets. Avatica had support for multiple 
result sets for a while and this mapped really well to the multiple 
result sets support introduced in Go 1.8.

Unimplemented features:

- Since Calcite/Avatica does not support named bind parameters in 
prepared statements, the driver will throw an error if you try to use them.

If you have any question or comments, please let me know!

Cheers,

Francis

[0] https://github.com/Boostport/avatica