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]

Reply via email to