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]

Reply via email to