Evan Martin wrote:
> I'm using PostgreSQL 9.2.8 via Npgsql 2.2.0. When a query times out it
> returns error 57014 with the message "canceling statement due to
> statement timeout". I use the message to detect the timeout and re-try
> in some cases. It seems a bit wrong to rely on the message, though - I
> presume the message text is subject to change between releases. Is there
> a better way? I cannot just rely on code 57014, because the same code is
> used when the user cancels the query (eg. from pgAdmin), in which case I
> don't want to re-try.
I don't think that there is a good way to disambiguate that, and I agree
that parsing the error message text is not a very robust solution.
Is it really necessary to bother with the case that a statement is
explicitly canceled? That should not happen too often, and if you have
statement_timeout set to non-zero, queries should not "hang" indefinitely
long anyway, right?
Yours
Laurenz Albe