>
> std::string_view FlatArray::GetValueBytes(int64_t index)

I think this would be problematic for Boolean?

On Tue, Nov 15, 2022 at 11:01 AM John Muehlhausen <j...@jgm.org> wrote:

> 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
> > >>>>
> > >>
> > >>
> > >
> >
>

Reply via email to