From 1598493630d6ee85386b074af0d75b4327f89055 Mon Sep 17 00:00:00 2001 From: Robert Kruszewski Date: Thu, 29 Aug 2024 11:16:45 +0100 Subject: [PATCH] ALP decompress in place (#700) --- encodings/alp/src/compress.rs | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/encodings/alp/src/compress.rs b/encodings/alp/src/compress.rs index 3e382dbb48..f1ab248af8 100644 --- a/encodings/alp/src/compress.rs +++ b/encodings/alp/src/compress.rs @@ -1,4 +1,3 @@ -use itertools::Itertools; use vortex::array::{PrimitiveArray, Sparse, SparseArray}; use vortex::validity::Validity; use vortex::{Array, ArrayDType, ArrayDef, IntoArray, IntoArrayVariant}; @@ -61,11 +60,12 @@ pub fn alp_encode(parray: &PrimitiveArray) -> VortexResult { pub fn decompress(array: ALPArray) -> VortexResult { let encoded = array.encoded().into_primitive()?; + let validity = encoded.validity(); let decoded = match_each_alp_float_ptype!(array.dtype().try_into().unwrap(), |$T| { PrimitiveArray::from_vec( - decompress_primitive::<$T>(encoded.maybe_null_slice(), array.exponents()), - encoded.validity(), + decompress_primitive::<$T>(encoded.into_maybe_null_slice(), array.exponents()), + validity, ) }); @@ -95,13 +95,13 @@ fn patch_decoded(array: PrimitiveArray, patches: &Array) -> VortexResult( - values: &[T::ALPInt], + values: Vec, exponents: Exponents, ) -> Vec { values - .iter() - .map(|&v| T::decode_single(v, exponents)) - .collect_vec() + .into_iter() + .map(|v| T::decode_single(v, exponents)) + .collect() } #[cfg(test)]