Eu quero ler a opção de configuração como TEXT, mas a instrução SHOW é estranha porque não retorna nenhuma linha.
create or replace function get_param()
returns text as $$
begin
return query show custom.param; -- does not work, because show does not return setof
end;
$$ language plpgsql;
set custom.param = 'custom value';
select get_param() as param;
Existe alguma outra maneira de fazer isso?
Na verdade, encontrei a resposta em uma pergunta feita por mim :) definir sessão - variável personalizada para armazenar o ID do usuário :
SELECT current_setting('custom.param');
Além disso
current_setting()
,SHOW
é viável neste contexto, é apenas uma questão de retornar um escalar ao invés de um conjunto. Sua função ligeiramente corrigida para funcionar seria:No entanto, este formulário não parece oferecer nenhuma vantagem sobre chamar diretamente
current_setting()
, então provavelmente não vale a pena criar tais funções.