Skip to content

Commit 0e198e9

Browse files
committed
Add testing
1 parent 2d66332 commit 0e198e9

File tree

1 file changed

+29
-0
lines changed
  • parquet/src/column/writer

1 file changed

+29
-0
lines changed

parquet/src/column/writer/mod.rs

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4247,4 +4247,33 @@ mod tests {
42474247
.unwrap();
42484248
ColumnDescriptor::new(Arc::new(tpe), max_def_level, max_rep_level, path)
42494249
}
4250+
4251+
#[test]
4252+
fn test_page_v2_snappy_compression_fallback() {
4253+
// Test that PageV2 sets is_compressed to false when Snappy compression increases data size
4254+
let page_writer = TestPageWriter {};
4255+
4256+
// Create WriterProperties with PageV2 and Snappy compression
4257+
let props = WriterProperties::builder()
4258+
.set_writer_version(WriterVersion::PARQUET_2_0)
4259+
// Disable dictionary to ensure data is written directly
4260+
.set_dictionary_enabled(false)
4261+
.set_compression(Compression::SNAPPY)
4262+
.build();
4263+
4264+
let mut column_writer =
4265+
get_test_column_writer::<ByteArrayType>(Box::new(page_writer), 0, 0, Arc::new(props));
4266+
4267+
// Create small, simple data that Snappy compression will likely increase in size
4268+
// due to compression overhead for very small data
4269+
let values = vec![ByteArray::from("a")];
4270+
4271+
column_writer.write_batch(&values, None, None).unwrap();
4272+
4273+
let result = column_writer.close().unwrap();
4274+
assert_eq!(
4275+
result.metadata.uncompressed_size(),
4276+
result.metadata.compressed_size()
4277+
);
4278+
}
42504279
}

0 commit comments

Comments
 (0)