JingsongLi opened a new pull request, #1152: URL: https://github.com/apache/paimon-rust/pull/1152
## What Complete two external Arrow input cases already supported by PyPaimon’s update APIs: - Preserve logical STRING match keys when LargeUtf8 NULL slots retain more than 2 GiB of hidden bytes. Share checked compaction with the existing binary-key path; ordinary ranges still share their value buffers. - Extract integer values from Decimal32/64/128/256 coefficients before narrowing, including zero at extreme negative scales. Keep evaluated assignments and match keys exact, permit constructor truncation only for row-ID updates, and reject integer-width overflow. The conversion remains in Rust core. Reuse it for numeric match keys rather than performing a separate intermediate rescale. No public APIs or dependencies are added. Ordinary append layout validation remains unchanged. ## Verification - Reproduced both failures before the fixes. - Core update-input, key normalization, and write normalization tests: **88 passed**. - Rust 1.98.0 Clippy for core and Python bindings with `-D warnings`. - Related Python/Native tests: **4023 passed, 2 skipped**. Differential coverage across batch/stream row-ID, incremental, predicate-array, predicate-callable, upsert, and MERGE updates, including ROW/ARRAY/MAP children and dictionaries. - Byte-key coverage includes NULL/empty values, Unicode, dictionary values, sliced validity bitmaps, and true visible-byte overflow rejection before copying. PyPaimon’s paired PR contains regression tests only and will continue building Rust main in Native CI. -- 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]
