Trill icon indicating copy to clipboard operation
Trill copied to clipboard

Columnar data format expressiveness: polymorphic types

Open cybertyche opened this issue 6 years ago • 0 comments

At present, columnar data batches are only supported for non-polymorphic data types. They do not support interfaces, nor do they support non-sealed classes.

  • For non-sealed classes, if the query never does a type test on the objects, and therefore does not ever refer to fields or properties of subclasses, we can lift this restriction and allow columnar on that type for that query. Same for interfaces and for implementers of those interfaces.
  • For queries that do type tests and refer to properties of derived types, we shall add a type reference column (a discriminator column to say what type each row is) and additional columns for any referenced fields and properties. The resulting layout will be similar to a "table-per-hierarchy" layout for mapping an object hierarchy to a relational table.

cybertyche avatar Dec 10 '18 01:12 cybertyche