On Fri, Sep 1, 2023 at 7:48 PM Jelte Fennema <
postgres@jeltef.nl> wrote:
> The C standard says:
> > When a value is stored in an object of structure or union type, including in a member object, the bytes of the object representation that correspond to any padding bytes take unspecified values.
>
> So if you set any of the fields after a MemSet, the values of the
> padding bytes that were set to 0 are now unspecified. It seems much
> safer to actually spell out the padding fields of a hash key.
No, the standard is telling you why you need to memset if consistency of padding bytes matters.
--
John Naylor
EDB:
http://www.enterprisedb.com