Tom, That was it! My implementation of cancel() was swallowing the result message. Thanks so much, I've got it working now.
-- Eric Simon The IQ Group, Inc. -----Original Message----- From: pgsql-hackers-ow...@postgresql.org [mailto:pgsql-hackers-ow...@postgresql.org] On Behalf Of Tom Lane Sent: Monday, August 23, 2010 7:06 PM To: Eric Simon Cc: pgsql-hackers@postgresql.org Subject: Re: [HACKERS] Problem Using PQcancel in a Synchronous Query "Eric Simon" <esi...@theiqgroup.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 -- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers -- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers