JingsongLi opened a new pull request, #1150: URL: https://github.com/apache/paimon-rust/pull/1150
### Purpose Move two existing PyPaimon read/update cases onto Native while preserving exact comparison and key identity. ### Changes - Preserve DECIMAL predicate literals at their own precision/scale when they cannot be represented exactly at column scale. The core already compares DECIMAL values across scales, as Java's `Decimal.compareTo` does. Stored partition values continue to use strict column conversion. - Accept lossless floating width changes and equivalent Binary/LargeBinary/FixedSizeBinary layouts for upsert match keys. Keep original source arrays for selected payloads and unmatched-row append validation. - Rebase LargeBinary offsets to the visible byte range before narrowing, including small slices after a 2 GiB backing-buffer prefix. Share the existing STRING offset logic without broadening ordinary append schemas. - Add binding/core regression coverage for finer/wider decimal literals, dictionary NULLs, floating rounding/overflow/underflow rejection, binary bytes, and sparse mmap slices. ### Verification - Rust key normalization tests: 7 passed. - Shared STRING/Binary sparse mmap regression: passed. - Python binding predicate tests: 78 passed. - Rust 1.98.0 Clippy for core and bindings (`--lib --tests -- -D warnings`): passed. - Companion PyPaimon integration/regression suite against this extension: 1953 passed, with Native plan/read/write execution counters checked. Covers batch/stream upserts, append rejection, predicate updates/deletes, BTree/bitmap global indexes, compact/wide decimals, and mixed plan/read modes. No new public API, dependencies, or legacy Java compatibility paths. -- 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]
