mirror of https://github.com/milvus-io/milvus.git
issue: https://github.com/milvus-io/milvus/issues/42148 <!-- This is an auto-generated comment: release notes by coderabbit.ai --> - Core invariant: StructArray now accepts only fixed-dimension vector element types (typeutil.IsFixDimVectorType) for array/struct vector fields — i.e., dense/quantized fixed-dim vectors (FloatVector, Float16Vector, BFloat16Vector, Int8Vector, BinaryVector) are supported while sparse vectors remain rejected at validation (internal/proxy/util.go → ValidateFieldsInStruct). - Logic removed / simplified: the previous FloatVector-only special-case was removed and replaced by a single, generic fixed-dimension check; numerous duplicated test branches were collapsed into parameterized fixtures (internal/core/src/common/ChunkWriterTest.cpp: GetByteWidth + TEST_P/INSTANTIATE_TEST_SUITE_P) and ElementFilter tests were unified under CreatePlaceholderGroupForType()/ElementFilterSealedParam, eliminating repetitive type-specific code. - No data loss / regression rationale (concrete code paths): existing VECTOR_FLOAT code paths and behavior are preserved — tests explicitly instantiate VECTOR_FLOAT cases in ChunkWriterTest and ElementFilter; deserialization now explicitly handles empty ArrayOfVector cases and returns the correct VectorField by elementType (internal/storage/serde.go: deserializeArrayOfVector), and StructArray readers were extended with byte-based branches for float16/bfloat16/int8/binary without altering FloatVector logic (internal/util/importutilv2/parquet/struct_field_reader.go), making all additions additive and failing unsupported sparse vectors early at proxy validation rather than silently. - New capability added: full StructArray support for additional fixed-dimension vector element types (Float16Vector, BFloat16Vector, Int8Vector, BinaryVector) across import, serde, parquet struct readers, test generators, and end-to-end tests (files touched include internal/util/importutilv2/parquet/struct_field_reader.go, internal/storage/serde.go, pkg/util/testutils/gen_data.go, various tests), enabling non-float embedding-list and byte-based vector workflows. <!-- end of auto-generated comment: release notes by coderabbit.ai --> --------- Signed-off-by: SpadeA <tangchenjie1210@gmail.com> |
||
|---|---|---|
| .. | ||
| gen_data.go | ||
| prometheus_metric.go | ||