Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
pola-rs
GitHub Repository: pola-rs/polars
Path: blob/main/crates/polars-parquet/src/arrow/read/deserialize/binview/optional.rs
8503 views
1
use arrow::array::MutableBinaryViewArray;
2
use arrow::bitmap::Bitmap;
3
4
use super::decode_plain_generic;
5
use crate::parquet::error::ParquetResult;
6
7
pub fn decode(
8
num_expected_values: usize,
9
values: &[u8],
10
target: &mut MutableBinaryViewArray<[u8]>,
11
page_validity: &Bitmap,
12
13
verify_utf8: bool,
14
) -> ParquetResult<()> {
15
if page_validity.unset_bits() == 0 {
16
return super::required::decode(
17
num_expected_values,
18
values,
19
Some(page_validity.len()),
20
target,
21
verify_utf8,
22
);
23
}
24
25
let mut validity_iter = page_validity.iter();
26
decode_plain_generic(
27
values,
28
target,
29
page_validity.len(),
30
|| Some((validity_iter.next()?, true)),
31
verify_utf8,
32
)
33
}
34
35