In MariaDB, UNCOMPRESS()
is een ingebouwde functie die een tekenreeks decomprimeert die is gecomprimeerd door de COMPRESS()
functie.
Syntaxis
De syntaxis gaat als volgt:
UNCOMPRESS(string_to_uncompress)
Waar string_to_uncompress
is de tekenreeks die u wilt decomprimeren.
Voorbeeld
Hier is een eenvoudig voorbeeld:
SELECT UNCOMPRESS(COMPRESS('Marching on'));
Resultaat:
+-------------------------------------+ | UNCOMPRESS(COMPRESS('Marching on')) | +-------------------------------------+ | Marching on | +-------------------------------------+
De maat controleren
Hier is een eenvoudig voorbeeld:
SELECT
LENGTH(REPEAT('z', 50)) AS "Uncompressed",
LENGTH(COMPRESS(REPEAT('z', 50))) AS "Compressed",
LENGTH(UNCOMPRESS(COMPRESS(REPEAT('z', 50)))) AS "Uncompressed";
Resultaat:
+--------------+------------+--------------+ | Uncompressed | Compressed | Uncompressed | +--------------+------------+--------------+ | 50 | 16 | 50 | +--------------+------------+--------------+
Hier gebruikte ik de LENGTH()
functie om de lengte in bytes van respectievelijk de ongecomprimeerde en gecomprimeerde strings te krijgen. Ik gebruikte de REPEAT()
functie om dezelfde letter 50 keer te herhalen voordat deze wordt gecomprimeerd.
Hier is nog een voorbeeld dat het copyright-symbool gebruikt (©
), wat een teken van twee bytes is:
SELECT
LENGTH(REPEAT('©', 50)) AS "Uncompressed",
LENGTH(COMPRESS(REPEAT('©', 50))) AS "Compressed",
LENGTH(UNCOMPRESS(COMPRESS(REPEAT('©', 50)))) AS "Uncompressed";
Resultaat:
+--------------+------------+--------------+ | Uncompressed | Compressed | Uncompressed | +--------------+------------+--------------+ | 100 | 17 | 100 | +--------------+------------+--------------+
Hier is er een die een teken van drie bytes gebruikt:
SELECT
LENGTH(REPEAT('อ', 50)) AS "Uncompressed",
LENGTH(COMPRESS(REPEAT('อ', 50))) AS "Compressed",
LENGTH(UNCOMPRESS(COMPRESS(REPEAT('อ', 50)))) AS "Uncompressed";
Resultaat:
+--------------+------------+--------------+ | Uncompressed | Compressed | Uncompressed | +--------------+------------+--------------+ | 150 | 18 | 150 | +--------------+------------+--------------+
Nullargumenten
Doorgeven van null
retourneert null
:
SELECT UNCOMPRESS(null);
Resultaat:
+------------------+ | UNCOMPRESS(null) | +------------------+ | NULL | +------------------+
Ontbrekend argument
Aanroepen van UNCOMPRESS()
met het verkeerde aantal argumenten, of zonder het doorgeven van argumenten resulteert in een fout:
SELECT UNCOMPRESS();
Resultaat:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'UNCOMPRESS'
Controleer op compressie
De UNCOMPRESS()
functie vereist dat MariaDB is gecompileerd met een compressiebibliotheek zoals zlib. Als MariaDB niet is gecompileerd met een dergelijke compressiebibliotheek, UNCOMPRESS()
retourneert null
.
U kunt de have_compress
. controleren systeemvariabele om te zien of de zlib-compressiebibliotheek toegankelijk is voor de server:
SELECT @@have_compress;
Resultaat:
+-----------------+ | @@have_compress | +-----------------+ | YES | +-----------------+
In dit geval is de zlib-compressiebibliotheek toegankelijk voor de server en het resultaat is YES
.
Als de zlib-compressiebibliotheek niet toegankelijk is voor de server, is het resultaat NO
.