社区版PostgreSQL内置的varbit插件仅支持的比较简单的BIT类型操作函数,PolarDB PostgreSQL版对varbit插件进行了扩展,支持更多的BIT操作,可以覆盖更多应用场景,例如,实时用户画像推荐系统、门禁广告系统、购票系统等。
前提条件
PolarDB PostgreSQL版的版本为PostgreSQL 11。
函数说明
函数 | 说明 |
| 从指定位置b开始获取c个BIT位,返回varbit。 例如: |
| 将下标位置数组d对应的BIT位设置为b(0或1),超出原始长度的部分填充c(0或1)。 例如: |
| 从第c位开始,统计d个BIT位中有多少个b(0或1),如果超出长度,则只计算已经存在的。 例如: |
| 统计b(1或0)的个数。 例如: |
| 填充b长度的a(0或1)。 例如: |
| 填充a长度的随机BIT,并指定b(0或1)的随机比例c。 例如: |
| 返回b(0或1)的下标位置数组,下标从0开始计数,c为true时正向返回,c为false时反向返回。 例如: |
| 返回b(0或1)的下标位置数组,返回c个为止,下标从0开始计数,d为true时正向返回,d为false时反向返回。 例如: |
| 从b位置开始获取c个BIT位,返回d(0或1)的下标位置数组。 例如: |
| 查询指定下标位置数组c对应的BIT位为b(0或1)的,返回下标位置数组,超出部分的下标不统计。 例如: |
| 将指定下标位置数组d对应的BIT位设置为b(0或1),设置e位即返回,超出原始长度的部分填充c(0或1)。 例如: |
| 将指定下标位置数组d对应的BIT位设置为b(0或1),超出原始长度的部分填充c(0或1),返回设置后的varbit,同时返回此次操作中被设置为b的下标位置数组。 例如: |
| 将指定下标位置数组d对应的BIT位设置为b(0或1),超出原始长度的部分填充c(0或1),设置成功e位即返回,返回设置后的varbit,同时返回此次操作被设置为b的下标位置数组。 例如: |
| 统计指定下标位置数组中0或1的个数。 例如: |
使用方法
创建插件
CREATE EXTENSION varbitx;
删除插件
DROP EXTENSION varbitx;
函数使用命令
使用
select <函数>
即可。例如:bit_count函数
select bit_count('1111000011110000', 1, 5, 4);
返回结果如下:
bit_count ----------- 1 (1 row)
set_bit_array_record函数
select set_bit_array_record('111100001111', 1, 0, array[1,4,5,6,7], 2);
返回结果如下:
set_bit_array_record ------------------------ (111111001111,"{4,5}") (1 row)
具体函数及说明请参见函数说明。