Repository navigation
Breaking Changes
See Incompatible API Changes for details about breaking changes and deprecation warnings.
Improvements
- Rename
ResultRemove()toRemoveResult()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_FAILEDand transaction stateaerospike.TXN_STATE_COMMIT_FAILEDto make it easier for application developers to check the state of their transactions. [CLIENT-4960] - Add
aerospike.INDEX_INTEGERand deprecateaerospike.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 preventsclient.scan()from producing aScaninstance that silently scans the entire namespace when passed asetargument that is not a string orNone(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_sizeparameter 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.GeoJSONinstance is used in an expression. [CLIENT-3914] - Address potential memory leak when
geo_within_radiusandgeo_contains_pointpredicates 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