@Description("compute SpookyHashV2 64-bit hash") @ScalarFunction @SqlType(StandardTypes.VARBINARY) public static Slice spookyHashV2_64(@SqlType(StandardTypes.VARBINARY) Slice slice) { Slice hash = Slices.allocate(Long.BYTES); hash.setLong(0, Long.reverseBytes(SpookyHashV2.hash64(slice, 0, slice.length(), 0))); return hash; }
@Description("compute SpookyHashV2 32-bit hash") @ScalarFunction @SqlType(StandardTypes.VARBINARY) public static Slice spookyHashV2_32(@SqlType(StandardTypes.VARBINARY) Slice slice) { Slice hash = Slices.allocate(Integer.BYTES); hash.setInt(0, Integer.reverseBytes(SpookyHashV2.hash32(slice, 0, slice.length(), 0))); return hash; }
public static long hash64(Slice data, int offset, int length, long seed) { if (length < SHORT_THRESHOLD) { return shortHash64(data, offset, length, seed); } return longHash64(data, offset, length, seed); }
public static long hash64(Slice data, int offset, int length, long seed) { if (length < SHORT_THRESHOLD) { return shortHash64(data, offset, length, seed); } return longHash64(data, offset, length, seed); }
public static int hash32(Slice data, int offset, int length, long seed) { return (int) hash64(data, offset, length, seed); }
private void validateHash32(int[] expected, int seed) { for (int offset : Ints.asList(0, 100)) { Slice data = makeData(offset, expected.length); for (int i = 0; i < expected.length; ++i) { assertEquals(SpookyHashV2.hash32(data, offset, i, seed), expected[i], String.format("size: %s", i)); } } }
public static int hash32(Slice data, int offset, int length, long seed) { return (int) hash64(data, offset, length, seed); }
private void validateHash32(int[] expected, int seed) { for (int offset : Ints.asList(0, 100)) { Slice data = makeData(offset, expected.length); for (int i = 0; i < expected.length; ++i) { assertEquals(SpookyHashV2.hash32(data, offset, i, seed), expected[i], String.format("size: %s", i)); } } }
private void validateHash64(long[] expected, long seed) { for (int offset : Ints.asList(0, 100)) { Slice data = makeData(offset, expected.length); for (int i = 0; i < expected.length; ++i) { assertEquals(SpookyHashV2.hash64(data, offset, i, seed), expected[i], String.format("size: %s", i)); } } }
@Description("compute SpookyHashV2 32-bit hash") @ScalarFunction @SqlType(StandardTypes.VARBINARY) public static Slice spookyHashV2_32(@SqlType(StandardTypes.VARBINARY) Slice slice) { Slice hash = Slices.allocate(Integer.BYTES); hash.setInt(0, Integer.reverseBytes(SpookyHashV2.hash32(slice, 0, slice.length(), 0))); return hash; }
private void validateHash64(long[] expected, long seed) { for (int offset : Ints.asList(0, 100)) { Slice data = makeData(offset, expected.length); for (int i = 0; i < expected.length; ++i) { assertEquals(SpookyHashV2.hash64(data, offset, i, seed), expected[i], String.format("size: %s", i)); } } }
@Description("compute SpookyHashV2 32-bit hash") @ScalarFunction @SqlType(StandardTypes.VARBINARY) public static Slice spookyHashV2_32(@SqlType(StandardTypes.VARBINARY) Slice slice) { Slice hash = Slices.allocate(Integer.BYTES); hash.setInt(0, Integer.reverseBytes(SpookyHashV2.hash32(slice, 0, slice.length(), 0))); return hash; }
@Description("compute SpookyHashV2 64-bit hash") @ScalarFunction @SqlType(StandardTypes.VARBINARY) public static Slice spookyHashV2_64(@SqlType(StandardTypes.VARBINARY) Slice slice) { Slice hash = Slices.allocate(Long.BYTES); hash.setLong(0, Long.reverseBytes(SpookyHashV2.hash64(slice, 0, slice.length(), 0))); return hash; }
@Description("compute SpookyHashV2 64-bit hash") @ScalarFunction @SqlType(StandardTypes.VARBINARY) public static Slice spookyHashV2_64(@SqlType(StandardTypes.VARBINARY) Slice slice) { Slice hash = Slices.allocate(Long.BYTES); hash.setLong(0, Long.reverseBytes(SpookyHashV2.hash64(slice, 0, slice.length(), 0))); return hash; }