zjw1111 opened a new issue, #256: URL: https://github.com/apache/paimon-cpp/issues/256
### Search before asking - [x] I searched the existing issues and found nothing similar. ### Paimon-cpp version `main` at `4027601e`. ### Minimal reproduce step 1. Construct `float` or `double` NaN values with different sign or payload bits. 2. Use those values in Literal hashing, Bloom filter hashing, Hive bucket hashing, BTree keys, Variant values, global-index scores, or indexed-split scores. 3. Compare the generated hashes or serialized bytes with Java Paimon, which canonicalizes NaN through `Float.floatToIntBits` and `Double.doubleToLongBits`. ### What doesn't meet your expectations? C++ currently preserves raw NaN payload bits in several hashing and serialization paths. As a result, NaN values that compare as equivalent can produce different hashes, and C++ can emit bytes that differ from Java. All float NaN values should use canonical bits `0x7fc00000`, and all double NaN values should use canonical bits `0x7ff8000000000000`, while preserving every non-NaN value unchanged. ### Anything else? A fix is available in #255. ### Are you willing to submit a PR? - [x] I'm willing to submit a PR! -- 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]
