client/v2.6.5

vercel-labs/webreelclient/v2.6.5May 26, 2026by congqixia

AI Summary

The Go SDK release adds comprehensive support for nullable vector columns and array field partial update operations, including validation and decoding.

Key Highlights

  • Added nullable vector column constructors for dense, binary, sparse, and int8 types
  • Added Array field partial update helpers for ARRAY_APPEND and ARRAY_REMOVE
  • Validates vector fields added to existing collections are nullable
  • Updated milvus-proto/go-api/v2 to v2.6.17

New Features

  • Nullable Vector Columns support (Float, Binary, Float16, BFloat16, Int8, Sparse)
  • Array partial update operations (Append/Remove)

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