Re: PgStat_HashKey padding issue when passed by reference - Mailing list pgsql-hackers

From Ranier Vilela
Subject Re: PgStat_HashKey padding issue when passed by reference
Date
Msg-id CAEudQAqjwmrfH+BDpFLGTJBGwQ5zO95PtRzf3KeXz9KeUOYLUg@mail.gmail.com
Whole thread Raw
In response to Re: PgStat_HashKey padding issue when passed by reference  (Michael Paquier <michael@paquier.xyz>)
List pgsql-hackers


Em qua., 10 de set. de 2025 às 23:53, Michael Paquier <michael@paquier.xyz> escreveu:
On Mon, Sep 08, 2025 at 09:36:52PM -0500, Sami Imseih wrote:
> But my concern is the flexibility of this approach. If someone is to add an
> OID field next, they will not be able to as that will be introducing
> padding.  On the other hand, passing the key by reference and
> documenting the reason in pgstat_shmem.c will not lose this
> flexibility.

I don't mind discarding the static assertion idea, but at the end what
counts for me here is that I don't want to sacrifice future changes in
the pgstats code that would always require passing around the hash key
by reference. 
 
So I would just do like attached, documenting at the
top of PgStat_HashKey that we should not have padding in it, removing
three memset(0) calls that expected it.
Currently no compiler guarantees that static initialization will fill possible holes, 
something that *memset* guarantees.
I think this change is unsafe.

best regards,
Ranier Vilela

pgsql-hackers by date:

Previous
From: Tom Lane
Date:
Subject: Re: ALTER DATABASE RESET with unexistent guc doesn't report an error
Next
From: Álvaro Herrera
Date:
Subject: Re: Foreign key isolation tests