Hello, I'm writing a variable size custom datatype in C. The variable part is an array of unsigned long, and it needs to be aligned. I further need to store a few flags, for which a single byte would be more than enough (I would actually need just a single bit, but I'd probably keep some bits to store a data version too). Using a struct like { char vl_len_[4]; /* varlena header */ unsigned char flags; unsigned long data[1]; } 3 bytes are always wasted in padding as offsetof(data) is 8. I may complicate fetching a little bit and store the flags at the end of the data, so that the total size would be 5 + data instead of 8 + data, and access them with some pointers arithmetic. In terms of disk space, does it worth the hassle or (as I suspect) would this effort be wasted by on-disk alignment of the data in the rows? Thanks, -- Daniele -- Sent via pgsql-general mailing list (pgsql-general@xxxxxxxxxxxxxx) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-general