pub enum JoinInputCharacteristics {
V1(JoinInputCharacteristicsV1),
V2(JoinInputCharacteristicsV2),
}
Expand description
Characteristics of a join order candidate collection.
A candidate is described by a collection and a key, and may have various liabilities. Primarily, the candidate may risk substantial inflation of records, which is something that concerns us greatly. Additionally, the candidate may be unarranged, and we would prefer candidates that do not require additional memory. Finally, we prefer lower id collections in the interest of consistent tie-breaking. For more characteristics, see comments on individual fields.
This has more than one version. new
instantiates the appropriate version based on a
feature flag.
Variants§
V1(JoinInputCharacteristicsV1)
Old version, with enable_join_prioritize_arranged
turned off.
V2(JoinInputCharacteristicsV2)
Newer version, with enable_join_prioritize_arranged
turned on.
Implementations§
Source§impl JoinInputCharacteristics
impl JoinInputCharacteristics
Sourcepub fn new(
unique_key: bool,
key_length: usize,
arranged: bool,
cardinality: Option<usize>,
filters: FilterCharacteristics,
input: usize,
enable_join_prioritize_arranged: bool,
) -> Self
pub fn new( unique_key: bool, key_length: usize, arranged: bool, cardinality: Option<usize>, filters: FilterCharacteristics, input: usize, enable_join_prioritize_arranged: bool, ) -> Self
Creates a new instance with the given characteristics.
Sourcepub fn filters(&mut self) -> &mut FilterCharacteristics
pub fn filters(&mut self) -> &mut FilterCharacteristics
Returns the FilterCharacteristics
for the join input described by self
.
Trait Implementations§
Source§impl Arbitrary for JoinInputCharacteristics
impl Arbitrary for JoinInputCharacteristics
Source§type Parameters = (<JoinInputCharacteristicsV1 as Arbitrary>::Parameters, <JoinInputCharacteristicsV2 as Arbitrary>::Parameters)
type Parameters = (<JoinInputCharacteristicsV1 as Arbitrary>::Parameters, <JoinInputCharacteristicsV2 as Arbitrary>::Parameters)
arbitrary_with
accepts for configuration
of the generated Strategy
. Parameters must implement Default
.Source§type Strategy = Union<BoxedStrategy<JoinInputCharacteristics>>
type Strategy = Union<BoxedStrategy<JoinInputCharacteristics>>
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 JoinInputCharacteristics
impl Clone for JoinInputCharacteristics
Source§fn clone(&self) -> JoinInputCharacteristics
fn clone(&self) -> JoinInputCharacteristics
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moreSource§impl Debug for JoinInputCharacteristics
impl Debug for JoinInputCharacteristics
Source§impl<'de> Deserialize<'de> for JoinInputCharacteristics
impl<'de> Deserialize<'de> for JoinInputCharacteristics
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>,
Source§impl Hash for JoinInputCharacteristics
impl Hash for JoinInputCharacteristics
Source§impl MzReflect for JoinInputCharacteristics
impl MzReflect for JoinInputCharacteristics
Source§fn add_to_reflected_type_info(rti: &mut ReflectedTypeInfo)
fn add_to_reflected_type_info(rti: &mut ReflectedTypeInfo)
rti
. Read moreSource§impl Ord for JoinInputCharacteristics
impl Ord for JoinInputCharacteristics
Source§fn cmp(&self, other: &JoinInputCharacteristics) -> Ordering
fn cmp(&self, other: &JoinInputCharacteristics) -> Ordering
1.21.0 · Source§fn max(self, other: Self) -> Selfwhere
Self: Sized,
fn max(self, other: Self) -> Selfwhere
Self: Sized,
Source§impl PartialEq for JoinInputCharacteristics
impl PartialEq for JoinInputCharacteristics
Source§impl PartialOrd for JoinInputCharacteristics
impl PartialOrd for JoinInputCharacteristics
Source§impl Serialize for JoinInputCharacteristics
impl Serialize for JoinInputCharacteristics
impl Eq for JoinInputCharacteristics
impl StructuralPartialEq for JoinInputCharacteristics
Auto Trait Implementations§
impl Freeze for JoinInputCharacteristics
impl RefUnwindSafe for JoinInputCharacteristics
impl Send for JoinInputCharacteristics
impl Sync for JoinInputCharacteristics
impl Unpin for JoinInputCharacteristics
impl UnwindSafe for JoinInputCharacteristics
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
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
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
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>
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>
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>
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>
RustType::from_proto
.Source§fn from_rust(rust: &R) -> P
fn from_rust(rust: &R) -> P
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)
std::ops::AddAssign
, for types that do not implement AddAssign
.