PQsetNoticeProcessor
Control reporting of notice and warning messages generated by libpq.
typedef void (*PQnoticeProcessor) (void *arg, const char *message);
PQnoticeProcessor
PQsetNoticeProcessor(PGconn *conn,
PQnoticeProcessor proc,
void *arg);
By default, libpq prints notice
messages from the backend on stderr,
as well as a few error messages that it generates by itself.
This behavior can be overridden by supplying a callback function that
does something else with the messages. The callback function is passed
the text of the error message (which includes a trailing newline), plus
a void pointer that is the same one passed to
PQsetNoticeProcessor.
(This pointer can be used to access application-specific state if needed.)
The default notice processor is simply
static void
defaultNoticeProcessor(void * arg, const char * message)
{
fprintf(stderr, "%s", message);
}
To use a special notice processor, call
PQsetNoticeProcessor just after
creation of a new PGconn object.
The return value is the pointer to the previous notice processor.
If you supply a callback function pointer of NULL, no action is taken,
but the current pointer is returned.
Once you have set a notice processor, you should expect that that function
could be called as long as either the PGconn object or PGresult objects
made from it exist. At creation of a PGresult, the PGconn's current
notice processor pointer is copied into the PGresult for possible use by
routines like PQgetvalue.