Re: assertion failure at cost_memoize_rescan()

Поиск
Список
Период
Сортировка
От Richard Guo
Тема Re: assertion failure at cost_memoize_rescan()
Дата
Msg-id CAMbWs4-TR63+cq8PB1ZuBP7ND39SxVO6uHAHwvfb+Xn-7ieU-w@mail.gmail.com
обсуждение исходный текст
Ответ на Re: assertion failure at cost_memoize_rescan()  (David Rowley <dgrowleyml@gmail.com>)
Ответы Re: assertion failure at cost_memoize_rescan()
Список pgsql-hackers
On Tue, Jun 18, 2024 at 10:53 AM David Rowley <dgrowleyml@gmail.com> wrote:
> Out of the places I saw, it seems we do tend to code things so that we
> don't assume the value has been clamped.  E.g.
> adjust_limit_rows_costs() does if (*rows < 1) *rows = 1;

Agreed.  In costsize.c I saw a few instances where we have

    /* Protect some assumptions below that rowcounts aren't zero */
    if (inner_path_rows <= 0)
        inner_path_rows = 1;

> I think the best solution is to apply the attached.  I didn't test,
> but it should fix the issue you reported and also ensure that
> MemoizePath.calls is never zero, which would also cause issues in the
> hit_ratio calculation in cost_memoize_rescan().

+1.

Thanks
Richard



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

Предыдущее
От: Nathan Bossart
Дата:
Сообщение: Re: New GUC autovacuum_max_threshold ?
Следующее
От: Amit Kapila
Дата:
Сообщение: Re: State of pg_createsubscriber