Struct datafusion::physical_expr::intervals::cp_solver::ExprIntervalGraphNode
source · pub struct ExprIntervalGraphNode { /* private fields */ }
Expand description
This is a node in the DAEG; it encapsulates a reference to the actual
PhysicalExpr
as well as an interval containing expression bounds.
Implementations§
source§impl ExprIntervalGraphNode
impl ExprIntervalGraphNode
sourcepub fn new_unbounded(
expr: Arc<dyn PhysicalExpr>,
dt: &DataType
) -> Result<ExprIntervalGraphNode, DataFusionError>
pub fn new_unbounded( expr: Arc<dyn PhysicalExpr>, dt: &DataType ) -> Result<ExprIntervalGraphNode, DataFusionError>
Constructs a new DAEG node with an [-∞, ∞] range.
sourcepub fn new_with_interval(
expr: Arc<dyn PhysicalExpr>,
interval: Interval
) -> ExprIntervalGraphNode
pub fn new_with_interval( expr: Arc<dyn PhysicalExpr>, interval: Interval ) -> ExprIntervalGraphNode
Constructs a new DAEG node with the given range.
sourcepub fn interval(&self) -> &Interval
pub fn interval(&self) -> &Interval
Get the interval object representing the range of the expression.
sourcepub fn make_node(
node: &ExprContext<Option<NodeIndex>>,
schema: &Schema
) -> Result<ExprIntervalGraphNode, DataFusionError>
pub fn make_node( node: &ExprContext<Option<NodeIndex>>, schema: &Schema ) -> Result<ExprIntervalGraphNode, DataFusionError>
This function creates a DAEG node from Datafusion’s ExprTreeNode
object. Literals are created with definite, singleton intervals while
any other expression starts with an indefinite interval ([-∞, ∞]).
Trait Implementations§
source§impl Clone for ExprIntervalGraphNode
impl Clone for ExprIntervalGraphNode
source§fn clone(&self) -> ExprIntervalGraphNode
fn clone(&self) -> ExprIntervalGraphNode
Returns a copy 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 moresource§impl Debug for ExprIntervalGraphNode
impl Debug for ExprIntervalGraphNode
source§impl Display for ExprIntervalGraphNode
impl Display for ExprIntervalGraphNode
source§impl PartialEq for ExprIntervalGraphNode
impl PartialEq for ExprIntervalGraphNode
source§fn eq(&self, other: &ExprIntervalGraphNode) -> bool
fn eq(&self, other: &ExprIntervalGraphNode) -> bool
This method tests for
self
and other
values to be equal, and is used
by ==
.Auto Trait Implementations§
impl Freeze for ExprIntervalGraphNode
impl !RefUnwindSafe for ExprIntervalGraphNode
impl Send for ExprIntervalGraphNode
impl Sync for ExprIntervalGraphNode
impl Unpin for ExprIntervalGraphNode
impl !UnwindSafe for ExprIntervalGraphNode
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> 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