Struct FieldEvaluator
A single scalar field predicate: compares one indexed field against a constant threshold. Packed to 16 bytes for cache-dense storage in an execution plan's filter chain.
public struct FieldEvaluator
- Inherited Members
Fields
BranchIndex
Disjunctive-normal-form branch index: 0 for AND views, 0..15 for OR views.
public byte BranchIndex
Field Value
CompareOp
Comparison operator to apply.
public CompareOp CompareOp
Field Value
ComponentTag
Which component the field belongs to in a multi-component view: 0 = first (T1), 1 = second (T2).
public byte ComponentTag
Field Value
FieldIndex
Index into the component's Typhon.Engine.ComponentTable.IndexedFieldInfos. Max 63 (capped by ring-buffer flag encoding).
public byte FieldIndex
Field Value
FieldOffset
Byte offset of the field within its component struct.
public ushort FieldOffset
Field Value
FieldSize
Size of the field in bytes.
public byte FieldSize
Field Value
KeyType
Scalar type used to interpret the field bytes.
public KeyType KeyType
Field Value
Threshold
Comparison constant widened to 64 bits. For float/double fields the raw bit pattern is reinterpreted, not numerically converted.
public long Threshold
Field Value
Methods
Evaluate(ref FieldEvaluator, byte*)
Evaluate this predicate against a raw field pointer. Returns true if the field satisfies the comparison.
public static bool Evaluate(ref FieldEvaluator eval, byte* fieldPtr)
Parameters
evalFieldEvaluatorfieldPtrbyte*
Returns
Remarks
String64 is intentionally not handled here — string-typed predicates are rejected upstream by
QueryResolverHelper.MapFieldTypeToKeyType (which throws NotSupportedException for FieldType.String), and the
String64 tag is reserved for the index/statistics layer (e.g., IndexStatistics uses it to mark String64BTree indexes as having no
selectivity statistics). The Threshold slot is only 8 bytes — not large enough to hold a 64-byte String64 value — so any
String64 predicate evaluation would have to happen via the B+Tree index path, not this scalar comparator.