@marmbrus `PrimitiveType` is maybe a misnomer. It's the same term that Parquet uses. Basically a `PrimitiveType` is a type that is not contained inside another type (so non-nested). You can argue that a String is a Char array and therefore not primitive but in terms of constructing nested rows it means that a primitive type is a leaf inside the tree that produces a record.

It would help to somehow distinguish between nested and non-nested types. `NativeType` comes close but for example there is `BinaryType` which is primitive but not native.