Struct mz_compute_client::plan::join::linear_join::LinearJoinPlan
source · pub struct LinearJoinPlan {
pub source_relation: usize,
pub source_key: Option<Vec<MirScalarExpr>>,
pub initial_closure: Option<JoinClosure>,
pub stage_plans: Vec<LinearStagePlan>,
pub final_closure: Option<JoinClosure>,
}
Expand description
A plan for the execution of a linear join.
A linear join is a sequence of stages, each of which introduces a new collection. Each stage is represented by a LinearStagePlan.
Fields§
§source_relation: usize
The source relation from which we start the join.
source_key: Option<Vec<MirScalarExpr>>
The arrangement to use for the source relation, if any
initial_closure: Option<JoinClosure>
An initial closure to apply before any stages.
Values of None
indicate the identity closure.
stage_plans: Vec<LinearStagePlan>
A sequence of stages to apply one after the other.
final_closure: Option<JoinClosure>
A concluding closure to apply after the last stage.
Values of None
indicate the identity closure.
Implementations§
source§impl LinearJoinPlan
impl LinearJoinPlan
sourcepub fn create_from(
source_relation: usize,
source_arrangement: Option<&(Vec<MirScalarExpr>, BTreeMap<usize, usize>, Vec<usize>)>,
equivalences: &[Vec<MirScalarExpr>],
join_order: &[(usize, Vec<MirScalarExpr>, Option<JoinInputCharacteristics>)],
input_mapper: JoinInputMapper,
mfp_above: &mut MapFilterProject,
available: &[AvailableCollections]
) -> (Self, Vec<AvailableCollections>)
pub fn create_from( source_relation: usize, source_arrangement: Option<&(Vec<MirScalarExpr>, BTreeMap<usize, usize>, Vec<usize>)>, equivalences: &[Vec<MirScalarExpr>], join_order: &[(usize, Vec<MirScalarExpr>, Option<JoinInputCharacteristics>)], input_mapper: JoinInputMapper, mfp_above: &mut MapFilterProject, available: &[AvailableCollections] ) -> (Self, Vec<AvailableCollections>)
Create a new join plan from the required arguments.
Trait Implementations§
source§impl Arbitrary for LinearJoinPlan
impl Arbitrary for LinearJoinPlan
§type Parameters = ()
type Parameters = ()
The type of parameters that
arbitrary_with
accepts for configuration
of the generated Strategy
. Parameters must implement Default
.§type Strategy = BoxedStrategy<LinearJoinPlan>
type Strategy = BoxedStrategy<LinearJoinPlan>
The type of
Strategy
used to generate values of type Self
.source§fn arbitrary_with(_: Self::Parameters) -> Self::Strategy
fn arbitrary_with(_: Self::Parameters) -> Self::Strategy
source§impl Clone for LinearJoinPlan
impl Clone for LinearJoinPlan
source§fn clone(&self) -> LinearJoinPlan
fn clone(&self) -> LinearJoinPlan
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 LinearJoinPlan
impl Debug for LinearJoinPlan
source§impl<'de> Deserialize<'de> for LinearJoinPlan
impl<'de> Deserialize<'de> for LinearJoinPlan
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 LinearJoinPlan
impl DisplayText<PlanRenderingContext<'_, Plan<Timestamp>>> for LinearJoinPlan
source§impl PartialEq<LinearJoinPlan> for LinearJoinPlan
impl PartialEq<LinearJoinPlan> for LinearJoinPlan
source§fn eq(&self, other: &LinearJoinPlan) -> bool
fn eq(&self, other: &LinearJoinPlan) -> bool
This method tests for
self
and other
values to be equal, and is used
by ==
.source§impl RustType<ProtoLinearJoinPlan> for LinearJoinPlan
impl RustType<ProtoLinearJoinPlan> for LinearJoinPlan
source§fn into_proto(&self) -> ProtoLinearJoinPlan
fn into_proto(&self) -> ProtoLinearJoinPlan
Convert a
Self
into a Proto
value.source§fn from_proto(proto: ProtoLinearJoinPlan) -> Result<Self, TryFromProtoError>
fn from_proto(proto: ProtoLinearJoinPlan) -> Result<Self, TryFromProtoError>
source§impl Serialize for LinearJoinPlan
impl Serialize for LinearJoinPlan
impl Eq for LinearJoinPlan
impl StructuralEq for LinearJoinPlan
impl StructuralPartialEq for LinearJoinPlan
Auto Trait Implementations§
impl RefUnwindSafe for LinearJoinPlan
impl Send for LinearJoinPlan
impl Sync for LinearJoinPlan
impl Unpin for LinearJoinPlan
impl UnwindSafe for LinearJoinPlan
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
.