Open jrevels opened 3 years ago
FWIW option 2 is the approach JSON.jl takes with the null
keyword argument to parse
/parsefile
. It has a default value of nothing
but you can pass null=missing
. This seems like a reasonable approach to me for Arrow to take.
In Julia, there is (generally) a useful/meaningful semantic distinction between
nothing
andmissing
. IIUC, Arrow doesn't really have equivalent values that capture this distinction, but instead hasnull
which might be used for either. This results in a bit of an impedance mismatch for us to resolve when (de)serializingnothing
/missing
data.The current behavior feels like it "resolves" the impedance mismatch just by tossing this information altogether and normalizing to a single value, but the value it chooses to normalize to feels weird to me:
It seems to me like Arrow.jl should either:
[nothing, missing]
would roundtrip as[nothing, missing]
)null
s (e.g.nothing
ormissing
) at read time.