Hello,
Okay, for the memo replay_image_masked and master_image_masked
in xlog.c could make use of the new structure. SetWALSegSize in
pg_standby.c and WriteEmptyXLOG in pg_resetwal.c, and pg_upgrade's
file.c could also be patched.
I intentionally didn't change replay_image_masked/master_image_masked
to use statically-allocated buffers. Since, AFAICS, those aren't
needed in most backend processes, they'd just be eating 16KB of
per-process data space to no purpose.
The others you mention could be changed, probably, but I didn't
bother as they didn't seem performance-critical.
I'd go for having just one same approach everywhere, for code base
homogeneity.
+typedef union PGAlignedBuffer
One complain I have is about the name of those structures. Perhaps
PGAlignedBlock and PGAlignedXlogBlock make more sense?
Don't have a strong preference, anybody else have an opinion?
I like "Block" better, because it's more precise.
(I also wondered whether to use "WAL" instead of "XLog" in that
struct name, but it seems like we've mostly stuck with "xlog"
in internal C names.)
Best to blend with the surrounding code in the header file?
--
Fabien.