Skip to content

19.3.0

Latest

Choose a tag to compare

@juliannguyen4 juliannguyen4 released this 25 Sep 18:18
· 14 commits to stage since this release
bc7a976

Breaking Changes

See Incompatible API Changes for details about breaking changes and deprecation warnings.

Improvements

  • Rename ResultRemove() to RemoveResult() to be more consistent with the rest of the language clients and for readability. [CLIENT-4344]
  • Replace precedence rules for the "key" policy option with a union-type rule. This affects write, operate, apply, batch_write, and batch_apply policies. [CLIENT-4944]
  • Performance: remove unnecessary initialization steps for command-level batch_write, batch_read, batch_apply, and batch_remove policies that are overwritten by the client config policy values, anyways.
  • Refactor map operations parsing code. This only affects a few map operations. [CLIENT-4697]
  • Update more outdated code examples. Add more regression tests to verify most of the code examples in the Python client API docs. [CLIENT-4702]
  • Add module constants for new abort status aerospike.ABORT_COMMIT_FAILED and transaction state aerospike.TXN_STATE_COMMIT_FAILED to make it easier for application developers to check the state of their transactions. [CLIENT-4960]
  • Add aerospike.INDEX_INTEGER and deprecate aerospike.INDEX_NUMERIC. [CLIENT-4523]
  • Refactor bit operations code. [CLIENT-4760]
  • Disable TLSv1.3 support for now as the server does not currently support it. [CLIENT-4820]
  • Raise a ParamError exception if a username or password passed to client config / aerospike.Client.connect() is empty or longer than 64 characters. This prevents unexpected behavior for users passing in invalid input to the client config and aligns with the C client's constraints. [CLIENT-3518]
  • client.scan(): raise ParamError if an invalid value type is passed for the "set" parameter. This prevents client.scan() from producing a Scan instance that silently scans the entire namespace when passed a set argument that is not a string or None (e.g. an int, float, list, dict, or tuple) [CLIENT-4053]
  • Convert existing code examples in examples/ folder to inherit from a base class for boilerplate setup. This is preparation for the aerospike.com documentation to reuse examples from examples/client. [CLIENT-5049]
  • Trigger DeprecationWarning if an invalid map key is used when storing a server map type. [CLIENT-4631]
  • Warn if specific fields receives an out of bounds integer value, where the field is represented as an enum type in the C client. [CLIENT-4678]
  • Add Client.get_policies() method to read client's current policies in real time (includes changes set via dynamic config). [CLIENT-5098]
  • Raise ParamError exception if a scan or background query has both operations and a UDF set instead of silently ignoring the operations. [CLIENT-2479]
  • Deprecate value_byte_size parameter in several bitwise operation functions. [CLIENT-2790]
  • client.remove_bin(): raise a DeprecationWarning when an invalid command-level policy key is passed and "validate_keys" is true. [CLIENT-3879]
  • Scan.add_ops(): document that adding a write operation and running a foreground query will raise a ParamError. [CLIENT-2476]
  • Docs: improve documentation for map and list expressions' bin parameters by specifying when a map expression would take in a list bin and vice versa.
  • Docs: fix some bad usage of "transaction" level policies and rename to "command" level.
  • Docs: replace aerospike module constants represented by inline literals with cross references. [CLIENT-4535]
  • Add missing cross reference from client API docs to server boolean type in aerospike.com docs. [CLIENT-4158]
  • Document that hosts can be passed as strings instead of tuples in client config option "hosts". [CLIENT-4841]
  • Remove the outdated async examples.

New Features

  • Add support for string operations and expressions. [CLIENT-4836]
  • Improve error actionability by adding subcode field to AerospikeError. Also allow returning detailed error messages with expression tracing for server 8.1.3 or higher. [CLIENT-3994]

Bug Fixes

  • Fix memory leak from recovering SSL connections during client teardown.
  • Fix potential memory leak found when Query.where() runs successfully.
  • Fix memory leak when aerospike.GeoJSON instance is used in an expression. [CLIENT-3914]
  • Address potential memory leak when geo_within_radius and geo_contains_point predicates raise an exception.
  • Fix leak when receiving AS_BYTES_PYTHON-type values from the server. [CLIENT-5193]
  • Fix bug where AS_BYTES_PYTHON are returned as bytes instead of bytearrays.
  • Prevent undefined behavior when a host is passed as string instead of a tuple in the client config.
  • Fix memory leak when passing an invalid host string to client config option "hosts". [CLIENT-4841]
  • Fix the wrong client config policy used for client.batch_{operate,apply,remove,write}() when a dictionary is passed as an argument to the "policy_batch" parameter. [CLIENT-3434]
  • Fix batch_write, batch_remove, and batch_apply policies, when passing in a dictionary to a command-level policy parameter, have it automatically inherit from the config level policy values.
  • Fix addresses CVE-2026-63662 where client can send uninitialized data and potentially crash the server by applying a bad UDF payload.

Full Changelog: 19.2.2...19.3.0