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)