JingsongLi opened a new pull request, #10609: URL: https://github.com/apache/paimon/pull/10609
## Purpose PyPaimon's Python scanner already reports partition, bucket and file-statistics pruning in `ReadBuilder.explain()`. Native explain currently drops those counters even though it returns split and snapshot metadata. This change connects explain to the explicit statistics-planning API in Rust core. Depends on https://github.com/apache/paimon-rust/pull/1140. This PR is draft until that API is available on Rust main, which the existing Native CI builds. ## Changes - Request the plan and complete counters in one Native pass for explain. Ordinary planning continues to call `plan()`. - Carry counters through the adapter without rerunning the Python scanner, preserving pinned snapshots, incremental windows and captured authorization grants. - Render Native pruning through the existing explain model. Native does not transport Python's partition/bucket identity sets; those bookkeeping fields are explicitly unavailable in the Native result. - Update Native integration expectations and document the additional manifest-reading cost of complete statistics. Explain does not read data files. Rust owns counter collection, schema-aware statistics filtering, Data Evolution projection and LIMIT handling. Python converts the result and displays it. ## Verification - With Native planning/reading enabled: explain, REST statistics, Native planning, authorization, incremental, distribution and Native integration tests: 276 passed, 4 skipped, 115 subtests passed. - Regression coverage: partition/bucket/file pruning; zero/positive LIMIT; empty, pinned and historical snapshots; cross-schema overwrite ADD/DELETE entries; Delta/Changelog windows; sparse Data Evolution updates/projection; metadata-only operation with hidden data files; captured filters and masking on authorized plans. - Changed Python files pass repository Flake8 configuration and Python 3.6 syntax parsing. - Companion Rust core scan tests: 134 passed; binding read tests: 151 passed; formatting and CI's Rust 1.98.0 workspace Clippy passed. The four integration skips concern optional format capabilities. This PR adds no new format support. -- 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]
