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

   ## Summary
   
   - Replace MERGE dictionary/tuple descriptions with immutable SDK 
`MergeAssignment`, `WhenMatched`, and `WhenNotMatched` objects.
   - Replace the public `MergeBatchExecution(..., clauses, mode)` constructor 
with `for_updates`, `for_deletes`, and `for_inserts`; retain `execute(Table | 
RecordBatch) -> Table`.
   - Reuse the same typed clause conversion for batch/stream `merge_into` and 
joined-batch execution, delegating selection and casts to existing Core logic.
   - Preserve ordered first-match behavior, NULL fallthrough, callback 
grouping, lazy scalar conversion, original callback exceptions and exact output 
schemas. Delete factories retain every matched condition and skip UPDATE 
assignment conversion/evaluation.
   - Make explicit literals authoritative even when their Python value is 
callable; keep Arrow array/chunked-array values supported.
   - Document the factories and migrate SDK integration tests. Old dictionary 
descriptions and the old mode constructor are rejected. No dependencies are 
added.
   
   ## Verification
   
   - 13 embedded PyO3 MERGE tests passed, including strict clause families, 
mapping snapshots, lazy literals, delete-only evaluation, exception identity, 
concurrent callers and batch/stream source handling.
   - 156 real SDK/PyPaimon Native integration cases passed across SDK 
update/Blob tests and PyPaimon MERGE/adapter/source-metadata tests. These ran 
against the real registered native module inside a Cargo test executable; no 
Native extension was installed or rebuilt into a Python environment. The 
temporary integration entry point is not included in this PR.
   - Rust 1.98.0 all-targets Clippy with warnings denied, rustfmt and diff 
checks passed.
   - Companion Python protocol/public-API checks: 105 passed, 16 skipped; Arrow 
16: 35 passed, 1 skipped. Skipped Native cases were separately covered by the 
real-module integration run.
   
   The companion Python PR remains draft until this SDK API is merged. Its 
Native CI continues to build Rust main; no old-SDK compatibility protocol is 
retained.
   


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