client/v2.6.5
Wilfred/difftasticclient/v2.6.5May 26, 2026by congqixia
AI Summary
Adds comprehensive support for nullable vector columns and array partial update operations to the Milvus Go SDK, including validation for vector fields in existing collections.
Key Highlights
- Nullable vector constructors for dense, binary, sparse, and int8 types
- Array field partial update helpers (ARRAY_APPEND and ARRAY_REMOVE)
- Validation for vector fields added to existing collections
- Bumps Go SDK version to 2.6.5
New Features
- Nullable vector columns support
- Array partial update operations
- AddCollectionField vector validation
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