"Magnus Hagander" <mha@sollentuna.net> writes:
>>> In this case, SIGINT (query cancel) will not help, because
>>> all locks held by the transaction will still be held.
>>
>> Wrong.
> Really?
[ experiments... ] My apologies --- you are correct about the present
behavior. If a SIGINT arrives while waiting for client input, it's just
dropped on the floor. The locks *will* be dropped if the SIGINT arrives
during actual query processing.
It strikes me that this is incorrect behavior, at least for the case
where the client has a transaction block open. It'd be better to define
the interrupt as "transaction cancel".
regards, tom lane