pub struct JoinAnalysis {Show 14 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 left_time_column: Option<String>,
pub right_time_column: Option<String>,
pub temporal_probe_schedule: Option<TemporalProbeSchedule>,
pub temporal_probe_alias: 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)
left_time_column: Option<String>Left side time column for a bounded join
right_time_column: Option<String>Right side time column for a bounded join
temporal_probe_schedule: Option<TemporalProbeSchedule>Target-time schedule for a temporal join.
temporal_probe_alias: Option<String>Pseudo-table alias exposing offset_ms and probe_time for multi-horizon probes.
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
Sourcepub fn temporal(
left_table: String,
right_table: String,
left_key: String,
right_key: String,
left_time_column: String,
join_type: JoinType,
) -> Self
pub fn temporal( left_table: String, right_table: String, left_key: String, right_key: String, left_time_column: String, join_type: JoinType, ) -> Self
Create a temporal join analysis (FOR SYSTEM_TIME AS OF).
Sourcepub fn is_bounded(&self) -> bool
pub fn is_bounded(&self) -> bool
True if this step has a BETWEEN bound or FOR SYSTEM_TIME AS OF.
Sourcepub fn is_temporal_join(&self) -> bool
pub fn is_temporal_join(&self) -> bool
Whether this step uses versioned event-time lookup state.
Trait Implementations§
Source§impl Clone for JoinAnalysis
impl Clone for JoinAnalysis
Source§fn clone(&self) -> JoinAnalysis
fn clone(&self) -> JoinAnalysis
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 JoinAnalysis
impl Debug for JoinAnalysis
impl Eq for JoinAnalysis
Source§impl PartialEq for JoinAnalysis
impl PartialEq for JoinAnalysis
impl StructuralPartialEq for JoinAnalysis
Auto 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> Allocation for T
§impl<T> ArchivePointee for T
impl<T> ArchivePointee for T
§type ArchivedMetadata = ()
type ArchivedMetadata = ()
§fn pointer_metadata(
_: &<T as ArchivePointee>::ArchivedMetadata,
) -> <T as Pointee>::Metadata
fn pointer_metadata( _: &<T as ArchivePointee>::ArchivedMetadata, ) -> <T as Pointee>::Metadata
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,
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> 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 more§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
T in a tonic::Request§impl<L> LayerExt<L> for L
impl<L> LayerExt<L> for L
§fn named_layer<S>(&self, service: S) -> Layered<<L as Layer<S>>::Service, S>where
L: Layer<S>,
fn named_layer<S>(&self, service: S) -> Layered<<L as Layer<S>>::Service, S>where
L: Layer<S>,
Layered].