|
> Scenario #1: If the tuples are the same shape (type, size), it's fine In the row-oriented view: each row of a datatable is a tuple of the same shape (size and order of types as every other row) -- just like a database table. So, if the shape is (string, int, date) for row #1, its that shape for every row. In the column-oriented view, each column is a homogenous array: every element in the column has the same type. > [ (string, int, date) (string, int, date) (string, int, date) ] Sure, this is a fine starting table; in row-oriented, its shape (the shape of every row) is (string, int, date). In column-oriented view, the table as a whole can be viewed as a tuple of shape (string[3], int[3], date[3]) because it has three rows. Cool. > transposed: > [ (string, string, string) (int, int, int) (date, date, date) ] Right, this is no longer a datatable. The first row has shape (string, string, string). So, if its a table, the other two rows must also have shape (string, string, string); but instead, each has a different shape. |
Ok, that makes sense.