mirror of
https://github.com/milvus-io/milvus.git
synced 2026-07-21 10:15:43 +00:00
## Summary When a nullable vector field has all rows null, `VectorField.Data` is `nil` (protobuf oneof not set). `MergeFieldData`'s switch on `Vectors.Data` type hits the `default` branch, returning `"unsupported data type: FloatVector"`, which causes `embeddingNode` to panic. This adds a `case nil` to skip vector data merge when the source batch has no vector data (all rows null). ## Root Cause - Nullable FloatVector with all-null rows → `VectorField.Data = nil` - `MergeFieldData` switch cannot match any concrete vector type → falls through to `default` - `embeddingNode.Operate()` calls `panic(err)` on the returned error ## Fix - Add `case nil:` in the Vectors type switch to skip merging when source data is nil - Add unit test reproducing the exact scenario Fixes #48520 ## Test plan - [x] Unit test `TestMergeFieldData/nullable_float_vector_-_all_null_src` passes - [x] Local standalone: insert 2000 rows with all-null nullable FloatVector + BM25 function — no panic - [x] Without fix: same script triggers `panic: unsupported data type: FloatVector` 🤖 Generated with [Claude Code](https://claude.com/claude-code) Signed-off-by: Shao Yang <yangshao@zilliz.com> Signed-off-by: marcelo-cjl <marcelo.chen@zilliz.com> Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>