[fpc-pascal] PostgreSQL notifications broken
Michael Van Canneyt
michael at freepascal.org
Fri Sep 11 12:19:43 CEST 2015
On Fri, 11 Sep 2015, Mark Morgan Lloyd wrote:
> PostgreSQL has a useful feature where application programs can send
> notifications to each other, this tends to be much "cheaper" than
> periodically polling a table for changes.
>
> I've had this working on various CPUs and OSes in a number of programs since
> at least 2.2.4, but it appears to have been broken at some point between
> 2.6.0 and 2.6.4 with problems persisting through to 3.0.0-rc1 and trunk. The
> specific fragment of code that's failing looks like this:
>
> result := badPoll;
> if PQStatus(DbTF.PQConnection1.Handle) <> CONNECTION_OK then
> exit;
> pqConsumeResult := PQconsumeInput(DbTF.PQConnection1.Handle);
> if PQStatus(DbTF.PQConnection1.Handle) <> CONNECTION_OK then
> exit;
If DbTF.PQConnection1 is of type TPQConnection then I think
this is your problem. The low-level handle has been moved to
the transaction. DbTF.PQConnection1.Handle is then a stub, of no value.
Michael.
More information about the fpc-pascal
mailing list