From 7396c1f83666f4dd653abdba03b7d232ba1ce709 Mon Sep 17 00:00:00 2001 From: baishen Date: Thu, 9 Feb 2023 13:11:02 +0800 Subject: [PATCH] Made `StructIterator` and `NestedArrayIter` public (#1385) --- src/io/parquet/read/deserialize/mod.rs | 1 + src/io/parquet/read/deserialize/nested_utils.rs | 1 + src/io/parquet/read/deserialize/struct_.rs | 2 ++ src/io/parquet/read/mod.rs | 2 +- 4 files changed, 5 insertions(+), 1 deletion(-) diff --git a/src/io/parquet/read/deserialize/mod.rs b/src/io/parquet/read/deserialize/mod.rs index 9f441872551..c6d7bd3521a 100644 --- a/src/io/parquet/read/deserialize/mod.rs +++ b/src/io/parquet/read/deserialize/mod.rs @@ -22,6 +22,7 @@ use crate::{ }; pub use self::nested_utils::{init_nested, InitNested, NestedArrayIter, NestedState}; +pub use self::struct_::StructIterator; use simple::page_iter_to_arrays; use super::*; diff --git a/src/io/parquet/read/deserialize/nested_utils.rs b/src/io/parquet/read/deserialize/nested_utils.rs index fef27bb0395..211531f6c00 100644 --- a/src/io/parquet/read/deserialize/nested_utils.rs +++ b/src/io/parquet/read/deserialize/nested_utils.rs @@ -556,5 +556,6 @@ where } } +/// Type def for a sharable, boxed dyn [`Iterator`] of NestedStates and arrays pub type NestedArrayIter<'a> = Box)>> + Send + Sync + 'a>; diff --git a/src/io/parquet/read/deserialize/struct_.rs b/src/io/parquet/read/deserialize/struct_.rs index 9fb1242b953..dd5776948cd 100644 --- a/src/io/parquet/read/deserialize/struct_.rs +++ b/src/io/parquet/read/deserialize/struct_.rs @@ -4,12 +4,14 @@ use crate::error::Error; use super::nested_utils::{NestedArrayIter, NestedState}; +/// An iterator adapter over [`NestedArrayIter`] assumed to be encoded as Struct arrays pub struct StructIterator<'a> { iters: Vec>, fields: Vec, } impl<'a> StructIterator<'a> { + /// Creates a new [`StructIterator`] with `iters` and `fields`. pub fn new(iters: Vec>, fields: Vec) -> Self { assert_eq!(iters.len(), fields.len()); Self { iters, fields } diff --git a/src/io/parquet/read/mod.rs b/src/io/parquet/read/mod.rs index 58454978d17..c41d60e4c1e 100644 --- a/src/io/parquet/read/mod.rs +++ b/src/io/parquet/read/mod.rs @@ -36,7 +36,7 @@ use crate::{array::Array, error::Result}; pub use deserialize::{ column_iter_to_arrays, create_list, get_page_iterator, init_nested, n_columns, InitNested, - NestedState, + NestedArrayIter, NestedState, StructIterator, }; pub use file::{FileReader, RowGroupReader}; pub use row_group::*;