So the reason the Splits
column here turns into Any
is that the expression length(_.Splits) > 0 ? split(_.Splits, ',') : 1.
can return either an array of SubString
, or a Float64
value. So we need to make the column type one that can handle both of these cases, which is Any
. We call this type of situation a type instability, because that expression returns a value of a different type depending on the values of the inputs.
That the X1
column then also turns into Any
is at the end of the day a bug in Query.jl that is just cumbersome to fix for me But, that is no good excuse, of course. That bug is triggered by the type instability in the other column.