velox icon indicating copy to clipboard operation
velox copied to clipboard

Fix Presto Java UUID serialization

Open BryanCutler opened this issue 4 months ago • 4 comments

This fixes the PrestoSerializer to put UUID values in the correct format that is expected by Presto Java so that the values will match those from a Java worker. First, when converting UUID to/from string, the values are no longer in big endian format (as taken from boost::uuid) and are instead stored as a little endian in an int128_t. Secondly, Presto Java will read UUID values from an Int128ArrayBlock with the first value as the most significant bits. To correct this, the upper/lower parts of the int128_t are swapped during serialization/deserialization.

A unit test for checking roundtrip UUID serializaiton was added and manual testing of Presto with a native worker to verify the problem from the issue description is fixed.

From https://github.com/prestodb/presto/issues/23311

BryanCutler avatar Oct 08 '24 20:10 BryanCutler