Struct mz_compute_client::plan::join::linear_join::LinearStagePlan
source · pub struct LinearStagePlan {
pub lookup_relation: usize,
pub stream_key: Vec<MirScalarExpr>,
pub stream_thinning: Vec<usize>,
pub lookup_key: Vec<MirScalarExpr>,
pub closure: JoinClosure,
}
Expand description
A plan for the execution of one stage of a linear join.
Each stage is a binary join between the current accumulated join results, and a new collection. The former is referred to as the “stream” and the latter the “lookup”.
Fields§
§lookup_relation: usize
The index of the relation into which we will look up.
stream_key: Vec<MirScalarExpr>
The key expressions to use for the stream relation.
stream_thinning: Vec<usize>
Columns to retain from the stream relation.
These columns are those that are not redundant with stream_key
,
and cannot be read out of the key component of an arrangement.
lookup_key: Vec<MirScalarExpr>
The key expressions to use for the lookup relation.
closure: JoinClosure
The closure to apply to the concatenation of the key columns, the stream value columns, and the lookup value colunms.
Trait Implementations§
source§impl Arbitrary for LinearStagePlan
impl Arbitrary for LinearStagePlan
§type Parameters = (<usize as Arbitrary>::Parameters, <Vec<MirScalarExpr, Global> as Arbitrary>::Parameters, <Vec<usize, Global> as Arbitrary>::Parameters, <Vec<MirScalarExpr, Global> as Arbitrary>::Parameters, <JoinClosure as Arbitrary>::Parameters)
type Parameters = (<usize as Arbitrary>::Parameters, <Vec<MirScalarExpr, Global> as Arbitrary>::Parameters, <Vec<usize, Global> as Arbitrary>::Parameters, <Vec<MirScalarExpr, Global> as Arbitrary>::Parameters, <JoinClosure as Arbitrary>::Parameters)
The type of parameters that
arbitrary_with
accepts for configuration
of the generated Strategy
. Parameters must implement Default
.§type Strategy = Map<(<usize as Arbitrary>::Strategy, <Vec<MirScalarExpr, Global> as Arbitrary>::Strategy, <Vec<usize, Global> as Arbitrary>::Strategy, <Vec<MirScalarExpr, Global> as Arbitrary>::Strategy, <JoinClosure as Arbitrary>::Strategy), fn(_: (usize, Vec<MirScalarExpr, Global>, Vec<usize, Global>, Vec<MirScalarExpr, Global>, JoinClosure)) -> LinearStagePlan>
type Strategy = Map<(<usize as Arbitrary>::Strategy, <Vec<MirScalarExpr, Global> as Arbitrary>::Strategy, <Vec<usize, Global> as Arbitrary>::Strategy, <Vec<MirScalarExpr, Global> as Arbitrary>::Strategy, <JoinClosure as Arbitrary>::Strategy), fn(_: (usize, Vec<MirScalarExpr, Global>, Vec<usize, Global>, Vec<MirScalarExpr, Global>, JoinClosure)) -> LinearStagePlan>
The type of
Strategy
used to generate values of type Self
.source§fn arbitrary_with(_top: Self::Parameters) -> Self::Strategy
fn arbitrary_with(_top: Self::Parameters) -> Self::Strategy
source§impl Clone for LinearStagePlan
impl Clone for LinearStagePlan
source§fn clone(&self) -> LinearStagePlan
fn clone(&self) -> LinearStagePlan
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 LinearStagePlan
impl Debug for LinearStagePlan
source§impl<'de> Deserialize<'de> for LinearStagePlan
impl<'de> Deserialize<'de> for LinearStagePlan
source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where __D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
source§impl DisplayText<PlanRenderingContext<'_, Plan<Timestamp>>> for LinearStagePlan
impl DisplayText<PlanRenderingContext<'_, Plan<Timestamp>>> for LinearStagePlan
source§impl PartialEq<LinearStagePlan> for LinearStagePlan
impl PartialEq<LinearStagePlan> for LinearStagePlan
source§fn eq(&self, other: &LinearStagePlan) -> bool
fn eq(&self, other: &LinearStagePlan) -> bool
This method tests for
self
and other
values to be equal, and is used
by ==
.source§impl RustType<ProtoLinearStagePlan> for LinearStagePlan
impl RustType<ProtoLinearStagePlan> for LinearStagePlan
source§fn into_proto(&self) -> ProtoLinearStagePlan
fn into_proto(&self) -> ProtoLinearStagePlan
Convert a
Self
into a Proto
value.source§fn from_proto(proto: ProtoLinearStagePlan) -> Result<Self, TryFromProtoError>
fn from_proto(proto: ProtoLinearStagePlan) -> Result<Self, TryFromProtoError>
source§impl Serialize for LinearStagePlan
impl Serialize for LinearStagePlan
impl Eq for LinearStagePlan
impl StructuralEq for LinearStagePlan
impl StructuralPartialEq for LinearStagePlan
Auto Trait Implementations§
impl RefUnwindSafe for LinearStagePlan
impl Send for LinearStagePlan
impl Sync for LinearStagePlan
impl Unpin for LinearStagePlan
impl UnwindSafe for LinearStagePlan
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<Q, K> Equivalent<K> for Qwhere
Q: Eq + ?Sized,
K: Borrow<Q> + ?Sized,
impl<Q, K> Equivalent<K> for Qwhere Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,
source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Compare self to
key
and return true
if they are equal.source§impl<Q, K> Equivalent<K> for Qwhere
Q: Eq + ?Sized,
K: Borrow<Q> + ?Sized,
impl<Q, K> Equivalent<K> for Qwhere Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,
source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Compare self to
key
and return true
if they are equal.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> 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
.