pub struct ExprBoundaries {
pub column: Column,
pub interval: Option<Interval>,
pub distinct_count: Precision<usize>,
}
Expand description
Represents the boundaries (e.g. min and max values) of a particular column
This is used range analysis of expressions, to determine if the expression
limits the value of particular columns (e.g. analyzing an expression such as
time < 50
would result in a boundary interval for time
having a max
value of 50
).
Fields§
§column: Column
§interval: Option<Interval>
Minimum and maximum values this expression can have. A None
value
indicates that evaluating the given column results in an empty set.
For example, if the column a
has values in the range [10, 20],
and there is a filter asserting that a > 50
, then the resulting interval
range of a
will be None
.
distinct_count: Precision<usize>
Maximum number of distinct values this expression can produce, if known.
Implementations§
Source§impl ExprBoundaries
impl ExprBoundaries
Sourcepub fn try_from_column(
schema: &Schema,
col_stats: &ColumnStatistics,
col_index: usize,
) -> Result<Self>
pub fn try_from_column( schema: &Schema, col_stats: &ColumnStatistics, col_index: usize, ) -> Result<Self>
Create a new ExprBoundaries
object from column level statistics.
Sourcepub fn try_new_unbounded(schema: &Schema) -> Result<Vec<Self>>
pub fn try_new_unbounded(schema: &Schema) -> Result<Vec<Self>>
Create ExprBoundaries
that represent no known bounds for all the
columns in schema
Trait Implementations§
Source§impl Clone for ExprBoundaries
impl Clone for ExprBoundaries
Source§fn clone(&self) -> ExprBoundaries
fn clone(&self) -> ExprBoundaries
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moreSource§impl Debug for ExprBoundaries
impl Debug for ExprBoundaries
Source§impl PartialEq for ExprBoundaries
impl PartialEq for ExprBoundaries
impl StructuralPartialEq for ExprBoundaries
Auto Trait Implementations§
impl Freeze for ExprBoundaries
impl !RefUnwindSafe for ExprBoundaries
impl Send for ExprBoundaries
impl Sync for ExprBoundaries
impl Unpin for ExprBoundaries
impl !UnwindSafe for ExprBoundaries
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