Tentei criar um imutável CONCAT()
. Para isso, tentei usar as seguintes consultas SQL.
Opção 1
CREATE FUNCTION immutable_concat(VARIADIC text[])
RETURNS text
LANGUAGE internal IMMUTABLE PARALLEL SAFE AS 'text_concat';
Opção 2
CREATE FUNCTION immutable_concat(VARIADIC text[])
RETURNS text
LANGUAGE sql IMMUTABLE PARALLEL SAFE
RETURN array_to_string($1, '');
Como resultado, obtenho uma função que funciona bem com texto. Mas como posso criar uma função similar que pegue um array contendo não apenas elementos de texto?
CONCAT()
nos permite executar a seguinte consulta SQL:
SELECT concat(CURRENT_DATE, true, false, 1, 'text');
Como resultado, obteremos a seguinte string:
2025-03-07tf1text
Idealmente, eu gostaria de criar uma função que pudesse receber diferentes elementos. Quero dizer o seguinte:
SELECT immutable_concat(CURRENT_DATE, true, false, 1, 'text');