| The PostgreSQL 9.0 Reference Manual - Volume 2 - Programming Guide
by The PostgreSQL Global Development Group Paperback (6"x9"), 478 pages ISBN 9781906966065 RRP £14.95 ($19.95) Sales of this book support the PostgreSQL project! Get a printed copy>>> |
1.12 Event System
libpq's event system is designed to notify
registered event handlers about interesting
libpq events, such as the creation or
destruction of PGconn and
PGresult objects. A principal use case is that
this allows applications to associate their own data with a
PGconn or PGresult
and ensure that that data is freed at an appropriate time.
Each registered event handler is associated with two pieces of data,
known to libpq only as opaque void *
pointers. There is a passthrough pointer that is provided
by the application when the event handler is registered with a
PGconn. The passthrough pointer never changes for the
life of the PGconn and all PGresults
generated from it; so if used, it must point to long-lived data.
In addition there is an instance data pointer, which starts
out NULL in every PGconn and PGresult.
This pointer can be manipulated using the
PQinstanceData,
PQsetInstanceData,
PQresultInstanceData and
PQsetResultInstanceData functions. Note that
unlike the passthrough pointer, instance data of a PGconn
is not automatically inherited by PGresults created from
it. libpq does not know what passthrough
and instance data pointers point to (if anything) and will never attempt
to free them--that is the responsibility of the event handler.
| ISBN 9781906966065 | The PostgreSQL 9.0 Reference Manual - Volume 2 - Programming Guide | See the print edition |