V MariaDB UNCOMPRESS()
je vestavěná funkce, která dekomprimuje řetězec, který byl zkomprimován pomocí COMPRESS()
funkce.
Syntaxe
Syntaxe vypadá takto:
UNCOMPRESS(string_to_uncompress)
Kde string_to_uncompress
je řetězec, který chcete dekomprimovat.
Příklad
Zde je základní příklad:
SELECT UNCOMPRESS(COMPRESS('Marching on'));
Výsledek:
+-------------------------------------+ | UNCOMPRESS(COMPRESS('Marching on')) | +-------------------------------------+ | Marching on | +-------------------------------------+
Kontrola velikosti
Zde je základní příklad:
SELECT
LENGTH(REPEAT('z', 50)) AS "Uncompressed",
LENGTH(COMPRESS(REPEAT('z', 50))) AS "Compressed",
LENGTH(UNCOMPRESS(COMPRESS(REPEAT('z', 50)))) AS "Uncompressed";
Výsledek:
+--------------+------------+--------------+ | Uncompressed | Compressed | Uncompressed | +--------------+------------+--------------+ | 50 | 16 | 50 | +--------------+------------+--------------+
Zde jsem použil LENGTH()
funkce k získání délky v bajtech nekomprimovaného a komprimovaného řetězce. Použil jsem REPEAT()
funkci opakovat stejné písmeno 50krát před jeho komprimací.
Zde je další příklad, který používá symbol autorských práv (©
), což je dvoubajtový znak:
SELECT
LENGTH(REPEAT('©', 50)) AS "Uncompressed",
LENGTH(COMPRESS(REPEAT('©', 50))) AS "Compressed",
LENGTH(UNCOMPRESS(COMPRESS(REPEAT('©', 50)))) AS "Uncompressed";
Výsledek:
+--------------+------------+--------------+ | Uncompressed | Compressed | Uncompressed | +--------------+------------+--------------+ | 100 | 17 | 100 | +--------------+------------+--------------+
Zde je jeden, který používá tříbajtový znak:
SELECT
LENGTH(REPEAT('อ', 50)) AS "Uncompressed",
LENGTH(COMPRESS(REPEAT('อ', 50))) AS "Compressed",
LENGTH(UNCOMPRESS(COMPRESS(REPEAT('อ', 50)))) AS "Uncompressed";
Výsledek:
+--------------+------------+--------------+ | Uncompressed | Compressed | Uncompressed | +--------------+------------+--------------+ | 150 | 18 | 150 | +--------------+------------+--------------+
Nulové argumenty
Předávání null
vrátí null
:
SELECT UNCOMPRESS(null);
Výsledek:
+------------------+ | UNCOMPRESS(null) | +------------------+ | NULL | +------------------+
Chybí argument
Volání UNCOMPRESS()
s nesprávným počtem argumentů nebo bez předání jakýchkoli argumentů vede k chybě:
SELECT UNCOMPRESS();
Výsledek:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'UNCOMPRESS'
Zkontrolujte kompresi
UNCOMPRESS()
funkce vyžaduje, aby MariaDB byla zkompilována s kompresní knihovnou, jako je zlib. Pokud MariaDB nebyla zkompilována s takovou knihovnou komprese, UNCOMPRESS()
vrátí null
.
Můžete zkontrolovat have_compress
systémové proměnné, abyste viděli, zda je kompresní knihovna zlib pro server přístupná:
SELECT @@have_compress;
Výsledek:
+-----------------+ | @@have_compress | +-----------------+ | YES | +-----------------+
V tomto případě je kompresní knihovna zlib přístupná serveru a výsledek je YES
.
Pokud kompresní knihovna zlib není pro server přístupná, výsledek bude NO
.