...
...
It contains only flags in 1 byte.
...
Size = 1 << (flags & 0b11)
NOTE: By the way, the last option works fine for C++ and possibly other languages but for Java it will be hard to support, so it might be excluded.
...
Nullmap is a bitset that contains `N` N bits, occupies ` (N + 7) / 8` 8 bytes, where `N` is the number of columns in the schema.
In the bitset every bit set to `1` means that the respective field is NULL.
The number of elements in the table is equal to the number of columns in the schema.
The size of table elements might be 1, 2, 4, or 8 bytes depending on the header flags.
Each element in the table specifies where the corresponding field ends. Or in other words, for each given field the table stores the offset where the next field starts. The last element in the table specifies the end of the last field and at the same time the end of the whole value area and consequently the end of the entire tuple.
The offset is measured relative to the start of the value area.
The start of the first element is implied and is always equal to zero.
Contains data for each tuple field one after another as described above.
1. IEP-54: Schema-first Approach
...