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]
