Skip to content

Releases: aerospike/aerospike-client-go

Major Fix release

10 Jun 16:34
Compare
Choose a tag to compare

[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

    • Add missing Compress commands.
    • Check if error is not nil before chaining. Resolves issue #353.
    • Handle nil case in Node.String().
    • Correctly handle errors in Connection.Read and Connection.Write. Avoids shadowing of the error. Resolves issue #352.

Minor fix release

30 May 19:22
Compare
Choose a tag to compare

[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 is nil and the inner error is of type Error.
    • Support reading back keys with original List values.

Minor fix release

28 May 16:26
Compare
Choose a tag to compare
  • Fixes

    • Handle reading keys where the original value sent to the server was a list. Resolves Issue #350.

Minor feature and fix release

27 May 22:44
Compare
Choose a tag to compare

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

Minor fix release

27 May 22:45
Compare
Choose a tag to compare
  • Fixes

    • Handle lack of key digests in BatchExists command.

Major Breaking Feature Release

11 May 15:11
Compare
Choose a tag to compare

[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 and ExpWriteOp.
    • [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 return Error.
    • Exports AdminCommand and its QueryXXX API.
  • Breaking Changes

    • Limits keys to int, string and []byte types. The old ListValue 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 like NodeError
    • [CLIENT-1526] Removes Policy.Priority, ScanPolicy.ScanPercent and ScanPolicy.FailOnClusterChange
    • Removes Recordset.Read() and avoids multiplexing of Records channel in Recordset.Results(), and unexports the Error channel.
    • Remove legacy client code for old servers. Go client now requires server version 4.9+
    • Remove Statement.PredExp, and only use the Policy.PredExp to avoid confusion. PredExp has been deprecated and replaced by Expression.
    • Renames type FilterExpression to Expression.
    • Client.GetBatchXXX() will return ErrFilteredOut if an expression is passed to the API and some records were filtered out, regardless of BatchPolicy.AllowPartialResults.
    • Client.CreateRole() now requires quota information in the param list.
    • Removed Connection.Authenticate() API.
    • Renamed GetOpForBin() to GetBinOp()
    • Removed ScanPolicy.ConcurrentNodes. Now only uses .MaxConcurrentNodes to avoid confusion.
    • Moves the RequestInfo() under Connection.
  • Improvements

    • Implement GomegaStringer interface to prevent very long error messages in tests.
    • Adds ResultCode.String().

Minor feature, fix and improvements release

12 Apr 14:17
Compare
Choose a tag to compare
  • 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

12 Mar 17:52
Compare
Choose a tag to compare
  • Fixes

    • Fixes an issue where the client's reflection API expected certain int value types returned from the database. That assumption was wrong for CDTs and free form Lists and Maps. The client will now convert types to each other per Go's conversion rules where possible.
  • Improvements

    • Use a global TLS setting everywhere in tests.

Minor feature, fix and improvements release

01 Mar 18:00
Compare
Choose a tag to compare

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() with PartitionFilter
  • 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

12 Feb 21:43
Compare
Choose a tag to compare
  • 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 without Statement.Filter.
    • Adds NewHosts convenience function. (Github #320) thanks to Yegor Myskin
  • 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 the PredExp interface in the docs.
  • Changes

    • Only use Policy.Priority and MultiPolicy.FailOnClusterChange on server versions < 4.9. Priority is now deprecated and replaced with MultiPolicy.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.