Struct expr::MfpPlan [−][src]
pub struct MfpPlan {
mfp: SafeMfpPlan,
lower_bounds: Vec<MirScalarExpr>,
upper_bounds: Vec<MirScalarExpr>,
}
Expand description
Predicates partitioned into temporal and non-temporal.
Temporal predicates require some recognition to determine their structure, and it is best to do that once and re-use the results.
There are restrictions on the temporal predicates we currently support.
They must directly constrain MzLogicalTimestamp
from below or above,
by expressions that do not themselves contain MzLogicalTimestamp
.
Conjunctions of such constraints are also ok.
Fields
mfp: SafeMfpPlan
Normal predicates to evaluate on &[Datum]
and expect Ok(Datum::True)
.
lower_bounds: Vec<MirScalarExpr>
Expressions that when evaluated lower-bound MzLogicalTimestamp
.
upper_bounds: Vec<MirScalarExpr>
Expressions that when evaluated upper-bound MzLogicalTimestamp
.
Implementations
Partitions predicates
into non-temporal, and lower and upper temporal bounds.
The first returned list is of predicates that do not contain mz_logical_timestamp
.
The second and third returned lists contain expressions that, once evaluated, lower
and upper bound the validity interval of a record, respectively. These second two
lists are populared only by binary expressions of the form
mz_logical_timestamp cmp_op expr
where cmp_op
is a comparison operator and expr
does not contain mz_logical_timestamp
.
If any unsupported expression is found, for example one that uses mz_logical_timestamp
in an unsupported position, an error is returned.
Indicates if the planned MapFilterProject
emits exactly its inputs as outputs.
Attempt to convert self into a non-temporal MapFilterProject plan.
If that is not possible, the original instance is returned as an error.
Evaluate the predicates, temporal and non-, and return times and differences for data
.
If self
contains only non-temporal predicates, the result will either be (time, diff)
,
or an evaluation error. If self contains temporal predicates, the results can be times that are greater than the input
time, and may contain negated
diff` values.
The row_builder
is not cleared first, but emptied if the function
returns an iterator with any Ok(_)
element.
Trait Implementations
Auto Trait Implementations
impl RefUnwindSafe for MfpPlan
impl UnwindSafe for MfpPlan
Blanket Implementations
Mutably borrows from an owned value. Read more
Attaches the provided Subscriber
to this type, returning a
WithDispatch
wrapper. Read more
Attaches the current default Subscriber
to this type, returning a
WithDispatch
wrapper. Read more