Назад | Перейти на главную страницу

как предотвратить вывод журнала из хранимой процедуры PostgreSQL?

Я запускаю несколько сценариев PostgreSQL, которые раньше создавали чрезмерный вывод журнала. Мне удалось уменьшить большую часть вывода до приемлемого количества, передав --quiet в качестве параметра для клиента командной строки psql и добавив SET client_min_messages='warning'; к началу моих сценариев SQL.

Это отлично работает для большинства основных операторов, таких как SELECT, INSERT, UPDATE и т.д.) Однако, когда я вызываю сохраненную функцию в сценарии, например, SELECT my_func(my_args);, вывод журнала по-прежнему похож на

my_func

(здесь опущено длинное число со многими '-', потому что SF думает, что это заголовок)

(1 row)

Вывод бесполезен; это только заставляет меня долго прокручивать назад после запуска скрипта, а также значительно затрудняет обнаружение любых соответствующих ошибок.

Как мне от этого избавиться?

Либо

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

или

SELECT my_func(my_args) \g /dev/null

Поскольку кажется, что вы запускаете скрипт из psql, вы можете сделать

copy ( select my_func(my_args) ) to stdout;

или даже

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

Вы можете указать "-A -t" в командной строке psql, чтобы глобально уменьшить вывод всех операторов запроса в одну строку.