I guess you guys have grown tired of my attempts at comedy, so allow me to switch to magic tricks…
Here we have a table with two columns of type Double:
I can transpose it, which gives me a table with 2 rows and 4 Double columns:
Let’s remove the second row with a Row Filter. This yields a table with 1 row and 4 Double columns:
Transposing that one gives me a table with 4 rows and a single Double column:
Now transposing that one AGAIN (drumroll)…
…gives me a table with 4 different types: MissingCell, Double, Boolean, Integer!!
How is this possible? The original table was constructed using Concatenate on tables with identical column names but different column types. Apparently, even though the columns are converted to type Double in the combined table, the cells still somehow remember their original types. This is totally invisible to the user, though.
So far, I have found the following ways in which these “hidden types” can be created:
Concatenation of 2 tables with identical column names but different column types
Transposing a table with different column types
Unpivoting a table with different column types
Creating a collection column from columns with different types and subsequently ungrouping this collection (this works with both the Column Aggregator and the Create Collection Column nodes)
It looks as if every operation that somehow moves values from multiple columns with different types to a single column results in these “hidden types”.
How to make the hidden types appear?
Transposing a column with hidden types (only when there are no other columns that “overrule” the hidden types)
Grouping values from a single column into a list and subsequently apply Split Collection Column (with “Determine most specific type” checked) on this list
Pivoting (for some but not all aggregation methods)
Operations that interestingly do NOT make these hidden types appear:
Chunk Loop Start - RowID - Loop End (Column Append)
Column to Grid
However, even in those cases the hidden types are still there; they are just remain hidden.