JingsongLi opened a new issue, #1064: URL: https://github.com/apache/paimon-rust/issues/1064
PyPaimon already supports `TableWrite.with_blob_uri_reader_factory(factory)`, where `factory.create(uri)` returns a reader providing `new_input_stream(uri)`. The native writer does not expose that capability, so calling the setter switches an otherwise supported Arrow write to the Python writer. Rust core also has no injectable source reader for referenced Blob payloads. Support this existing Python capability in Rust core and expose a thin Python adapter. Follow Java `UriReaderFactory`, `UriReader`, and `ReusingBlobRefStreamProvider` semantics: - Copy exactly the descriptor window, supporting successful short reads and rejecting premature EOF. - Reuse streams for references sharing reader identity and URI; reopen when repositioning fails. - Read unknown-length references to EOF using an independent stream. - Close sources on completion or failure, preserving the first failure. - Propagate the factory through append scalar/array/map Blob writers and existing primary-key managed Blob packs. - Keep callback execution and Python exception transport in the binding; keep copying and lifecycle rules in Rust core. The native integration should retain the writer instead of falling back when the existing setter is used. -- 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]
