use crate::table::DataType;
#[derive(Clone, Debug, PartialEq)]
pub struct NumericStats {
pub min: Option<f64>,
pub max: Option<f64>,
pub mean: Option<f64>,
pub null_count: usize,
}
#[derive(Clone, Debug, PartialEq, Eq)]
pub struct StringStats {
pub min_len: Option<usize>,
pub max_len: Option<usize>,
pub estimated_cardinality: Option<usize>,
pub null_count: usize,
}
#[derive(Clone, Debug, PartialEq)]
pub enum ColumnStats {
Numeric {
dtype: DataType,
stats: NumericStats,
},
String {
dtype: DataType,
stats: StringStats,
},
Boolean {
true_count: usize,
false_count: usize,
null_count: usize,
},
}
#[derive(Clone, Debug, PartialEq)]
pub struct TableStats {
pub rows: usize,
pub columns: usize,
pub per_column: Vec<ColumnStats>,
}