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

   ## Summary
   
   PyPaimon already writes floating and binary partition keys, but its native 
write/update/MERGE selection excludes them. The core rejects FLOAT/DOUBLE 
partition names, and commit statistics currently format several partition types 
through diagnostic `Datum` strings.
   
   - Format FLOAT/DOUBLE partition values using Java's JDK 19+ shortest-decimal 
contract, including notation boundaries, finite rounding ties and subnormal 
values. Ryƫ is already present in the dependency tree.
   - Resolve existing files written with older Java floating names by matching 
the exact typed partition value. Reuse this private resolver for data files, 
bucket-local HASH indexes and deletion vectors; prefer an existing canonical 
path and preserve configured external paths.
   - Preserve original manifest metadata when a resolved read location is used 
by a CoW rewrite, so DELETE entries retain the original file identity.
   - Generate commit partition statistics through the same partition computer 
Java uses for paths, without path escaping, including cast-based binary names 
and default partition values.
   
   The implementation stays in Rust core. No Python binding or Java split 
protocol API changes are needed.
   
   ## Verification
   
   - `cargo fmt --all -- --check`
   - `cargo +1.98.0 clippy --locked --all-targets --workspace --features 
fulltext,vortex -- -D warnings`
   - `RUST_MIN_STACK=16777216 
PAIMON_TEST_WAREHOUSE=/tmp/paimon-blob-row-java-warehouse cargo test --locked 
-p paimon --all-targets --features fulltext,vortex`: **4474 passed, 6 ignored**.
   - Independent finite-value formatter comparison with JDK 21: **199,544 
values, zero mismatches**. Committed golden tests cover notation thresholds, 
rounding ties and finite extremes.
   - PyPaimon integration with native planning, reading, writing, updating and 
committing all enabled: **922 passed, 10 subtests**. Includes append, PK and 
data evolution writes, real external paths, old Java directories, repeated DV 
deletes and CoW MERGE DELETE/UPDATE.
   
   A companion PyPaimon PR enables these partition types and aligns Python 
partition naming/statistics with Java. It will remain draft until this core 
support reaches Rust main.
   


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