Files
wei liu 2fa2b0c090 feat: support positional partial updates for array values (#53163)
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]>
2026-09-22 18:27:34 +08:00
..