社區版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)
具體函數及說明請參見函數說明。