pub struct LateralJoinRel {
pub common: Option<RelCommon>,
pub left: Option<Box<Rel>>,
pub right: Option<Box<Rel>>,
pub expression: Option<Box<Expression>>,
pub post_join_filter: Option<Box<Expression>>,
pub type: i32,
pub advanced_extension: Option<AdvancedExtension>,
}Expand description
The binary lateral JOIN relational operator left-join-right. This is semantically identical to JoinRel, except the right input is evaluated once per row of the left input and may reference fields from the current left row via OuterReference rel_reference.
LateralJoinRel must set RelCommon.rel_anchor so the right input can reference fields of the current left row.
Fields§
§common: Option<RelCommon>§left: Option<Box<Rel>>The independent input whose rows drive evaluation of the lateral join.
right: Option<Box<Rel>>The dependent input evaluated once per left row. It may reference fields from the current left row using OuterReference.rel_reference pointing to this LateralJoinRel’s RelCommon.rel_anchor.
expression: Option<Box<Expression>>A boolean condition evaluated over the left and right inputs that determines whether a pair of records is a match.
post_join_filter: Option<Box<Expression>>An optional boolean filter applied to each output record after join-type-specific output formation is complete. Semantically equivalent to placing a FilterRel directly above this join.
type: i32Only INNER and left-oriented join types are valid for lateral joins: INNER, LEFT, LEFT_SEMI, LEFT_ANTI, LEFT_SINGLE, LEFT_MARK. RIGHT-oriented join types and OUTER are not valid because the right input is evaluated in the context of each left row and has no independent existence.
advanced_extension: Option<AdvancedExtension>Implementations§
Trait Implementations§
Source§impl Clone for LateralJoinRel
impl Clone for LateralJoinRel
Source§fn clone(&self) -> LateralJoinRel
fn clone(&self) -> LateralJoinRel
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for LateralJoinRel
impl Debug for LateralJoinRel
Source§impl Default for LateralJoinRel
impl Default for LateralJoinRel
Source§impl Message for LateralJoinRel
impl Message for LateralJoinRel
Source§fn encoded_len(&self) -> usize
fn encoded_len(&self) -> usize
Source§fn encode(&self, buf: &mut impl BufMut) -> Result<(), EncodeError>where
Self: Sized,
fn encode(&self, buf: &mut impl BufMut) -> Result<(), EncodeError>where
Self: Sized,
Source§fn encode_to_vec(&self) -> Vec<u8> ⓘwhere
Self: Sized,
fn encode_to_vec(&self) -> Vec<u8> ⓘwhere
Self: Sized,
Source§fn encode_length_delimited(
&self,
buf: &mut impl BufMut,
) -> Result<(), EncodeError>where
Self: Sized,
fn encode_length_delimited(
&self,
buf: &mut impl BufMut,
) -> Result<(), EncodeError>where
Self: Sized,
Source§fn encode_length_delimited_to_vec(&self) -> Vec<u8> ⓘwhere
Self: Sized,
fn encode_length_delimited_to_vec(&self) -> Vec<u8> ⓘwhere
Self: Sized,
Source§fn decode(buf: impl Buf) -> Result<Self, DecodeError>where
Self: Default,
fn decode(buf: impl Buf) -> Result<Self, DecodeError>where
Self: Default,
Source§fn decode_length_delimited(buf: impl Buf) -> Result<Self, DecodeError>where
Self: Default,
fn decode_length_delimited(buf: impl Buf) -> Result<Self, DecodeError>where
Self: Default,
Source§fn merge(&mut self, buf: impl Buf) -> Result<(), DecodeError>where
Self: Sized,
fn merge(&mut self, buf: impl Buf) -> Result<(), DecodeError>where
Self: Sized,
self. Read moreSource§fn merge_length_delimited(&mut self, buf: impl Buf) -> Result<(), DecodeError>where
Self: Sized,
fn merge_length_delimited(&mut self, buf: impl Buf) -> Result<(), DecodeError>where
Self: Sized,
self.Source§impl Name for LateralJoinRel
impl Name for LateralJoinRel
Source§const NAME: &'static str = "LateralJoinRel"
const NAME: &'static str = "LateralJoinRel"
Message.
This name is the same as it appears in the source .proto file, e.g. FooBar.Source§const PACKAGE: &'static str = "substrait"
const PACKAGE: &'static str = "substrait"
., e.g. google.protobuf.Source§fn full_name() -> String
fn full_name() -> String
Message.
It’s prefixed with the package name and names of any parent messages,
e.g. google.rpc.BadRequest.FieldViolation.
By default, this is the package name followed by the message name.
Fully-qualified names must be unique within a domain of Type URLs.