Release Avatica Go 5.3.0

Apache Calcite Avatica Go 5.3.0 is a maintenance release of Avatica Go including dependency updates and bug fixes. This release supports Go 1.20 and 1.21, which are currently the versions supported and maintained by the Go team.

The Calcite team recommends users of this package to upgrade to this version, where practical, as bugs causing panics have been resolved in this release.

See the release notes; download the release.

Release Avatica Go 5.2.0

Apache Calcite Avatica Go 5.2.0 is a maintenance release of Avatica Go with some dependency updates, bug fixes and a new minor feature. This release supports Go 1.18 and 1.19, which are currently the versions supported and maintained by the Go team.

In this release, the xinsnake/go-http-digest-auth-client digest authentication client has been replaced with icholy/digest as the former has been deprecated and is no longer maintained. In addition, the driver.SessionResetter has also been implemented, allowing stale connections to the server to be purged and reset.

The Calcite team recommends users of this package to upgrade to this version, where practical, as the dependencies being used by this package have also been upgraded.

See the release notes; download the release.

Release Avatica Go 5.1.0

Apache Calcite Avatica Go 5.1.0 is a maintenance release of Avatica Go with some dependency updates and bug fixes. This release supports Go 1.17 and 1.18, which are currently the versions supported and maintained by the Go team.

Of particular note is the replacement of the github.com/golang/protobuf package with google.golang.org/protobuf and the golang.org/x/xerrors package with the standard library’s built-in errors package as the former packages have all be superseded by their replacements.

The Calcite team recommends users of this package to upgrade to this version, where practical, as the dependencies being used by this package have also been upgraded.

See the release notes; download the release.

Release Avatica Go 5.0.0

Apache Calcite Avatica Go 5.0.0 is a major release with numerous improvements and a breaking change. As this is a new major version, users of this package will need to upgrade their import paths to "github.com/apache/calcite-avatica-go/v5".

Since Go modules have been available since Go 1.11 (3 versions back as of writing), users of this library should install it using Go modules as support for dep has been removed.

This release also introduces the batching query string parameter in the DSN, which allows updates to the server using a prepared statement to be batched together and executed once Close() is called on the statement.

Breaking change for connection metadata (CALCITE-3248): Previously, it is possible to set the HTTP username and password using the username and password parameters in the query string of the DSN. These parameters were confusing and didn’t signal the intent and effect of the parameters in addition to clashing with the avaticaUser and avaticaPassword parameters. The username and password parameters have now been removed as CALCITE-3248 implements the Connector interface via the NewConnector() method, which allows the driver to be instantiated with a custom HTTP client. Subsequently, it is now possible to set up the driver with a custom HTTP client and decorate it with the WithDigestAuth(), WithBasicAuth(), WithKerberosAuth() and WithAdditionalHeaders() methods.

The Calcite team recommends users of this package to upgrade to this version, where practical, as the dependencies being used by this package have also been upgraded.

See the release notes; download the release.

Release Avatica Go 4.0.0

Apache Calcite Avatica Go 4.0.0 is a major release with numerous improvements and a breaking change for Apache Phoenix. As this is a new major version, users of this package will need to upgrade their import paths to "github.com/apache/calcite-avatica-go/v4".

Breaking change for Apache Phoenix (CALCITE-2763): In Apache Phoenix, null and empty strings are equivalent. For some background on why this is the case, see PHOENIX-947. In version 3 of Avatica-Go and below, null and empty strings are returned as an empty string "" to the client. This prevented database/sql’s built in NullString type from working correctly. From 4.0.0 onwards, null and empty strings will be returned as a nil. This allows the usage of the sql.NullString type.

For this release, both dep and Go modules are supported for package management. As Go modules will be turned on by default in Go 1.13.0 (estimated to be released in September/October 2019), it is highly recommended that users of this package start migrating to using Go modules to ease the transition.

The Calcite team recommends users of this package to upgrade to this version, where practical, as the dependencies being used by this package have also been upgraded.

See the release notes; download the release.

Release Avatica Go 3.2.0

Apache Calcite Avatica Go 3.2.0 is a minor release of Avatica Go with fixes to the import paths after enabling support for Go modules.

The 3.1.0 release contained a bug where packages within the library used the "github.com/apache/calcite-avatica-go" import path rather than the "github.com/apache/calcite-avatica-go/v3" import path. This resulted in an issue where 2 versions of the library are being used at the same time, causing some programs to not build.

The Calcite team recommends consumers of the Avatica Go library to not use the 3.1.0 release and ensure that the 3.2.0 release is being used.

See the release notes; download the release.

Release Avatica Go 3.1.0

Apache Calcite Avatica Go 3.1.0 is a minor release of the Avatica Go client to bring in support for Go modules. This release includes updated dependencies, testing against more targets and support for Go Modules.

Go 1.11 along with Go modules support was released at the end of August 2018. Go modules will become the official package management solution for Go projects. As the Go team currently supports both Go 1.11 and Go 1.10, the Gopkg.toml and Gopkg.lock files are still available for those using dep for package management. We plan to remove support for dep when Go 1.12 is released in early 2019, so we encourage users to upgrade to Go 1.11 and use Go modules where possible.

See the release notes; download the release.

Release Avatica Go 3.0.0

Apache Calcite Avatica Go 3.0.0 is the first release of the Avatica Go database/sql driver since the code has been donated to the Apache Calcite project. This release includes support for Avatica with the HSQLDB backend, updated dependencies and bug fixes.

There is a breaking change where the Name() method on the ResponseError error type has been changed to a property, Name.

Users of the current Boostport/avatica library are encouraged to update to this new version of apache/calcite-avatica-go as further development will take place in the apache/calcite-avatica-go repository.

For most users, the updating is simply replacing the import path _ github.com/Boostport/avatica with _ github.com/apache/calcite-avatica-go.

See the release notes; download the release.