Craig A. James wrote:
>
>
> I'm back to my original question: How do you kill a runaway query
> without bringing down the whole database? Is there really no answer to
> this?
>
As others have mentioned, pg_cancel_backend(pid) will stop query
execution by backend process id 'pid'.
While this is often enough, if you actually want to disconnect a backend
process then there is nothing to let you do this remotely. I recently
did a patch for Bizgres that just implements the
pg_terminate_backend(pid) function (currently #ifdef'ed out of the
codebase) as a contrib so it can be easily installed. See
http://pgfoundry.org/pipermail/bizgres-general/2006-May/000484.html
If you want to try it out, please read the README (it discusses possible
dangers associated with sending SIGTERM to backends). And I would
certainly be interested in hearing what level of success (or otherwise)
you have with it!
Best wishes
Mark