Последнее обновление
MURMUR_HASH3_U64_V2
Описание
Вычисляет беззнаковое 64-битное хеш-значение MurmurHash3 и возвращает его как значение типа LARGEINT. Версию со знаком см. в murmur_hash3_64_v2
Эта функция использует реализацию MURMUR_HASH3_64_V2 и применяет к результату маску для приведения к беззнаковому 64-битному диапазону (от 0 до 2^64-1), что соответствует реализации стандартной библиотеки при интерпретации результата как беззнакового числа.
Синтаксис
MURMUR_HASH3_U64_V2( <str> [ , <str> ... ] )
Параметры
| Параметр | Описание |
|---|---|
<str> | Значение типа String, для которого вычисляется беззнаковое 64-битное хеш-значение MurmurHash3 |
Возвращаемое значение
Возвращает беззнаковое 64-битное хеш-значение MurmurHash3 входной строки как значение типа LARGEINT.
Возвращает NULL, если какой-либо параметр равен NULL.
Примеры
select murmur_hash3_u64_v2(null), murmur_hash3_u64_v2("hello"), murmur_hash3_u64_v2("hello", "world");
+----------------------------+-------------------------------+----------------------------------------+
| murmur_hash3_u64_v2(null) | murmur_hash3_u64_v2("hello") | murmur_hash3_u64_v2("hello", "world") |
+----------------------------+-------------------------------+----------------------------------------+
| NULL | 14688674573012802306 | 17783800982478351481 |
+----------------------------+-------------------------------+----------------------------------------+
-- The function outputs an unsigned 64-bit integer.
SELECT
mmhash3_64_v2,
mmhash3_u64_v2,
i64_to_ui64 = mmhash3_u64_v2 AS is_equal
FROM (
SELECT
murmur_hash3_64_v2('1013199993_1756808272') AS mmhash3_64_v2,
murmur_hash3_u64_v2('1013199993_1756808272') AS mmhash3_u64_v2,
CAST(murmur_hash3_64_v2('1013199993_1756808272') AS LARGEINT) & 18446744073709551615 AS i64_to_ui64
) t;
+----------------------+----------------------+----------+
| mmhash3_64_v2 | mmhash3_u64_v2 | is_equal |
+----------------------+----------------------+----------+
| -2648103510258542450 | 15798640563451009166 | 1 |
+----------------------+----------------------+----------+