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
.