libpq выводит уведомления в терминал

Я пишу библиотеку, которая оборачивает libpq в C. Когда я выполняю запрос как DROP SCHEMA IF EXISTS bob, а также bob не существует, выходы libpq

"NOTICE:  schema "bob" does not exist, skipping"

в мой терминал, но потом удается. Точно так же, если я создаю таблицу с id serial primary key он печатает уведомление, что автоматически генерирует последовательность.

Как мне остановить его печать в терминале? В моей библиотеке есть функции для получения такой информации, если она нужна пользователю, но она не должна просто выводиться в терминал, как этот.

Я не видел ничего в документации для PQexecParams(), или же PQconnectdb() и т.п.

2 ответа

Решение

Смотрите libpq - обработка уведомлений в руководстве. Вам нужно предоставить процессор уведомлений, чтобы заменить процессор по умолчанию.

Процессор уведомлений по умолчанию просто:

static void
defaultNoticeProcessor(void *arg, const char *message)
{
    fprintf(stderr, "%s", message);
}

Один из вариантов - изменить его стандартный вывод (и / или стандартный вывод).

Другие вопросы по тегам