A extensão varbit nativa do PostgreSQL Community Edition oferece suporte apenas a operações básicas do tipo BIT. PolarDB for PostgreSQL estende a extensão varbit com operações BIT adicionais para casos de uso mais amplos, como sistemas de recomendação com perfilamento de usuários em tempo real, sistemas de publicidade com controle de acesso e sistemas de bilhetagem.
Pré-requisitos
A versão do PolarDB for PostgreSQL deve ser PostgreSQL 11.
Funções
|
Função |
Descrição |
|
|
Extrai c bits a partir da posição b e retorna um valor varbit. Exemplo: |
|
|
Define os bits nas posições de índice especificadas no array d como b (0 ou 1). Os bits além do comprimento original são preenchidos com c (0 ou 1). Exemplo: |
|
|
A partir da posição c, conta o número de valores b (0 ou 1) dentro de d bits. Se o intervalo exceder o comprimento da string de bits, apenas os bits existentes serão contados. Exemplo: |
|
|
Conta o número de valores b (1 ou 0). Exemplo: |
|
|
Preenche uma string de bits de comprimento b com o valor a (0 ou 1). Exemplo: |
|
|
Gera uma string de bits aleatória de comprimento a, com uma proporção aleatória de b (0 ou 1) especificada por c. Exemplo: |
|
|
Retorna o array de posições de índice de b (0 ou 1). A indexação começa em 0. Se c for verdadeiro, as posições retornam em ordem crescente; caso contrário, em ordem decrescente. Exemplo: |
|
|
Retorna o array de posições de índice de b (0 ou 1), limitado a c posições. A indexação começa em 0. Se d for verdadeiro, as posições retornam em ordem crescente; caso contrário, em ordem decrescente. Exemplo: |
|
|
Extrai c bits a partir da posição b e retorna o array de posições de índice dos valores d (0 ou 1). Exemplo: |
|
|
Verifica os bits nas posições de índice especificadas no array c quanto ao valor b (0 ou 1) e retorna as posições de índice correspondentes. Posições que excedem o comprimento da string de bits não são incluídas. Exemplo: |
|
|
Define os bits nas posições de índice especificadas no array d como b (0 ou 1). Interrompe após definir e bits. Os bits além do comprimento original são preenchidos com c (0 ou 1). Exemplo: |
|
|
Define os bits nas posições de índice especificadas no array d como b (0 ou 1). Os bits além do comprimento original são preenchidos com c (0 ou 1). Retorna o valor varbit atualizado e o array de posições de índice dos bits definidos como b nesta operação. Exemplo: |
|
|
Define os bits nas posições de índice especificadas no array d como b (0 ou 1). Os bits além do comprimento original são preenchidos com c (0 ou 1). Interrompe após definir e bits com sucesso. Retorna o valor varbit atualizado e o array de posições de índice dos bits definidos como b nesta operação. Exemplo: |
|
|
Conta o número de valores 0 ou 1 nas posições de índice especificadas. Exemplo: |
Uso
-
Crie a extensão
CREATE EXTENSION varbitx; -
Exclua a extensão
DROP EXTENSION varbitx; -
Use as funções
Execute
select <function>. Exemplos:-
Função bit_count
select bit_count('1111000011110000', 1, 5, 4);Saída retornada:
bit_count ----------- 1 (1 row) -
Função set_bit_array_record
select set_bit_array_record('111100001111', 1, 0, array[1,4,5,6,7], 2);Saída retornada:
set_bit_array_record ------------------------ (111111001111,"{4,5}") (1 row)
Para obter mais informações sobre as funções, consulte Functions.
-