Functional Functions

hll_print(hll)

Description: Prints some debugging parameters of an HLL.

Return type: cstring

Example:

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:

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:

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:

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:

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:

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:

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:

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:

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:

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:

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:

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