Breaking changes should be part of release notes, i.e. https://calcite.apache.org/avatica/docs/go_history.html <https://calcite.apache.org/avatica/docs/go_history.html>. We’ve not been very disciplined in doing this, but let’s do better.
I see no reason why we could not start writing the release notes for the next release, and add breaking changes to that page as we commit them. Julian > On Jan 9, 2019, at 1:04 PM, Josh Elser <[email protected]> wrote: > > Nice write up, Francis. > > Do we have a corner of the Avatica website for the Go-driver yet which you > could use to memorialize this? Thinking that it might be more readily found > than via mailing list archives. > > On 1/6/19 10:38 PM, Francis Chuang wrote: >> 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
