Skip to content
Dale Wilson edited this page Mar 13, 2017 · 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. Start in the first column (Field Op). Read down until you find what you're looking for then move to the next column to the right. Repeat until you get to the App Value and Dictionary columns which tell you what goes in the Application record and the Dictionary respectively.

|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