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:32:44Z
Lists: pgsql-hackers
Andres Freund <andres@anarazel.de> writes:
> On 2026-02-03 17:29:46 -0500, Tom Lane wrote:
>> If we want to re-support AIX, I think we're stuck with going back
>> to the old way of calculating MAXALIGN, and then re-instituting that
>> regression test that checked for unsafely-aligned catalog columns.
>> Bleah.  Still, as long as the regression test is accurate, it seems
>> like that'd be an annoyance not a major headache.

> 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.

			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.