1.9. libpq 控制函数

缺省时,libpq 在后端往 stderr 上打印“通知”信息和一些它自身生成的错误信息. 这个特性可以通过提供一个对信息进行某种加工的回叫函数来更改. 我们向这个回叫函数传递错误信息的文本(包括文本结尾的换行符), 和一个空(void)指针,该指针与传递给 PQsetNoticeProcessor 的完全一样. (如果需要,这个指针可以用于访问应用相关的状态.)缺省的通知处理器只是简单的

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

要使用特殊的通知处理器,在创建完新的PGconn对象后马上调用 PQsetNoticeProcessor

返回值是指向以前的通知处理器的指针。如果你提供了一个 NULL 做为回调指针, 那么不会发生任何动作,只是返回当前的指针。

一旦你设置了一个通知处理器, 你就应该预料到该函数可能在PGconn对象或 PGresult对象从开始存在时起就可能被调用. 当创建一个PGresult时,PGconn 的当前的通知指针被拷贝到 PGresult里提供给可能需要的过程, 如 PQgetvalue 使用.