Repository navigation
[python] Complete native index lifecycle and explicit search plans - #10598
Merged
JingsongLi merged 4 commits intoOct 16, 2026
Merged
JingsongLi merged 4 commits into
JingsongLi merged 4 commits into
Conversation
JingsongLi
marked this pull request as ready for review
October 16, 2026 01:35
JingsongLi
force-pushed
the
codex/native-index-build-deletion-vectors
branch
from
October 16, 2026 01:45
e68c6bf to
b1caec9
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Purpose
Use Rust for the index capabilities PyPaimon already supports: global-index build/drop and explicit vector, batch-vector and full-text Scan → Plan → Read. Align correctness with Java rather than preserving Python-specific behavior.
The companion Rust PR apache/paimon-rust#1136 is merged (33a14cc). CI continues building apache/paimon-rust main; no fork or branch pin is introduced.
Changes
Python remains responsible for API adaptation, option/predicate conversion and transport; index algorithms and native source planning live in Rust core. Existing unsupported table/authentication combinations keep their established qualification behavior.
Validation
Built the companion Rust branch locally with maturin, then ran:
CI follow-up
Native CI qualification regression
The subsequent full run passed 12,317 tests and failed only the PK builder routing unit test: once main provided search-plan metadata, its schema-only table stub entered native qualification without an
optionsattribute. Native qualification now treats the missing native-read configuration as ineligible. The regression forces bridge availability so ordinary CI exercises the path even without a Native package.