Files
milvus/pkg
ce55a92017 fix: handle nil VectorField.Data in MergeFieldData for nullable vectors (#48589)
## 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>
2026-04-01 19:57:35 +08:00
..