Dans MariaDB, UNCOMPRESS()
est une fonction intégrée qui décompresse une chaîne qui a été compressée par le COMPRESS()
fonction.
Syntaxe
La syntaxe ressemble à ceci :
UNCOMPRESS(string_to_uncompress)
Où string_to_uncompress
est la chaîne que vous voulez décompresser.
Exemple
Voici un exemple de base :
SELECT UNCOMPRESS(COMPRESS('Marching on'));
Résultat :
+-------------------------------------+ | UNCOMPRESS(COMPRESS('Marching on')) | +-------------------------------------+ | Marching on | +-------------------------------------+
Vérification de la taille
Voici un exemple de base :
SELECT
LENGTH(REPEAT('z', 50)) AS "Uncompressed",
LENGTH(COMPRESS(REPEAT('z', 50))) AS "Compressed",
LENGTH(UNCOMPRESS(COMPRESS(REPEAT('z', 50)))) AS "Uncompressed";
Résultat :
+--------------+------------+--------------+ | Uncompressed | Compressed | Uncompressed | +--------------+------------+--------------+ | 50 | 16 | 50 | +--------------+------------+--------------+
Ici, j'ai utilisé le LENGTH()
fonction pour obtenir la longueur en octets des chaînes non compressées et compressées respectivement. J'ai utilisé le REPEAT()
fonction pour répéter la même lettre 50 fois avant de la compresser.
Voici un autre exemple qui utilise le symbole de copyright (©
), qui est un caractère à deux octets :
SELECT
LENGTH(REPEAT('©', 50)) AS "Uncompressed",
LENGTH(COMPRESS(REPEAT('©', 50))) AS "Compressed",
LENGTH(UNCOMPRESS(COMPRESS(REPEAT('©', 50)))) AS "Uncompressed";
Résultat :
+--------------+------------+--------------+ | Uncompressed | Compressed | Uncompressed | +--------------+------------+--------------+ | 100 | 17 | 100 | +--------------+------------+--------------+
En voici une qui utilise un caractère à trois octets :
SELECT
LENGTH(REPEAT('อ', 50)) AS "Uncompressed",
LENGTH(COMPRESS(REPEAT('อ', 50))) AS "Compressed",
LENGTH(UNCOMPRESS(COMPRESS(REPEAT('อ', 50)))) AS "Uncompressed";
Résultat :
+--------------+------------+--------------+ | Uncompressed | Compressed | Uncompressed | +--------------+------------+--------------+ | 150 | 18 | 150 | +--------------+------------+--------------+
Arguments nuls
Passer null
renvoie null
:
SELECT UNCOMPRESS(null);
Résultat :
+------------------+ | UNCOMPRESS(null) | +------------------+ | NULL | +------------------+
Argument manquant
Appel de UNCOMPRESS()
avec le mauvais nombre d'arguments, ou sans passage d'arguments, une erreur se produit :
SELECT UNCOMPRESS();
Résultat :
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'UNCOMPRESS'
Vérifier la compression
Le UNCOMPRESS()
nécessite que MariaDB ait été compilée avec une bibliothèque de compression telle que zlib. Si MariaDB n'a pas été compilé avec une telle bibliothèque de compression, UNCOMPRESS()
renvoie null
.
Vous pouvez vérifier le have_compress
variable système pour voir si la bibliothèque de compression zlib est accessible ou non au serveur :
SELECT @@have_compress;
Résultat :
+-----------------+ | @@have_compress | +-----------------+ | YES | +-----------------+
Dans ce cas, la bibliothèque de compression zlib est accessible au serveur, et le résultat est YES
.
Si la bibliothèque de compression zlib n'est pas accessible au serveur, le résultat serait NO
.