Re: Problem Using PQcancel in a Synchronous Query

From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: "Eric Simon" <esimon(at)theiqgroup(dot)com>
Cc: pgsql-hackers(at)postgresql(dot)org
Subject: Re: Problem Using PQcancel in a Synchronous Query
Date: 2010-08-24 00:06:25
Message-ID: 15968.1282608385@sss.pgh.pa.us
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

"Eric Simon" <esimon(at)theiqgroup(dot)com> writes:
> Now that I've established some context, here's where I'm at: I've written
> $sth->cancel() for DBD::Pg using PQcancel(), and it works (it returns the
> status 57014: QUERY CANCELED). The problem is that the $sth->execute call
> (which resides between the two alarm() calls above) doesn't continue on, but
> rather stays frozen, waiting for data. Does PQcancel not communicate back
> to the execute statement so that it unblocks?

Um ... PQcancel returns no such thing, only true or false. I'm guessing
you've coded your signal handler in such a way that it eats the query
result message intended for the mainline execute code. You should not
be calling anything except PQcancel itself in the signal handler.

regards, tom lane

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Tom Lane 2010-08-24 00:11:15 Re: Unable to drop role
Previous Message Tom Lane 2010-08-23 23:44:43 Re: WIP: extensible enums