Releases: aerospike/aerospike-client-go
Major Fix release
[IMPORTANT NOTE] An authentication bug was introduced in Go client 5.0.0. As a result, the client may fail to refresh its session token after it expires, requiring the client to be restarted. If you are using password-based authentication, we highly recommend that you upgrade your client to version 5.6.0+, which you can do safely.
-
Improvements
- Set the error node on transaction failures.
- Add compression and minConnsPerNode to benchmark tool options.
-
Fixes
Minor fix release
[IMPORTANT NOTE] An authentication bug was introduced in Go client 5.0.0. As a result, the client may fail to refresh its session token after it expires, requiring the client to be restarted. If you are using password-based authentication, we highly recommend that you upgrade your client to version 5.6.0+, which you can do safely.
-
Fixes
- Improve handling and chaining of errors in
BatchCommand
retries. - Don't wrap in
chainErrors
if outer isnil
and the inner error is of typeError
. - Support reading back keys with original
List
values.
- Improve handling and chaining of errors in
Minor fix release
-
Fixes
- Handle reading keys where the original value sent to the server was a list. Resolves Issue #350.
Minor feature and fix release
[IMPORTANT NOTE] An authentication bug was introduced in Go client 5.0.0. As a result, the client may fail to refresh its session token after it expires, requiring the client to be restarted. If you are using password-based authentication, we highly recommend that you upgrade your client to version 5.6.0+, which you can do safely.
-
Fixes
- Handle lack of key digests in
BatchExists
command. - Allow and handle nil arguments for
chainError
. - Avoid race condition in chaining prefined errors.
- Handle lack of key digests in
Minor fix release
-
Fixes
- Handle lack of key digests in
BatchExists
command.
- Handle lack of key digests in
Major Breaking Feature Release
[IMPORTANT NOTE] An authentication bug was introduced in Go client 5.0.0. As a result, the client may fail to refresh its session token after it expires, requiring the client to be restarted. If you are using password-based authentication, we highly recommend that you upgrade your client to version 5.6.0+, which you can do safely.
This is a major feature release. It is also a major breaking release. We have adopted Go's module system as recommended by the Go authors, so the new release moves the active branch to v5
.
As such, the import path changes to github.com/aerospike/aerospike-client-go/v5
. The master
branch remains in place to allow maintenance for the older v4 classic version until most users
get the chance to upgrade.
This release also changes the way errors work in the client, and invalidates the old way. This allows the client to support Go's somewhat new errors.Is
and errors.As
API, and properly
chain errors together.
Also note that the Go Client now requires server version 4.9+ and will not work properly with older versions.
-
New Features
- Adopts module system and changes the import paths to
github.com/aerospike/aerospike-client-go/v5
- [CLIENT-1476] Support new expressions introduced in server version 5.6, including
ExpReadOp
andExpWriteOp
. - [CLIENT-1463] Support boolean particle type and make it opt-in for reflection API via
UseNativeBoolTypeInReflection
. - [CLIENT-1522] Support user quotas and statistics.
- [CLIENT-1492] Remove ability to use old authentication protocol. This works behind the scenes and doesn't have any impact on user code.
- [CLIENT-1081] Adds
Error
interface, changes all API signature to returnError
. - Exports
AdminCommand
and itsQueryXXX
API.
- Adopts module system and changes the import paths to
-
Breaking Changes
- Limits keys to
int
,string
and[]byte
types. The oldListValue
arrays as types are not supported anymore. - Remove TLS code support for golang v1.8 and before.
- Moves
AerospikeError
from/types
to the root of the package, and removes all other error type likeNodeError
- [CLIENT-1526] Removes
Policy.Priority
,ScanPolicy.ScanPercent
andScanPolicy.FailOnClusterChange
- Removes
Recordset.Read()
and avoids multiplexing ofRecords
channel inRecordset.Results()
, and unexports theError
channel. - Remove legacy client code for old servers. Go client now requires server version 4.9+
- Remove
Statement.PredExp
, and only use thePolicy.PredExp
to avoid confusion.PredExp
has been deprecated and replaced byExpression
. - Renames type
FilterExpression
toExpression
. Client.GetBatchXXX()
will returnErrFilteredOut
if an expression is passed to the API and some records were filtered out, regardless ofBatchPolicy.AllowPartialResults
.Client.CreateRole()
now requires quota information in the param list.- Removed
Connection.Authenticate()
API. - Renamed
GetOpForBin()
toGetBinOp()
- Removed
ScanPolicy.ConcurrentNodes
. Now only uses.MaxConcurrentNodes
to avoid confusion. - Moves the
RequestInfo()
underConnection
.
- Limits keys to
-
Improvements
- Implement
GomegaStringer
interface to prevent very long error messages in tests. - Adds
ResultCode.String()
.
- Implement
Minor feature, fix and improvements release
-
New Features
- Allows reading of boolean types from the server, supported in Aerospike server v5.6. The current client will not support writing boolean type to the server. That features will be supported in the upcoming Go client v5.
-
Improvements
- [CLIENT-1495] Tentatively check if a connection is allowed to avoid launching too many goroutines.
-
Fixes
- Implements correct and re-triable Scans for the Reflection API.
- Fixes an obscure var shadowing bug in TLS connection handshake error logging.
Minor fix and improvements release
-
Fixes
- Fixes an issue where the client's reflection API expected certain
int
value types returned from the database. That assumption was wrong forCDT
s and free formList
s andMap
s. The client will now convert types to each other per Go's conversion rules where possible.
- Fixes an issue where the client's reflection API expected certain
-
Improvements
- Use a global TLS setting everywhere in tests.
Minor feature, fix and improvements release
While there aren't many user facing changes, the quality of the code has been markedly improved. This release puts us on a good footing for the next few big releases.
-
New Features:
- [CLIENT-1457] Support scan pagination through
ScanPartitions()
withPartitionFilter
- [CLIENT-1457] Support scan pagination through
-
Fixes
- Fixes an issue where if errors and filtered records happened at the same time in Batch requests, no error would be returned to the user.
-
Improvements
- Makes the code samples more readable in the docs.
- Fixes a lot of code samples in documentation, along with typos, etc.
- Fixes copy/paste naming errors in the documentation. Thanks to Yevgeny Rizhkov
- Removes a few unreachable lines from the code. Thanks to Yevgeny Rizhkov
- Handles a few TLS connection related issues in tests.
Major Feature Release
-
New Features:
- [CLIENT-1192] Adds Support for partition scans. Queries which lack a
Statement.Filter
will be automatically converted to partition scans. If the cluster supports partition scans, all Scans and Queries will use the new protocol to allow retrying in case of some errors. - [CLIENT-1237] Adds Support for
MultiPolicy.MaxRecords
in scans and queries withoutStatement.Filter
. - Adds
NewHosts
convenience function. (Github #320) thanks to Yegor Myskin
- [CLIENT-1192] Adds Support for partition scans. Queries which lack a
-
Improvements
- Adds a few missing error checks.
- Moves examples files to dedicated folders to avoid
multiple main function
errors for new users. - Some documentation clean up. (Github #314) thanks to Shin Uozumi
- Fix typo in example
NewKey()
. (Github #331) thanks to Patrick Kuca - Adds an example to list operations (using operate and list policy).
- Runs the XDR tests only when XDR is configured on the server.
- Add TLS config to test params.
- Mark
NewPredExpXXX
return value as the PredExp interface instead of concrete type. It will now group them under thePredExp
interface in the docs.
-
Changes
- Only use
Policy.Priority
andMultiPolicy.FailOnClusterChange
on server versions < 4.9.Priority
is now deprecated and replaced withMultiPolicy.RecordPerSecond
. Statement.TaskID
is deprecated and will be removed in the next major version.ScanPolicy.ConcurrentNodes
is deprecated and will be removed in the next major version.
- Only use