It could certainly error out or read invalid data or leak private data, but so would any buffer of the wrong size. If you're building a ArrayData yourself, you're responsible for passing the right data layout. If you're not sure about it, you can call Validate on the array, at least during the debug / development phase.
Regards Antoine. On Thu, 17 Dec 2020 12:32:48 -0500 Niranda Perera <niranda.per...@gmail.com> wrote: > Wouldn't this create an undefined state when determining whether an index > is valid or not? > https://github.com/apache/arrow/blob/8d76312dd397ebe07b71531f6d23b8caa76703dc/cpp/src/arrow/array/array_base.h#L58 > > On Thu, Dec 17, 2020 at 12:28 PM Antoine Pitrou <anto...@python.org> wrote: > > > > > This doesn't seem to be very useful. Also, multiplying special cases > > makes maintenance more difficult and code generally more fragile. > > > > Regards > > > > Antoine. > > > > > > Le 17/12/2020 à 18:16, Niranda Perera a écrit : > > > yes! a buffer with size 0. I forgot to mention that the rest of the > > buffers > > > in array_data have a non-zero size. > > > > > > On Thu, Dec 17, 2020 at 12:12 PM Antoine Pitrou <anto...@python.org> > > wrote: > > > > > >> > > >> What is an "empty buffer" here? A buffer with size 0? > > >> > > >> > > >> Le 17/12/2020 à 18:02, Niranda Perera a écrit : > > >>> Hi all, > > >>> > > >>> I am wondering if we need to consider the case of an empty buffer for > > >>> ArrayData validity buffer. > > >>> What happens when we create an ArrayData structure with buffers[0] = > > >>> empty_buffer and null_count= -1? > > >>> Shouldn't this infer null_count as 0 from this method? > > >>> > > >> > > https://github.com/apache/arrow/blob/6c3547347e9d95f7d0c77d5949cb8fcf6983ca9b/cpp/src/arrow/array/data.cc#L50 > > > > >>> > > >> > > > > > > > > > >