Re: Use pg_nextpower2_* in a few more places

Поиск
Список
Период
Сортировка
От Zhihong Yu
Тема Re: Use pg_nextpower2_* in a few more places
Дата
Msg-id CALNJ-vTVFvKw0M-aMTaMmwY59amWG9ukZDqKmQDYVJZOfrysBg@mail.gmail.com
обсуждение исходный текст
Ответ на Re: Use pg_nextpower2_* in a few more places  (David Rowley <dgrowleyml@gmail.com>)
Список pgsql-hackers


On Sat, Jun 12, 2021 at 7:35 AM David Rowley <dgrowleyml@gmail.com> wrote:
On Sun, 13 Jun 2021 at 02:08, Zhihong Yu <zyu@yugabyte.com> wrote:
> Maybe add an assertion after the assignment, that newalloc >=  LWLockTrancheNamesAllocated.

I don't quite see how it would be possible for that to ever fail.  I
could understand adding an Assert() if some logic was outside the
function and we wanted to catch something outside of the function's
control, but that's not the case here.  All the logic is within a few
lines.

Maybe it would help if we look at the if condition that this code
executes under:

/* If necessary, create or enlarge array. */
if (tranche_id >= LWLockTrancheNamesAllocated)

So since we're doing:

+       newalloc = pg_nextpower2_32(Max(8, tranche_id + 1));

assuming pg_nextpower2_32 does not give us something incorrect, then I
don't quite see why Assert(newalloc >=  LWLockTrancheNamesAllocated)
could ever fail.

Can you explain why you think it might?

David
Hi,
Interesting, the quoted if () line was not shown in the patch.
Pardon my not checking this line.

In that case, the assertion is not needed.

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

Предыдущее
От: David Rowley
Дата:
Сообщение: Re: Use pg_nextpower2_* in a few more places
Следующее
От: David Rowley
Дата:
Сообщение: Add proper planner support for ORDER BY / DISTINCT aggregates