Skip to content

feat(python): expose data evolution row ranges - #674

Merged
JingsongLi merged 3 commits into
apache:mainfrom
XiaoHongbo-Hope:codex/python-row-ranges-binding
Aug 5, 2026
Merged

feat(python): expose data evolution row ranges#674
JingsongLi merged 3 commits into
apache:mainfrom
XiaoHongbo-Hope:codex/python-row-ranges-binding

Conversation

@XiaoHongbo-Hope

@XiaoHongbo-Hope XiaoHongbo-Hope commented Aug 4, 2026

Copy link
Copy Markdown
Contributor

Summary

  • expose ReadBuilder.with_row_ranges() for Python scan planning
  • keep empty ranges as an explicit empty result instead of a full scan
  • carry planned ranges in splits for local or distributed readers
  • reject inverted ranges and declare the API in the Python type stub

This lets Python callers pass precomputed Data Evolution row ID ranges to the existing core planner and use its manifest and file pruning.

Tests

  • python -m pytest tests/test_read.py -q (59 passed)
  • cargo test --locked -p paimon empty_row_ranges_is_preserved (2 passed)
  • cargo clippy --locked -p paimon --no-deps -- -D warnings
  • cargo clippy --locked -p pypaimon_rust --no-deps -- -D warnings
  • cargo fmt --all -- --check
  • git diff --check

@QuakeWang QuakeWang left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

+1

@JingsongLi

Copy link
Copy Markdown
Contributor

+1

@JingsongLi
JingsongLi merged commit b8d5905 into apache:main Aug 5, 2026
13 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants