Repository navigation
Conversation
|
Thanks, added in 4df684f. The |
…ts() apache#10609 calls rust_plan.stats(), which pypaimon-rust 0.4.0, the release the Python test jobs install, does not have. The AttributeError sends every native plan back to the Python scanner, so ContiguousWindowPlanTest.test_native_plan_retains_independent_payload_column_files fails on master. Read the counters only when the binding has them, as snapshot_id already does; such plans report no native statistics.
Native CI builds pypaimon-rust from paimon-rust main, and Python Tests skip native planning tests, so no job forces native planning through a released binding. That is how apache#10609 broke 0.4.0 without notice: every native plan failed on Plan.stats() and silently fell back to the Python scanner. Native CI / pypaimon-rust 0.4.0 installs the release from PyPI and runs the regular suite with native planning forced. Tests marked native_plan need Rust main, so they stay in the main job. On the previous commit this job fails test_native_plan_retains_independent_payload_column_files and plans natively only twice.
80a925e to
5fc3201
Compare
|
#10624 fixed the failing |
Purpose
#10609 reads planning counters with
rust_plan.stats(). pypaimon-rust 0.4.0, the latest release and the one thePython / Testsjobs install, has noPlan.stats(), so every native plan raisesAttributeErrorand falls back to the Python scanner:This made
ContiguousWindowPlanTest.test_native_plan_retains_independent_payload_column_filesfail on Python 3.10 to 3.13. #10624 moved that test to the Rust main job, but native planning with 0.4.0 still falls back. Native CI builds pypaimon-rust frommain, which hasstats(), so it does not see this.This PR reads the counters only when the binding provides
stats(), as_from_native_planalready does forsnapshot_id. With an older binding the plan stays native and reports no native statistics, as before #10609.It also adds
Native CI / pypaimon-rust 0.4.0, which installs the released binding and runs the regular suite with native planning forced. The version is a matrix value, so later releases can be added next to it.Tests
native_plan_test.pyaddstest_bindings_without_plan_stats_still_plan_natively, which fails without the fix.-m 'not native_plan',contiguous_window_plan_test.pyfails before the fix and passes with it.Native CI / pypaimon-rust 0.4.0passes and plans natively 2402 times; before the fix the same suite plans natively twice.