JingsongLi opened a new pull request, #10742: URL: https://github.com/apache/paimon/pull/10742
### Purpose Keep read planning and execution within the selected backend while preserving the public read API. - Resolve streaming planning preference through the same rule as batch scans. `read.native.enabled=true` now selects Rust streaming planning even when `scan.native-plan.enabled` is false. - Delegate `incremental-between-timestamp` directly to Rust Core. Previously Python resolved snapshot IDs eagerly, and empty windows returned before Rust query authorization. Core already authorizes and resolves timestamp windows in the proper order, including AUTO changelog selection. - Keep public scan-option validation free of snapshot I/O. The Python planner resolves its own snapshot range lazily when its scanner is actually selected. - Remove 16 private Python execution forwarding methods from `TableRead`. Python execution calls its own helpers directly; shared configuration and output adapters stay outside execution. Update the corresponding test hooks and Native fallback guards to target the executor. - Add regressions for Native-read-only streaming selection, timestamp delegation, deferred snapshot selection, and denied empty-window REST reads across plan, plan_all_files and scan_with_stats. The required Rust Core capabilities are already on main; this PR requires no new Rust API or SDK compatibility checks. Explicit Python scanner access, Python streaming class construction and preparation fallback remain available. ### Tests - All affected Python test modules: **1300 passed, 3812 skipped**. Native extension dependent cases are skipped locally; the existing Native CI builds Rust main and runs them. - PyArrow 16 focused planning/read/auth/lifecycle suites: **229 passed, 30 skipped**. - Rust 1.98.0: `cargo +1.98.0 test --locked -p paimon --test incremental_timestamp_scan_test --test incremental_changelog_batch_test`: **14 passed**. - Changed-file Flake8 using repository configuration, Python 3.6 grammar checks and `git diff --check`: passed. - No Native extension was rebuilt or installed locally. -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
