diff --git a/src/io/parquet/read/deserialize/binary/basic.rs b/src/io/parquet/read/deserialize/binary/basic.rs index 33772cfcde7..0f10f0578d5 100644 --- a/src/io/parquet/read/deserialize/binary/basic.rs +++ b/src/io/parquet/read/deserialize/binary/basic.rs @@ -68,7 +68,8 @@ pub(super) struct Required<'a> { impl<'a> Required<'a> { pub fn new(page: &'a DataPage) -> Self { - let values = SizedBinaryIter::new(page.buffer(), page.num_values()); + let (_, _, values) = utils::split_buffer(page); + let values = SizedBinaryIter::new(values, page.num_values()); Self { values } } diff --git a/src/io/parquet/read/deserialize/binary/nested.rs b/src/io/parquet/read/deserialize/binary/nested.rs index 95461125553..2cc11e5b95b 100644 --- a/src/io/parquet/read/deserialize/binary/nested.rs +++ b/src/io/parquet/read/deserialize/binary/nested.rs @@ -120,6 +120,7 @@ impl<'a, O: Offset> utils::Decoder<'a> for BinaryDecoder { } } State::OptionalDictionary(page_validity, page_values) => { + println!("optional_dict"); let dict_values = page_values.dict.values(); let dict_offsets = page_values.dict.offsets(); diff --git a/src/io/parquet/read/deserialize/boolean/basic.rs b/src/io/parquet/read/deserialize/boolean/basic.rs index 6f6c31b0f2c..7ef7a5de89d 100644 --- a/src/io/parquet/read/deserialize/boolean/basic.rs +++ b/src/io/parquet/read/deserialize/boolean/basic.rs @@ -55,8 +55,9 @@ struct FilteredRequired<'a> { impl<'a> FilteredRequired<'a> { pub fn new(page: &'a DataPage) -> Self { + let (_, _, values) = utils::split_buffer(page); // todo: replace this by an iterator over slices, for faster deserialization - let values = BitmapIter::new(page.buffer(), 0, page.num_values()); + let values = BitmapIter::new(values, 0, page.num_values()); let rows = get_selected_rows(page); let values = SliceFilteredIter::new(values, rows); diff --git a/src/io/parquet/read/deserialize/boolean/nested.rs b/src/io/parquet/read/deserialize/boolean/nested.rs index b2e2477fb48..b2d83d57e7a 100644 --- a/src/io/parquet/read/deserialize/boolean/nested.rs +++ b/src/io/parquet/read/deserialize/boolean/nested.rs @@ -25,8 +25,9 @@ struct Required<'a> { impl<'a> Required<'a> { pub fn new(page: &'a DataPage) -> Self { + let (_, _, values) = utils::split_buffer(page); Self { - values: page.buffer(), + values, offset: 0, length: page.num_values(), }