pub struct MfpPlan { /* private fields */ }
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.
Implementations
sourceimpl MfpPlan
impl MfpPlan
sourcepub fn is_identity(&self) -> bool
pub fn is_identity(&self) -> bool
Indicates if the planned MapFilterProject
emits exactly its inputs as outputs.
sourcepub fn into_nontemporal(self) -> Result<SafeMfpPlan, Self>
pub fn into_nontemporal(self) -> Result<SafeMfpPlan, Self>
Attempt to convert self into a non-temporal MapFilterProject plan.
If that is not possible, the original instance is returned as an error.
sourcepub fn evaluate<'b, 'a: 'b, E: From<EvalError>>(
&'a self,
datums: &'b mut Vec<Datum<'a>>,
arena: &'a RowArena,
time: Timestamp,
diff: Diff,
row_builder: &mut Row
) -> impl Iterator<Item = Result<(Row, Timestamp, Diff), (E, Timestamp, Diff)>>
pub fn evaluate<'b, 'a: 'b, E: From<EvalError>>(
&'a self,
datums: &'b mut Vec<Datum<'a>>,
arena: &'a RowArena,
time: Timestamp,
diff: Diff,
row_builder: &mut Row
) -> impl Iterator<Item = Result<(Row, Timestamp, Diff), (E, Timestamp, Diff)>>
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
sourceimpl Arbitrary for MfpPlan
impl Arbitrary for MfpPlan
type Parameters = <SafeMfpPlan as Arbitrary>::Parameters
type Parameters = <SafeMfpPlan as Arbitrary>::Parameters
The type of parameters that arbitrary_with
accepts for configuration
of the generated Strategy
. Parameters must implement Default
. Read more
type Strategy = Map<(<SafeMfpPlan as Arbitrary>::Strategy, BoxedStrategy<Vec<MirScalarExpr>>, BoxedStrategy<Vec<MirScalarExpr>>), fn(_: (SafeMfpPlan, Vec<MirScalarExpr>, Vec<MirScalarExpr>)) -> Self>
type Strategy = Map<(<SafeMfpPlan as Arbitrary>::Strategy, BoxedStrategy<Vec<MirScalarExpr>>, BoxedStrategy<Vec<MirScalarExpr>>), fn(_: (SafeMfpPlan, Vec<MirScalarExpr>, Vec<MirScalarExpr>)) -> Self>
sourcefn arbitrary_with(_top: Self::Parameters) -> Self::Strategy
fn arbitrary_with(_top: Self::Parameters) -> Self::Strategy
sourceimpl RustType<ProtoMfpPlan> for MfpPlan
impl RustType<ProtoMfpPlan> for MfpPlan
sourcefn into_proto(&self) -> ProtoMfpPlan
fn into_proto(&self) -> ProtoMfpPlan
Convert a Self
into a Proto
value.
sourcefn from_proto(proto: ProtoMfpPlan) -> Result<Self, TryFromProtoError>
fn from_proto(proto: ProtoMfpPlan) -> Result<Self, TryFromProtoError>
Consume and convert a Proto
back into a Self
value. Read more
impl StructuralPartialEq for MfpPlan
Auto Trait Implementations
impl RefUnwindSafe for MfpPlan
impl Send for MfpPlan
impl Sync for MfpPlan
impl Unpin for MfpPlan
impl UnwindSafe for MfpPlan
Blanket Implementations
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
sourceimpl<T> FutureExt for T
impl<T> FutureExt for T
sourcefn with_context(self, otel_cx: Context) -> WithContext<Self>
fn with_context(self, otel_cx: Context) -> WithContext<Self>
sourcefn with_current_context(self) -> WithContext<Self>
fn with_current_context(self) -> WithContext<Self>
sourceimpl<T> Instrument for T
impl<T> Instrument for T
sourcefn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
sourcefn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
sourceimpl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
sourcefn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
Wrap the input message T
in a tonic::Request
sourceimpl<T> ProgressEventTimestamp for T where
T: Data + Debug + Any,
impl<T> ProgressEventTimestamp for T where
T: Data + Debug + Any,
sourceimpl<P, R> ProtoType<R> for P where
R: RustType<P>,
impl<P, R> ProtoType<R> for P where
R: RustType<P>,
sourcefn into_rust(self) -> Result<R, TryFromProtoError>
fn into_rust(self) -> Result<R, TryFromProtoError>
See RustType::from_proto
.
sourcefn from_rust(rust: &R) -> P
fn from_rust(rust: &R) -> P
See RustType::into_proto
.
sourceimpl<T> ToOwned for T where
T: Clone,
impl<T> ToOwned for T where
T: Clone,
type Owned = T
type Owned = T
The resulting type after obtaining ownership.
sourcefn clone_into(&self, target: &mut T)
fn clone_into(&self, target: &mut T)
toowned_clone_into
)Uses borrowed data to replace owned data, usually by cloning. Read more
sourceimpl<T> WithSubscriber for T
impl<T> WithSubscriber for T
sourcefn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> where
S: Into<Dispatch>,
fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> where
S: Into<Dispatch>,
Attaches the provided Subscriber
to this type, returning a
WithDispatch
wrapper. Read more
sourcefn with_current_subscriber(self) -> WithDispatch<Self>
fn with_current_subscriber(self) -> WithDispatch<Self>
Attaches the current default Subscriber
to this type, returning a
WithDispatch
wrapper. Read more