JingsongLi opened a new issue, #1067: URL: https://github.com/apache/paimon-rust/issues/1067
### Search before asking - [x] I searched existing issues and pull requests for the prepared TableUpdate MERGE capability. ### Motivation PyPaimon already supports single-process data-evolution MERGE with ordered matched UPDATE/DELETE and unmatched INSERT clauses. Even when native writing is enabled, matching, SQL action conditions and action materialization still run in Python. Core TableUpdate can prepare row-id updates, deletes and key upserts, but cannot represent the existing MERGE operation. ### Solution Add prepared MERGE to Rust core TableUpdate, using materialized Arrow input or self-merge on _ROW_ID, with ordered clauses and engine-independent asynchronous conditions. Reuse the existing data-evolution row-id update writer, deletion-vector writer and append writer. Compile SQL conditions in the Rust DataFusion integration and expose the operation through batch/stream Python update wrappers. Match Paimon Spark cardinality rules: SQL NULL keys do not match; check ambiguous source matches before action predicates; permit duplicate source matches for a sole unconditional DELETE. Keep prepared files after later errors and publish only through the caller's committer. ### Willingness to contribute - [x] I'm willing to submit a PR. -- 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]
