Nuevas funciones SQL zstd_compress y zstd_decompress

Las funciones zstd_compress y zstd_decompress comprimen y descomprimen un blob con el algoritmo Zstandard.

Estas funciones son similares a zlib_compress y zlib_decompress. Para textos, Zstandard suele ser más efectivo que Zlib o GZip, mientras que la velocidad es comparable o mayor.

Funcionamiento

zstd_compress toma un blob y entrega el resultado comprimido por Zstandard como un blob. zstd_decompress realiza la operación inversa: toma un blob comprimido por Zstandard y devuelve el contenido original. Ambas funciones aceptan exactamente un parámetro.

Ejemplo: Comprimir

El siguiente ejemplo comprime un texto y muestra el resultado en base64:

select base64_encode(zstd_compress(ascii_to_blob('Este texto muestra cómo la función zstd_compress reconoce patrones repetidos y los comprime en un resultado pequeño.')))

Con el resultado:

KLUv/SB0rQIAQkcUFbClOee0JH6L7J1kWCbS5rCUuYxZBICjjQomdKKv+hHSWCs+pmb395p7s0GTmu3wlepxqgiaNNOY0AnBeA51uTBhUI/6SM1l6KtOn8avBwcCAA==

Ejemplo: Descomprimir

El siguiente ejemplo descomprime el blob del ejemplo anterior y devuelve el texto original:

select to_char(zstd_decompress('KLUv/SB0rQIAQkcUFbClOee0JH6L7J1kWCbS5rCUuYxZBICjjQomdKKv+hHSWCs+pmb395p7s0GTmu3wlepxqgiaNNOY0AnBeA51uTBhUI/6SM1l6KtOn8avBwcCAA=='))

Con el resultado:

Este texto muestra cómo la función zstd_compress reconoce patrones repetidos y los comprime en un resultado pequeño.

Disponibilidad

Las funciones SQL zstd_compress y zstd_decompress están disponibles a partir de la versión 27.0.