Le 2013-08-13 à 13:25, Kevin Grittner a écrit :
> François Beausoleil <francois@teksol.info> wrote:
>
>> What is the difference between both?
>
>> I had some processes stuck in IDLE in transaction after a machine
>> died (through pgbouncer), and cancel did not close the
>> connections, while terminate did kill the transactions.
>
>> The docs at
>> http://www.postgresql.org/docs/9.1/static/functions-admin.html#FUNCTIONS-ADMIN-SIGNAL-TABLE
>> [...]
>
> According to the docs you cite:
>
> pg_cancel_backend(): Cancel a backend's current query
> pg_terminate_backend(): Terminate a backend
>
> A connection which is idle or idle in transaction does not have a
> current query to cancel, but it has a backend process which can be
> terminated.
Oh, interesting! Now I understand better. Extracted like that, it's obvious what the difference is.
Thanks!
François