Eu tentei isso, mas não funciona:
CREATE OR REPLACE FUNCTION answer()
RETURNS bigint
LANGUAGE sql AS
$$
SELECT 42
$$;
SET session.answer = select answer();
Eu tentei isso, mas não funciona:
CREATE OR REPLACE FUNCTION answer()
RETURNS bigint
LANGUAGE sql AS
$$
SELECT 42
$$;
SET session.answer = select answer();
O
SET
comando aceita apenas constantes. O manual:Não aceita parâmetros nem pode avaliar subconsultas. A substituição de parâmetros funciona apenas para comandos DML básicos (
SELECT
,INSERT
,UPDATE
,DELETE
,MERGE
).A função
set_config()
fornece funcionalidade equivalente;Observe o elenco para
::text
. Os parâmetros do Postgres armazenam apenas texto.Relacionado: