pub struct ColumnStats {
pub min_f64: Option<f64>,
pub max_f64: Option<f64>,
pub min_i64: Option<i64>,
pub max_i64: Option<i64>,
pub sorted_asc: bool,
pub sorted_desc: bool,
pub n_distinct: Option<usize>,
pub n_null: usize,
pub nrows: usize,
}Expand description
Statistical metadata for a single column.
Fields§
§min_f64: Option<f64>Minimum value (for numeric columns)
max_f64: Option<f64>Maximum value (for numeric columns)
min_i64: Option<i64>Minimum value (for int columns)
max_i64: Option<i64>Maximum value (for int columns)
sorted_asc: boolWhether the column is sorted ascending
sorted_desc: boolWhether the column is sorted descending
n_distinct: Option<usize>Number of distinct values (exact for small columns, estimated for large)
n_null: usizeNumber of null/NaN values
nrows: usizeTotal number of rows
Implementations§
Source§impl ColumnStats
impl ColumnStats
Sourcepub fn can_skip_gt(&self, threshold: f64) -> bool
pub fn can_skip_gt(&self, threshold: f64) -> bool
Check if a filter col > threshold can be ruled out (all values <= threshold).
Sourcepub fn can_skip_lt(&self, threshold: f64) -> bool
pub fn can_skip_lt(&self, threshold: f64) -> bool
Check if a filter col < threshold can be ruled out (all values >= threshold).
Sourcepub fn can_skip_ge(&self, threshold: f64) -> bool
pub fn can_skip_ge(&self, threshold: f64) -> bool
Check if a filter col >= threshold can be ruled out (all values < threshold).
Sourcepub fn can_skip_le(&self, threshold: f64) -> bool
pub fn can_skip_le(&self, threshold: f64) -> bool
Check if a filter col <= threshold can be ruled out (all values > threshold).
Sourcepub fn can_skip_eq_f64(&self, value: f64) -> bool
pub fn can_skip_eq_f64(&self, value: f64) -> bool
Check if a filter col == value can be ruled out (value outside [min, max]).
Sourcepub fn can_skip_gt_i64(&self, threshold: i64) -> bool
pub fn can_skip_gt_i64(&self, threshold: i64) -> bool
Check if a filter col > threshold can be ruled out for int columns.
Sourcepub fn can_skip_lt_i64(&self, threshold: i64) -> bool
pub fn can_skip_lt_i64(&self, threshold: i64) -> bool
Check if a filter col < threshold can be ruled out for int columns.
Sourcepub fn can_skip_eq_i64(&self, value: i64) -> bool
pub fn can_skip_eq_i64(&self, value: i64) -> bool
Check if a filter col == value can be ruled out for int columns.
Sourcepub fn binary_search_range_f64(
col: &[f64],
op: CompOp,
threshold: f64,
) -> (usize, usize)
pub fn binary_search_range_f64( col: &[f64], op: CompOp, threshold: f64, ) -> (usize, usize)
For a sorted ascending float column, find the row range satisfying a
comparison predicate via binary search. Returns (start, end) where
matching rows are start..end.
Caller must ensure the slice is actually sorted ascending.
Trait Implementations§
Source§impl Clone for ColumnStats
impl Clone for ColumnStats
Source§fn clone(&self) -> ColumnStats
fn clone(&self) -> ColumnStats
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreAuto Trait Implementations§
impl Freeze for ColumnStats
impl RefUnwindSafe for ColumnStats
impl Send for ColumnStats
impl Sync for ColumnStats
impl Unpin for ColumnStats
impl UnsafeUnpin for ColumnStats
impl UnwindSafe for ColumnStats
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more