No MariaDB,
UNCOMPRESS() é uma função interna que descompacta uma string que foi compactada pelo COMPRESS() função. Sintaxe
A sintaxe fica assim:
UNCOMPRESS(string_to_uncompress) Onde
string_to_uncompress é a string que você deseja descompactar. Exemplo
Segue um exemplo básico:
SELECT UNCOMPRESS(COMPRESS('Marching on')); Resultado:
+-------------------------------------+
| UNCOMPRESS(COMPRESS('Marching on')) |
+-------------------------------------+
| Marching on |
+-------------------------------------+ Verificando o tamanho
Segue um exemplo básico:
SELECT
LENGTH(REPEAT('z', 50)) AS "Uncompressed",
LENGTH(COMPRESS(REPEAT('z', 50))) AS "Compressed",
LENGTH(UNCOMPRESS(COMPRESS(REPEAT('z', 50)))) AS "Uncompressed"; Resultado:
+--------------+------------+--------------+ | Uncompressed | Compressed | Uncompressed | +--------------+------------+--------------+ | 50 | 16 | 50 | +--------------+------------+--------------+
Aqui, usei o
LENGTH() para obter o comprimento em bytes das strings descompactadas e compactadas, respectivamente. Eu usei o REPEAT() função para repetir a mesma letra 50 vezes antes de comprimi-la. Aqui está outro exemplo que usa o símbolo de direitos autorais (
© ), que é um caractere de dois bytes:SELECT
LENGTH(REPEAT('©', 50)) AS "Uncompressed",
LENGTH(COMPRESS(REPEAT('©', 50))) AS "Compressed",
LENGTH(UNCOMPRESS(COMPRESS(REPEAT('©', 50)))) AS "Uncompressed"; Resultado:
+--------------+------------+--------------+ | Uncompressed | Compressed | Uncompressed | +--------------+------------+--------------+ | 100 | 17 | 100 | +--------------+------------+--------------+
Aqui está um que usa um caractere de três bytes:
SELECT
LENGTH(REPEAT('อ', 50)) AS "Uncompressed",
LENGTH(COMPRESS(REPEAT('อ', 50))) AS "Compressed",
LENGTH(UNCOMPRESS(COMPRESS(REPEAT('อ', 50)))) AS "Uncompressed"; Resultado:
+--------------+------------+--------------+ | Uncompressed | Compressed | Uncompressed | +--------------+------------+--------------+ | 150 | 18 | 150 | +--------------+------------+--------------+
Argumentos nulos
Passando
null retorna null :SELECT UNCOMPRESS(null); Resultado:
+------------------+ | UNCOMPRESS(null) | +------------------+ | NULL | +------------------+
Argumento ausente
Chamando
UNCOMPRESS() com o número errado de argumentos ou sem passar nenhum argumento resulta em um erro:SELECT UNCOMPRESS(); Resultado:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'UNCOMPRESS'
Verificar compactação
O
UNCOMPRESS() A função requer que o MariaDB tenha sido compilado com uma biblioteca de compactação como zlib. Se o MariaDB não foi compilado com tal biblioteca de compressão, UNCOMPRESS() retorna null . Você pode verificar o
have_compress variável de sistema para ver se a biblioteca de compactação zlib está acessível ao servidor:SELECT @@have_compress; Resultado:
+-----------------+ | @@have_compress | +-----------------+ | YES | +-----------------+
Nesse caso, a biblioteca de compactação zlib é acessível ao servidor e o resultado é
YES . Se a biblioteca de compactação zlib não estiver acessível ao servidor, o resultado será
NO .