From 35cfee14a058ac4783c834b0319fb7723da1d4c9 Mon Sep 17 00:00:00 2001 From: "Jorge C. Leitao" Date: Sat, 28 May 2022 04:48:58 +0000 Subject: [PATCH] Fixed error in writing list> --- src/io/parquet/write/nested/rep.rs | 23 ++++++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) diff --git a/src/io/parquet/write/nested/rep.rs b/src/io/parquet/write/nested/rep.rs index 4281a6301e1..744fab39ecc 100644 --- a/src/io/parquet/write/nested/rep.rs +++ b/src/io/parquet/write/nested/rep.rs @@ -15,7 +15,7 @@ fn iter<'a>(nested: &'a [Nested]) -> Vec> { Some(Box::new(to_length(nested.offsets)) as Box) } Nested::Struct(_, _, length) => { - Some(Box::new(std::iter::repeat(0usize).take(*length)) as Box) + Some(Box::new(std::iter::repeat(1usize).take(*length)) as Box) } }) .collect() @@ -202,4 +202,25 @@ mod tests { test(nested, expected) } + + #[test] + fn list_of_struct() { + /* + [ + [{"a": "b"}],[{"a": "c"}] + ] + */ + let nested = vec![ + Nested::List(ListNested { + is_optional: true, + offsets: &[0i32, 1, 2], + validity: None, + }), + Nested::Struct(None, true, 2), + Nested::Primitive(None, true, 2), + ]; + let expected = vec![0, 0]; + + test(nested, expected) + } }