Go Client History

For a full list of releases, see github. Downloads are available on the downloads page.

5.0.0 / 2020-07-16

Apache Calcite Avatica Go 5.0.0 is a major release of Avatica Go with a number of improvements and a breaking change. As Go modules has 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.

Features and bug fixes

  • [CALCITE-3248] Add Connector implementation and remove username and password query string parameters from DSN (Tino Rusch)
  • [CALCITE-3253] Check server address exists before returning it in an Avatica response error (Tino Rusch)
  • [CALCITE-3264] Add catch-all type for unknown types in all adapters instead of panicking (Tino Rusch)
  • [CALCITE-3275] Add nil checks to error parsing (Tino Rusch)
  • [CALCITE-2499] Drop support for dep
  • [CALCITE-3320] Use transitional x/xerrors package when working with errors
  • [CALCITE-3903] Upgrade protobuf generation dependencies and regenerate avatica protobufs
  • [CALCITE-3905] Upgrade gokrb5 to v8
  • [CALCITE-3906] Pin witch version in tools.go file
  • [CALCITE-4067] Add support for ExecuteBatchRequest in prepared statement (chenhualin)
  • [CALCITE-3359] Update dependencies
  • [CALCITE-4078] Move import path from v4 to v5 for 5.0.0 release

Tests

Web site and documentation:

  • Clean up documentation and remove references to dep

4.0.0 / 2019-05-16

Apache Calcite Avatica Go 4.0.0 is a major release of Avatica Go with a number of improvements and a breaking change. This release supports using both dep and Go modules 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.

Breaking change for 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.

Features and bug fixes

  • [CALCITE-2723] Generate SHA512 digest for releases
  • [CALCITE-2724] Exclude .md files from import path check in release script to avoid false positives
  • [CALCITE-2579] Implement live reloading of tests when source files change during development
  • [CALCITE-2763] Fix handling of nils (nulls) when executing queries and scanning query results with empty strings and other null types
  • [CALCITE-2775] Update dependencies and regenerate protobufs
  • [CALCITE-3024] Update dependencies (April 26 2019)
  • [CALCITE-3032] Simplify docker-compose.yml for running tests and development mode, change release process to use a docker container to build in a clean environment and include automation for uploading and promoting releases
  • [CALCITE-3026] Move import paths from v3 to v4 to prepare for 4.0.0 release
  • [CALCITE-3042] Fix bug in docker release script that prevents releases from being promoted correctly and incorrect variable substitution in vote email

Tests

  • [CALCITE-2771] Test against Avatica HSQLDB 1.13.0
  • [CALCITE-3025] Update travis configuration and docker-compose to test against Go 1.12 and run tests using dep in Go 1.11 and Go 1.12
  • [CALCITE-3035] Test against Avatica HSQLDB 1.14.0
  • [CALCITE-3044] Test against Avatica HSQLDB 1.15.0 and simplify Alpine dependencies

Web site and documentation:

  • [CALCITE-2774] Improve release documentation and explicitly include all steps for making a release
  • [CALCITE-3033] Move release process to separate HOWTO document so that it’s consistent with how the avatica docs are structured

3.2.0 / 2018-09-18

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.

Features and bug fixes

  • [CALCITE-2536] Update release script to check that import paths within the library point to the correct version
  • [CALCITE-2545] Fix incorrect import paths within the library to point to the correct version: github.com/apache/calcite-avatica-go/v3
  • [CALCITE-2544] Replace the golang.org/x/net/context package with the context package in the standard library
  • [CALCITE-2547] Update all dependencies to their latest versions
  • [CALCITE-2550] Update release script to build tarballs with filenames in the format: apache-calcite-avatica-go-x.x.x-src.tar.gz

3.1.0 / 2018-09-10

Apache Calcite Avatica Go 3.1.0 is a minor release of Avatica Go with support for Go modules. We recommend using the latest stable version of Go.

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.

Features and bug fixes

  • [CALCITE-2333] Stop releasing zip archives
  • [CALCITE-2367] Remove the satori/go.uuid package as it is unmaintained and replace it with hashicorp/go-uuid which is already a transitive dependency (Kenneth Shaw)
  • [CALCITE-2372] Test against Apache Phoenix 4.14.0
  • [CALCITE-2493] Update all dependencies to their latest versions
  • [CALCITE-2335] Add support for Go modules (available since Go 1.11) and test against Go 1.11
  • [CALCITE-2500] Test against Avatica 1.12.0 and Apache Phoenix 5.0.0 and regenerate protobuf definitions
  • Fix release script
  • [CALCITE-2513] Fix dockerfile so that Go modules work correctly when running tests using docker-compose
  • [CALCITE-2531] Update release script to only include files in source control
  • [CALCITE-2533] Allow user to select signing key when signing releases using release script
  • [CALCITE-2532] Update release script to check ending copyright year in NOTICE file
  • [CALCITE-2534] Update release script to check that AVATICA_VER are the same in both gen-protobuf.sh and gen-protobuf.bat
  • Fix 3.1.0 release annoucement filename

Web site and documentation

  • [CALCITE-2335] Update documentation and release instructions to include support for Go modules.

3.0.0 / 2018-04-27

Apache Calcite Avatica Go 3.0.0 is the first release since the Go driver has been donated to the Apache Software foundation. We recommend using the latest stable version of Go.

Features and bug fixes

  • [CALCITE-1240] Intial import of the original Boostport/avatica code-base into the apache/calcite-avatica-go repository
  • [CALCITE-1938] Releasing the first release of Calcite Avatica Go under the Apache Software Foundation
  • Remove go-cleanhttp dependency
  • Support for Avatica HSQLDB backend and move Apache Phoenix support into adapter
  • Add bash script to automate releases with checks to alert on files without the Apache license header
  • Replace gopher.png test fixture with Calcite logo

Web site and documentation

Past releases

Prior to release 3.0.0, the Avatica Go client was developed by Boostport.

Please refer to the Boostport/avatica Github repository for previous releases of the Avatica Go client.

Next