JingsongLi opened a new pull request, #10417: URL: https://github.com/apache/paimon/pull/10417
### Purpose Keep PyPaimon's existing `with_blob_uri_reader_factory` API on native Arrow writes instead of selecting the Python writer. Depends on https://github.com/apache/paimon-rust/pull/1065. This PR is draft until the Rust interfaces merge. Native CI continues to build Rust `main`; no branch pin or compatibility fallback is added. The adapter only forwards the factory and retains it for an explicit row-writer fallback. Descriptor-window copying, successful short reads, stream identity/reuse, failed-seek reopening, unknown-length EOF copying and source closure are implemented in Rust core, following Java `UriReaderFactory`, `UriReader`, `ReusingBlobRefStreamProvider` and managed Blob pack cleanup. Tests cover batch and stream writes; scalar, array and map Blob values; BlobConsumer composition; nonseekable sources and unknown-length references; original callback exceptions; premature EOF and failed preparation; setter replacement/clearing and row fallback; managed fixed/pending/postpone-fixed writes; and stable or changing reader identity. The multi-column interleaving test reproduced the binding identity bug before its fix. ### Tests With the locally rebuilt Rust binding from the companion PR: - Focused URI reader/BlobConsumer/write tests: 48 passed. - Extended Blob/write/update suite with all Native switches enabled: 518 passed, plus 1 subtest. Actual native paths: 659 plans, 863 reads, 800 writes, 169 commits; row-id/grouped/predicate/upsert/incremental update categories all exercised. - Companion Rust core: 3,773 passed, 6 ignored. Full Python binding suite: 331 passed. - `flake8 --config dev/cfg.ini` for changed files, `git diff --check` and Python 3.6 syntax parsing: 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]
