jackylee-ch opened a new pull request, #985: URL: https://github.com/apache/paimon-rust/pull/985
The CHAR/VARCHAR arm of the partition-value computer folds a value to the default partition name when `str::trim` leaves it empty, but Rust's whitespace set differs from Java's `Character.isWhitespace`: `str::trim` strips a non-breaking space (U+00A0) and U+2007 / U+202F, which Java keeps, and keeps U+001C-U+001F, which Java strips. The partition value is recomputed on both the write and read paths (BinaryRow -> path), so such a value produces a different partition directory in Rust than in Java, and a cross-engine reader misses the data. The Binary arm already handles this correctly via `is_java_whitespace_only` (added in #958); the string arm was left on `str::trim`. Reuse `is_java_whitespace_only` in the string arm so it folds exactly what Java folds. Added a test covering both divergent directions (U+001C folds, U+00A0 does not). -- 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]
