JingsongLi opened a new pull request, #10775: URL: https://github.com/apache/paimon/pull/10775
### Purpose Move the remaining Daft fixed/dynamic bucket input execution behind dispatch. Native writes should use Core for Java-compatible hashing, HASH-index restore and bucket allocation while Daft retains its scheduling/grouping and public APIs remain unchanged. Depends on https://github.com/apache/paimon-rust/pull/1208. Keep this PR draft until that Core/binding API reaches Rust main. Native CI continues to build main; missing new SDK symbols before that merge are the known dependency. No version probes, compatibility fallback or CI pinning are added. - Fixed routing now reuses `create_input_router`; dynamic routing and assignment have matching Arrow contracts in `execution/python` and thin `execution/native` adapters. - Native assignment reuses the batch write builder's overwrite/restore settings. Append uses the driver's captured snapshot, overwrite uses an empty base, and final regrouping keeps one complete HASH writer per partition/bucket. - Keep hash columns as Arrow Int32 instead of Python row lists. Native restoration does not invoke Python HASH readers or require a SELECT grant, and authorization/restoration failures never trigger Python replay. - Align Python's existing assigner with current Java: do not let a global maximum hide an unused local bucket; remember reached soft limits; preserve Java int overflow/remainder rules. - Preserve row counts for zero-column Arrow tables when precomputed hashes eliminate key columns. Update the Daft documentation. ### Tests - Joint current-SDK integration via a Cargo test executable: **119 passed**, covering real REST Native routing, initial writes, append/overwrite, partitioned/unpartitioned fixed/dynamic tables, Daft regressions and existing Ray routing. Native constructors were guarded against Python execution; writes were guarded against SELECT requests. No Native extension was installed or rebuilt for these Python tests. - Independent pure Python routing/Daft/HASH regression collection: **54 passed**. - Adapter regression tests: **15 passed** (overlaps the joint collection). - Changed-file flake8 with the repository's `dev/cfg.ini`, and diff checks: passed. Seven new real Native cases cover the dependency end to end. Public PyPaimon API signatures and backend option meanings are preserved; no new metadata or format support is introduced. -- 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]
