Skip to content

Commit 47f99c5

Browse files
authored
Merge branch 'main' into fixed_size_list_variant_to_arrow
2 parents 99c6cc5 + 88b7fca commit 47f99c5

File tree

2 files changed

+22
-1
lines changed

2 files changed

+22
-1
lines changed

parquet/src/file/metadata/push_decoder.rs

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -358,6 +358,11 @@ impl ParquetMetaDataPushDecoder {
358358
Ok(())
359359
}
360360

361+
/// Clear any staged byte ranges currently buffered for future decode work.
362+
pub fn clear_all_ranges(&mut self) {
363+
self.buffers.clear_all_ranges();
364+
}
365+
361366
/// Try to decode the metadata from the pushed data, returning the
362367
/// decoded metadata or an error if not enough data is available.
363368
pub fn try_decode(&mut self) -> Result<DecodeResult<ParquetMetaData>> {
@@ -573,6 +578,23 @@ mod tests {
573578
assert!(metadata.offset_index().is_some());
574579
}
575580

581+
#[test]
582+
fn test_metadata_decoder_clear_all_ranges() {
583+
let file_len = test_file_len();
584+
let mut metadata_decoder = ParquetMetaDataPushDecoder::try_new(file_len).unwrap();
585+
586+
metadata_decoder
587+
.push_range(test_file_range(), TEST_FILE_DATA.clone())
588+
.unwrap();
589+
assert_eq!(metadata_decoder.buffers.buffered_bytes(), test_file_len());
590+
591+
metadata_decoder.clear_all_ranges();
592+
assert_eq!(metadata_decoder.buffers.buffered_bytes(), 0);
593+
594+
let ranges = expect_needs_data(metadata_decoder.try_decode());
595+
assert_eq!(ranges, vec![test_file_len() - 8..test_file_len()]);
596+
}
597+
576598
/// Decode the metadata incrementally, simulating a scenario where exactly the data needed
577599
/// is read in each step
578600
#[test]

parquet/src/util/push_buffers.rs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -156,7 +156,6 @@ impl PushBuffers {
156156
}
157157

158158
/// Clear all buffered ranges and their corresponding data
159-
#[cfg(feature = "arrow")]
160159
pub fn clear_all_ranges(&mut self) {
161160
self.ranges.clear();
162161
self.buffers.clear();

0 commit comments

Comments
 (0)