Repository navigation
branch-4.2: [chore](build) Update lance-c to the latest upstream main revision #69332 - #69335
Conversation
Backport apache#69332. Pin lance-c to 4fafcd64525b274b113208390bbcca86bbbc093b and refresh the archive checksum and Foyer patch context. Includes the upstream vector index/column-name collision prewarm fix and row-address prefilter APIs. The Foyer patch payload is unchanged. Validation: branch-local dependency patch harness, archive checksum, shell syntax and diff checks passed. Full build/runtime tests remain for CI. (cherry picked from commit eeb54b2)
|
Thank you for your contribution to Apache Doris. Please clearly describe your PR:
|
|
run buildall |
|
/review |
There was a problem hiding this comment.
No actionable findings at head 051ef1d41272eba0d84e0008bb20fd588afad62e. Reviewed both changed files and the two imported lance-c commits, including the retained Foyer integration and Doris consumers. The review converged in one round: all three assigned reviewers returned NO_NEW_VALUABLE_FINDINGS, and every risk was dismissed with source evidence. There were no existing inline findings to carry forward and no additional user focus was supplied.
Independent static checks confirmed that the downloaded archive MD5 is 65e924fb62137c5dd4d58af3fb33923a, its root matches the configured source directory, and the complete Foyer patch applies with zero fuzz to a disposable review copy. Its added/deleted payload is unchanged. The upstream manifest, lockfile, Lance SDK revision, Rust requirements and native build dependencies did not change.
Critical checkpoint conclusions:
- Goal and proof: the pin includes metadata-based cold-session vector-prewarm resolution and additive row-list APIs; focused upstream test sources cover the concrete collision and basic scan/search semantics. Runtime behavior was not executed here.
- Scope: the two-file pin/checksum and patch-context refresh is focused; no unrelated implementation payload changed.
- Concurrency: segment opening and warming remain concurrent within
try_join_all, with propagated errors and owned pending futures; dataset locks are released before I/O. Scheduling/cancellation tests use deterministic gates. - Lifecycle/static initialization: one snapshot Arc retains its session; row-list buffers are copied and execution owns its masks. No new thread, ownership cycle or cross-translation-unit initializer was introduced.
- Configuration: no configuration was added or changed; dynamic-update requirements do not arise.
- Compatibility: existing C/C++ signatures and exposed layouts remain unchanged, new APIs are additive, matching headers/static archive are installed together, and no persisted format changed.
- Thrift/protobuf: untouched; no field-ID, enum or release-branch compatibility change.
- Parallel paths: reviewed ordinary/prepared Match/Phrase, indexed/flat nearest, plain scans/take shortcuts and scalar-segment exclusion. Current Doris callers never set the new row lists or call prewarm, so absent optional masks preserve their paths.
- Special conditions: index-name collision resolution uses the indexed field path and segment UUID; scalar/FTS fallback retains SDK validation, including aggregate FTS residency checks. Conflicting scalar-segment/list masks fail explicitly.
- Test coverage: inspected multi-fragment stable-ID list/filter/search cases, invalid/empty/replacement/lifecycle inputs, shared-session cold prewarm and concurrent scheduling/cancellation tests. See the execution and combination limits below.
- Test results: no expected-output files changed; upstream assertions were inspected, not regenerated or executed.
- Observability: existing FFI errors, scan statistics and session/cache metrics remain available; no actionable new observability gap was identified.
- Transactions/persistence/failover: no Doris transaction, EditLog or persistence logic changed; existing snapshot selection remains intact.
- Writes/atomicity/crash behavior: imported changes affect reads/prewarm, not commit/recovery paths; the retained Foyer implementation is unchanged.
- FE-BE variables: none added; no scattered sending-point update is required.
- Performance: existing callers add only constant optional-state checks, and vector prewarm does not serialize segment I/O. No actionable performance regression was found.
- Other/core invariants: input failures propagate through existing FFI panic/error guards; no changed Doris visible-version, MoW delete-bitmap or memory-accounting invariant was identified.
Validation limits: this was a static review. No builds, tests, patch harness, runtime, remote-store or platform execution was performed. The new lance-c integration tests do not directly exercise prepared Phrase, Substrait plus row lists, indexed nearest, or nonstable-ID combinations; their binding/SDK paths were traced without finding a concrete failure. These execution/test-coverage limits remain; no unresolved source-level candidate or uncovered changed path remains.
Review converged after 1 round(s).
BE Regression && UT Coverage ReportIncrement line coverage Increment coverage report
|
|
PR approved by anyone and no changes requested. |
|
PR approved by at least one committer and no changes requested. |
What problem does this PR solve?
Backport #69332 to
branch-4.2(source commiteeb54b230ddf7a7a5a06cbaab1bdbd6796d8ff22).Pin lance-c to
4fafcd64525b274b113208390bbcca86bbbc093band update the archive checksum. This includes the upstream fix for cold-session vector prewarm when an index name matches another schema column, plus the row-address allowlist/blocklist prefilter APIs.Refresh the existing Foyer patch's base revision and one C++ test context. Its actual added/deleted code is unchanged. The target branch's only cherry-pick conflict was the previous revision's descriptive comment.
Validation
bash thirdparty/test/lance-prefilter-patch-test.sh thirdparty/srcon this branch: platform definitions, fresh extraction, idempotence, re-extraction, existing markers, stale-cache invalidation, and patch-failure handling.git diff --cached --check.run buildall.Release note
Fix Lance index prewarm failures when a vector index name matches a different schema column.
Check List (For Author)