哈希函数
hll_hash_boolean(bool)
描述:对bool类型数据计算哈希值。
返回值类型:hll_hashval
1 2 3 4 5 |
SELECT hll_hash_boolean(FALSE); hll_hash_boolean --------------------- 5048724184180415669 (1 row) |
hll_hash_boolean(bool, int32)
描述:设置hash seed(即改变哈希策略)并对bool类型数据计算哈希值。
返回值类型:hll_hashval
示例:
1 2 3 4 5 |
SELECT hll_hash_boolean(FALSE, 10); hll_hash_boolean -------------------- 391264977436098630 (1 row) |
hll_hash_smallint(smallint)
描述:对smallint类型数据计算哈希值。
返回值类型:hll_hashval
示例:
1 2 3 4 5 |
SELECT hll_hash_smallint(100::smallint); hll_hash_smallint --------------------- 4631120266694327276 (1 row) |
![](https://support.huaweicloud.com/sqlreference-910-dws/public_sys-resources/note_3.0-zh-cn.png)
数值大小相同的参数使用不同数据类型的哈希函数计算,最后结果会不一样,因为不同类型哈希函数会选取不同的哈希计算策略。
hll_hash_smallint(smallint, int32)
描述:设置hash seed(即改变哈希策略)同时对smallint类型数据计算哈希值。
返回值类型:hll_hashval
示例:
1 2 3 4 5 |
SELECT hll_hash_smallint(100::smallint, 10); hll_hash_smallint --------------------- 8349353095166695771 (1 row) |
hll_hash_integer(integer)
描述:对integer类型数据计算哈希值。
返回值类型:hll_hashval
示例:
1 2 3 4 5 |
SELECT hll_hash_integer(0); hll_hash_integer ---------------------- -3485513579396041028 (1 row) |
hll_hash_integer(integer, int32)
描述:对integer类型数据计算哈希值,并设置hashseed(即改变哈希策略)。
返回值类型:hll_hashval
示例:
1 2 3 4 5 |
SELECT hll_hash_integer(0, 10); hll_hash_integer -------------------- 183371090322255134 (1 row) |
hll_hash_bigint(bigint)
描述:对bigint类型数据计算哈希值。
返回值类型:hll_hashval
示例:
1 2 3 4 5 |
SELECT hll_hash_bigint(100::bigint); hll_hash_bigint --------------------- 8349353095166695771 (1 row) |
hll_hash_bigint(bigint, int32)
描述:对bigint类型数据计算哈希值,并设置hashseed(即改变哈希策略)。
返回值类型:hll_hashval
示例:
1 2 3 4 5 |
SELECT hll_hash_bigint(100::bigint, 10); hll_hash_bigint --------------------- 4631120266694327276 (1 row) |
hll_hash_bytea(bytea)
描述:对bytea类型数据计算哈希值。
返回值类型:hll_hashval
示例:
1 2 3 4 5 |
SELECT hll_hash_bytea(E'\\x'); hll_hash_bytea ---------------- 0 (1 row) |
hll_hash_bytea(bytea, int32)
描述:对bytea类型数据计算哈希值,并设置hashseed(即改变哈希策略)。
返回值类型:hll_hashval
示例:
1 2 3 4 5 |
SELECT hll_hash_bytea(E'\\x', 10); hll_hash_bytea --------------------- 6574525721897061910 (1 row) |
hll_hash_text(text)
描述:对text类型数据计算哈希值。
返回值类型:hll_hashval
示例:
1 2 3 4 5 |
SELECT hll_hash_text('AB'); hll_hash_text --------------------- 5365230931951287672 (1 row) |
hll_hash_text(text, int32)
描述:对text类型数据计算哈希值,并设置hashseed(即改变哈希策略)。
返回值类型:hll_hashval
示例:
1 2 3 4 5 |
SELECT hll_hash_text('AB', 10); hll_hash_text --------------------- 7680762839921155903 (1 row) |
hll_hash_any(anytype)
描述:对任意类型数据计算哈希值。
返回值类型:hll_hashval
示例:
1 2 3 4 5 6 7 8 9 10 11 |
SELECT hll_hash_any(1); hll_hash_any ---------------------- -8604791237420463362 (1 row) SELECT hll_hash_any('08:00:2b:01:02:03'::macaddr); hll_hash_any ---------------------- -4883882473551067169 (1 row) |
hll_hash_any(anytype, int32)
描述:对任意类型数据计算哈希值,并设置hashseed(即改变哈希策略)。
返回值类型:hll_hashval
示例:
1 2 3 4 5 |
SELECT hll_hash_any(1, 10); hll_hash_any ---------------------- -1478847531811254870 (1 row) |
hll_hashval_eq(hll_hashval, hll_hashval)
描述:比较两个hll_hashval类型数据是否相等。
返回值类型:bool
示例:
1 2 3 4 5 |
SELECT hll_hashval_eq(hll_hash_integer(1), hll_hash_integer(1)); hll_hashval_eq ---------------- t (1 row) |
hll_hashval_ne(hll_hashval, hll_hashval)
描述:比较两个hll_hashval类型数据是否不相等。
返回值类型:bool
示例:
1 2 3 4 5 |
SELECT hll_hashval_ne(hll_hash_integer(1), hll_hash_integer(1)); hll_hashval_ne ---------------- f (1 row) |