Sponsor Banner Advertisment PostgreSQL Banner PostgreSQL Banner Project Banner Advertisment
  Download · Mirrors · Lists · Users · Developers · Docs · Search
Search this document set:

1.9. libpq Control Functions

  • 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.

 Top Download · Mirrors · Mailing Lists · User's Lounge · Developer's Corner · Docs · Search · Store