JingsongLi opened a new pull request, #1209: URL: https://github.com/apache/paimon-rust/pull/1209
### Purpose PyPaimon's existing distributed row-ID read, update and delete paths still perform range lookup and deletion grouping in Python. Extend the existing captured `RowIdPlan` so Native execution can delegate those operations to Core while Ray retains scheduling. ### Changes - Add `RowIdPlan::route` for input-order normal-anchor routing, `route_by_bucket` for one deletion writer per partition/bucket, and `select` for read-only row selections. - Reuse validated complete file groups and binary search their inclusive bounds. Preserve duplicates during routing; reject null, negative, foreign and gap IDs. - Keep all normal, partial-column and dedicated files, aligned deletion metadata, exact paths, live authorization and captured snapshot when selecting rows. Deduplicate and merge absolute row-ID ranges only for reading. Selected plans remain invalid mutation baselines. - Keep routing independent of I/O, authorization and row-liveness checks. Readers and mutation workers retain their existing checks. The normal-anchor and per-bucket deletion-index boundaries follow the current Java semantics. - Expose thin Arrow Python SDK methods and document the dedicated API. No Table or WriteBuilder factory, storage-format change or dependency is added. ### Verification - Ten Core plan/update/delete tests passed, including range gaps, sliced and duplicate input, `i64::MAX`, partition/bucket grouping, empty plans, Blob/partial files, deletion metadata, paths, grants, snapshot and statistics. - The SDK Arrow routing/selection test passed, including invalid input and mutation-plan rejection. - Current-SDK/PyPaimon integration: **295 passed** through a Cargo test executable, including captured-plan serialization, actual Native read/update/delete callbacks and existing bucket execution. No extension was installed or rebuilt for the Python tests. - Rust 1.98.0 workspace Clippy, all targets, fulltext/vortex: passed with `-D warnings`; formatting and diff checks passed. -- 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]
