pub struct JoinEdge {
pub left: RelId,
pub right: RelId,
pub selectivity: f64,
}Expand description
One edge in the join graph — a predicate that constrains two
relations to satisfy left.col = right.col (or any other
equi-join shape). The DP only cares that the edge exists,
not the specific columns; selectivity is supplied separately.
Fields§
§left: RelId§right: RelId§selectivity: f64Selectivity in [0, 1] — fraction of the Cartesian
product surviving the join. 0.01 is a typical equi-join
on a non-unique column; 0.0001 means very selective.
Trait Implementations§
Auto Trait Implementations§
impl Freeze for JoinEdge
impl RefUnwindSafe for JoinEdge
impl Send for JoinEdge
impl Sync for JoinEdge
impl Unpin for JoinEdge
impl UnsafeUnpin for JoinEdge
impl UnwindSafe for JoinEdge
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
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
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>
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 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>
Wrap the input message
T in a tonic::Request