Unlike Arrow's RecordBatches, StructArray can be "nullable" in two places: in the child arrays and also at the top level. This makes some struct operations tricky - for example, how do you zip two arrays with different top-level validity?
One solution could be to add a method that pushes top-level validity down to the children (assuming all fields are nullable). For example:
{a: 1, b: 2}, NULL would become {a: 1, b: 2}, {a: NULL, b: NULL}
Unlike Arrow's
RecordBatches,StructArraycan be "nullable" in two places: in the child arrays and also at the top level. This makes some struct operations tricky - for example, how do you zip two arrays with different top-level validity?One solution could be to add a method that pushes top-level validity down to the children (assuming all fields are nullable). For example:
{a: 1, b: 2}, NULLwould become{a: 1, b: 2}, {a: NULL, b: NULL}