GitHub user felipecrv added a comment to the discussion: [Format] Inline parent 
validity bitmap into child validity bitmap

> Currently, when struct itself is null, child field's validity is unknown. So 
> client must compute AND of those bitmaps to know child's validity.

That is a feature, not a bug. The validity bitmap (aka "nulls") is a mask on 
top of the children arrays. Setting a value to null only requires updating the 
mask, not recursively traversing the child arrays to set them to null as well.

A similar pattern exists in other nested arrays like `List`: `offsets[i + 1] - 
offsets[i]` is not necessarily zero when the i-th list is null.

Even though it's a bit cumbersome when reading (bitwise AND necessary), 
preserving this invariant you're proposing on every operation that builds new 
arrays from scratch or from other arrays would be almost impossible.

GitHub link: 
https://github.com/apache/arrow/discussions/46086#discussioncomment-12794756

----
This is an automatically sent email for user@arrow.apache.org.
To unsubscribe, please send an email to: user-unsubscr...@arrow.apache.org

Reply via email to