Re: mcvstats serialization code is still shy of a load

Поиск
Список
Период
Сортировка
От Tom Lane
Тема Re: mcvstats serialization code is still shy of a load
Дата
Msg-id 26130.1561556430@sss.pgh.pa.us
обсуждение исходный текст
Ответ на Re: mcvstats serialization code is still shy of a load  (Tomas Vondra <tomas.vondra@2ndquadrant.com>)
Список pgsql-hackers
Tomas Vondra <tomas.vondra@2ndquadrant.com> writes:
> On Tue, Jun 25, 2019 at 11:52:28PM -0400, Tom Lane wrote:
>> You can *not* cast something to an aligned pointer type if it's not
>> actually certain to be aligned suitably for that type.

> OK. So the solution is to ditch the casts altogether, and then do plain
> pointer arithmetics like this:

> #define ITEM_INDEXES(item)            (item)
> #define ITEM_NULLS(item,ndims)        (ITEM_INDEXES(item) + (ndims))
> #define ITEM_FREQUENCY(item,ndims)    (ITEM_NULLS(item, ndims) + (ndims))
> #define ITEM_BASE_FREQUENCY(item,ndims)    (ITEM_FREQUENCY(item, ndims) + sizeof(double))

> Or is that still relying on alignment, somehow?

No, constructs like a char* pointer plus n times sizeof(something) should
be safe.

            regards, tom lane



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

Предыдущее
От: Peter Eisentraut
Дата:
Сообщение: Re: "WIP: Data at rest encryption" patch and, PostgreSQL 11-beta3
Следующее
От: Tomas Vondra
Дата:
Сообщение: Re: mcvstats serialization code is still shy of a load