client/v2.6.5

FoundationVision/VARclient/v2.6.5May 26, 2026by congqixia

AI Summary

This client release introduces support for nullable vector columns and partial updates for array fields in the Milvus vector database SDK.

Key Highlights

  • Added support for nullable vector columns across multiple types
  • Implemented Array field partial update helpers
  • Added schema validation for vector fields

New Features

  • Nullable vector constructors (Float, Binary, Float16, BFloat16, Int8, Sparse)
  • Nullable vector response decoding
  • Array partial update helpers: WithArrayAppend and WithArrayRemove
  • Schema validation to ensure vector fields are nullable before addition
  • Handling of all-null sparse vector serialization

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