Re: PgStat_HashKey padding issue when passed by reference
От | Michael Paquier |
---|---|
Тема | Re: PgStat_HashKey padding issue when passed by reference |
Дата | |
Msg-id | aL4weYYAsm9CcnR2@paquier.xyz обсуждение исходный текст |
Ответ на | Re: PgStat_HashKey padding issue when passed by reference (Michael Paquier <michael@paquier.xyz>) |
Ответы |
Re: PgStat_HashKey padding issue when passed by reference
Re: PgStat_HashKey padding issue when passed by reference |
Список | pgsql-hackers |
On Sat, Sep 06, 2025 at 10:35:58AM +0900, Michael Paquier wrote: > One idea would be, for example, that keys used with simplehash should > never have any padding at all, and we could force a check in the shape > of a static assertion to force a failure when attempting to compile > code that attempts to do so. That would give us a way to check in a > broader way if some code path do that currently, scaling better with > the expectations we could have in the whole tree or even out-of-core > extension code. Doing some research here, I have noticed this one: https://en.cppreference.com/w/cpp/types/has_unique_object_representations.html I was also wondering about some use of pg_attribute_packed() here, or perhaps enforce a check based on offsetof() and the structure size, but I doubt that any of that would be really portable across the buildfarm. Another idea would be to make sure that the sizeof() of the structure matches with the sum of the sizeof() for the individual fields in it. That's cumbersome to rely on, still simpler. Perhaps we could do something among these lines for pgstat_shmem.c, or just document that the structure should never have any padding. -- Michael
Вложения
В списке pgsql-hackers по дате отправления: