Here is a proof-of-concept patch for reducing the alignment
requirement for heap tuples on 64-bit systems.
This patch passes the regression tests and a couple of other data sets
I have thrown at it.
I am hoping to get some early feedback on this patch so I have time to
make any corrections, improvements,
etc before the November commit-fest deadline.
There are two visible savings in the system catalogs using this patch
(size was gathered using \S+):
Catalog Pre-Patch Size After Patch Size
pg_depend 312 kB 296 kB
pg_description 160 kB 152 kB
One thing I am considering, but I am not sure if it is worth the code
uglification, is to wrap the majority of these
checks in #ifdefs so they only are used on 64-bit systems. This
would completely eliminate the impact for this
patch on 32-bit systems, which would not gain any benefit from this patch.