In c.h There is the following comment:
/*
* We want NameData to have length NAMEDATALEN and int alignment,
* because that's how the data type 'name' is defined in pg_type.
* Use a union to make sure the compiler agrees. Note that NAMEDATALEN
* must be a multiple of sizeof(int), else sizeof(NameData) will probably
* not come out equal to NAMEDATALEN.
*/
And indeed in pg_type the typalign column says "i" for this data type. My
question is just, why? What would be the problem with an alignment of 1 for
"name"?
--
greg