On Sat, Mar 28, 2015 at 3:37 PM, Tom Lane <t...@sss.pgh.pa.us> wrote:

> Jeff Janes <jeff.ja...@gmail.com> writes:
> > Analyze on functional indexes cannot be interrupted very easily.
> > ...
> > The attached patch fixes it, but don't vouch for its safety.
>
> Hm.  The other per-sample-row loops in analyze.c use vacuum_delay_point()
> rather than CHECK_FOR_INTERRUPTS() directly.  Ordinarily that wouldn't
> make much difference here, but maybe a slow index function might be
> incurring I/O?
>

That isn't the case for me (and if it were, they wouldn't be going through
the buffer manager anyway and so would not trigger delay criteria), but
that seems like a valid concern in general.  It also explains why I
couldn't find CHECK_FOR_INTERRUPTS in other loops of that file, because I
was looking for the wrong spelling.

Adding a vacuum_delay_point does solve the immediately observed problem,
both the toy one and the more realistic one.

Thanks,

Jeff

Attachment: compute_index_stats_vacdelay.patch
Description: Binary data

-- 
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

Reply via email to