Re: pl/tcl function to detect when a request has been canceled

From: Andres Freund <andres(at)anarazel(dot)de>
To: Peter Da Silva <peter(dot)dasilva(at)flightaware(dot)com>
Cc: PostgreSQL-development <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: pl/tcl function to detect when a request has been canceled
Date: 2018-06-08 18:12:53
Message-ID: 20180608181253.43sn7qw7zanv4vkb@alap3.anarazel.de
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

Hi,

On 2018-06-08 18:08:14 +0000, Peter Da Silva wrote:
> We have occasional need to run very long-running pl/tcl scripts. If
> the request is cancelled (say, by the user hitting ^c in psql) the
> server-side script still runs to completion.

>
> There is a C-level variable QueryCancelPending that can be used to
> monitor for this case, but it’s not visible at the pl/tcl scripting
> level. This is a simple new command that returns the current state of
> this variable to Tcl.
>
> We are currently maintaining a fork of pl/tcl at
> https://github.com/flightaware/pltcl that has this mod, but it would
> be useful to get the functionality into mainline PostgreSQL.

I'm not terribly opposed to this, but I wonder if the much more
pragmatic solution is to just occasionally call a database function that
checks this? You could just run SELECT 1 occasionally :/

- Andres

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Alvaro Herrera 2018-06-08 18:35:56 Re: Needless additional partition check in INSERT?
Previous Message Tom Lane 2018-06-08 18:10:09 Re: Performance regression with PostgreSQL 11 and partitioning