pub(crate) struct MfpEval<'a, E: Interpreter + ?Sized> {
evaluator: &'a E,
input_arity: usize,
expressions: Vec<E::Summary>,
}
Expand description
Wrap another interpreter, but tack a few extra columns on at the end. An internal implementation
detail of eval_mfp
and eval_mfp_plan
.
Fields§
§evaluator: &'a E
§input_arity: usize
§expressions: Vec<E::Summary>
Implementations§
source§impl<'a, E: Interpreter + ?Sized> MfpEval<'a, E>
impl<'a, E: Interpreter + ?Sized> MfpEval<'a, E>
pub(crate) fn new( evaluator: &'a E, input_arity: usize, expressions: &[MirScalarExpr], ) -> Self
Trait Implementations§
source§impl<'a, E: Interpreter + ?Sized> Interpreter for MfpEval<'a, E>
impl<'a, E: Interpreter + ?Sized> Interpreter for MfpEval<'a, E>
type Summary = <E as Interpreter>::Summary
source§fn literal(
&self,
result: &Result<Row, EvalError>,
col_type: &ColumnType,
) -> Self::Summary
fn literal( &self, result: &Result<Row, EvalError>, col_type: &ColumnType, ) -> Self::Summary
A literal value.
(Stored as a row, because we can’t own a Datum.)
source§fn unmaterializable(&self, func: &UnmaterializableFunc) -> Self::Summary
fn unmaterializable(&self, func: &UnmaterializableFunc) -> Self::Summary
A call to an unmaterializable function. Read more
source§fn unary(&self, func: &UnaryFunc, expr: Self::Summary) -> Self::Summary
fn unary(&self, func: &UnaryFunc, expr: Self::Summary) -> Self::Summary
A function call that takes one expression as an argument.
source§fn binary(
&self,
func: &BinaryFunc,
left: Self::Summary,
right: Self::Summary,
) -> Self::Summary
fn binary( &self, func: &BinaryFunc, left: Self::Summary, right: Self::Summary, ) -> Self::Summary
A function call that takes two expressions as arguments.
source§fn variadic(
&self,
func: &VariadicFunc,
exprs: Vec<Self::Summary>,
) -> Self::Summary
fn variadic( &self, func: &VariadicFunc, exprs: Vec<Self::Summary>, ) -> Self::Summary
A function call that takes an arbitrary number of arguments.
source§fn cond(
&self,
cond: Self::Summary,
then: Self::Summary,
els: Self::Summary,
) -> Self::Summary
fn cond( &self, cond: Self::Summary, then: Self::Summary, els: Self::Summary, ) -> Self::Summary
Conditionally evaluated expressions.
source§fn expr(&self, expr: &MirScalarExpr) -> Self::Summary
fn expr(&self, expr: &MirScalarExpr) -> Self::Summary
Evaluate an entire expression, by delegating to the fine-grained methods on Interpreter.
source§fn mfp_filter(&self, mfp: &MapFilterProject) -> Self::Summary
fn mfp_filter(&self, mfp: &MapFilterProject) -> Self::Summary
Specifically, this evaluates the map and filters stages of an MFP: summarize each of the
map expressions, then
and
together all of the filters.source§fn mfp_plan_filter(&self, plan: &MfpPlan) -> Self::Summary
fn mfp_plan_filter(&self, plan: &MfpPlan) -> Self::Summary
Similar to Self::mfp_filter, but includes the additional temporal filters that have been
broken out.
Auto Trait Implementations§
impl<'a, E> Freeze for MfpEval<'a, E>where
E: ?Sized,
impl<'a, E> RefUnwindSafe for MfpEval<'a, E>
impl<'a, E> Send for MfpEval<'a, E>
impl<'a, E> Sync for MfpEval<'a, E>
impl<'a, E> Unpin for MfpEval<'a, E>
impl<'a, E> UnwindSafe for MfpEval<'a, E>
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> FutureExt for T
impl<T> FutureExt for T
source§fn with_context(self, otel_cx: Context) -> WithContext<Self>
fn with_context(self, otel_cx: Context) -> WithContext<Self>
source§fn with_current_context(self) -> WithContext<Self>
fn with_current_context(self) -> WithContext<Self>
source§impl<T> Instrument for T
impl<T> Instrument for T
source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
source§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
source§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
Wrap the input message
T
in a tonic::Request
source§impl<T, U> OverrideFrom<Option<&T>> for Uwhere
U: OverrideFrom<T>,
impl<T, U> OverrideFrom<Option<&T>> for Uwhere
U: OverrideFrom<T>,
source§impl<T> Pointable for T
impl<T> Pointable for T
source§impl<P, R> ProtoType<R> for Pwhere
R: RustType<P>,
impl<P, R> ProtoType<R> for Pwhere
R: RustType<P>,
source§fn into_rust(self) -> Result<R, TryFromProtoError>
fn into_rust(self) -> Result<R, TryFromProtoError>
See
RustType::from_proto
.source§fn from_rust(rust: &R) -> P
fn from_rust(rust: &R) -> P
See
RustType::into_proto
.source§impl<'a, S, T> Semigroup<&'a S> for Twhere
T: Semigroup<S>,
impl<'a, S, T> Semigroup<&'a S> for Twhere
T: Semigroup<S>,
source§fn plus_equals(&mut self, rhs: &&'a S)
fn plus_equals(&mut self, rhs: &&'a S)
The method of
std::ops::AddAssign
, for types that do not implement AddAssign
.