On Fri, Jan 13, 2006 at 02:59:47PM -0700, Michael Fuhr wrote:
> On Fri, Jan 13, 2006 at 03:40:48PM -0600, Jim C. Nasby wrote:
> > It strikes me that if we had a way to abort a statement on another
> > backend, you could abort anything that's been waiting more than x
> > seconds for a lock via an external process watching pg_locks. Of course,
> > that would be much more cumbersom than SET LOCK MODE TO WAIT n...
>
> There's pg_cancel_backend(), but a mechanism like you describe seems
> subject to race conditions: by the time you decide to cancel a query
> and send the signal, the offending query might have completed and
> you end up cancelling some subsequent query that just started.
Yeah, to make it useable you'd probably need to do something like expose
cid via pg_locks and have a pg_cancel_backend(cid) that would only
cancel that command.
--
Jim C. Nasby, Sr. Engineering Consultant jnasby@pervasive.com
Pervasive Software http://pervasive.com work: 512-231-6117
vcard: http://jim.nasby.net/pervasive.vcf cell: 512-569-9461