Skip to content

Commit 35a4157

Browse files
committed
Reuse fixed-width storage for decimal arrays
Signed-off-by: Connor Tsui <connor.tsui20@gmail.com>
1 parent 6940139 commit 35a4157

33 files changed

Lines changed: 208 additions & 383 deletions

File tree

fuzz/src/array/fill_null.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ use vortex_array::arrays::DecimalArray;
1313
use vortex_array::arrays::PrimitiveArray;
1414
use vortex_array::arrays::VarBinViewArray;
1515
use vortex_array::arrays::bool::BoolArrayExt;
16+
use vortex_array::arrays::decimal::DecimalArrayExt;
1617
use vortex_array::builtins::ArrayBuiltins;
1718
use vortex_array::dtype::DType;
1819
use vortex_array::dtype::Nullability;

fuzz/src/array/mask.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ use vortex_array::arrays::PrimitiveArray;
1616
use vortex_array::arrays::StructArray;
1717
use vortex_array::arrays::VarBinViewArray;
1818
use vortex_array::arrays::bool::BoolArrayExt;
19+
use vortex_array::arrays::decimal::DecimalArrayExt;
1920
use vortex_array::arrays::extension::ExtensionArrayExt;
2021
use vortex_array::arrays::fixed_size_list::FixedSizeListArrayExt;
2122
use vortex_array::arrays::listview::ListViewArrayExt;

fuzz/src/array/scalar_at.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ use vortex_array::Canonical;
77
use vortex_array::ExecutionCtx;
88
use vortex_array::IntoArray;
99
use vortex_array::arrays::bool::BoolArrayExt;
10+
use vortex_array::arrays::decimal::DecimalArrayExt;
1011
use vortex_array::arrays::extension::ExtensionArrayExt;
1112
use vortex_array::arrays::fixed_size_list::FixedSizeListArrayExt;
1213
use vortex_array::arrays::listview::ListViewArrayExt;

vortex-array/src/aggregate_fn/fns/min_max/decimal.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ use super::MinMaxPartial;
99
use super::MinMaxResult;
1010
use crate::ExecutionCtx;
1111
use crate::arrays::DecimalArray;
12+
use crate::arrays::decimal::DecimalArrayExt;
1213
use crate::dtype::DecimalDType;
1314
use crate::dtype::NativeDecimalType;
1415
use crate::dtype::Nullability::NonNullable;

vortex-array/src/aggregate_fn/fns/sum/mod.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -300,9 +300,9 @@ impl AggregateFnVTable for Sum {
300300

301301
let result = match batch {
302302
Columnar::Canonical(c) => match c {
303-
Canonical::Primitive(p) => accumulate_primitive(&mut inner, p, ctx, skip_nans),
303+
Canonical::Primitive(a) => accumulate_primitive(&mut inner, a, ctx, skip_nans),
304+
Canonical::Decimal(a) => accumulate_decimal(&mut inner, a, ctx),
304305
Canonical::Bool(b) => accumulate_bool(&mut inner, b, ctx),
305-
Canonical::Decimal(d) => accumulate_decimal(&mut inner, d, ctx),
306306
_ => vortex_bail!("Unsupported canonical type for sum: {}", batch.dtype()),
307307
},
308308
Columnar::Constant(_) => unreachable!(),

vortex-array/src/array/erased.rs

Lines changed: 0 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -34,15 +34,10 @@ use crate::array::ArrayId;
3434
use crate::array::ArrayInner;
3535
use crate::array::ArraySlots;
3636
use crate::array::DynArrayData;
37-
use crate::arrays::Bool;
3837
use crate::arrays::Constant;
3938
use crate::arrays::DictArray;
4039
use crate::arrays::FilterArray;
41-
use crate::arrays::Null;
42-
use crate::arrays::Primitive;
4340
use crate::arrays::SliceArray;
44-
use crate::arrays::VarBin;
45-
use crate::arrays::VarBinView;
4641
use crate::buffer::BufferHandle;
4742
use crate::builders::ArrayBuilder;
4843
use crate::dtype::DType;
@@ -443,15 +438,6 @@ impl ArrayRef {
443438
nbytes
444439
}
445440

446-
/// Returns whether this array is an arrow encoding.
447-
pub fn is_arrow(&self) -> bool {
448-
self.is::<Null>()
449-
|| self.is::<Bool>()
450-
|| self.is::<Primitive>()
451-
|| self.is::<VarBin>()
452-
|| self.is::<VarBinView>()
453-
}
454-
455441
/// Whether the array is of a canonical encoding.
456442
pub fn is_canonical(&self) -> bool {
457443
self.is::<AnyCanonical>()

0 commit comments

Comments
 (0)