En MariaDB, UNCOMPRESS()
es una función incorporada que descomprime una cadena que ha sido comprimida por COMPRESS()
función.
Sintaxis
La sintaxis es así:
UNCOMPRESS(string_to_uncompress)
Donde string_to_uncompress
es la cadena que desea descomprimir.
Ejemplo
He aquí un ejemplo básico:
SELECT UNCOMPRESS(COMPRESS('Marching on'));
Resultado:
+-------------------------------------+ | UNCOMPRESS(COMPRESS('Marching on')) | +-------------------------------------+ | Marching on | +-------------------------------------+
Comprobación del tamaño
He aquí un ejemplo 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 | +--------------+------------+--------------+
Aquí, usé LENGTH()
función para obtener la longitud en bytes de las cadenas sin comprimir y comprimidas respectivamente. Usé REPEAT()
Función para repetir la misma letra 50 veces antes de comprimirla.
Aquí hay otro ejemplo que usa el símbolo de copyright (©
), que es un carácter de dos 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 | +--------------+------------+--------------+
Aquí hay uno que usa un carácter de tres 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
Pasando null
devuelve null
:
SELECT UNCOMPRESS(null);
Resultado:
+------------------+ | UNCOMPRESS(null) | +------------------+ | NULL | +------------------+
Argumento faltante
Llamando a UNCOMPRESS()
con el número incorrecto de argumentos, o sin pasar ningún argumento da como resultado un error:
SELECT UNCOMPRESS();
Resultado:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'UNCOMPRESS'
Comprobar la compresión
El UNCOMPRESS()
La función requiere que MariaDB se haya compilado con una biblioteca de compresión como zlib. Si MariaDB no se ha compilado con una biblioteca de compresión de este tipo, UNCOMPRESS()
devuelve null
.
Puede verificar el have_compress
variable del sistema para ver si el servidor puede acceder o no a la biblioteca de compresión zlib:
SELECT @@have_compress;
Resultado:
+-----------------+ | @@have_compress | +-----------------+ | YES | +-----------------+
En este caso, el servidor puede acceder a la biblioteca de compresión zlib y el resultado es YES
.
Si el servidor no puede acceder a la biblioteca de compresión zlib, el resultado sería NO
.