pub enum JoinType {
Inner,
Left,
Right,
Full,
Semi,
Anti,
LeftSemi,
RightSemi,
LeftAnti,
RightAnti,
Cross,
NestedLoop,
}Expand description
Join variant used in NodeOp::Join.
T2 (Spark parity): LeftSemi/RightSemi/LeftAnti/RightAnti were
previously collapsed to Inner when the public krishiv_api::JoinType
was lowered to the plan layer. They are now first-class variants.
Variants§
Inner
Left
Right
Full
Semi
Left semi-join — rows from the left input that have at least one match in the right input.
Anti
Anti-join — rows from the left input that have no match in the right. (Originally symmetric; preserved for back-compat.)
LeftSemi
Left semi-join variant (Spark parity). Equivalent to Semi for the
left input; distinguished to match the public API and DataFusion’s
7-variant join enum.
RightSemi
Right semi-join variant (Spark parity). Mirror of LeftSemi.
LeftAnti
Left anti-join variant (Spark parity).
RightAnti
Right anti-join variant (Spark parity).
Cross
Cartesian product — no join predicate (E2.3).
NestedLoop
Nested-loop join; used for non-equi predicates (E2.3).
Trait Implementations§
Source§impl<'de> Deserialize<'de> for JoinType
impl<'de> Deserialize<'de> for JoinType
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>,
impl Eq for JoinType
impl StructuralPartialEq for JoinType
Auto Trait Implementations§
impl Freeze for JoinType
impl RefUnwindSafe for JoinType
impl Send for JoinType
impl Sync for JoinType
impl Unpin for JoinType
impl UnsafeUnpin for JoinType
impl UnwindSafe for JoinType
Blanket Implementations§
impl<T> Allocation for T
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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
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> 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