GBase 8c 函数和操作符 - HLL函数和操作符 之 哈希函数

本文介绍了GBase数据库中一系列哈希函数,包括对bool、smallint、integer等不同类型数据计算哈希值的函数,以及可设置hash seed改变哈希策略的函数。还介绍了比较两个hll_hashval类型数据是否相等或不相等的函数,并给出了各函数的描述、返回值类型和示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  •  hll_hash_boolean(bool)

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

返回值类型:hll_hashval

示例:

 gbase=# SELECT hll_hash_boolean(FALSE);

  hll_hash_boolean   

---------------------

 -5451962507482445012

(1 row)

  •  hll_hash_boolean(bool, int32)

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

返回值类型:hll_hashval

示例:

 gbase=# SELECT hll_hash_boolean(FALSE, 10);

  hll_hash_boolean  

--------------------

 -1169037589280886076

(1 row)

  •  hll_hash_smallint(smallint)

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

返回值类型:hll_hashval

示例:

 gbase=# SELECT hll_hash_smallint(100::smallint);

  hll_hash_smallint  

---------------------

 962727970174027904

(1 row)

说明:

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

  •  hll_hash_smallint(smallint, int32)

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

返回值类型:hll_hashval

示例:

 gbase=# SELECT hll_hash_smallint(100::smallint, 10);

  hll_hash_smallint  

---------------------

 -9056177146160443041

(1 row)

  •  hll_hash_integer(integer)

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

返回值类型:hll_hashval

示例:

 gbase=# SELECT hll_hash_integer(0);

   hll_hash_integer   

----------------------

 5156626420896634997

(1 row)

  •  hll_hash_integer(integer, int32)

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

返回值类型:hll_hashval

示例:

 gbase=# SELECT hll_hash_integer(0, 10);

  hll_hash_integer  

--------------------

 -5035020264353794276

(1 row)

  •  hll_hash_bigint(bigint)

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

返回值类型:hll_hashval

示例:

 gbase=# SELECT hll_hash_bigint(100::bigint);

   hll_hash_bigint   

---------------------

 -2401963681423227794

(1 row)

  •  hll_hash_bigint(bigint, int32)

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

返回值类型:hll_hashval

示例:

 gbase=# SELECT hll_hash_bigint(100::bigint, 10);

   hll_hash_bigint   

---------------------

 -2305749404374433531

(1 row)

  •  hll_hash_bytea(bytea)

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

返回值类型:hll_hashval

示例:

 gbase=# SELECT hll_hash_bytea(E'\\x');

 hll_hash_bytea

----------------

 0

(1 row)

  •  hll_hash_bytea(bytea, int32)

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

返回值类型:hll_hashval

示例:

 gbase=# SELECT hll_hash_bytea(E'\\x', 10);

   hll_hash_bytea    

---------------------

 7233188113542599437

(1 row)

  •  hll_hash_text(text)

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

返回值类型:hll_hashval

示例:

 gbase=# SELECT hll_hash_text('AB');

    hll_hash_text    

---------------------

 -5666002586880275174

(1 row)

  •  hll_hash_text(text, int32)

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

返回值类型:hll_hashval

示例:

 gbase=# SELECT hll_hash_text('AB', 10);

hll_hash_text

---------------------

-2215507121143724132

(1 row)

  •  hll_hash_any(anytype)

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

返回值类型:hll_hashval

示例:

 gbase=# select hll_hash_any(1);

     hll_hash_any     

----------------------

 -1316670585935156930

(1 row)

    

gbase=# 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

示例:

 gbase=# select hll_hash_any(1, 10);

     hll_hash_any     

----------------------

 7048553517657992351

(1 row)

  •  hll_hashval_eq(hll_hashval, hll_hashval)

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

返回值类型:bool

示例:

 gbase=# 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

示例:

 gbase=# select hll_hashval_ne(hll_hash_integer(1), hll_hash_integer(1));

 hll_hashval_ne

----------------

 f

(1 row)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值