Adding NULL values

Databases can now contain flagged columns, non-flagged columns, or both. This enables you to add NULL values to the database by setting metadata <mf> flags for each column and data flags <df> for each cell in the actual data. The database containing columns with NULL values have extra data, so the metadata and the actual data are now different. For example, see the following.

Metadata
u'<mf><fixed_1>s'<mf><string_2>u'<mf><fixed_3>s'
    <mf><string_4>u'<mf><fixed_5>Sn'
    <mf><string width><string_n>\0

Where x' = x with the high-bit (0x80) set and <mf> is the metadata flag and is present only if the high-bit is set on x.

Data
<df>fixed_1 <df><uint16 len>string_2\0 
    <df>fixed_3 <df><uint16 len>string_4\0 
    <df>fixed_5 <df>string_n\0<NULL PADDING>

Where <df> is the data flag and only exists if <mf> exists.