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