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); }
Один из вариантов - изменить его стандартный вывод (и / или стандартный вывод).