Skip to content

Commit bd3c714

Browse files
committed
ARROW-10225: [Rust] [Parquet] Fix null comparison in roundtrip
Closes #8388 from nevi-me/ARROW-10225 Authored-by: Neville Dipale <nevilledips@gmail.com> Signed-off-by: Neville Dipale <nevilledips@gmail.com>
1 parent 12add42 commit bd3c714

1 file changed

Lines changed: 6 additions & 4 deletions

File tree

rust/parquet/src/arrow/arrow_writer.rs

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -724,7 +724,11 @@ mod tests {
724724
assert_eq!(expected_data.offset(), actual_data.offset());
725725
assert_eq!(expected_data.buffers(), actual_data.buffers());
726726
assert_eq!(expected_data.child_data(), actual_data.child_data());
727-
assert_eq!(expected_data.null_bitmap(), actual_data.null_bitmap());
727+
// Null counts should be the same, not necessarily bitmaps
728+
// A null bitmap is optional if an array has no nulls
729+
if expected_data.null_count() != 0 {
730+
assert_eq!(expected_data.null_bitmap(), actual_data.null_bitmap());
731+
}
728732
}
729733
}
730734

@@ -1001,7 +1005,7 @@ mod tests {
10011005
}
10021006

10031007
#[test]
1004-
#[ignore] // Binary support isn't correct yet - null_bitmap doesn't match
1008+
#[ignore] // Binary support isn't correct yet - buffers don't match
10051009
fn binary_single_column() {
10061010
let one_vec: Vec<u8> = (0..SMALL_SIZE as u8).collect();
10071011
let many_vecs: Vec<_> = std::iter::repeat(one_vec).take(SMALL_SIZE).collect();
@@ -1026,7 +1030,6 @@ mod tests {
10261030
}
10271031

10281032
#[test]
1029-
#[ignore] // String support isn't correct yet - null_bitmap doesn't match
10301033
fn string_single_column() {
10311034
let raw_values: Vec<_> = (0..SMALL_SIZE).map(|i| i.to_string()).collect();
10321035
let raw_strs = raw_values.iter().map(|s| s.as_str());
@@ -1035,7 +1038,6 @@ mod tests {
10351038
}
10361039

10371040
#[test]
1038-
#[ignore] // Large string support isn't correct yet - null_bitmap doesn't match
10391041
fn large_string_single_column() {
10401042
let raw_values: Vec<_> = (0..SMALL_SIZE).map(|i| i.to_string()).collect();
10411043
let raw_strs = raw_values.iter().map(|s| s.as_str());

0 commit comments

Comments
 (0)