como evitar a saída de log do procedimento armazenado do PostgreSQL?

1

Estou executando vários scripts do PostgreSQL que costumavam produzir uma saída de log excessiva. Consegui reduzir a maior parte da saída para um valor aceitável passando --quiet como parâmetro para o cliente de linha de comando do psql e adicionando SET client_min_messages='warning'; ao início dos meus scripts SQL.

Isso funciona bem para a maioria das instruções básicas como SELECT, INSERT, UPDATE, etc. No entanto, quando eu chamo uma função armazenada em um script usando, por exemplo, SELECT my_func(my_args); , ainda há saída de log semelhante a

my_func

(omitiu um longo com muitos '-' aqui porque o SF acha que é uma manchete)

(1 row)

A saída é inútil; isso só me faz ter que voltar um longo caminho depois que o script é executado e também torna muito mais difícil do que necessário detectar qualquer saída de erro relevante.

Como posso me livrar disso?

    
por ssc 13.01.2011 / 04:43

2 respostas

1

Já que você parece estar rodando o script do psql, você poderia fazer

copy ( select my_func(my_args) ) to stdout;

ou até mesmo

\copy ( select my_func(my_args) ) to /dev/null

Você poderia especificar "-A -t" na linha de comando do psql para aquecer globalmente a saída de todas as instruções de consulta para uma única linha.

    
por 13.01.2011 / 04:54
1

Ou

\o /dev/null
SELECT my_func(my_args);

ou

SELECT my_func(my_args) \g /dev/null
    
por 13.01.2011 / 08:24