Re: pgsql: Teach radix tree to embed values at runtime

Поиск
Список
Период
Сортировка
От Andres Freund
Тема Re: pgsql: Teach radix tree to embed values at runtime
Дата
Msg-id 20240408172742.7inv5usm5mk534tn@awork3.anarazel.de
обсуждение исходный текст
Ответ на pgsql: Teach radix tree to embed values at runtime  (John Naylor <john.naylor@postgresql.org>)
Ответы Re: pgsql: Teach radix tree to embed values at runtime
Список pgsql-committers
Hi,

On 2024-04-08 11:57:01 +0000, John Naylor wrote:
> Teach radix tree to embed values at runtime
> 
> Previously, the decision to store values in leaves or within the child
> pointer was made at compile time, with variable length values using
> leaves by necessity. This commit allows introspecting the length of
> variable length values at runtime for that decision. This requires
> the ability to tell whether the last-level child pointer is actually
> a value, so we use a pointer tag in the lowest level bit.
> 
> Use this in TID store. This entails adding a byte to the header to
> reserve space for the tag. Commit f35bd9bf3 stores up to three offsets
> within the header with no bitmap, and now the header can be embedded
> as above. This reduces worst-case memory usage when TIDs are sparse.

This isn't quite C99 conformant, and thus breaks on the buildfarm animal
set up to test that:
https://buildfarm.postgresql.org/cgi-bin/show_log.pl?nm=mylodon&dt=2024-04-08%2012%3A07%3A01

You can't have unnamed structs in C99, that's a C11 feature.  I wish we'd move
to C11, but ...

Greetings,

Andres



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

Предыдущее
От: Jelte Fennema-Nio
Дата:
Сообщение: Re: pgsql: Transform OR clauses to ANY expression
Следующее
От: Tom Lane
Дата:
Сообщение: [MASSMAIL] pgsql: Further review for re-implementation of psql's FETCH_COUNT featu