JingsongLi opened a new pull request, #1071: URL: https://github.com/apache/paimon-rust/pull/1071
### Purpose Linked issue: close #1070 Allow prepared batch/stream MERGE to read a Paimon table source in Rust core. PyPaimon already supports this input but currently materializes and joins it in Python. ### Brief change log - Add `MergeSource::Table(Arc<Table>)`; resolve and pin the source independently while preserving branch and resolved schema/options. - Read only ON keys, assignment columns and condition dependencies through the normal Paimon reader, including logical primary-key rows and Blob projection. - Preserve input batches, encode keys with global row indices, and interleave only chunks contributing to matched rows. Consume not-matched assignments across the complete selected clause without concatenating all source columns. - Accept native `Table` sources through the existing Python wrapper; update API stubs and documentation. - Keep ordinary read-policy checks for empty sources and retain prepared files on failures. ### Tests - `cargo test --locked -p paimon --lib`: 3,787 passed, 6 ignored. - `cargo +1.98.0 clippy --locked --all-targets --workspace --features fulltext,vortex -- -D warnings`: passed. - `cargo +1.98.0 fmt --all -- --check`: passed. - Rebuilt Python extension; `bindings/python/tests/test_update.py`: 16 passed, including batch/stream native table inputs at latest and historical snapshots. - Core regressions cover selected source snapshot, concurrent source advancement, empty-source laziness/authorization, cross-batch duplicates and complete-clause insert arrays. - PyPaimon integration tests cover branch selection, primary-key logical reads, nested ARRAY/MAP values, NULL keys, unused unreadable Blob projection and Blob view fallback. - Related PyPaimon Native regression suites (planning/reading/writing/updating/committing enabled): 1,190 passed, 2 skipped, 27 subtests passed; every tracked Native update kind exercised. ### API and Format Additive `MergeSource::Table` variant and `Table` source input in the existing Python `merge_into` methods. No new public operation, dependency or storage format. ### Documentation Update Python binding README and `datafusion.pyi` to explain table sources and independent snapshot selection. -- 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]
