pub fn take_no_null_primitive_iter<T: DFNumericType, I: IntoIterator<Item = usize>>(
    arr: &PrimitiveArray<T>,
    indices: I,
) -> Arc<PrimitiveArray<T>> {
    assert_eq!(arr.null_count(), 0);

    let array_values = arr.values();

    let av = indices
        .into_iter()
        .map(|idx| array_values[idx])
        .collect::<AlignedVec<_>>();
    let arr = av.into_primitive_array(None);

    Arc::new(arr)
}
/// Take kernel for single chunk without nulls and an iterator as index that does bound checks.
Take kernel for single chunk without nulls and an iterator as index that does bound checks.
Take kernel for single chunk without nulls and an iterator as index that does bound checks .
pub fn take_no_null_primitive_iter<T: DFNumericType, I: IntoIterator<Item = usize>>(
    arr: &PrimitiveArray<T>,
    indices: I,
) -> Arc<PrimitiveArray<T>> {
    assert_eq!(arr.null_count(), 0);
    let array_values = arr.values();
    let av = indices
        .into_iter()
        .map(|idx| array_values[idx])
        .collect::<AlignedVec<_>>();
    let arr = av.into_primitive_array(None);
    Arc::new(arr)
}
pub fn take_no_null_primitive_iter < T : DFNumericType , I : IntoIterator < Item = usize > > ( arr : & PrimitiveArray < T > , indices : I , ) -> Arc < PrimitiveArray < T > > { assert_eq ! ( arr null_count ( ) 0 ) ; let array_values = arr . values ( ) ; let av = indices . into_iter ( ) . map ( | idx | array_values [ idx ] ) . collect :: < AlignedVec < _ > > ( ) ; let arr = av . into_primitive_array ( None ) ; Arc :: new ( arr ) }
Take kernel for single chunk without nulls and an iterator as index that does bound checks.
Take kernel for single chunk without nulls and an iterator as index that does bound checks .
arr
&PrimitiveArray<T>
indices
I
arr
&PrimitiveArray<T>
indices
I