pub struct JoinAnalysis {Show 17 fields
pub join_type: JoinType,
pub left_table: String,
pub right_table: String,
pub left_key_column: String,
pub right_key_column: String,
pub time_bound: Option<Duration>,
pub is_lookup_join: bool,
pub left_alias: Option<String>,
pub right_alias: Option<String>,
pub is_asof_join: bool,
pub asof_direction: Option<AsofSqlDirection>,
pub left_time_column: Option<String>,
pub right_time_column: Option<String>,
pub asof_tolerance: Option<Duration>,
pub is_temporal_join: bool,
pub temporal_version_column: Option<String>,
pub additional_key_columns: Vec<(String, String)>,
}Expand description
Analysis result for a JOIN clause
Fields§
§join_type: JoinTypeType of join (inner, left, right, full)
left_table: StringLeft side table name
right_table: StringRight side table name
left_key_column: StringLeft side key column
right_key_column: StringRight side key column
time_bound: Option<Duration>Time bound for stream-stream joins (None for lookup joins)
is_lookup_join: boolWhether this is a lookup join (no time bound)
left_alias: Option<String>Left side alias (if any)
right_alias: Option<String>Right side alias (if any)
is_asof_join: boolWhether this is an ASOF join
asof_direction: Option<AsofSqlDirection>ASOF join direction (Backward or Forward)
left_time_column: Option<String>Left side time column for ASOF join
right_time_column: Option<String>Right side time column for ASOF join
asof_tolerance: Option<Duration>ASOF join tolerance (max time difference)
is_temporal_join: boolWhether this is a temporal join (FOR SYSTEM_TIME AS OF)
temporal_version_column: Option<String>The version column from FOR SYSTEM_TIME AS OF (e.g., order_time)
additional_key_columns: Vec<(String, String)>Additional key columns for composite join keys (beyond the primary key pair)
Implementations§
Source§impl JoinAnalysis
impl JoinAnalysis
Sourcepub fn stream_stream(
left_table: String,
right_table: String,
left_key: String,
right_key: String,
time_bound: Duration,
join_type: JoinType,
) -> Self
pub fn stream_stream( left_table: String, right_table: String, left_key: String, right_key: String, time_bound: Duration, join_type: JoinType, ) -> Self
Create a stream-stream join analysis
Sourcepub fn lookup(
left_table: String,
right_table: String,
left_key: String,
right_key: String,
join_type: JoinType,
) -> Self
pub fn lookup( left_table: String, right_table: String, left_key: String, right_key: String, join_type: JoinType, ) -> Self
Create a lookup join analysis
Trait Implementations§
Source§impl Clone for JoinAnalysis
impl Clone for JoinAnalysis
Source§fn clone(&self) -> JoinAnalysis
fn clone(&self) -> JoinAnalysis
Returns a duplicate 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 moreAuto Trait Implementations§
impl Freeze for JoinAnalysis
impl RefUnwindSafe for JoinAnalysis
impl Send for JoinAnalysis
impl Sync for JoinAnalysis
impl Unpin for JoinAnalysis
impl UnsafeUnpin for JoinAnalysis
impl UnwindSafe for JoinAnalysis
Blanket Implementations§
§impl<T> ArchivePointee for T
impl<T> ArchivePointee for T
§type ArchivedMetadata = ()
type ArchivedMetadata = ()
The archived version of the pointer metadata for this type.
§fn pointer_metadata(
_: &<T as ArchivePointee>::ArchivedMetadata,
) -> <T as Pointee>::Metadata
fn pointer_metadata( _: &<T as ArchivePointee>::ArchivedMetadata, ) -> <T as Pointee>::Metadata
Converts some archived metadata to the pointer metadata for itself.
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,
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§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 more§impl<T> LayoutRaw for T
impl<T> LayoutRaw for T
§fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>
fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>
Returns the layout of the type.