Re: Decoupling our alignment assumptions about int64 and double

Tom Lane <tgl@sss.pgh.pa.us>

From: Tom Lane <tgl@sss.pgh.pa.us>
To: Andres Freund <andres@anarazel.de>
Cc: pgsql-hackers@lists.postgresql.org
Date: 2026-02-05T23:49:40Z
Lists: pgsql-hackers
I wrote:
> Andres Freund <andres@anarazel.de> writes:
>> I am pretty unhappy about that, I think the test and rules are just about
>> incomprehensible. I wonder if we ought to instead just redefine float8 to be
>> be aligned to 8 bytes, leaving double alone.

> I thought about that, but it seemed like there'd be nothing stopping
> people from declaring a catalog column as "double" rather than
> "float8" and thus falling into the trap anyway.  I suppose we could
> put a check for that into Catalog.pm, though.

No, scratch that: the real objection is that we can't do that unless
we are willing to break pg_upgrade on AIX.  The catalogs can't have
different alignment rules than user tables do.  Now, maybe we're
willing to go there, but it's not a pleasant prospect.

			regards, tom lane



Commits

  1. Cope with AIX's alignment woes by using _Pragma("pack").

  2. Make some minor cleanups in typalign-related code.

  3. Refactor att_align_nominal() to improve performance.