in parquet/src/record/reader.rs [957:1264]
fn test_file_reader_rows_nullable() {
let rows = test_file_reader_rows("nullable.impala.parquet", None).unwrap();
let expected_rows = vec![
row![
("id".to_string(), Field::Long(1)),
(
"int_array".to_string(),
list![Field::Int(1), Field::Int(2), Field::Int(3)]
),
(
"int_array_Array".to_string(),
list![
list![Field::Int(1), Field::Int(2)],
list![Field::Int(3), Field::Int(4)]
]
),
(
"int_map".to_string(),
map![
(Field::Str("k1".to_string()), Field::Int(1)),
(Field::Str("k2".to_string()), Field::Int(100))
]
),
(
"int_Map_Array".to_string(),
list![map![(Field::Str("k1".to_string()), Field::Int(1))]]
),
(
"nested_struct".to_string(),
group![
("A".to_string(), Field::Int(1)),
("b".to_string(), list![Field::Int(1)]),
(
"C".to_string(),
group![(
"d".to_string(),
list![
list![
group![
("E".to_string(), Field::Int(10)),
(
"F".to_string(),
Field::Str("aaa".to_string())
)
],
group![
("E".to_string(), Field::Int(-10)),
(
"F".to_string(),
Field::Str("bbb".to_string())
)
]
],
list![group![
("E".to_string(), Field::Int(11)),
("F".to_string(), Field::Str("c".to_string()))
]]
]
)]
),
(
"g".to_string(),
map![(
Field::Str("foo".to_string()),
group![(
"H".to_string(),
group![("i".to_string(), list![Field::Double(1.1)])]
)]
)]
)
]
)
],
row![
("id".to_string(), Field::Long(2)),
(
"int_array".to_string(),
list![
Field::Null,
Field::Int(1),
Field::Int(2),
Field::Null,
Field::Int(3),
Field::Null
]
),
(
"int_array_Array".to_string(),
list![
list![Field::Null, Field::Int(1), Field::Int(2), Field::Null],
list![Field::Int(3), Field::Null, Field::Int(4)],
list![],
Field::Null
]
),
(
"int_map".to_string(),
map![
(Field::Str("k1".to_string()), Field::Int(2)),
(Field::Str("k2".to_string()), Field::Null)
]
),
(
"int_Map_Array".to_string(),
list![
map![
(Field::Str("k3".to_string()), Field::Null),
(Field::Str("k1".to_string()), Field::Int(1))
],
Field::Null,
map![]
]
),
(
"nested_struct".to_string(),
group![
("A".to_string(), Field::Null),
("b".to_string(), list![Field::Null]),
(
"C".to_string(),
group![(
"d".to_string(),
list![
list![
group![
("E".to_string(), Field::Null),
("F".to_string(), Field::Null)
],
group![
("E".to_string(), Field::Int(10)),
(
"F".to_string(),
Field::Str("aaa".to_string())
)
],
group![
("E".to_string(), Field::Null),
("F".to_string(), Field::Null)
],
group![
("E".to_string(), Field::Int(-10)),
(
"F".to_string(),
Field::Str("bbb".to_string())
)
],
group![
("E".to_string(), Field::Null),
("F".to_string(), Field::Null)
]
],
list![
group![
("E".to_string(), Field::Int(11)),
(
"F".to_string(),
Field::Str("c".to_string())
)
],
Field::Null
],
list![],
Field::Null
]
)]
),
(
"g".to_string(),
map![
(
Field::Str("g1".to_string()),
group![(
"H".to_string(),
group![(
"i".to_string(),
list![Field::Double(2.2), Field::Null]
)]
)]
),
(
Field::Str("g2".to_string()),
group![(
"H".to_string(),
group![("i".to_string(), list![])]
)]
),
(Field::Str("g3".to_string()), Field::Null),
(
Field::Str("g4".to_string()),
group![(
"H".to_string(),
group![("i".to_string(), Field::Null)]
)]
),
(
Field::Str("g5".to_string()),
group![("H".to_string(), Field::Null)]
)
]
)
]
)
],
row![
("id".to_string(), Field::Long(3)),
("int_array".to_string(), list![]),
("int_array_Array".to_string(), list![Field::Null]),
("int_map".to_string(), map![]),
("int_Map_Array".to_string(), list![Field::Null, Field::Null]),
(
"nested_struct".to_string(),
group![
("A".to_string(), Field::Null),
("b".to_string(), Field::Null),
("C".to_string(), group![("d".to_string(), list![])]),
("g".to_string(), map![])
]
)
],
row![
("id".to_string(), Field::Long(4)),
("int_array".to_string(), Field::Null),
("int_array_Array".to_string(), list![]),
("int_map".to_string(), map![]),
("int_Map_Array".to_string(), list![]),
(
"nested_struct".to_string(),
group![
("A".to_string(), Field::Null),
("b".to_string(), Field::Null),
("C".to_string(), group![("d".to_string(), Field::Null)]),
("g".to_string(), Field::Null)
]
)
],
row![
("id".to_string(), Field::Long(5)),
("int_array".to_string(), Field::Null),
("int_array_Array".to_string(), Field::Null),
("int_map".to_string(), map![]),
("int_Map_Array".to_string(), Field::Null),
(
"nested_struct".to_string(),
group![
("A".to_string(), Field::Null),
("b".to_string(), Field::Null),
("C".to_string(), Field::Null),
(
"g".to_string(),
map![(
Field::Str("foo".to_string()),
group![(
"H".to_string(),
group![(
"i".to_string(),
list![Field::Double(2.2), Field::Double(3.3)]
)]
)]
)]
)
]
)
],
row![
("id".to_string(), Field::Long(6)),
("int_array".to_string(), Field::Null),
("int_array_Array".to_string(), Field::Null),
("int_map".to_string(), Field::Null),
("int_Map_Array".to_string(), Field::Null),
("nested_struct".to_string(), Field::Null)
],
row![
("id".to_string(), Field::Long(7)),
("int_array".to_string(), Field::Null),
(
"int_array_Array".to_string(),
list![Field::Null, list![Field::Int(5), Field::Int(6)]]
),
(
"int_map".to_string(),
map![
(Field::Str("k1".to_string()), Field::Null),
(Field::Str("k3".to_string()), Field::Null)
]
),
("int_Map_Array".to_string(), Field::Null),
(
"nested_struct".to_string(),
group![
("A".to_string(), Field::Int(7)),
(
"b".to_string(),
list![Field::Int(2), Field::Int(3), Field::Null]
),
(
"C".to_string(),
group![(
"d".to_string(),
list![list![], list![Field::Null], Field::Null]
)]
),
("g".to_string(), Field::Null)
]
)
],
];
assert_eq!(rows, expected_rows);
}