Re: PQsetNoticeReceiver issues
От | L J Bayuk |
---|---|
Тема | Re: PQsetNoticeReceiver issues |
Дата | |
Msg-id | 200401190238.i0J2cUwB000262@mindspring.com обсуждение исходный текст |
Ответ на | Re: PQsetNoticeReceiver issues (Peter Eisentraut <peter_e@gmx.net>) |
Список | pgsql-interfaces |
Peter Eisentraut wrote: > > Jonathan Gardner wrote: > > I've run into a conundrum with the PQsetNoticeReceiver function call. > > How do you set it back to the original default? How do you call the > > appropriate PQnoticeProcessor as well? > > The documentation says: > > Each of these functions returns the previous notice receiver or > processor function pointer, and sets the new value. If you supply a > null function pointer, no action is taken, but the current pointer is > returned. Saving and restoring the previous noticeProcessor or noticeReceiver handler function works, unless they actually made use of the "arg" pass-through argument. For example, somewhere you have: PQsetNoticeProcessor(conn, myNoticeProc, &mydata); And somewhere else you want to temporarily override the noticeProcessor: prevNoticeProc = PQsetNoticeProcessor(conn, newNoticeProc,&newdata); /* ... Do something which makes a notice ... */ /* Restore previous notice processor */ PQsetNoticeProcessor(conn, prevNoticeProc, ????); /* Oops, lost the previous"arg". */ Not exactly a huge API hole, but nevertheless...
В списке pgsql-interfaces по дате отправления: