Hi, On 2019-01-27 08:03:17 +0100, Greg Stark wrote: > I assume you already considered and rejected having a fixed size null > bitmap followed by a variable size array of datums. That seems like it > would be denser and work better with cpu cache.
It'd be more expensive to access individually (offset calculation + masks, ~5 insn, not fully pipelineable), it'd not guarantee that the null bit and datum are on the same cacheline, you could not pass the null-bit to various functions accepting a bool*, you could not pass the new equivalent NullableDatums to other functions (like both the past and current solution allow). Greetings, Andres Freund