alamb commented on code in PR #7334:
URL: https://github.com/apache/arrow-rs/pull/7334#discussion_r2019136376
##########
parquet/src/file/metadata/reader.rs:
##########
@@ -1224,6 +1338,37 @@ mod async_tests {
assert_eq!(err, "Parquet error: Invalid Parquet file. Corrupt footer");
}
+ #[tokio::test]
+ async fn test_suffix() {
+ let mut file = get_test_file("nulls.snappy.parquet");
+ let mut file2 = file.try_clone().unwrap();
+
+ let expected = ParquetMetaDataReader::new()
+ .parse_and_finish(&file)
+ .unwrap();
+ let expected = expected.file_metadata().schema();
+ let fetch_count = AtomicUsize::new(0);
+ let suffix_fetch_count = AtomicUsize::new(0);
+
+ let mut fetch = |range| {
+ fetch_count.fetch_add(1, Ordering::SeqCst);
+ futures::future::ready(read_range(&mut file, range))
+ };
+ let mut suffix_fetch = |suffix| {
+ suffix_fetch_count.fetch_add(1, Ordering::SeqCst);
+ futures::future::ready(read_suffix(&mut file2, suffix))
+ };
+
+ let input = MetadataSuffixFetchFn(&mut fetch, &mut suffix_fetch);
+ let actual = ParquetMetaDataReader::new()
+ .load_via_suffix_and_finish(input)
+ .await
+ .unwrap();
+ assert_eq!(actual.file_metadata().schema(), expected);
+ assert_eq!(fetch_count.load(Ordering::SeqCst), 0);
+ assert_eq!(suffix_fetch_count.load(Ordering::SeqCst), 2);
+ }
Review Comment:
Could you also please add a test case for passing in the metadata size hint?
And the expected number of suffix fetches is 1?
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]