MariaDB
 sql >> Database >  >> RDS >> MariaDB

Come funziona UNCOMPRESS() in MariaDB

In MariaDB, UNCOMPRESS() è una funzione incorporata che decomprime una stringa che è stata compressa da COMPRESS() funzione.

Sintassi

La sintassi è questa:

UNCOMPRESS(string_to_uncompress)

Dove string_to_uncompress è la stringa che vuoi decomprimere.

Esempio

Ecco un esempio di base:

SELECT UNCOMPRESS(COMPRESS('Marching on'));

Risultato:

+-------------------------------------+
| UNCOMPRESS(COMPRESS('Marching on')) |
+-------------------------------------+
| Marching on                         |
+-------------------------------------+

Controllo delle dimensioni

Ecco un esempio di base:

SELECT
    LENGTH(REPEAT('z', 50)) AS "Uncompressed",
    LENGTH(COMPRESS(REPEAT('z', 50))) AS "Compressed",
    LENGTH(UNCOMPRESS(COMPRESS(REPEAT('z', 50)))) AS "Uncompressed";

Risultato:

+--------------+------------+--------------+
| Uncompressed | Compressed | Uncompressed |
+--------------+------------+--------------+
|           50 |         16 |           50 |
+--------------+------------+--------------+

Qui, ho usato il LENGTH() funzione per ottenere rispettivamente la lunghezza in byte delle stringhe non compresse e compresse. Ho usato REPEAT() funzione per ripetere la stessa lettera 50 volte prima di comprimerla.

Ecco un altro esempio che utilizza il simbolo del copyright (© ), che è un carattere a due byte:

SELECT
    LENGTH(REPEAT('©', 50)) AS "Uncompressed",
    LENGTH(COMPRESS(REPEAT('©', 50))) AS "Compressed",
    LENGTH(UNCOMPRESS(COMPRESS(REPEAT('©', 50)))) AS "Uncompressed";

Risultato:

+--------------+------------+--------------+
| Uncompressed | Compressed | Uncompressed |
+--------------+------------+--------------+
|          100 |         17 |          100 |
+--------------+------------+--------------+

Eccone uno che utilizza un carattere a tre byte:

SELECT
    LENGTH(REPEAT('อ', 50)) AS "Uncompressed",
    LENGTH(COMPRESS(REPEAT('อ', 50))) AS "Compressed",
    LENGTH(UNCOMPRESS(COMPRESS(REPEAT('อ', 50)))) AS "Uncompressed";

Risultato:

+--------------+------------+--------------+
| Uncompressed | Compressed | Uncompressed |
+--------------+------------+--------------+
|          150 |         18 |          150 |
+--------------+------------+--------------+

Argomenti nulli

Passaggio null restituisce null :

SELECT UNCOMPRESS(null);

Risultato:

+------------------+
| UNCOMPRESS(null) |
+------------------+
| NULL             |
+------------------+

Argomento mancante

Chiamando UNCOMPRESS() con il numero errato di argomenti o senza passare alcun argomento genera un errore:

SELECT UNCOMPRESS();

Risultato:

ERROR 1582 (42000): Incorrect parameter count in the call to native function 'UNCOMPRESS'

Verifica la compressione

Il UNCOMPRESS() la funzione richiede che MariaDB sia stata compilata con una libreria di compressione come zlib. Se MariaDB non è stata compilata con tale libreria di compressione, UNCOMPRESS() restituisce null .

Puoi controllare have_compress variabile di sistema per vedere se la libreria di compressione zlib è accessibile o meno al server:

SELECT @@have_compress;

Risultato:

+-----------------+
| @@have_compress |
+-----------------+
| YES             |
+-----------------+

In questo caso, la libreria di compressione zlib è accessibile al server e il risultato è YES .

Se la libreria di compressione zlib non è accessibile al server, il risultato sarebbe NO .