pub struct JoinInputCharacteristicsV2 {
pub unique_key: bool,
pub not_cross: bool,
pub arranged: bool,
pub key_length: usize,
pub cardinality: Option<Reverse<usize>>,
pub filters: FilterCharacteristics,
pub input: Reverse<usize>,
}
Expand description
Newer version of JoinInputCharacteristics
, with enable_join_prioritize_arranged
turned on.
Fields§
§unique_key: bool
An excellent indication that record count will not increase.
not_cross: bool
Cross joins are bad.
(key_length > 0
also implies that it is not a cross join. However, we need to note cross
joins in a separate field, because not being a cross join is more important than arranged
,
but otherwise key_length
is less important than arranged
.)
arranged: bool
Indicates that there will be no additional in-memory footprint.
key_length: usize
A weaker signal that record count will not increase.
cardinality: Option<Reverse<usize>>
Estimated cardinality (lower is better)
filters: FilterCharacteristics
Characteristics of the filter that is applied at this input.
input: Reverse<usize>
We want to prefer input earlier in the input list, for stability of ordering.
Implementations§
Trait Implementations§
Source§impl Arbitrary for JoinInputCharacteristicsV2
impl Arbitrary for JoinInputCharacteristicsV2
Source§type Parameters = (<bool as Arbitrary>::Parameters, <bool as Arbitrary>::Parameters, <bool as Arbitrary>::Parameters, <usize as Arbitrary>::Parameters, <Option<Reverse<usize>> as Arbitrary>::Parameters, <FilterCharacteristics as Arbitrary>::Parameters, <Reverse<usize> as Arbitrary>::Parameters)
type Parameters = (<bool as Arbitrary>::Parameters, <bool as Arbitrary>::Parameters, <bool as Arbitrary>::Parameters, <usize as Arbitrary>::Parameters, <Option<Reverse<usize>> as Arbitrary>::Parameters, <FilterCharacteristics as Arbitrary>::Parameters, <Reverse<usize> as Arbitrary>::Parameters)
The type of parameters that
arbitrary_with
accepts for configuration
of the generated Strategy
. Parameters must implement Default
.Source§type Strategy = Map<(<bool as Arbitrary>::Strategy, <bool as Arbitrary>::Strategy, <bool as Arbitrary>::Strategy, <usize as Arbitrary>::Strategy, <Option<Reverse<usize>> as Arbitrary>::Strategy, <FilterCharacteristics as Arbitrary>::Strategy, <Reverse<usize> as Arbitrary>::Strategy), fn(_: (bool, bool, bool, usize, Option<Reverse<usize>>, FilterCharacteristics, Reverse<usize>)) -> JoinInputCharacteristicsV2>
type Strategy = Map<(<bool as Arbitrary>::Strategy, <bool as Arbitrary>::Strategy, <bool as Arbitrary>::Strategy, <usize as Arbitrary>::Strategy, <Option<Reverse<usize>> as Arbitrary>::Strategy, <FilterCharacteristics as Arbitrary>::Strategy, <Reverse<usize> as Arbitrary>::Strategy), fn(_: (bool, bool, bool, usize, Option<Reverse<usize>>, FilterCharacteristics, Reverse<usize>)) -> JoinInputCharacteristicsV2>
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 JoinInputCharacteristicsV2
impl Clone for JoinInputCharacteristicsV2
Source§fn clone(&self) -> JoinInputCharacteristicsV2
fn clone(&self) -> JoinInputCharacteristicsV2
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 JoinInputCharacteristicsV2
impl Debug for JoinInputCharacteristicsV2
Source§impl<'de> Deserialize<'de> for JoinInputCharacteristicsV2
impl<'de> Deserialize<'de> for JoinInputCharacteristicsV2
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 Hash for JoinInputCharacteristicsV2
impl Hash for JoinInputCharacteristicsV2
Source§impl MzReflect for JoinInputCharacteristicsV2
impl MzReflect for JoinInputCharacteristicsV2
Source§fn add_to_reflected_type_info(rti: &mut ReflectedTypeInfo)
fn add_to_reflected_type_info(rti: &mut ReflectedTypeInfo)
Adds names and types of the fields of the struct or enum to
rti
. Read moreSource§impl Ord for JoinInputCharacteristicsV2
impl Ord for JoinInputCharacteristicsV2
Source§fn cmp(&self, other: &JoinInputCharacteristicsV2) -> Ordering
fn cmp(&self, other: &JoinInputCharacteristicsV2) -> Ordering
1.21.0 · Source§fn max(self, other: Self) -> Selfwhere
Self: Sized,
fn max(self, other: Self) -> Selfwhere
Self: Sized,
Compares and returns the maximum of two values. Read more
Source§impl PartialOrd for JoinInputCharacteristicsV2
impl PartialOrd for JoinInputCharacteristicsV2
impl Eq for JoinInputCharacteristicsV2
impl StructuralPartialEq for JoinInputCharacteristicsV2
Auto Trait Implementations§
impl Freeze for JoinInputCharacteristicsV2
impl RefUnwindSafe for JoinInputCharacteristicsV2
impl Send for JoinInputCharacteristicsV2
impl Sync for JoinInputCharacteristicsV2
impl Unpin for JoinInputCharacteristicsV2
impl UnwindSafe for JoinInputCharacteristicsV2
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> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<Q, K> Comparable<K> for Q
impl<Q, K> Comparable<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
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 Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
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> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self
into a Left
variant of Either<Self, Self>
if into_left
is true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self
into a Left
variant of Either<Self, Self>
if into_left(&self)
returns true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moreSource§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<T> PreferredContainer for T
impl<T> PreferredContainer 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
.