JingsongLi opened a new pull request, #1188:
URL: https://github.com/apache/paimon-rust/pull/1188

   ## Purpose
   
   Align append writer reconfiguration with current Java 
`BaseAppendFileStoreWrite`: settings configure future partition/bucket writers, 
while existing writers retain their write columns and Blob consumer across 
prepares.
   
   ## Changes
   
   - Capture append schemas, fields and Blob handlers per partition/bucket, 
including after physical files are prepared.
   - Accept full-table or matching captured inputs and preflight every 
destination before staging a batch. Preserve named Arrow column semantics; 
incompatible equal-width subsets are rejected instead of being reinterpreted 
positionally.
   - Keep row-kind filtering before routing and payload conversion. Handle 
historical types with routing/event fields deterministically.
   - Add synchronous, read-only `TableWrite.write_fields_for_row` and private 
Python `_row_write_columns` transport helpers. Python row conversion can encode 
the actual destination's columns without duplicating bucket state or touching 
unused Blob payloads.
   - Traverse replaced Python Blob callbacks retained by Core, allowing 
writer/callback cycles to be collected. Preserve prepared files and files that 
may have escaped to a captured consumer on uncertain failures.
   
   URI reader factory configuration retains its existing pre-write restriction.
   
   ## Verification
   
   - 27 focused Core integration tests: partial writes, filtered inputs and 
precomputed buckets, including commit/readback across reconfiguration and 
multiple prepares.
   - Core failure-cleanup unit test (including replaced consumers).
   - Embedded Python callback GC/query unit test for both batch and stream 
writers.
   - Rust 1.98 Core and Python-binding Clippy with `-D warnings`; `cargo fmt 
--check`; `git diff --check`.
   
   No Python extension was rebuilt or installed for these tests. The companion 
PyPaimon PR adopts the private row transport helper and unifies execution call 
boundaries.
   


-- 
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