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]

Reply via email to