Updated on 2024-09-03 GMT+08:00

Functional Functions

hll_print(hll)

Description: Prints some debugging parameters of an HLL.

Return type: cstring

Example:

1
2
3
4
5
SELECT hll_print(hll_empty());
                         hll_print                         
-----------------------------------------------------------
 EMPTY, nregs=2048, nbits=5, expthresh=-1(160), sparseon=1gongne
(1 row)

hll_empty()

Description: Creates an empty HLL.

Return type: hll

Example:

1
2
3
4
5
SELECT hll_empty();
 hll_empty 
-----------
 \x118b7f
(1 row)

hll_empty(int32 log2m)

Description: Creates an empty HLL and sets the log2m parameter. The parameter value ranges from 10 to 16.

Return type: hll

Example:

1
2
3
4
5
SELECT hll_empty(10);
 hll_empty 
-----------
 \x118a7f
(1 row)

hll_empty(int32 log2m, int32 regwidth)

Description: Creates an empty HLL and sets the log2m and regwidth parameters in sequence. The value of regwidth ranges from 1 to 5.

Return type: hll

Example:

1
2
3
4
5
SELECT hll_empty(10, 4);
 hll_empty 
-----------
 \x116a7f
(1 row)

hll_empty(int32 log2m, int32 regwidth, int64 expthresh)

Description: Creates an empty HLL and sets the log2m, regwidth, and expthresh parameters. The value of expthresh is an integer ranging from –1 to 7. This parameter specifies the threshold for switching from the explicit mode to the sparse mode. –1 indicates the auto mode; 0 indicates that the explicit mode is skipped; a value from 1 to 7 indicates that the mode is switched when the number of distinct values reaches 2expthresh.

Return type: hll

Example:

1
2
3
4
5
SELECT hll_empty(10, 4, 7);
 hll_empty 
-----------
 \x116a48
(1 row)

hll_empty(int32 log2m, int32 regwidth, int64 expthresh, int32 sparseon)

Description: Creates an empty HLL and sets the log2m, regwidth, expthresh, and sparseon parameters. The value of sparseon is 0 or 1.

Return type: hll

Example:

1
2
3
4
5
SELECT hll_empty(10,4,7,0);
 hll_empty 
-----------
 \x116a08
(1 row)

hll_add(hll, hll_hashval)

Description: Adds hll_hashval to an HLL.

Return type: hll

Example:

1
2
3
4
5
SELECT hll_add(hll_empty(), hll_hash_integer(1));
         hll_add          
--------------------------
 \x128b7f8895a3f5af28cafe
(1 row)

hll_add_rev(hll_hashval, hll)

Description: Adds hll_hashval to an HLL. This function works the same as hll_add, except that the positions of parameters are switched.

Return type: hll

Example:

1
2
3
4
5
SELECT hll_add_rev(hll_hash_integer(1), hll_empty());
       hll_add_rev        
--------------------------
 \x128b7f8895a3f5af28cafe
(1 row)

hll_eq(hll, hll)

Description: Compares two HLLs to check whether they are the same.

Return type: bool

Example:

1
2
3
4
5
SELECT hll_eq(hll_add(hll_empty(), hll_hash_integer(1)), hll_add(hll_empty(), hll_hash_integer(2)));
 hll_eq 
--------
 f
(1 row)

hll_ne(hll, hll)

Description: Compares two HLLs to check whether they are different.

Return type: bool

Example:

1
2
3
4
5
SELECT hll_ne(hll_add(hll_empty(), hll_hash_integer(1)), hll_add(hll_empty(), hll_hash_integer(2)));
 hll_ne 
--------
 t
(1 row)

hll_cardinality(hll)

Description: Calculates the number of distinct values of an HLL.

Return type: integer

Example:

1
2
3
4
5
SELECT hll_cardinality(hll_empty() || hll_hash_integer(1));
 hll_cardinality 
-----------------
               1
(1 row)

hll_union(hll, hll)

Description: Performs the UNION operation on two HLL data structures to obtain one HLL.

Return type: hll

Example:

1
2
3
4
5
SELECT hll_union(hll_add(hll_empty(), hll_hash_integer(1)), hll_add(hll_empty(), hll_hash_integer(2)));
                hll_union                 
------------------------------------------
 \x128b7f8895a3f5af28cafeda0ce907e4355b60
(1 row)