Skip to content

Commit 4748d0b

Browse files
committed
Use interval type constructors in integration test (apache#5654)
1 parent cd39b8c commit 4748d0b

File tree

1 file changed

+9
-17
lines changed
  • arrow-integration-test/src

1 file changed

+9
-17
lines changed

arrow-integration-test/src/lib.rs

Lines changed: 9 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -397,13 +397,10 @@ pub fn array_from_json(
397397

398398
match (days, milliseconds) {
399399
(Value::Number(d), Value::Number(m)) => {
400-
let mut bytes = [0_u8; 8];
401-
let m = (m.as_i64().unwrap() as i32).to_le_bytes();
402-
let d = (d.as_i64().unwrap() as i32).to_le_bytes();
403-
404-
let c = [d, m].concat();
405-
bytes.copy_from_slice(c.as_slice());
406-
i64::from_le_bytes(bytes)
400+
IntervalDayTimeType::make_value(
401+
d.as_i64().unwrap() as i32,
402+
m.as_i64().unwrap() as i32,
403+
)
407404
}
408405
_ => {
409406
panic!("Unable to parse {value:?} as interval daytime")
@@ -519,16 +516,11 @@ pub fn array_from_json(
519516
Value::Number(months),
520517
Value::Number(days),
521518
Value::Number(nanoseconds),
522-
) => {
523-
let months = months.as_i64().unwrap() as i32;
524-
let days = days.as_i64().unwrap() as i32;
525-
let nanoseconds = nanoseconds.as_i64().unwrap();
526-
let months_days_ns: i128 =
527-
((nanoseconds as i128) & 0xFFFFFFFFFFFFFFFF) << 64
528-
| ((days as i128) & 0xFFFFFFFF) << 32
529-
| ((months as i128) & 0xFFFFFFFF);
530-
months_days_ns
531-
}
519+
) => IntervalMonthDayNanoType::make_value(
520+
months.as_i64().unwrap() as i32,
521+
days.as_i64().unwrap() as i32,
522+
nanoseconds.as_i64().unwrap(),
523+
),
532524
(_, _, _) => {
533525
panic!("Unable to parse {v:?} as MonthDayNano")
534526
}

0 commit comments

Comments
 (0)