Hash Function
bucketabstime(value, flag)
Description: Hashes the value in the abstime format and finds the corresponding hash bucket.
Parameter: value indicates the value to be converted, which is of the abstime type. flag is of the int type, indicating the data distribution mode. The value 0 indicates hash distribution.
Return type: int32
Example:
openGauss=# select bucketabstime('2011-10-01 10:10:10.112',1); bucketabstime --------------- 13954 (1 row)
bucketbool(value, flag)
Description: Hashes the value in the bool format and finds the corresponding hash bucket.
Parameter: value indicates the value to be converted, which is of the bool type. flag is of the int type, indicating the data distribution mode. The value 0 indicates hash distribution.
Return type: int32
Example:
openGauss=# select bucketbool(true,1); bucketbool ------------ 1 (1 row) openGauss=# select bucketbool(false,1); bucketbool ------------ 0 (1 row)
bucketbpchar(value, flag)
Description: Hashes the value in the bpchar format and finds the corresponding hash bucket.
Parameter: value indicates the value to be converted, which is of the bpchar type. flag is of the int type, indicating the data distribution mode. The value 0 indicates hash distribution.
Return type: int32
Example:
openGauss=# select bucketbpchar('test',1); bucketbpchar -------------- 9761 (1 row)
bucketbytea(value, flag)
Description: Hashes the value in the bytea format and finds the corresponding hash bucket.
Parameter: value indicates the value to be converted, which is of the bytea type. flag is of the int type, indicating the data distribution mode. The value 0 indicates hash distribution.
Return type: int32
Example:
openGauss=# select bucketbytea('test',1); bucketbytea ------------- 9761 (1 row)
bucketcash(value, flag)
Description: Hashes the value in the money format and finds the corresponding hash bucket.
Parameter: value indicates the value to be converted, which is of the money type. flag is of the int type, indicating the data distribution mode. The value 0 indicates hash distribution.
Return type: int32
Example:
openGauss=# select bucketcash(10::money,1); bucketcash ------------ 8468 (1 row)
getbucket(value, flag)
Description: Obtains the hash bucket from the distribution column.
value indicates the value to be entered, which can be of the following types:
“char”, abstime, bigint, boolean, bytea, character varying, character, date, double precision, int2vector, integer, interval, money, name, numeric, nvarchar2, nvarchar2, oid, oidvector, raw, real, record, reltime, smalldatetime, smallint, text, time with time zone, time without time zone, timestamp with time zone, timestamp without time zone, tinyint, and uuid
flag is of the int type, indicating the data distribution mode.
Return type: integer
Example:
openGauss=# select getbucket(10,'H'); getbucket ----------- 14535 (1 row) openGauss=# select getbucket(11,'H'); getbucket ----------- 13449 (1 row) openGauss=# select getbucket(11,'R'); getbucket ----------- 13449 (1 row) openGauss=# select getbucket(12,'R'); getbucket ----------- 9412 (1 row)
hash_array(anyarray)
Description: Hashes an array, obtains the result of an array element using the hash function, and returns the combination result.
Parameter: data of the anyarray type
Return type: integer
Example:
openGauss=# select hash_array(ARRAY[[1,2,3],[1,2,3]]); hash_array ------------ -382888479 (1 row)
hash_group(key)
Description: Calculates the hash value of each column in the Group Clause in the streaming engine.
Parameter: key indicates the value of each column in the Group Clause.
Return type: 32-bit hash value
Example:
Perform the following steps in sequence. openGauss=# CREATE TABLE tt(a int, b int,c int,d int); NOTICE: The 'DISTRIBUTE BY' clause is not specified. Using 'a' as the distribution column by default. HINT: Please use 'DISTRIBUTE BY' clause to specify suitable data distribution column. CREATE TABLE openGauss=# select * from tt; a | b | c | d ---+---+---+--- (0 rows) openGauss=# insert into tt values(1,2,3,4); INSERT 0 1 openGauss=# select * from tt; a | b | c | d ---+---+---+--- 1 | 2 | 3 | 4 (1 row) openGauss=# insert into tt values(5,6,7,8); INSERT 0 1 openGauss=# select * from tt; a | b | c | d ---+---+---+--- 1 | 2 | 3 | 4 5 | 6 | 7 | 8 (2 rows) openGauss=# select hash_group(a,b) from tt where a=1 and b=2; hash_group ------------ 990882385 (1 row)
hash_numeric(numeric)
Description: Calculates the hash value of numeric data.
Parameter: data of the numeric type.
Return type: integer
Example:
openGauss=# select hash_numeric(30); hash_numeric -------------- -282860963 (1 row)
hash_range(anyrange)
Description: Calculates the hash value of a range.
Parameter: data of the anyrange type
Return type: integer
Example:
openGauss=# select hash_range(numrange(1.1,2.2)); hash_range ------------ 683508754 (1 row)
hashbpchar(character)
Description: Calculates the hash value of bpchar.
Parameter: data of the character type
Return type: integer
Example:
openGauss=# select hashbpchar('hello'); hashbpchar ------------- -1870292951 (1 row)
hashchar(char)
Description: Converts char and Boolean data into hash values.
Parameter: data of the char or bool type
Return type: integer
Example:
openGauss=# select hashbpchar('hello'); hashbpchar ------------- -1870292951 (1 row) openGauss=# select hashchar('true'); hashchar ------------ 1686226652 (1 row)
hashenum(anyenum)
Description: Converts enumerated values to hash values.
Parameter: data of the anyenum type
Return type: integer
Example:
openGauss=# CREATE TYPE b1 AS ENUM('good', 'bad', 'ugly'); CREATE TYPE openGauss=# call hashenum('good'::b1); hashenum ------------ 1821213359 (1 row)
hashfloat4(real)
Description: Converts float4 values to hash values.
Parameter: data of the real type
Return type: integer
Example:
openGauss=# select hashfloat4(12.1234); hashfloat4 ------------ 1398514061 (1 row)
hashfloat8(double precision)
Description: Converts float8 values to hash values.
Parameter: data of the double precision type
Return type: integer
Example:
openGauss=# select hashfloat8(123456.1234); hashfloat8 ------------ 1673665593 (1 row)
hashinet(inet)
Description: Supports hashing indexes on inet or cidr. Returns the hash value of inet.
Parameter: data of the inet type
Return type: integer
Example:
openGauss=# select hashinet('127.0.0.1'::inet); hashinet ------------- -1435793109 (1 row)
hashint1(tinyint)
Description: Converts INT1 values to hash values.
Parameter: data of the tinyint type
Return type: uint32
Example:
openGauss=# select hashint1(20); hashint1 ------------- -2014641093 (1 row)
hashint2(smallint)
Description: Converts INT2 values to hash values.
Parameter: data of the smallint type
Return type: uint32
Example:
openGauss=# select hashint2(20000); hashint2 ------------ -863179081 (1 row)
bucketchar
Description: Calculates the hash value of the input parameter.
Parameter: char and integer
Return type: integer
bucketdate
Description: Calculates the hash value of the input parameter.
Parameters: date and integer
Return type: integer
bucketfloat4
Description: Calculates the hash value of the input parameter.
Parameter: real and integer
Return type: integer
bucketfloat8
Description: Calculates the hash value of the input parameter.
Parameters: double precision and integer
Return type: integer
bucketint1
Description: Calculates the hash value of the input parameter.
Parameter: tinyint and integer
Return type: integer
bucketint2
Description: Calculates the hash value of the input parameter.
Parameters: smallint and integer
Return type: integer
bucketint2vector
Description: Calculates the hash value of the input parameter.
Parameter: int2vector and integer
Return type: integer
bucketint4
Description: Calculates the hash value of the input parameter.
Parameter: integer, integer
Return type: integer
bucketint8
Description: Calculates the hash value of the input parameter.
Parameter: bigint, integer
Return type: integer
bucketinterval
Description: Calculates the hash value of the input parameter.
Parameter: interval, integer
Return type: integer
bucketname
Description: Calculates the hash value of the input parameter.
Parameter: name, integer
Return type: integer
bucketnumeric
Description: Calculates the hash value of the input parameter.
Parameter: numeric, integer
Return type: integer
bucketnvarchar2
Description: Calculates the hash value of the input parameter.
Parameter: nvarchar, nvarchar2, integer
Return type: integer
bucketoid
Description: Calculates the hash value of the input parameter.
Parameters: oid, integer
Return type: integer
bucketoidvector
Description: Calculates the hash value of the input parameter.
Parameter: oidvector, integer
Return type: integer
bucketraw
Description: Calculates the hash value of the input parameter.
Parameter: raw, integer
Return type: integer
bucketreltime
Description: Calculates the hash value of the input parameter.
Parameter: reltime, integer
Return type: integer
bucketsmalldatetime
Description: Calculates the hash value of the input parameter.
Parameter: smalldatetime, integer
Return type: integer
buckettext
Description: Calculates the hash value of the input parameter.
Parameter: text, integer
Return type: integer
buckettime
Description: Calculates the hash value of the input parameter.
Parameter: time without time zone, integer
Return type: integer
buckettimestamp
Description: Calculates the hash value of the input parameter.
Parameter: timestamp without time zone, integer
Return type: integer
buckettimestamptz
Description: Calculates the hash value of the input parameter.
Parameter: timestamp with time zone, integer
Return type: integer
buckettimetz
Description: Calculates the hash value of the input parameter.
Parameter: time with time zone, integer
Return type: integer
bucketuuid
Description: Calculates the hash value of the input parameter.
Parameters: uuid, integer
Return type: integer
bucketvarchar
Description: Calculates the hash value of the input parameter.
Parameter: character varying, integer
Return type: integer