Repository navigation
Conversation
|
Important Format specification voteThis PR modifies the Lance format specification, so it requires 3 binding +1 votes from PMC members (excluding the proposer), at least one of them on the latest commit, and a minimum 72-hour voting period, weekends excluded, before it can merge. Vote by approving this PR (+1) or requesting changes (−1, a veto). See the voting process. Approvals carry over across pushes, so a rebase or a typo fix does not send everyone back to re-vote. Whoever approves the latest commit is vouching that nothing substantive has changed since the earlier approvals; if something has, ask for fresh votes. Status: ❌ Blocked — 0 of 3 required approvals
Updated automatically by the format-spec vote gate, which re-checks every 15 minutes — just voted? Re-check now (press Run workflow; leave the input blank to re-check every open format PR). A PMC member may apply the |
There was a problem hiding this comment.
✅ Gate recommendation: approve.
The shared Rust fix preserves system-index identity and metadata without requiring scalar plugins. Focused Rust and Java regressions pass after the main merge, including both Java description APIs, ordinary-index details, and unknown-plugin errors.
Xuanwo
left a comment
There was a problem hiding this comment.
LGTM. Hosted checks on the accepted head are green and the candidate merge onto current main is clean.
Problem
Java’s no-argument
Dataset.describeIndices()fails when a__lance_frag_reusesystem index is present because it attempts to resolve a scalar index plugin, causing SparkSHOW INDEXESto fail.Solution
Return
{}for system index details in Rust while preserving their names, types, and metadata. Add regression coverage forfrag-reuse,MemWAL, and Java’s index description APIs.Result
describeIndices()anddescribeIndexSummaries()work after compaction withdefer_index_remap=true, while regular index behavior remains unchanged.Validation
Merged current
main(cbed18eff) into the branch with no conflicts. Local validation on the merge commit:cargo fmt --allandcargo fmt --all -- --checkcargo clippy --profile ci --locked --all --tests --benches -- -D warningslancetests: remapper not created without remappable indices, MemWAL system-index description, unknown scalar plugin still errors, and mixed-layout segment descriptions (3 cases)./mvnw test -Dtest=DatasetTest#testDescribeIndicesAfterDeferredCompaction+testDescribeIndicesByNamewith a rebuilt JNI library (2 passed)./mvnw spotless:checkcargo clippy --locked --tests --manifest-path ./lance-jni/Cargo.toml -- -D warningsLimits: only the focused Rust and Java suites above were run; hosted CI is not awaited in this update. The JNI crate is a standalone workspace without the repository
ciCargo profile, so its lint ran in the dev profile.