pub struct ExprStatisticsGraph { /* private fields */ }Expand description
This object implements a directed acyclic expression graph (DAEG) that is used to compute statistics/distributions for expressions hierarchically.
Implementations§
Source§impl ExprStatisticsGraph
impl ExprStatisticsGraph
pub fn try_new(expr: Arc<dyn PhysicalExpr>, schema: &Schema) -> Result<Self>
Sourcepub fn assign_statistics(&mut self, assignments: &[(usize, Distribution)])
pub fn assign_statistics(&mut self, assignments: &[(usize, Distribution)])
This function assigns given distributions to expressions in the DAEG.
The argument assignments associates indices of sought expressions
with their corresponding new distributions.
Sourcepub fn evaluate_statistics(&mut self) -> Result<&Distribution>
pub fn evaluate_statistics(&mut self) -> Result<&Distribution>
Computes statistics/distributions for an expression via a bottom-up traversal.
Sourcepub fn propagate_statistics(
&mut self,
given_stats: Distribution,
) -> Result<PropagationResult>
pub fn propagate_statistics( &mut self, given_stats: Distribution, ) -> Result<PropagationResult>
Runs a propagation mechanism in a top-down manner to update statistics of leaf nodes.
Trait Implementations§
Source§impl Clone for ExprStatisticsGraph
impl Clone for ExprStatisticsGraph
Source§fn clone(&self) -> ExprStatisticsGraph
fn clone(&self) -> ExprStatisticsGraph
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreAuto Trait Implementations§
impl Freeze for ExprStatisticsGraph
impl !RefUnwindSafe for ExprStatisticsGraph
impl Send for ExprStatisticsGraph
impl Sync for ExprStatisticsGraph
impl Unpin for ExprStatisticsGraph
impl !UnwindSafe for ExprStatisticsGraph
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
Mutably borrows from an owned value. Read more
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>
Converts
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>
Converts
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