Skip to content

Commit eedbec1

Browse files
joseph-isaacsclaude
andcommitted
Fix VortexResult API changes for new files from develop
- Update scalar_fn vtable (canonical.rs, validity.rs) to return VortexResult - Update decompress.rs to return VortexResult<PrimitiveArray> - Add .unwrap() to test code calling decompress_into_array - Fix batch_execute method name and signature in bitpacking vtable - Update tests to handle is_valid returning VortexResult 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <[email protected]>
1 parent ad8fa4a commit eedbec1

File tree

14 files changed

+76
-96
lines changed

14 files changed

+76
-96
lines changed

encodings/alp/src/alp/array.rs

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -421,7 +421,7 @@ impl BaseArrayVTable<ALPVTable> for ALPVTable {
421421

422422
impl CanonicalVTable<ALPVTable> for ALPVTable {
423423
fn canonicalize(array: &ALPArray) -> VortexResult<Canonical> {
424-
Ok(Canonical::Primitive(decompress_into_array(array.clone())))
424+
Ok(Canonical::Primitive(decompress_into_array(array.clone())?))
425425
}
426426
}
427427

@@ -482,7 +482,7 @@ mod tests {
482482

483483
let result_vector = encoded.to_array().execute(&SESSION).unwrap();
484484
// Compare against the traditional array-based decompress path
485-
let expected = decompress_into_array(encoded);
485+
let expected = decompress_into_array(encoded).unwrap();
486486

487487
assert_eq!(result_vector.len(), size);
488488

@@ -506,7 +506,7 @@ mod tests {
506506

507507
let result_vector = encoded.to_array().execute(&SESSION).unwrap();
508508
// Compare against the traditional array-based decompress path
509-
let expected = decompress_into_array(encoded);
509+
let expected = decompress_into_array(encoded).unwrap();
510510

511511
assert_eq!(result_vector.len(), size);
512512

@@ -536,7 +536,7 @@ mod tests {
536536

537537
let result_vector = encoded.to_array().execute(&SESSION).unwrap();
538538
// Compare against the traditional array-based decompress path
539-
let expected = decompress_into_array(encoded);
539+
let expected = decompress_into_array(encoded).unwrap();
540540

541541
assert_eq!(result_vector.len(), size);
542542

@@ -564,7 +564,7 @@ mod tests {
564564

565565
let result_vector = encoded.to_array().execute(&SESSION).unwrap();
566566
// Compare against the traditional array-based decompress path
567-
let expected = decompress_into_array(encoded);
567+
let expected = decompress_into_array(encoded).unwrap();
568568

569569
assert_eq!(result_vector.len(), size);
570570

@@ -575,7 +575,7 @@ mod tests {
575575
for idx in 0..size {
576576
assert_eq!(
577577
result_primitive.validity().value(idx),
578-
expected.validity().is_valid(idx)
578+
expected.validity().is_valid(idx).unwrap()
579579
);
580580
}
581581
}
@@ -603,7 +603,7 @@ mod tests {
603603

604604
let result_vector = encoded.to_array().execute(&SESSION).unwrap();
605605
// Compare against the traditional array-based decompress path
606-
let expected = decompress_into_array(encoded);
606+
let expected = decompress_into_array(encoded).unwrap();
607607

608608
assert_eq!(result_vector.len(), size);
609609

@@ -614,7 +614,7 @@ mod tests {
614614
for idx in 0..size {
615615
assert_eq!(
616616
result_primitive.validity().value(idx),
617-
expected.validity().is_valid(idx)
617+
expected.validity().is_valid(idx).unwrap()
618618
);
619619
}
620620
}

encodings/alp/src/alp/compress.rs

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -150,7 +150,7 @@ mod tests {
150150
assert_arrays_eq!(encoded.encoded(), expected_encoded);
151151
assert_eq!(encoded.exponents(), Exponents { e: 9, f: 6 });
152152

153-
let decoded = decompress_into_array(encoded);
153+
let decoded = decompress_into_array(encoded).unwrap();
154154
assert_arrays_eq!(decoded, array);
155155
}
156156

@@ -163,7 +163,7 @@ mod tests {
163163
assert_arrays_eq!(encoded.encoded(), expected_encoded);
164164
assert_eq!(encoded.exponents(), Exponents { e: 9, f: 6 });
165165

166-
let decoded = decompress_into_array(encoded);
166+
let decoded = decompress_into_array(encoded).unwrap();
167167
let expected = PrimitiveArray::from_option_iter(vec![None, Some(1.234f32), None]);
168168
assert_arrays_eq!(decoded.as_ref(), expected.as_ref());
169169
}
@@ -179,7 +179,7 @@ mod tests {
179179
assert_arrays_eq!(encoded.encoded(), expected_encoded);
180180
assert_eq!(encoded.exponents(), Exponents { e: 16, f: 13 });
181181

182-
let decoded = decompress_into_array(encoded);
182+
let decoded = decompress_into_array(encoded).unwrap();
183183
let expected_decoded = PrimitiveArray::new(values, Validity::NonNullable);
184184
assert_arrays_eq!(decoded.as_ref(), expected_decoded.as_ref());
185185
}
@@ -196,7 +196,7 @@ mod tests {
196196
assert_arrays_eq!(encoded.encoded(), expected_encoded);
197197
assert_eq!(encoded.exponents(), Exponents { e: 16, f: 13 });
198198

199-
let decoded = decompress_into_array(encoded);
199+
let decoded = decompress_into_array(encoded).unwrap();
200200
assert_arrays_eq!(decoded, array);
201201
}
202202

@@ -217,7 +217,7 @@ mod tests {
217217

218218
assert_arrays_eq!(encoded.as_ref(), array.as_ref());
219219

220-
let _decoded = decompress_into_array(encoded);
220+
let _decoded = decompress_into_array(encoded).unwrap();
221221
}
222222

223223
#[test]
@@ -468,7 +468,7 @@ mod tests {
468468
let encoded = alp_encode(&array, None).unwrap();
469469

470470
assert!(encoded.patches().is_none());
471-
let decoded = decompress_into_array(encoded);
471+
let decoded = decompress_into_array(encoded).unwrap();
472472
assert_eq!(array.as_slice::<f32>(), decoded.as_slice::<f32>());
473473
}
474474

@@ -479,7 +479,7 @@ mod tests {
479479
let encoded = alp_encode(&array, None).unwrap();
480480

481481
assert!(encoded.patches().is_none());
482-
let decoded = decompress_into_array(encoded);
482+
let decoded = decompress_into_array(encoded).unwrap();
483483
assert_eq!(array.as_slice::<f64>(), decoded.as_slice::<f64>());
484484
}
485485

@@ -496,7 +496,7 @@ mod tests {
496496
let encoded = alp_encode(&array, None).unwrap();
497497

498498
assert!(encoded.patches().is_some());
499-
let decoded = decompress_into_array(encoded);
499+
let decoded = decompress_into_array(encoded).unwrap();
500500
assert_eq!(values.as_slice(), decoded.as_slice::<f32>());
501501
}
502502

@@ -517,7 +517,7 @@ mod tests {
517517
let encoded = alp_encode(&array, None).unwrap();
518518

519519
assert!(encoded.patches().is_some());
520-
let decoded = decompress_into_array(encoded);
520+
let decoded = decompress_into_array(encoded).unwrap();
521521

522522
for idx in 0..size {
523523
let decoded_val = decoded.as_slice::<f64>()[idx];
@@ -544,7 +544,7 @@ mod tests {
544544

545545
let array = PrimitiveArray::from_option_iter(values);
546546
let encoded = alp_encode(&array, None).unwrap();
547-
let decoded = decompress_into_array(encoded);
547+
let decoded = decompress_into_array(encoded).unwrap();
548548

549549
assert_arrays_eq!(decoded.as_ref(), array.as_ref());
550550
}
@@ -564,7 +564,7 @@ mod tests {
564564

565565
let array = PrimitiveArray::new(Buffer::from(values), validity);
566566
let encoded = alp_encode(&array, None).unwrap();
567-
let decoded = decompress_into_array(encoded);
567+
let decoded = decompress_into_array(encoded).unwrap();
568568

569569
assert_arrays_eq!(decoded.as_ref(), array.as_ref());
570570
}

encodings/alp/src/alp/decompress.rs

Lines changed: 13 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ use crate::match_each_alp_float_ptype;
3030
/// # Returns
3131
///
3232
/// A `PrimitiveArray` containing the decompressed floating-point values with all patches applied.
33-
pub fn decompress_into_array(array: ALPArray) -> PrimitiveArray {
33+
pub fn decompress_into_array(array: ALPArray) -> VortexResult<PrimitiveArray> {
3434
let (encoded, exponents, patches, dtype) = array.into_parts();
3535
if let Some(ref patches) = patches
3636
&& let Some(chunk_offsets) = patches.chunk_offsets()
@@ -39,7 +39,7 @@ pub fn decompress_into_array(array: ALPArray) -> PrimitiveArray {
3939
encoded,
4040
exponents,
4141
patches,
42-
&chunk_offsets.as_ref().to_primitive(),
42+
&chunk_offsets.as_ref().to_primitive()?,
4343
dtype,
4444
)
4545
} else {
@@ -102,23 +102,18 @@ fn decompress_chunked(
102102
patches: &Patches,
103103
patches_chunk_offsets: &PrimitiveArray,
104104
dtype: DType,
105-
) -> PrimitiveArray {
106-
let encoded = array.to_primitive();
105+
) -> VortexResult<PrimitiveArray> {
106+
let encoded = array.to_primitive()?;
107107

108108
let validity = encoded.validity().clone();
109109

110-
let patches_indices = patches.indices().to_primitive();
111-
let patches_values = patches.values().to_primitive();
110+
let patches_indices = patches.indices().to_primitive()?;
111+
let patches_values = patches.values().to_primitive()?;
112112
let ptype = dtype.as_ptype();
113-
let array_len = array.len();
113+
let array_len = encoded.len();
114114
let patches_offset = patches.offset();
115115

116-
// We need to drop ALPArray here in case converting encoded buffer into
117-
// primitive didn't create a copy. In that case both alp_encoded and array
118-
// will hold a reference to the buffer we want to mutate.
119-
drop(array);
120-
121-
match_each_alp_float_ptype!(ptype, |T| {
116+
Ok(match_each_alp_float_ptype!(ptype, |T| {
122117
let patches_values = patches_values.as_slice::<T>();
123118
let mut alp_buffer = encoded.into_buffer_mut();
124119
match_each_unsigned_integer_ptype!(patches_chunk_offsets.ptype(), |C| {
@@ -153,7 +148,7 @@ fn decompress_chunked(
153148
PrimitiveArray::new::<T>(decoded_buffer.freeze(), validity)
154149
})
155150
})
156-
})
151+
}))
157152
}
158153

159154
/// Decompresses an ALP-encoded array without chunk offsets.
@@ -166,13 +161,8 @@ fn decompress_unchunked(
166161
exponents: Exponents,
167162
patches: Option<Patches>,
168163
dtype: DType,
169-
) -> PrimitiveArray {
170-
let encoded = array.to_primitive();
171-
172-
// We need to drop ALPArray here in case converting encoded buffer into
173-
// primitive didn't create a copy. In that case both alp_encoded and array
174-
// will hold a reference to the buffer we want to mutate.
175-
drop(array);
164+
) -> VortexResult<PrimitiveArray> {
165+
let encoded = array.to_primitive()?;
176166

177167
let validity = encoded.validity().clone();
178168
let ptype = dtype.as_ptype();
@@ -184,9 +174,9 @@ fn decompress_unchunked(
184174
PrimitiveArray::new::<T>(decoded_buffer.freeze(), validity)
185175
});
186176

187-
if let Some(patches) = patches {
177+
Ok(if let Some(patches) = patches {
188178
decoded.patch(&patches)
189179
} else {
190180
decoded
191-
}
181+
})
192182
}

encodings/fastlanes/src/bitpacking/vtable/mod.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -172,7 +172,7 @@ impl VTable for BitPackedVTable {
172172
)
173173
}
174174

175-
fn execute(array: &BitPackedArray, _ctx: &mut dyn ExecutionCtx) -> VortexResult<Vector> {
175+
fn batch_execute(array: &BitPackedArray, _ctx: &mut ExecutionCtx) -> VortexResult<Vector> {
176176
Ok(unpack_to_primitive_vector(array)?.freeze().into())
177177
}
178178
}

encodings/pco/src/test.rs

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -136,10 +136,7 @@ fn test_validity_vtable() -> VortexResult<()> {
136136
Validity::Array(BoolArray::from_iter(mask_bools.clone()).to_array()),
137137
);
138138
let compressed = PcoArray::from_primitive(&array, 3, 0).unwrap();
139-
assert_eq!(
140-
compressed.validity_mask()?,
141-
Mask::from_iter(mask_bools)
142-
);
139+
assert_eq!(compressed.validity_mask()?, Mask::from_iter(mask_bools));
143140
assert_eq!(
144141
compressed.slice(1..4).validity_mask()?,
145142
Mask::from_iter(vec![true, true, false])

encodings/zstd/src/test.rs

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -145,10 +145,7 @@ fn test_validity_vtable() -> VortexResult<()> {
145145
Validity::Array(BoolArray::from_iter(mask_bools.clone()).to_array()),
146146
);
147147
let compressed = ZstdArray::from_primitive(&array, 3, 0).unwrap();
148-
assert_eq!(
149-
compressed.validity_mask()?,
150-
Mask::from_iter(mask_bools)
151-
);
148+
assert_eq!(compressed.validity_mask()?, Mask::from_iter(mask_bools));
152149
assert_eq!(
153150
compressed.slice(1..4).validity_mask()?,
154151
Mask::from_iter(vec![true, true, false])

vortex-array/src/arrays/datetime/test.rs

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -200,10 +200,7 @@ fn test_validity_preservation(#[case] validity: Validity) -> VortexResult<()> {
200200
Some("UTC".to_string()),
201201
);
202202
assert_eq!(
203-
temporal_array
204-
.temporal_values()
205-
.to_primitive()?
206-
.validity(),
203+
temporal_array.temporal_values().to_primitive()?.validity(),
207204
&validity
208205
);
209206
Ok(())

vortex-array/src/arrays/listview/tests/basic.rs

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,9 +8,8 @@ use vortex_buffer::buffer;
88
use vortex_dtype::DType;
99
use vortex_dtype::Nullability;
1010
use vortex_dtype::PType;
11-
use vortex_scalar::Scalar;
12-
1311
use vortex_error::VortexResult;
12+
use vortex_scalar::Scalar;
1413

1514
use crate::Array;
1615
use crate::IntoArray;

vortex-array/src/arrays/listview/tests/nullability.rs

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -84,7 +84,10 @@ fn test_nullable_listview_comprehensive() -> VortexResult<()> {
8484
#[case::all_nulls(Validity::AllInvalid, vec![false, false, false])]
8585
#[case::all_valid(Validity::AllValid, vec![true, true, true])]
8686
#[case::mixed(Validity::from_iter([false, true, false]), vec![false, true, false])]
87-
fn test_nullable_patterns(#[case] validity: Validity, #[case] expected_validity: Vec<bool>) -> VortexResult<()> {
87+
fn test_nullable_patterns(
88+
#[case] validity: Validity,
89+
#[case] expected_validity: Vec<bool>,
90+
) -> VortexResult<()> {
8891
// Logical lists: [[1,2], [3,4], [5,6]] with varying validity
8992
let elements = buffer![1i32, 2, 3, 4, 5, 6].into_array();
9093
let offsets = buffer![0i32, 2, 4].into_array();

vortex-array/src/arrays/listview/tests/operations.rs

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -280,7 +280,10 @@ fn test_cast_with_nulls() -> VortexResult<()> {
280280
#[rstest]
281281
#[case::empty_lists(vec![0, 1, 0, 1], 4)]
282282
#[case::overlapping(vec![3, 3, 5], 3)]
283-
fn test_cast_special_patterns(#[case] expected_sizes: Vec<usize>, #[case] list_count: usize) -> VortexResult<()> {
283+
fn test_cast_special_patterns(
284+
#[case] expected_sizes: Vec<usize>,
285+
#[case] list_count: usize,
286+
) -> VortexResult<()> {
284287
let is_empty_case = list_count == 4;
285288

286289
let (elements, offsets, sizes) = if is_empty_case {

0 commit comments

Comments
 (0)