Type variations may be used to represent differences in representation between different consumers. For example, an engine might support dictionary encoding for a string, or could be using either a row-wise or columnar representation of a struct. All variations of a type are expected to have the same semantics when operated on by functions or other expressions.
All variations except the “system-preferred” variation (a.k.a.
, see Type Parsing) must be defined using simple extensions. The key properties of these variations are:
|Base Type Class||The type class that this variation belongs to.|
|Name||The name used to reference this type. Should be unique within type variations for this parent type within a simple extension.|
|Description||A human description of the purpose of this type variation.|
|Function Behavior||INHERITS or SEPARATE: whether functions that support the system-preferred variation implicitly also support this variation, or whether functions should be resolved independently. For example, if one has the function |