
# 内置函数
HLL（HyperLogLog）有一系列内置函数用于内部对数据进行处理，一般情况下用户不需要熟知这些函数的使用。详情见[表1 内置函数]。
 表1内置函数 
| 函数名称              | 功能描述                                              |
|:---|:---|
| hll_in            | 以string格式接收hll数据。                                 |
| hll_out           | 以string格式发送hll数据。                                 |
| hll_recv          | 以bytea格式接收hll数据。                                  |
| hll_send          | 以bytea格式发送hll数据。                                  |
| hll_trans_in      | 以string格式接收hll_trans_type数据。                      |
| hll_trans_out     | 以string格式发送hll_trans_type数据。                      |
| hll_trans_recv    | 以bytea形式接收hll_trans_type数据。                       |
| hll_trans_send    | 以bytea形式发送hll_trans_type数据。                       |
| hll_typmod_in     | 接收typmod类型数据。                                     |
| hll_typmod_out    | 发送typmod类型数据。                                     |
| hll_hashval_in    | 接收hll_hashval类型数据。                                |
| hll_hashval_out   | 发送hll_hashval类型数据。                                |
| hll_add_trans0    | 类似于hll_add所提供的功能，初始化时无指定入参，通常在分布式聚合运算的第一阶段DN上使用。  |
| hll_add_trans1    | 类似于hll_add所提供的功能，初始化时指定一个入参，通常在分布式聚合运算的第一阶段DN上使用。 |
| hll_add_trans2    | 类似于hll_add所提供的功能，初始化时指定两个入参，通常在分布式聚合运算的第一阶段DN上使用。 |
| hll_add_trans3    | 类似于hll_add所提供的功能，初始化时指定三个入参，通常在分布式聚合运算的第一阶段DN上使用。 |
| hll_add_trans4    | 类似于hll_add所提供的功能，初始化时指定四个入参，通常在分布式聚合运算的第一阶段DN上使用。 |
| hll_union_trans   | 类似hll_union所提供的功能，在分布式聚合运算的第一阶段DN上使用。             |
| hll_union_collect | 类似于hll_union所提供的功能，在分布式聚合运算第二阶段CN上使用，汇总各个DN上的结果。  |
| hll_pack          | 在分布式聚合运算第三阶段CN上使用，把自定义hll_trans_type类型最后转换成hll类型。 |
| hll               | 用于hll类型转换成hll类型，根据输入参数会设定指定参数。                    |
| hll_hashval       | 用于bigint类型转换成hll_hashval类型。                       |
| hll_hashval_int4  | 用于int4类型转换成hll_hashval类型。                         |
   
