Notes |
|
|
The NULL indicator must be handle as attribute to the element. If such element stored in a FLAM5 archive the NULL indicator is still available, if then XML or other format reproduced the the NULL indicator can still be used to recreate the data. But if you write a FIX format, you must add an additional column for NULL indication. If such a format read, the NULL indication can be reproduced. Or the NULL indication must be add to the data like a sign or something like this. |
|
|
|
Additional columns are not a good solution. After a long discussion a new possible solution was designed:
The NULL indication will handle as special flag bit of the type. This result internally for the FLAM5 elements for example in a integer and integer with NULL indication containing the default value. Each type will be doubled and no attributes are required for this.
To represent a NULL indication the external representations of the certain data types will be extended to include the NULL indication. For example, a integer in binary 32 bit big endian representation with NULL indication needs at minimum 1 byte more (in total 5 byte). The fixed length can be extend up to 8 bytes for it. From 9 byte a 64 bit integer binary representation with NULL indication starts.
Each external representation of a data type will extent by selection for the representation of the NULL indication. |
|
|
|
The null indication is done by XML format parsing in table support and can also be activated for write. To determine null/empty indication in VAR format and other additional information a flag, length and pointer format can be used. The 32 bit flag word, contains the null indication bit as least significant bit of the high order half word (FLMELM_TYPTAB_FLAG_NULLID). No other flag bits are
defined yet. This structure is the default and don't need padding on 64
bit systems. A pointer, length and flag format is also available. With a
future support of 128 bit system a aligned version for this structure
will be supported. |
|