LuciferYang opened a new pull request, #9777: URL: https://github.com/apache/paimon/pull/9777
### Purpose close #9776 `HilbertIndexer.hilbertCurvePosBytes` padded the N-dimensional 63-bit hilbert index to a fixed 63 bytes — only enough for 8 dimensions. With 9+ order columns the padding dropped low-order bytes of the big-endian index and distinct points collapsed into the same sort key (a 16-dimensional index lost nearly a byte per point). Keep the legacy 63-byte width for up to 8 dimensions so existing keys are byte-stable, and use the exact full width (`63*N/8 + 1`, covering BigInteger's sign byte) beyond that. Hilbert keys are transient sort keys in all current consumers (Flink/core/Spark), so nothing persists the legacy shape. ### Tests `HilbertIndexerTest#testHighDimensionIndexKeepsAllBits`: 9-dim points → 71 bytes and points differing only in low-order bits stay distinct; 16-dim (top bit set, sign byte present) → 127 bytes and distinct; 2-dim/8-dim stay 63 bytes. RED verified on master (63 bytes, points collapsed). ### API and Format No persisted format uses hilbert bytes; widths for ≤8 dimensions are byte-identical to before. ### Documentation None. -- 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]
