JingsongLi opened a new pull request, #1210: URL: https://github.com/apache/paimon-rust/pull/1210
## Purpose PyPaimon's distributed deletion already routes complete partition/bucket groups to the Core writer, but each worker still converts its Arrow row-ID column to Python objects before the binding accepts it. Accept those buffers through the existing deletion API. ## Changes - Keep `delete_by_row_id` as the single batch/stream API; accept integer Arrow Array/ChunkedArray inputs alongside existing integer sequences. - Import and validate every chunk before mutation. Preserve slices, reject NULL IDs, unsupported types and UInt64 overflow, and release the GIL for conversion and execution. - Let Core consume an integer iterator, reusing existing captured-plan authorization, anchor routing, duplicate handling, complete bucket DV merging and conflict checks. - Cover captured snapshots, unselected anchor DVs, concurrent appends, stale index publication and invalid inputs that must not create physical index files. Update SDK signatures and examples. ## Verification - Captured row-ID Core tests: 10 passed. - SDK Arrow input unit test: passed. - Current SDK/PyPaimon joint regression run: 912 passed, 662 native plans exercised. SDK registered in a Cargo test executable; no extension installed or rebuilt in Python environments. Timezone subprocesses used the same executable with fresh interpreters. - Four actual Ray update/delete worker tests passed. - Rust 1.98.0 workspace/all-target Clippy with fulltext,vortex and `-D warnings`: passed. - `cargo fmt --all -- --check`, changed-file Python lint and `git diff --check`: passed. Companion PyPaimon PR follows; it will depend on this binding reaching main. -- 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]
