This release adds 3 notable features for engineering teams evaluating rollout.
✓ No known CVEs patched in this version
Topics
+10 more
Summary
AI summaryAdded struct-array vector sub-field support, EmbeddingList search types, gRPC authority config, and fixed custom dial options preservation.
Full changelog
Highlights
- Completes Go SDK (
client/v2) struct-array support, especially vector sub-fields and EmbeddingList/MAX_SIM search. - Fixes custom gRPC
DialOptionsso they no longer drop the SDK's default keepalive, backoff, and max receive message-size settings.
New Features
-
Struct-array vector sub-field columns: Added vector-array column types for struct-array vector sub-fields:
ColumnFloatVectorArray,ColumnFloat16VectorArray,ColumnBFloat16VectorArray,ColumnBinaryVectorArray, andColumnInt8VectorArray. These supportArrayOfVectorsub-fields inside struct arrays. (#49164) -
EmbeddingList search vector types: Added
entity.FloatVectorArray,entity.Float16VectorArray,entity.BFloat16VectorArray,entity.BinaryVectorArray, andentity.Int8VectorArray, dispatching them to the matchingPlaceholderType_EmbList*values. This enables MAX_SIM / EmbeddingList search against struct-array vector sub-fields such asclips[clip_emb]. (#49164) -
Struct-array insert/upsert helper: Added
WithStructArrayColumn(name, structSchema, rows)to column-based insert/upsert options. The helper accepts[]map[string]anyrow data and infers scalar/vector sub-column types from the provided struct schema. (#49164) -
gRPC authority configuration: Added
ClientConfig.WithGrpcAuthority(authority)for proxy-based routing through the gRPC:authorityheader. (#49186)
Bug Fixes
-
Default gRPC dial options are preserved:
Client.dialOptions()now always appliesDefaultGrpcOptsbefore user-providedDialOptions, retaining SDK defaults for keepalive, backoff, and max receive message size while still allowing caller overrides. (#49186, issue #48828) -
Struct-array schema validation: Added
Schema.Validate()andStructSchema.Validate()and wired validation intoCreateCollection. Invalid struct-array sub-fields are rejected before the RPC, including nested array/struct fields, sparse vector sub-fields, duplicate sub-field names, and top-level-only flags such as primary key, partition key, clustering key, nullable, default value, dynamic, and autoID. (#49164, issue #49163) -
Struct-array schema round trip:
Schema.ReadProto()now restoresStructArrayFields, andProtoMessage()preservesmax_capacityby propagating the parent setting to sub-fields when needed.Array/ArrayOfVectorwrappers from the server are unwrapped back to user-facing scalar/vector sub-field types. (#49164) -
Struct-array write correctness:
columnStructArraynow enforces equal lengths across sub-fields, appends a row atomically with rollback on partial sub-field failure, and serializes top-level struct-array field data asDataType_ArrayOfStruct. (#49164) -
Vector-array response decoding: Query/search result decoding now handles
DataType_ArrayOfVector, validates nil vector rows, validates payload lengths against dimension/width, rejects invalid binary vector dimensions, and preserves vector-array sub-field data in Go column types. (#49164) -
Builder error handling:
WithStructArrayColumnstores construction errors and returns them fromInsertRequest/UpsertRequestinstead of panicking during chained builder calls. (#49164)
Contributors
- @zhuwenxing
- @liliu-z
- @milanchovatiya-boop
Weekly OSS security release digest.
The CVE patches and breaking changes that affected production tools this week. One email, every Sunday.
No spam, unsubscribe anytime.
Share this release
About milvus
Milvus is a high-performance, cloud-native vector database built for scalable vector ANN search
Related context
Related tools
Beta — feedback welcome: [email protected]