[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