Re: compute_index_stats is missing a CHECK_FOR_INTERRUPTS

Поиск
Список
Период
Сортировка
От Jeff Janes
Тема Re: compute_index_stats is missing a CHECK_FOR_INTERRUPTS
Дата
Msg-id CAMkU=1yeNKcY8nw-wfPCOQmHMGaDD_msib1dVYq7ff4v5MugbA@mail.gmail.com
обсуждение исходный текст
Ответ на Re: compute_index_stats is missing a CHECK_FOR_INTERRUPTS  (Tom Lane <tgl@sss.pgh.pa.us>)
Ответы Re: compute_index_stats is missing a CHECK_FOR_INTERRUPTS  (Tom Lane <tgl@sss.pgh.pa.us>)
Список pgsql-hackers
On Sat, Mar 28, 2015 at 3:37 PM, Tom Lane <tgl@sss.pgh.pa.us> wrote:
Jeff Janes <jeff.janes@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
Вложения

В списке pgsql-hackers по дате отправления:

Предыдущее
От: Michael Paquier
Дата:
Сообщение: Re: Rounding to even for numeric data type
Следующее
От: "David G. Johnston"
Дата:
Сообщение: Re: Rounding to even for numeric data type