Skip to content

Commit 992b124

Browse files
joseph-isaacsclaude
andcommitted
review: cover demanded-error one-pass and constant-array shapes, reuse mask buffer
Signed-off-by: "Joe Isaacs" <joe.isaacs@live.co.uk> Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01GhAvQmWLipNHBKjrZhxnKv
1 parent e479e79 commit 992b124

1 file changed

Lines changed: 21 additions & 1 deletion

File tree

vortex-array/src/scalar_fn/fns/binary/numeric.rs

Lines changed: 21 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -167,7 +167,7 @@ where
167167
let care_lanes = if demand.all_true() {
168168
valid_rows
169169
} else {
170-
&valid_rows & demand
170+
valid_rows & demand
171171
};
172172

173173
let checked = match (&lhs, &rhs) {
@@ -1207,6 +1207,26 @@ mod test {
12071207
Ok(())
12081208
}
12091209

1210+
#[test]
1211+
fn test_div_by_zero_on_demanded_lane_errors() {
1212+
let lhs = buffer![10i32, 10].into_array();
1213+
let rhs = buffer![0i32, 2].into_array();
1214+
let result = execute_with_demand(lhs, rhs, Operator::Div, Mask::from_iter([true, false]));
1215+
1216+
assert!(result.is_err());
1217+
}
1218+
1219+
#[test]
1220+
fn test_scalar_add_array_overflow_on_undemanded_lane_is_ok() -> VortexResult<()> {
1221+
let mut ctx = array_session().create_execution_ctx();
1222+
let lhs = ConstantArray::new(1u8, 2).into_array();
1223+
let rhs = buffer![u8::MAX, 1].into_array();
1224+
let result = execute_with_demand(lhs, rhs, Operator::Add, Mask::from_iter([false, true]))?;
1225+
1226+
assert_eq!(result.execute_scalar(1, &mut ctx)?, Scalar::from(2u8));
1227+
Ok(())
1228+
}
1229+
12101230
#[test]
12111231
fn test_add_overflow_on_null_demanded_lane_is_ok() -> VortexResult<()> {
12121232
let mut ctx = array_session().create_execution_ctx();

0 commit comments

Comments
 (0)