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 ---------------------------(end of broadcast)--------------------------- TIP 6: explain analyze is your friend