client/v2.6.5

knadh/listmonkclient/v2.6.5May 26, 2026by congqixia

AI Summary

The Go SDK release introduces support for nullable vector columns across various types and adds partial update helpers for Array fields in upsert requests.

Key Highlights

  • Adds nullable vector constructors for Float, Binary, Float16, BFloat16, Int8, and Sparse vectors
  • Adds Array field partial update helpers (ARRAY_APPEND and ARRAY_REMOVE)
  • Validates vector field nullability before sending requests
  • Bumps Go SDK version constant to 2.6.5

New Features

  • Nullable vector constructors and response decoding
  • Array partial update operations for upserts

Full Release Notes

### Highlights

- Adds Go SDK support for nullable vector columns across dense, binary, sparse, and int8 vector types.
- Adds Array field partial update helpers for `ARRAY_APPEND` and `ARRAY_REMOVE` in upsert requests.
- Validates that vector fields added to existing collections are nullable before sending `AddCollectionField` requests.
- Bumps the Go SDK version constant to `2.6.5` and updates `milvus-proto/go-api/v2` to `v2.6.17`.

### New Features

- **Nullable vector columns**: Added nullable column constructors for vector fields: `NewNullableColumnFloatVector`, `NewNullableColumnBinaryVector`, `NewNullableColumnFloat16Vector`, `NewNullableColumnBFloat16Vector`, `NewNullableColumnInt8Vector`, and `NewNullableColumnSparseFloatVector`. These constructors accept compact non-null vector values plus `validData`, and validate that the values length matches the valid row count. (#49848)

- **Nullable vector response decoding**: `FieldDataColumn` now decodes nullable vector field data using `ValidData` for `FloatVector`, `BinaryVector`, `Float16Vector`, `BFloat16Vector`, `SparseFloatVector`, and `Int8Vector`. Null rows are preserved in the returned column while compact wire-format vector payloads are expanded back to row-aligned columns. (#49848)

- **Array partial update operations**: Added upsert helpers `WithArrayAppend(fieldName)`, `WithArrayRemove(fieldName)`, and `WithFieldPartialOp(fieldName, op)` for Array field partial updates. Non-`REPLACE` field ops are serialized into `UpsertRequest.FieldOps` and automatically enable `partial_update` for both column-based and row-based upserts. (#49328)

### Bug Fixes

- **AddCollectionField vector validation**: `AddCollectionField` now validates options before sending the RPC and rejects vector fields added to existing collections unless the field is marked `nullable=true`, preventing invalid schema changes from reaching the server. (#49848)

- **All-null sparse vector handling**: Sparse vector column serialization now handles empty value sets by emitting dimension `0`, allowing all-null nullable sparse vector columns to round-trip without panics or invalid dimension calculations. (#49848)

- **Nullable column row counts**: Added `Column.ValidCount()` support so nullable columns can report the number of non-null rows separately from total row count. Struct-array columns return their total length. (#49848)

### Contributors
- @marcelo-cjl 
- @weiliu1031