FLAM Issue Tracker - FL5
View Issue Details
0000923FL51.1 FLCLpublic2018-07-25 14:072018-09-06 17:08
Falk Reichbott 
Falk Reichbott 
0000923: Add support for NULL indicator to table support
In XML formats it is required to seperate empty fields for numeric values from fields containing the default value (0 or 0.00). Empty fields are normally makrd by a NULL indicator.
No tags attached.
Issue History
2018-07-25 14:07Falk ReichbottNew Issue
2018-07-25 14:07Falk ReichbottStatusnew => assigned
2018-07-25 14:07Falk ReichbottAssigned To => Falk Reichbott
2018-08-01 08:08Falk ReichbottTarget Version5.1.18 => 5.1.19
2018-08-06 14:00Falk ReichbottNote Added: 0001167
2018-08-14 09:27Falk ReichbottNote Added: 0001172
2018-09-06 17:08Falk ReichbottNote Added: 0001191
2018-09-06 17:08Falk ReichbottStatusassigned => resolved
2018-09-06 17:08Falk ReichbottFixed in Version => 5.1.18
2018-09-06 17:08Falk ReichbottResolutionopen => fixed

Falk Reichbott   
2018-08-06 14:00   
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.
Falk Reichbott   
2018-08-14 09:27   
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.
Falk Reichbott   
2018-09-06 17:08   
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.