更新时间:2025-05-29 GMT+08:00

哈希函数

hll_hash_boolean(bool)

描述:对bool类型数据计算哈希值。

返回值类型:hll_hashval

示例:
1
2
3
4
5
gaussdb=# SELECT hll_hash_boolean(FALSE);
  hll_hash_boolean   
---------------------
 -5451962507482445012
(1 row)

hll_hash_boolean(bool, int32)

描述:设置hash seed(即改变哈希策略)并对bool类型数据计算哈希值。

返回值类型:hll_hashval

示例:

1
2
3
4
5
gaussdb=# SELECT hll_hash_boolean(FALSE, 10);
  hll_hash_boolean  
--------------------
 -1169037589280886076
(1 row)

hll_hash_smallint(smallint)

描述:对smallint类型数据计算哈希值。

返回值类型:hll_hashval

示例:

1
2
3
4
5
gaussdb=# SELECT hll_hash_smallint(100::smallint);
  hll_hash_smallint  
---------------------
 962727970174027904
(1 row)

数值大小相同的参数使用不同数据类型的哈希函数计算,最后结果会不一样,因为不同类型哈希函数会选取不同的哈希计算策略。

hll_hash_smallint(smallint, int32)

描述:设置hash seed(即改变哈希策略)同时对smallint类型数据计算哈希值。

返回值类型:hll_hashval

示例:

1
2
3
4
5
gaussdb=# SELECT hll_hash_smallint(100::smallint, 10);
  hll_hash_smallint  
---------------------
 -9056177146160443041
(1 row)

hll_hash_integer(integer)

描述:对integer类型数据计算哈希值。

返回值类型:hll_hashval

示例:

1
2
3
4
5
gaussdb=# SELECT hll_hash_integer(0);
   hll_hash_integer   
----------------------
 5156626420896634997
(1 row)

hll_hash_integer(integer, int32)

描述:对integer类型数据计算哈希值,并设置hashseed(即改变哈希策略)。

返回值类型:hll_hashval

示例:

1
2
3
4
5
gaussdb=# SELECT hll_hash_integer(0, 10);
  hll_hash_integer  
--------------------
 -5035020264353794276
(1 row)

hll_hash_bigint(bigint)

描述:对bigint类型数据计算哈希值。

返回值类型:hll_hashval

示例:

1
2
3
4
5
gaussdb=# SELECT hll_hash_bigint(100::bigint);
   hll_hash_bigint   
---------------------
 -2401963681423227794
(1 row)

hll_hash_bigint(bigint, int32)

描述:对bigint类型数据计算哈希值,并设置hashseed(即改变哈希策略)。

返回值类型:hll_hashval

示例:

1
2
3
4
5
gaussdb=# SELECT hll_hash_bigint(100::bigint, 10);
   hll_hash_bigint   
---------------------
 -2305749404374433531
(1 row)

hll_hash_bytea(bytea)

描述:对bytea类型数据计算哈希值。

返回值类型:hll_hashval

示例:

1
2
3
4
5
gaussdb=# 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
gaussdb=# SELECT hll_hash_bytea(E'\\x', 10);
   hll_hash_bytea    
---------------------
 7233188113542599437
(1 row)

hll_hash_text(text)

描述:对text类型数据计算哈希值。

返回值类型:hll_hashval

示例:

1
2
3
4
5
gaussdb=# SELECT hll_hash_text('AB');
    hll_hash_text    
---------------------
 -5666002586880275174
(1 row)

hll_hash_text(text, int32)

描述:对text类型数据计算哈希值, 并设置hashseed(即改变哈希策略)。

返回值类型:hll_hashval

示例:

1
2
3
4
5
gaussdb=# SELECT hll_hash_text('AB', 10);
hll_hash_text
---------------------
-2215507121143724132
(1 row)

hll_hash_any(anytype)

描述:对任意类型数据计算哈希值。

返回值类型:hll_hashval

示例:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
gaussdb=# SELECT hll_hash_any(1);
     hll_hash_any     
----------------------
 -1316670585935156930
(1 row)

gaussdb=# SELECT hll_hash_any('08:00:2b:01:02:03'::macaddr);
     hll_hash_any     
----------------------
 -3719950434455589360
(1 row)

hll_hash_any(anytype, int32)

描述:对任意类型数据计算哈希值,并设置hashseed(即改变哈希策略)。

返回值类型:hll_hashval

示例:

1
2
3
4
5
gaussdb=# SELECT hll_hash_any(1, 10);
     hll_hash_any     
----------------------
 7048553517657992351
(1 row)

hll_hashval_eq(hll_hashval, hll_hashval)

描述:比较两个hll_hashval类型数据是否相等。

返回值类型:bool

示例:

1
2
3
4
5
gaussdb=# 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
gaussdb=# SELECT hll_hashval_ne(hll_hash_integer(1), hll_hash_integer(1));
 hll_hashval_ne 
----------------
 f
(1 row)