I MariaDB, UNCOMPRESS()
är en inbyggd funktion som komprimerar en sträng som har komprimerats av COMPRESS()
funktion.
Syntax
Syntaxen ser ut så här:
UNCOMPRESS(string_to_uncompress)
Där string_to_uncompress
är strängen du vill dekomprimera.
Exempel
Här är ett grundläggande exempel:
SELECT UNCOMPRESS(COMPRESS('Marching on'));
Resultat:
+-------------------------------------+ | UNCOMPRESS(COMPRESS('Marching on')) | +-------------------------------------+ | Marching on | +-------------------------------------+
Kontrollera storleken
Här är ett grundläggande exempel:
SELECT
LENGTH(REPEAT('z', 50)) AS "Uncompressed",
LENGTH(COMPRESS(REPEAT('z', 50))) AS "Compressed",
LENGTH(UNCOMPRESS(COMPRESS(REPEAT('z', 50)))) AS "Uncompressed";
Resultat:
+--------------+------------+--------------+ | Uncompressed | Compressed | Uncompressed | +--------------+------------+--------------+ | 50 | 16 | 50 | +--------------+------------+--------------+
Här använde jag LENGTH()
funktion för att få längden i byte av de okomprimerade respektive komprimerade strängarna. Jag använde REPEAT()
funktion för att upprepa samma bokstav 50 gånger innan du komprimerar den.
Här är ett annat exempel som använder copyright-symbolen (©
), som är ett tvåbytestecken:
SELECT
LENGTH(REPEAT('©', 50)) AS "Uncompressed",
LENGTH(COMPRESS(REPEAT('©', 50))) AS "Compressed",
LENGTH(UNCOMPRESS(COMPRESS(REPEAT('©', 50)))) AS "Uncompressed";
Resultat:
+--------------+------------+--------------+ | Uncompressed | Compressed | Uncompressed | +--------------+------------+--------------+ | 100 | 17 | 100 | +--------------+------------+--------------+
Här är en som använder ett tre-byte-tecken:
SELECT
LENGTH(REPEAT('อ', 50)) AS "Uncompressed",
LENGTH(COMPRESS(REPEAT('อ', 50))) AS "Compressed",
LENGTH(UNCOMPRESS(COMPRESS(REPEAT('อ', 50)))) AS "Uncompressed";
Resultat:
+--------------+------------+--------------+ | Uncompressed | Compressed | Uncompressed | +--------------+------------+--------------+ | 150 | 18 | 150 | +--------------+------------+--------------+
Nollargument
Skickar null
returnerar null
:
SELECT UNCOMPRESS(null);
Resultat:
+------------------+ | UNCOMPRESS(null) | +------------------+ | NULL | +------------------+
Argument saknas
Anropar UNCOMPRESS()
med fel antal argument, eller utan att skicka några argument resulterar i ett fel:
SELECT UNCOMPRESS();
Resultat:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'UNCOMPRESS'
Kontrollera efter komprimering
UNCOMPRESS()
funktionen kräver att MariaDB har kompilerats med ett komprimeringsbibliotek som zlib. Om MariaDB inte har kompilerats med ett sådant komprimeringsbibliotek, UNCOMPRESS()
returnerar null
.
Du kan kontrollera have_compress
systemvariabel för att se om zlib-komprimeringsbiblioteket är tillgängligt för servern:
SELECT @@have_compress;
Resultat:
+-----------------+ | @@have_compress | +-----------------+ | YES | +-----------------+
I det här fallet är zlib-komprimeringsbiblioteket tillgängligt för servern, och resultatet är YES
.
Om zlib-komprimeringsbiblioteket inte är tillgängligt för servern skulle resultatet bli NO
.