I wonder why you define the gidlen as uint32 when it would fit into uint8 which in the current TwoPhaseFileHeader struct should be win of 8 bytes on padding (on 64bit). I think that's something worth considering given that this patch aims to lower the size of the data.
Hi Petr,
That sounds like a good idea; I didn't think about that. I would like to make it uint16 though just in case if we decide to increase GIDSIZE from 200 to something more than 256 (Postgres-XL does that already). That still fits in the same aligned width, on both 32 as well as 64-bit machines. New version attached.