mirror of
https://github.com/milvus-io/milvus.git
synced 2026-10-12 02:19:10 +00:00
issue: #53016 ## What changed - Add `PATH_REPLACE` handling for one scalar Array element, one child of an existing StructArray element, or a non-empty subset/all children of one StructArray element. - Resolve and validate one request-wide path per parent field before the old row query, then materialize complete `FieldData` through the existing partial-upsert DML path. - Expose REST v2 and Go SDK request builders with dense singleton operands, strict non-null handling, and literal dynamic JSON key isolation. - Preserve omitted Struct children, Array order, existing nullability, and the current cross-VChannel partial-success boundary. - Add unit and E2E matrices for supported replacements, invalid paths, duplicate/overlapping operations, nulls, missing rows, bounds, dynamic JSON, different Array lengths, and compaction. - Pin all Milvus Go modules to the proto revision merged by https://github.com/milvus-io/milvus-proto/pull/666. ## Design [Positional partial update design](https://github.com/weiliu1031/milvus/blob/partial-update-array/docs/design-docs/design_docs/20260901-array-positional-partial-update.md) The feature intentionally does not add multiple paths for one parent, nested Array-child replacement, element-level nullability, a JSONPath language, or a new request-level atomicity guarantee. ## Validation - `make build-go` - Targeted Proxy tests passed with `-tags dynamic,test`, `-gcflags="all=-N -l"`, and the worktree RPATH. - Targeted REST v2 tests passed with the same required Go test flags. - Targeted Go SDK and column tests passed with the required Go test flags. - Nine targeted Go E2E groups passed against the rebased standalone binary, including compaction and the complete supported/rejected matrix. - A wire-level check with the previously pinned proto binding preserved enum value 3 and reached the old validator's default rejection branch. - `git diff --check` --------- Signed-off-by: Wei Liu <[email protected]>