jackylee-ch opened a new pull request, #789:
URL: https://github.com/apache/paimon-rust/pull/789

   Variant object keys are ordered with `encode_utf16()`, but Java orders them 
by
   unsigned UTF-8 bytes: `GenericVariantBuilder.FieldEntry.compareTo` delegates 
to
   `BinaryString.compareTo`, which compares `(b & 0xFF)` per byte.
   
   The two disagree when a non-BMP key meets one in `U+E000..=U+FFFF` — UTF-16 
sorts
   the surrogate `0xD8xx` first, UTF-8 sorts the 4-byte sequence last. A 
Java-written
   object with, say, an emoji key beside a fullwidth key then fails to read with
   `Malformed Variant object key order`, and the writer emits an order Java 
rejects.
   
   Rust `str` is already UTF-8, so comparing the bytes is Java's comparison.
   


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