Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
pola-rs
GitHub Repository: pola-rs/polars
Path: blob/main/crates/polars-parquet/src/parquet/statistics/binary.rs
6940 views
1
use polars_parquet_format::Statistics as ParquetStatistics;
2
3
use crate::parquet::error::ParquetResult;
4
use crate::parquet::schema::types::PrimitiveType;
5
6
#[derive(Debug, Clone, PartialEq)]
7
pub struct BinaryStatistics {
8
pub primitive_type: PrimitiveType,
9
pub null_count: Option<i64>,
10
pub distinct_count: Option<i64>,
11
pub max_value: Option<Vec<u8>>,
12
pub min_value: Option<Vec<u8>>,
13
}
14
15
impl BinaryStatistics {
16
pub fn deserialize(
17
v: &ParquetStatistics,
18
primitive_type: PrimitiveType,
19
) -> ParquetResult<Self> {
20
Ok(BinaryStatistics {
21
primitive_type,
22
null_count: v.null_count,
23
distinct_count: v.distinct_count,
24
max_value: v.max_value.clone(),
25
min_value: v.min_value.clone(),
26
})
27
}
28
29
pub fn serialize(&self) -> ParquetStatistics {
30
ParquetStatistics {
31
null_count: self.null_count,
32
distinct_count: self.distinct_count,
33
max_value: self.max_value.clone(),
34
min_value: self.min_value.clone(),
35
max: None,
36
min: None,
37
is_max_value_exact: None,
38
is_min_value_exact: None,
39
}
40
}
41
}
42
43