diff --git a/arrow-json/src/reader/timestamp_array.rs b/arrow-json/src/reader/timestamp_array.rs index b80915f6a56a..09672614107c 100644 --- a/arrow-json/src/reader/timestamp_array.rs +++ b/arrow-json/src/reader/timestamp_array.rs @@ -96,6 +96,13 @@ where builder.append_value(value) } + TapeElement::I32(v) => builder.append_value(v as i64), + TapeElement::I64(high) => match tape.get(p + 1) { + TapeElement::I32(low) => { + builder.append_value((high as i64) << 32 | low as i64) + } + _ => unreachable!(), + }, _ => return Err(tape.error(*p, "primitive")), } }