hi folks, One of the as-yet-untested (in integration tests) parts of the columnar specification is the Null layout. In C++ we additionally implemented this by writing two length-0 "placeholder" buffers in the RecordBatch data header, but since the Null layout has no memory allocated nor any buffers in-memory it may be more proper to write no buffers (since the length of the Null layout is all you need to reconstruct it). There are 3 implementations of the placeholder version (C++, Go, JS, maybe also C#) but it never got implemented in Java. While technically this would break old serialized data, I would not expect this to be very frequently occurring in many of the currently-deployed Arrow applications
Here is my C++ patch https://github.com/apache/arrow/pull/5287 I'm not sure we need to formalize this with a vote but I'm interested in the community's feedback on how to proceed here. - Wes