This is a heads up regarding a breaking change that is currently in avatica-go master and will be released as the next major version, 4.0.0.

In Apache Phoenix, string columns set to null or an empty string ("") are considered to be equivalent. For more details on why this is the case see [1].

While fixing a bug to correctly work with null values in avatica-go [2], I had to break existing behavior.

Previous behavior: A string column set to null or an empty string will be returned as an empty string.

New behavior: A string column set to null or an empty string will be returned as a null.

The reason for this change is to take advantage of Go's database/sql package's builtin NullString type [3]. This type allows userland code to scan nullable columns into a variable without any errors.

Note: This breaking change will be part of 4.0.0 and will not affect users using 3.x.x. However, to take advantage of database/sql's null types, you will need to upgrade to 4.0.0 (when it is released) and upgrade your import paths to github.com/apache/calcite-avatica-go/v4 This change is only applicable for Apache Phoenix and will not affect HSQLDB.

[1] https://issues.apache.org/jira/browse/PHOENIX-947
[2] https://issues.apache.org/jira/browse/CALCITE-2763
[3] https://golang.org/pkg/database/sql/#NullString

Reply via email to