Skip to content

Commit 85e8b82

Browse files
committed
PR comments
1 parent b223c81 commit 85e8b82

File tree

3 files changed

+30
-12
lines changed

3 files changed

+30
-12
lines changed

parquet/src/column/reader.rs

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -571,8 +571,9 @@ fn parse_v1_level(
571571
let i32_size = std::mem::size_of::<i32>();
572572
if i32_size <= buf.len() {
573573
let data_size = read_num_bytes::<i32>(i32_size, buf.as_ref()) as usize;
574-
let end =
575-
i32_size.checked_add(data_size).ok_or(general_err!("invalid level length"))?;
574+
let end = i32_size
575+
.checked_add(data_size)
576+
.ok_or(general_err!("invalid level length"))?;
576577
if end <= buf.len() {
577578
return Ok((end, buf.slice(i32_size..end)));
578579
}

parquet/src/file/serialized_reader.rs

Lines changed: 23 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -461,7 +461,10 @@ pub(crate) fn decode_page(
461461
}
462462
_ => {
463463
// For unknown page type (e.g., INDEX_PAGE), skip and read next.
464-
return Err(general_err!("Page type {:?} is not supported", page_header.r#type));
464+
return Err(general_err!(
465+
"Page type {:?} is not supported",
466+
page_header.r#type
467+
));
465468
}
466469
};
467470

@@ -1146,13 +1149,25 @@ mod tests {
11461149
fn test_decode_page_invalid_offset() {
11471150
use crate::file::metadata::thrift_gen::DataPageHeaderV2;
11481151

1149-
let mut page_header = PageHeader::default();
1150-
page_header.r#type = PageType::DATA_PAGE_V2;
1151-
page_header.uncompressed_page_size = 10;
1152-
page_header.compressed_page_size = 10;
1153-
let mut data_page_header_v2 = DataPageHeaderV2::default();
1154-
data_page_header_v2.definition_levels_byte_length = 11; // offset > uncompressed_page_size
1155-
page_header.data_page_header_v2 = Some(data_page_header_v2);
1152+
let page_header = PageHeader {
1153+
r#type: PageType::DATA_PAGE_V2,
1154+
uncompressed_page_size: 10,
1155+
compressed_page_size: 10,
1156+
data_page_header: None,
1157+
index_page_header: None,
1158+
dictionary_page_header: None,
1159+
crc: None,
1160+
data_page_header_v2: Some(DataPageHeaderV2 {
1161+
num_nulls: 0,
1162+
num_rows: 0,
1163+
num_values: 0,
1164+
encoding: Encoding::PLAIN,
1165+
definition_levels_byte_length: 11,
1166+
repetition_levels_byte_length: 0,
1167+
is_compressed: None,
1168+
statistics: None,
1169+
}),
1170+
};
11561171

11571172
let buffer = Bytes::new();
11581173
let err = decode_page(page_header, buffer, Type::INT32, None).unwrap_err();

parquet/src/schema/types.rs

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1358,11 +1358,13 @@ fn schema_from_array_helper<'a>(
13581358
// All other types must have one.
13591359
if !is_root_node {
13601360
let Some(rep) = repetition else {
1361-
return Err(general_err!("Repetition level must be defined for non-root types"));
1361+
return Err(general_err!(
1362+
"Repetition level must be defined for non-root types"
1363+
));
13621364
};
13631365
builder = builder.with_repetition(rep);
13641366
}
1365-
Ok((next_index, Arc::new(builder.build().unwrap())))
1367+
Ok((next_index, Arc::new(builder.build()?)))
13661368
}
13671369
}
13681370
}

0 commit comments

Comments
 (0)