If that covers primitive and binary(string) types, that would work for me. On Tue, Nov 15, 2022 at 13:50 Antoine Pitrou <anto...@python.org> wrote:
> > Then perhaps we can define a method: > > std::string_view FlatArray::GetValueBytes(int64_t index) > > ? > > > Le 15/11/2022 à 19:39, John Muehlhausen a écrit : > > I had a use-case where untyped access to bytes would have been > sufficient, > > vs branching depending on array type. This is what brought the idea to > > mind. > > > > On Tue, Nov 15, 2022 at 02:34 Jin Shang <shangjin1...@gmail.com> wrote: > > > >> Hi John, > >> > >> In addition to Micah’s reply, does the member method Value(int64_t > >> i)[1][2][3] satisfy your need? It is defined for all array types with a > >> primitive value representation, i.e. all primitive arrays and binary > arrays. > >> > >> [1] > >> > https://github.com/js8544/arrow/blob/master/cpp/src/arrow/array/array_primitive.h#L50 > >> < > >> > https://github.com/js8544/arrow/blob/master/cpp/src/arrow/array/array_primitive.h#L50 > >>> > >> [2] > >> > https://github.com/js8544/arrow/blob/master/cpp/src/arrow/array/array_primitive.h#L109 > >> < > >> > https://github.com/js8544/arrow/blob/master/cpp/src/arrow/array/array_primitive.h#L109 > >>> > >> [3] > >> > https://github.com/js8544/arrow/blob/master/cpp/src/arrow/array/array_binary.h#L87 > >> < > >> > https://github.com/js8544/arrow/blob/master/cpp/src/arrow/array/array_binary.h#L87 > >>> > >> > >> > >>> 2022年11月15日 13:06,Micah Kornfield <emkornfi...@gmail.com> 写道: > >>> > >>> Hi John, > >>> > >>> There are a couple of edge cases that need to be discussed to move the > >>> function to the base array class (which IIUC is this proposal): > >>> 1. boolean > >>> 2. struct > >>> 3. lists/LargeList > >>> 4. DictionaryArray > >>> > >>> FlatArray [1] seems like a better place for this method if there is > >>> consensus on adding it. > >>> > >>> Cheers, > >>> Micah > >>> > >>> [1] > >>> > >> > https://github.com/apache/arrow/blob/master/cpp/src/arrow/array/array_base.h#L219 > >>> > >>> On Mon, Nov 14, 2022 at 11:46 AM John Muehlhausen <j...@jgm.org> wrote: > >>> > >>>> There exists: > >>>> const uint8_t* BaseBinaryArray::GetValue(int64_t i, offset_type* > >>>> out_length) const > >>>> > >>>> What about adding: > >>>> const uint8_t* Array::GetValue(int64_t i, offset_type* out_length) > const > >>>> > >>>> This would allow GetValue to get the untyped bytes/length of any > value? > >>>> E.g. out_length would be set to sizeof(T) for arrays of primitive type > >> T? > >>>> > >>>> For FixedSizeBinaryArray the existing GetValue would still be a valid > >>>> overload. > >>>> > >>>> -John > >>>> > >> > >> > > >