Tom Lane wrote:
> It might work to measure time since the start of the whole process, or
> until the timeout target, rather than accumulating adjustments to the
> "remains" count each time through. In other words something like
>
> at start: targettime = time() + specified-timeout
>
> each time we are about to wait: set select timeout to
> targettime - time().
>
> This bounds the error at 1 second which is probably good enough (you
> might want to add 1 to targettime to ensure the error is in the
> conservative direction of not timing out too soon).
>
I was working with this approach, when I noticed on *unmodified* cvs tip
(about a day old):
test=# set statement_timeout=1;
SET
test=# \dt
ERROR: Query was cancelled.
test=#
At: http://developer.postgresql.org/docs/postgres/runtime-config.html#LOGGING
the setting is described like this:
"STATEMENT_TIMEOUT (integer)
Aborts any statement that takes over the specified number of milliseconds. A
value of zero turns off the timer."
The proposed change will take this to a 1 second granularity anyway, so I was
thinking we should change the setting to have a UOM of seconds, and fix the
documentation. Any comments or concerns with regard to this plan?
Thanks,
Joe