Go Client History

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

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


  • [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.