[improvement](build) Add merged lance-c multi-vector API patch (#68056)

### What problem does this PR solve?

Related PR: #67741; consumer integration: #68028

Add merged
[lance-format/lance-c#83](https://github.com/lance-format/lance-c/pull/83)
to the Lance-C third-party patch chain on master. This provides the
C/C++ multi-vector query API and its upstream scoring, validation and
regression tests as a prerequisite for Doris multi-vector search
integration.

The patch records upstream commit
`0a30ee6c5a9d1455ceb36f4745acb79e53a00461`. Overlapping context is
adapted to the existing patch chain while retaining PR #79's
scalar-segment execution path and tests. The multi-vector implementation
and integration tests are byte-identical to the merged upstream commit.
The release archive and dependency versions remain unchanged from
#67741.

Apply PR #83 with a separate completion marker so source trees already
carrying the existing patches also receive the new API, and repeat runs
do not reapply it. Rebuild Lance-C before consuming the new API. This PR
changes only third-party patch integration and does not expose new Doris
SQL syntax.

### Validation

- Applied the actual Lance-C patch-driver block to clean v0.1.9 sources
and to sources already patched through #67741; both produce identical
source trees. Repeat execution leaves the sources unchanged. All patches
apply with `--fuzz=0`.
- Compared the resulting source tree with the previously validated
integrated chain and checked the multi-vector implementation/tests
against the merged upstream commit.
- `cargo test --locked`: 410 tests passed, including 14 multi-vector
integration tests; three opt-in C/C++ compile/run and static-transport
tests were ignored in this run.
- `cargo fmt --check` and `bash -n thirdparty/download-thirdparty.sh`
passed.
- Completed local self-review of patch provenance, conflict adaptation,
existing API behavior, ownership/resource bounds and cached-source
application before committing.

A complete Doris build and SQL regression run are not part of this local
dependency-only validation.

### Release note

None

### Check List (For Author)

- Test
    - [x] Unit Test
- [x] Manual test: patch application, cached-source upgrade, repeat
execution and source equivalence
- Behavior changed:
- [x] Yes: the third-party library gains the upstream multi-vector API;
existing API signatures remain unchanged.
- Does this need documentation?
    - [x] No: upstream API documentation is included in the patch.

### Check List (For Reviewer who merge this PR)

- [ ] Confirm the release note
- [ ] Confirm test cases
- [ ] Confirm document
- [ ] Add branch pick label
This commit is contained in:
Gabriel authored and GitHub committed 2026-09-16 21:44:55 +08:00
1 parent 65d5751d0f
commit f89181c2df
2 files changed
+1920

No files matched your search

+6
View File
@@ -764,6 +764,12 @@ if [[ " ${TP_ARCHIVES[*]} " =~ " LANCE_C " ]]; then
done
touch "${PATCHED_MARK}"
fi
# The base marker may already exist in cached sources; apply PR #83 independently.
if [[ ! -f "${PATCHED_MARK}_pr83" ]]; then
patch --batch --forward --reject-file=- --fuzz=0 --no-backup-if-mismatch -s \
-p1 <"${TP_PATCH_DIR}/${LANCE_C_SOURCE}-pr-83.patch"
touch "${PATCHED_MARK}_pr83"
fi
cd -
echo "Finished patching ${LANCE_C_SOURCE}"
fi
File diff suppressed because it is too large. Load diff