Describe the bug
If we have a nested struct array, we only take the leaf nullability into account, instead of of an AND of all parent nullability.
To Reproduce
let inner_array = StructArray::new(
vec![Field::new("value", DataType::Int32, false)].into(),
vec![Arc::new(Int32Array::from(vec![1, 2, 3]))],
None,
);
// Only the outer struct marks row 1 as null; its children are all valid.
let outer_array = StructArray::new(
vec![Field::new("inner", inner_array.data_type().clone(), false)].into(),
vec![Arc::new(inner_array)],
Some(NullBuffer::from(vec![true, false, true])),
);
If we try and get outer['inner']['value'], we currently get [1, 2, 3] instead of [1, null, 3].
Expected behavior
No response
Additional context
No response
Describe the bug
If we have a nested struct array, we only take the leaf nullability into account, instead of of an
ANDof all parent nullability.To Reproduce
If we try and get
outer['inner']['value'], we currently get[1, 2, 3]instead of[1, null, 3].Expected behavior
No response
Additional context
No response