W MariaDB, UNCOMPRESS() to wbudowana funkcja, która dekompresuje ciąg znaków skompresowany przez COMPRESS() funkcja.
Składnia
Składnia wygląda tak:
UNCOMPRESS(string_to_uncompress)
Gdzie string_to_uncompress to ciąg, który chcesz rozpakować.
Przykład
Oto podstawowy przykład:
SELECT UNCOMPRESS(COMPRESS('Marching on')); Wynik:
+-------------------------------------+
| UNCOMPRESS(COMPRESS('Marching on')) |
+-------------------------------------+
| Marching on |
+-------------------------------------+ Sprawdzanie rozmiaru
Oto podstawowy przykład:
SELECT
LENGTH(REPEAT('z', 50)) AS "Uncompressed",
LENGTH(COMPRESS(REPEAT('z', 50))) AS "Compressed",
LENGTH(UNCOMPRESS(COMPRESS(REPEAT('z', 50)))) AS "Uncompressed"; Wynik:
+--------------+------------+--------------+ | Uncompressed | Compressed | Uncompressed | +--------------+------------+--------------+ | 50 | 16 | 50 | +--------------+------------+--------------+
Tutaj użyłem LENGTH() funkcja, aby uzyskać długość w bajtach odpowiednio nieskompresowanych i skompresowanych ciągów. Użyłem REPEAT() funkcja powtarzania tej samej litery 50 razy przed jej skompresowaniem.
Oto kolejny przykład, w którym zastosowano symbol praw autorskich (© ), który jest znakiem dwubajtowym:
SELECT
LENGTH(REPEAT('©', 50)) AS "Uncompressed",
LENGTH(COMPRESS(REPEAT('©', 50))) AS "Compressed",
LENGTH(UNCOMPRESS(COMPRESS(REPEAT('©', 50)))) AS "Uncompressed"; Wynik:
+--------------+------------+--------------+ | Uncompressed | Compressed | Uncompressed | +--------------+------------+--------------+ | 100 | 17 | 100 | +--------------+------------+--------------+
Oto taki, który używa znaku trzybajtowego:
SELECT
LENGTH(REPEAT('อ', 50)) AS "Uncompressed",
LENGTH(COMPRESS(REPEAT('อ', 50))) AS "Compressed",
LENGTH(UNCOMPRESS(COMPRESS(REPEAT('อ', 50)))) AS "Uncompressed"; Wynik:
+--------------+------------+--------------+ | Uncompressed | Compressed | Uncompressed | +--------------+------------+--------------+ | 150 | 18 | 150 | +--------------+------------+--------------+
Argumenty zerowe
Przekazywanie null zwraca null :
SELECT UNCOMPRESS(null); Wynik:
+------------------+ | UNCOMPRESS(null) | +------------------+ | NULL | +------------------+
Brakujący argument
Wywołanie UNCOMPRESS() z niewłaściwą liczbą argumentów lub bez przekazania jakichkolwiek argumentów powoduje błąd:
SELECT UNCOMPRESS(); Wynik:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'UNCOMPRESS'
Sprawdź kompresję
UNCOMPRESS() funkcja wymaga, aby MariaDB została skompilowana z biblioteką kompresji, taką jak zlib. Jeśli MariaDB nie została skompilowana z taką biblioteką kompresji, UNCOMPRESS() zwraca null .
Możesz sprawdzić have_compress zmienna systemowa, aby sprawdzić, czy biblioteka kompresji zlib jest dostępna dla serwera:
SELECT @@have_compress; Wynik:
+-----------------+ | @@have_compress | +-----------------+ | YES | +-----------------+
W tym przypadku biblioteka kompresji zlib jest dostępna dla serwera, a wynikiem jest YES .
Jeśli biblioteka kompresji zlib nie jest dostępna dla serwera, wynikiem będzie NO .