On Sat, Jul 11, 2015 at 8:53 AM, Eduardo Piombino <drak...@gmail.com> wrote:
> > I've read that that a query still running after a disconnection is > normal, since the server won't realize about this disconnection until > it needs to send some data back to the client, which is ok and > understandable. But my question is, what happens when the query > finishes? FYI, the query was an update, in what would be autocommit > mode (no explicit transaction was open). Will the changes be commited? > or rollbacked because it will detect the disconnection later on? If the autocommit is on and the transaction is not with-in BEING-END block, then, the changes should be committed. If the query/process detects the disconnection later on, it simply hangs which needs to be killed manually at the database end. > In > other words, is it worth waiting for this query to finish (it has been > running for almost 7 hours now), or should I cancel it because it will > irremediably be rolled back when the server finds theres no one on the > other end of the tcp connection? > Generally, when the application session is killed abnormally, the query still continues at the database end. If you want process not to continue anymore at the database-end, then, you need to manually kill it at the database end too using pg_cancel_backend() or pg_terminate_backend(). Regards, Venkata Balaji N Fujitsu Australia