Skip to content
This repository has been archived by the owner on Feb 18, 2024. It is now read-only.

Commit

Permalink
test(parquet); add slicing to parquet round trip tests
Browse files Browse the repository at this point in the history
  • Loading branch information
ritchie46 committed Feb 14, 2023
1 parent b457d68 commit 14b3ed7
Showing 1 changed file with 26 additions and 22 deletions.
48 changes: 26 additions & 22 deletions tests/it/io/parquet/write.rs
Original file line number Diff line number Diff line change
Expand Up @@ -43,36 +43,40 @@ fn round_trip_opt_stats(
),
_ => unreachable!(),
};
let len = array.len();

let field = Field::new("a1", array.data_type().clone(), true);
let schema = Schema::from(vec![field]);
for (start, len) in [(0usize, len), (2, len - 2)] {
let array = array.sliced(start, len);
let field = Field::new("a1", array.data_type().clone(), true);
let schema = Schema::from(vec![field]);

let options = WriteOptions {
write_statistics: true,
compression,
version,
data_pagesize_limit: None,
};
let options = WriteOptions {
write_statistics: true,
compression,
version,
data_pagesize_limit: None,
};

let iter = vec![Chunk::try_new(vec![array.clone()])];
let iter = vec![Chunk::try_new(vec![array.clone()])];

let row_groups =
RowGroupIterator::try_new(iter.into_iter(), &schema, options, vec![encodings])?;
let row_groups =
RowGroupIterator::try_new(iter.into_iter(), &schema, options, vec![encodings.clone()])?;

let writer = Cursor::new(vec![]);
let mut writer = FileWriter::try_new(writer, schema, options)?;
let writer = Cursor::new(vec![]);
let mut writer = FileWriter::try_new(writer, schema, options)?;

for group in row_groups {
writer.write(group?)?;
}
writer.end(None)?;
for group in row_groups {
writer.write(group?)?;
}
writer.end(None)?;

let data = writer.into_inner().into_inner();
let data = writer.into_inner().into_inner();

let (result, stats) = read_column(&mut Cursor::new(data), "a1")?;
assert_eq!(array.as_ref(), result.as_ref());
if check_stats {
assert_eq!(statistics, stats);
let (result, stats) = read_column(&mut Cursor::new(data), "a1")?;
assert_eq!(array.as_ref(), result.as_ref());
if check_stats {
assert_eq!(statistics, stats);
}
}
Ok(())
}
Expand Down

0 comments on commit 14b3ed7

Please sign in to comment.