JingsongLi opened a new pull request, #1165: URL: https://github.com/apache/paimon-rust/pull/1165
## Summary Complete the native core/binding pieces needed by PyPaimon's existing write/update paths: - Allow a resolved table to retain an explicitly bound FUSE FileIO while preserving its REST publication identity and selected branch. Schema I/O follows the replacement provider. Add a mounted write/read/commit/truncate test that retains files referenced by old snapshots and verifies truncate retry idempotence. - Infer fixed bucket counts for new postpone partitions across all input batches when neither an explicit bucket plan nor a default count is supplied. Pin the baseline snapshot once, reuse known layouts without buffering their rows, and stage unknown partitions until preparation. Match the current Java batch decision order: current input only, row target before size target, ceiling, power-of-two rounding, then maximum parallelism. - Parse textual truncate/overwrite partition specs in core using Java TypeUtils rules, including FLOAT precision checks and DATE/TIME/TIMESTAMP/DECIMAL values. Ordinary Python typed literals retain the shared conversion path. - Accept callable MERGE assignments in the Python binding through the existing core UpdateAssignment::Function implementation. Core owns matching, lazy clause evaluation, validation, casting, staging and error ownership; no duplicate merge engine is added in the binding. ## Scope of automatic planning Byte sizing uses the BinaryRow estimate already used by PyPaimon's in-process planner. It does not promise identical bucket counts to Spark's newer staged-file implementation, which measures temporary compressed files. Existing layouts are preserved; this does not introduce Spark staging, rescaling, or compaction functionality that PyPaimon does not currently implement. ## Verification - `cargo +1.98.0 test -p paimon --lib --quiet`: 4258 passed, 6 ignored. - Focused final partition-spec and postpone tests: passed (46 postpone tests). - `cargo +1.98.0 clippy -p paimon --lib --tests -- -D warnings`: passed. - `PYO3_PYTHON=/opt/homebrew/bin/python3.13 cargo +1.98.0 clippy -p pypaimon_rust --all-targets -- -D warnings`: passed. - Added binding integration coverage for callable MERGE across target files, chunked results, inserts, no-match laziness and original exception propagation. Native Python extension tests are left to CI; no extension was rebuilt or installed locally. Companion PyPaimon PR will wire FUSE writes/commits, truncate, automatic postpone planning and public MERGE callbacks to these APIs. -- 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]
