Quando um usuário aborta sua solicitação no meio do processo, às vezes cancelo quaisquer instruções somente leitura que suportem qualquer operação somente leitura que ele estava tentando no momento - sigo esse padrão com moderação - reservado apenas para consultas caras que também ocorrem durante períodos de alto tráfego portanto, tendo o potencial de causar contenção.
No PG, cancelo consultas assim:
SELECT pg_cancel_backend(pid)
;
Quando faço isso, o PG obedece, mas registra isto: Error: canceling statement due to user request
.
Entendo por que seu irmão pg_terminate_backend
se classificaria como um erro; é uma última tentativa potencialmente perigosa que mata o processo à força.
Mas não entendo por que o cancelamento de uma consulta normal é tratado da mesma forma. Afinal, solicitei o cancelamento, então por que ele foi registrado com um nível de severidade tão alto?