Skip to content
Dale Wilson edited this page Nov 22, 2016 · 3 revisions

#FAST Field Interpretation Rules

You don't need to know these rules to use QuickFAST because QuickFAST knows them for you, but if you are interested, or if you are trying to diagnose an encoding/decoding problem, here's my cheat sheet.

|Field Op  |Presence  |PMAP |Value in Stream|Null? |App Value         |Dictionary        | 
|----------|----------|-----|---------------|------|------------------|------------------| 
|NOP       |Mandatory |None |Value          |N/A   |Value             |N/A               | 
|          |Optional  |None |Nullable Value |NULL  |None              |N/A               | 
|          |          |     |               |VALUE |Value             |N/A               | 
|Constant  |Mandatory |None |No             |N/A   |Constant          |Unchanged         | 
|          |Optional  |0    |No             |N/A   |None              |Unchanged         | 
|          |          |1    |No             |N/A   |Constant          |Unchanged         | 
|Default   |Mandatory |0    |No             |N/A   |Default           |Unchanged         | 
|          |          |1    |Value          |N/A   |Value             |Unchanged         | 
|          |Optional  |0    |No             |N/A   |Default           |Unchanged         | 
|          |          |1    |Nullable Value |NULL  |None              |Unchanged         | 
|          |          |     |               |VALUE |Value             |Unchanged         | 
|Copy      |Mandatory |0    |No             |N/A   |Dictionary        |Unchanged         | 
|          |          |1    |Value          |N/A   |Value             |Value             | 
|          |Optional  |0    |No             |N/A   |Dictionary        |Unchanged         | 
|          |          |1    |Nullable Value |NULL  |None              |Empty             | 
|          |          |     |               |VALUE |Value             |Value             | 
|Delta     |Mandatory |None |Delta          |N/A   |Dictionary + Delta|Dictionary + Delta| 
|          |Optional  |None |Nullable Delta |NULL  |None              |Unchanged         | 
|          |          |     |               |DELTA |Dictionary + Delta|Dictionary + Delta| 
|Increment |Mandatory |0    |No             |N/A   |Dictionary + 1    |Dictionary + 1    | 
|          |          |1    |Value          |N/A   |Value             |Value             | 
|          |Optional  |0    |No             |N/A   |Dictionary + 1    |Dictionary + 1    | 
|          |          |1    |Nullable Value |NULL  |None              |Empty             | 
|          |          |     |               |VALUE |Value             |Value             | 
|Tail      |Mandatory |0    |No             |N/A   |Dictionary        |Unchanged         | 
|          |          |1    |Tail           |N/A   |Dictionary * Tail |Dictionary * Tail | 
|          |Optional  |0    |No             |N/A   |Dictionary        |Unchanged         | 
|          |          |1    |Nullable Tail  |NULL  |None              |Empty             | 
|          |          |     |               |TAIL  |Dictionary * Tail |Dictionary * Tail |

Special Handling for Decimal Fields with individual operators for Exponent and Mantissa

|         |Mandatory treat as|Condition           |Optional treat as |  
|---------|------------------|--------------------|------------------| 
|Exponent |Mandatory Integer |                    | Optional Integer | 
|Mantissa |Mandatory Integer |Exponent is present | Mandatory Integer| 
|         |                  |Exponent not present| Absent           | 

Presence Map Bits: 0, 1, or 2 depending on treatment may change dynamically!

Clone this wiki locally