Re: Fix an incorrect assertion condition in mdwritev().

Поиск
Список
Период
Сортировка
От Andres Freund
Тема Re: Fix an incorrect assertion condition in mdwritev().
Дата
Msg-id 20240603222407.rhds5yb52jshdykw@awork3.anarazel.de
обсуждение исходный текст
Ответ на Re: Fix an incorrect assertion condition in mdwritev().  (Michael Paquier <michael@paquier.xyz>)
Ответы Re: Fix an incorrect assertion condition in mdwritev().
Re: Fix an incorrect assertion condition in mdwritev().
Список pgsql-hackers
Hi,

On 2024-06-04 07:17:51 +0900, Michael Paquier wrote:
> On Sun, May 26, 2024 at 12:08:46AM -0400, Tom Lane wrote:
> > After a few minutes' thought, how about:
> > 
> >     Assert((uint64) blocknum + (uint64) nblocks <= (uint64) mdnblocks(reln, forknum));
> > 
> > This'd stop being helpful if we ever widen BlockNumber to 64 bits,
> > but I think that's unlikely.  (Partitioning seems like a better answer
> > for giant tables.)
> 
> No idea if this will happen or not, but that's not the only area where
> we are going to need a native uint128 implementation to control the
> overflows with uint64.

I'm confused - isn't using common/int.h entirely sufficient for that? Nearly
all architectures have more efficient ways to check for 64bit overflows than
doing actual 128 bit math.

Greetings,

Andres Freund



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

Предыдущее
От: Michael Paquier
Дата:
Сообщение: Re: Fix an incorrect assertion condition in mdwritev().
Следующее
От: Michael Paquier
Дата:
Сообщение: Re: Fix an incorrect assertion condition in mdwritev().