A partir de la versión V3.1, Hologres es compatible con las funciones de Presto mediante la extensión hg_presto_funcs. Todas las funciones de este tema se ejecutan en el motor de ejecución Velox.
Requisitos previos
Antes de empezar, asegúrese de contar con lo siguiente:
Una instancia de Hologres que ejecute la versión V3.1 o posterior.
Acceso de Superuser a la base de datos de destino.
Instalar la extensión
Ejecute la siguiente instrucción como Superuser. Ejecútela una vez por cada base de datos; si crea una base de datos nueva, vuelva a ejecutarla.
CREATE EXTENSION hg_presto_funcs;
La extensión se instala únicamente en el esquema hg_presto_funcs. No es posible especificar un esquema distinto.
Llamar funciones de Presto
Todas las funciones de Presto residen en el esquema hg_presto_funcs. Para llamarlas, agregue el prefijo al nombre de cada función o establezca la ruta de búsqueda una vez por sesión:
-- Option 1: prefix each call
SELECT hg_presto_funcs.array_cum_sum(b) FROM public.presto_test;
-- Option 2: set search path for the session
SET search_path = hg_presto_funcs;
SELECT array_cum_sum(b) FROM public.presto_test;
Estas funciones no admiten parámetros de entrada constantes. Todos los ejemplos de este tema usan referencias a columnas de la tabla de muestra que se muestra a continuación.
Tabla de muestra
Los ejemplos de este tema utilizan la siguiente tabla:
CREATE TABLE public.presto_test(
a INT, b INT[], c TEXT, d TEXT, e TEXT, f TEXT, g TEXT,
h TEXT, i TEXT, j TEXT, k TEXT, l TEXT, m TEXT, n TEXT,
o TEXT, p TEXT, r TEXT, s TEXT, t FLOAT, u TEXT
);
INSERT INTO public.presto_test
VALUES (
3, ARRAY[1, 2, 3, 2], 'A', '10010', 'SGVsbG8gV29ybGQh',
'\x00000001', '\x0000000000000001', '48656C6C6F',
'\x40490FD0', '\x400921FB54442D18', '\x48656C6C6F',
'"dwdw"', '[1,2,3,4,5,6]', '{"x": {"a": 1, "b": 2}}',
'café', 'apple,banana,cherry', 'ABCDA', 'running',
3.1415926, '[1.0,2.0]'
);
Funciones compatibles
Las siguientes tablas enlistan todas las funciones compatibles, agrupadas por categoría. Cada entrada muestra la firma de la función junto con los tipos de parámetro y de retorno.
Funciones de arreglo
|
Firma de la función |
Descripción |
Ejemplo |
Resultado |
|
|
Devuelve un arreglo donde la posición n contiene la suma de los primeros n elementos. Devuelve null en la posición n si alguno de los primeros n elementos es null. |
|
|
|
|
Devuelve true si el arreglo contiene elementos duplicados. |
|
|
|
|
Concatena los elementos del arreglo en una cadena mediante el separador indicado. |
|
|
|
|
Elimina los valores NULL de un arreglo. |
|
|
|
|
Elimina n elementos del final de un arreglo. |
|
|
Funciones bit a bit
|
Firma de la función |
Descripción |
Ejemplo |
Resultado |
|
|
Cuenta los bits activos (peso de Hamming) del valor dentro del ancho de bits especificado. |
|
|
|
|
Devuelve la operación AND bit a bit de dos enteros. |
|
|
|
|
Devuelve la operación OR bit a bit de dos enteros. |
|
|
|
|
Devuelve la operación XOR bit a bit de dos enteros. |
|
|
|
|
Devuelve la operación NOT bit a bit de un entero. |
|
|
|
|
Desplaza el valor n bits hacia la izquierda. |
|
|
|
|
Desplaza el valor n bits hacia la izquierda dentro del ancho de bits especificado. |
|
|
|
|
Desplaza el valor n bits hacia la derecha (desplazamiento lógico con relleno de ceros). |
|
|
|
|
Desplaza el valor n bits hacia la derecha (lógico, con relleno de ceros) dentro del ancho de bits especificado. |
|
|
|
|
Desplaza el valor n bits hacia la derecha y conserva el bit de signo (desplazamiento aritmético a la derecha). |
|
|
|
|
Alias de |
|
|
Las funcionesbitwise_right_shiftybitwise_logical_shift_rightrellenan con ceros los bits liberados. Por su parte,bitwise_arithmetic_shift_rightybitwise_right_shift_arithmeticlos rellenan con el bit de signo, por lo que resultan equivalentes para enteros negativos.
Funciones binarias y de hash
Para generar hashes de uso general, utilicexxhash64, ya que es mucho más rápida quecrc32yspooky_hash_v2_*, además de producir hashes de mejor calidad. Use las funcioneshmac_*cuando necesite códigos de autenticación con clave. Limite el uso decrc32a los casos donde requiera compatibilidad con sistemas que ya dependen de ella.
|
Firma de la función |
Descripción |
Ejemplo |
Resultado |
|
|
Calcula la suma de comprobación CRC32 de datos binarios. |
|
|
|
|
Calcula el hash xxHash64 de datos binarios y devuelve un resultado binario de 64 bits. |
|
|
|
|
Calcula el hash SpookyHashV2 de 32 bits de datos binarios. |
|
|
|
|
Calcula el hash SpookyHashV2 de 64 bits de datos binarios. |
|
|
|
|
Calcula un HMAC con MD5 y la clave indicada. |
|
|
|
|
Calcula un HMAC con SHA-1 y la clave indicada. |
|
|
|
|
Calcula un HMAC con SHA-256 y la clave indicada. |
|
|
|
|
Calcula un HMAC con SHA-512 y la clave indicada. |
|
|
|
|
Calcula el hash SHA-1 de datos binarios y lo devuelve como una cadena hexadecimal. |
|
|
|
|
Decodifica una cadena codificada en Base64 estándar a formato binario. |
|
|
|
|
Codifica datos binarios como una cadena Base64 estándar. |
|
|
|
|
Decodifica una cadena codificada en Base64 segura para URL a formato binario. |
|
|
|
|
Codifica datos binarios como una cadena Base64 segura para URL. |
|
|
|
|
Decodifica una cadena hexadecimal a formato binario. |
|
|
|
|
Decodifica un valor binario big-endian de 32 bits en complemento a dos y lo convierte a bigint. |
|
|
|
|
Codifica un entero como un valor binario big-endian de 32 bits en complemento a dos. |
|
|
|
|
Decodifica un valor binario big-endian de 64 bits en complemento a dos y lo convierte a bigint. |
|
|
|
|
Codifica un entero como un valor binario big-endian de 64 bits en complemento a dos. |
|
|
|
|
Decodifica un valor binario IEEE 754 big-endian de 32 bits a un número de punto flotante de precisión simple. |
|
|
|
|
Codifica un número de punto flotante de precisión simple como un valor binario IEEE 754 big-endian de 32 bits. |
|
|
|
|
Decodifica un valor binario IEEE 754 big-endian de 64 bits a un número de punto flotante de precisión doble. |
|
|
|
|
Codifica un número de punto flotante de precisión doble como un valor binario IEEE 754 big-endian de 64 bits. |
|
|
|
|
Interpreta una cadena como un número en la base indicada y devuelve su valor decimal. |
|
|
|
|
Convierte un entero a su representación de cadena en la base indicada. |
|
|
Funciones matemáticas y estadísticas
Matemáticas generales
|
Firma de la función |
Descripción |
Ejemplo |
Resultado |
|
|
Limita un valor al rango [min, max]. Devuelve el valor si está dentro del rango o el límite más cercano en caso contrario. |
|
|
|
|
Devuelve el coseno hiperbólico del valor. |
|
|
|
|
Devuelve la tangente hiperbólica del valor. |
|
|
|
|
Devuelve el logaritmo en base 2 del valor. |
|
|
|
|
Devuelve el logaritmo en base 10 del valor. |
|
|
|
|
Devuelve la diferencia entre dos números (x − y). |
|
|
|
|
Devuelve la negación del valor. |
|
|
|
|
Trunca el valor a n decimales. |
|
|
|
|
Devuelve true si el valor es finito. |
|
|
|
|
Devuelve true si el valor es infinito. |
|
|
|
|
Devuelve true si el valor no es un número (NaN). |
|
|
|
|
Devuelve un número aleatorio de tipo double criptográficamente seguro en el intervalo [0, 1). |
|
|
|
|
Alias de |
|
|
Funciones de distribución acumulada (CDF)
|
Firma de la función |
Descripción |
Ejemplo |
Resultado |
|
|
Devuelve la función de distribución acumulada (CDF) de la distribución beta con los parámetros de forma indicados. |
|
|
|
|
Devuelve la CDF de la distribución binomial. |
|
|
|
|
Devuelve la CDF de la distribución de Cauchy. |
|
|
|
|
Devuelve la CDF de la distribución ji cuadrado. |
|
|
|
|
Devuelve la CDF de la distribución F. |
|
|
|
|
Devuelve la CDF de la distribución gamma. |
|
|
|
|
Devuelve la CDF de la distribución de Laplace. |
|
|
|
|
Devuelve la CDF de la distribución normal con la media y la desviación estándar indicadas. |
|
|
|
|
Devuelve la CDF de la distribución de Poisson. |
|
|
|
|
Devuelve la CDF de la distribución de Weibull. |
|
|
|
|
Devuelve la CDF inversa de la distribución beta. |
|
|
|
|
Devuelve la CDF inversa de la distribución de Cauchy. |
|
|
|
|
Devuelve la CDF inversa de la distribución de Laplace. |
|
|
|
|
Devuelve la CDF inversa de la distribución normal con la media y la desviación estándar indicadas. |
|
|
|
|
Devuelve la CDF inversa de la distribución de Weibull. |
|
|
|
|
Devuelve el límite inferior del intervalo de confianza de Wilson para un ensayo de Bernoulli con el nivel de confianza z indicado. |
|
|
|
|
Devuelve el límite superior del intervalo de confianza de Wilson para un ensayo de Bernoulli con el nivel de confianza z indicado. |
|
|
Funciones de cadenas y Unicode
Estas funciones operan sobre puntos de código Unicode, no sobre caracteres visibles para el usuario (clústeres de grafemas). Las cadenas de entrada deben tener una codificación UTF-8 válida.
|
Firma de la función |
Descripción |
Ejemplo |
Resultado |
|
|
Devuelve el punto de código Unicode de un solo carácter. |
|
|
|
|
Devuelve true si la cadena termina con el sufijo indicado. |
|
|
|
|
Devuelve la distancia de Hamming entre dos cadenas, es decir, la cantidad de posiciones donde difieren los caracteres. |
|
|
|
|
Devuelve la distancia de Levenshtein (distancia de edición) entre dos cadenas. |
|
|
|
|
Transforma una cadena a su forma normalizada NFC. |
|
|
|
|
Divide una cadena mediante una expresión regular y devuelve las partes como un arreglo. |
|
|
|
|
Devuelve la posición de la última aparición de una subcadena dentro de una cadena. |
|
|
|
|
Elimina las apariciones de los caracteres especificados en ambos extremos de la cadena. |
|
|
|
|
Devuelve la raíz de una palabra en el idioma especificado. Pase |
|
|
Funciones de comparación
|
Firma de la función |
Descripción |
Ejemplo |
Resultado |
|
|
Devuelve true si los dos valores son iguales. |
|
|
|
|
Devuelve true si los dos valores no son iguales. |
|
|
|
|
Devuelve true si x > y. |
|
|
|
|
Devuelve true si x ≥ y. |
|
|
|
|
Devuelve true si x < y. |
|
|
|
|
Devuelve true si x ≤ y. |
|
|
Funciones JSON
|
Firma de la función |
Descripción |
Ejemplo |
Resultado |
|
|
Devuelve true si el valor es un escalar JSON (no un objeto ni un arreglo). |
|
|
|
|
Devuelve true si el arreglo JSON contiene el valor indicado. |
|
|
|
|
Extrae un valor escalar de una cadena JSON en la ruta JSONPath indicada. |
|
|
|
|
Devuelve la cantidad de elementos del objeto o arreglo JSON ubicado en la ruta JSONPath indicada. |
|
|
Funciones de URL
La extracción de URL sigue la sintaxis URI definida en la RFC 2396:
[protocol:][//host[:port]][path][?query][#fragment]
Los componentes extraídos no incluyen los separadores de la sintaxis URI, como : o ?.
|
Firma de la función |
Descripción |
Ejemplo |
Resultado |
|
|
Decodifica una cadena codificada para URL. |
|
|
|
|
Codifica una cadena para URL mediante el escape de caracteres especiales. |
|
|
|
|
Extrae el identificador de fragmento de una URL. |
|
|
|
|
Extrae el host de una URL. |
|
|
|
|
Extrae el valor del primer parámetro de consulta con el nombre indicado. |
|
|
|
|
Extrae la ruta de una URL. |
|
|
|
|
Extrae el número de puerto de una URL. |
|
|
|
|
Extrae el protocolo de una URL. |
|
|
|
|
Extrae la cadena de consulta de una URL. |
|
|