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]
