pg_cancel_backend() and pg_terminate_backend() do different things.
From the documentation:
pg_cancel_backend(pid int) Cancel a backend's current query
pg_terminate_backend(pid int) Terminate a backend
On 4/19/2010 11:07 PM, Scott Marlowe wrote:
> On Mon, Apr 19, 2010 at 8:10 PM, Tom Lane<tgl@sss.pgh.pa.us> wrote:
>> Josh Kupershmidt<schmiddy@gmail.com> writes:
>>> pg_terminate_backend() is just a SQL wrapper around:
>>> kill -SIGTERM [backend PID]
>>
>>> For versions before 8.4: if you can SSH in to the server, run the
>>> above on the PID of the backend your user is connected to, and that
>>> should terminate their connection.
>>
>> The reason the function isn't there before 8.4 is that that's not
>> promised to work before 8.4 ... most of the time it will work, but
>> once in awhile you could get nasty side-effects.
>
> So, pg_cancel_backend(pid) is the 8.3 version, that may or may not
> always work then, right?
>