pub struct JoinEdge {
pub lhs_table: TableId,
pub rhs_table: TableId,
pub lhs_join_col: ColId,
pub rhs_join_col: ColId,
pub rhs_col: ColId,
}Expand description
A join edge is used for pruning queries when evaluating subscription updates.
If we have the following subscriptions:
SELECT a.* FROM a JOIN b ON a.id = b.id WHERE b.x = 1
SELECT a.* FROM a JOIN b ON a.id = b.id WHERE b.x = 2
...
SELECT a.* FROM a JOIN b ON a.id = b.id WHERE b.x = nWhenever a is updated, only the relevant queries are evaluated.
Fields§
§lhs_table: TableIdThe TableId for a
rhs_table: TableIdThe TableId for b
lhs_join_col: ColIdThe ColId for a.id
rhs_join_col: ColIdThe ColId for b.id
rhs_col: ColIdThe ColId for b.x
Implementations§
Source§impl JoinEdge
impl JoinEdge
Sourcepub fn range_for_table(lhs_table: TableId) -> impl RangeBounds<Self>
pub fn range_for_table(lhs_table: TableId) -> impl RangeBounds<Self>
A helper method for finding a range of join edges for a particular table in a sorted set.
Trait Implementations§
Source§impl Ord for JoinEdge
impl Ord for JoinEdge
Source§impl PartialOrd for JoinEdge
impl PartialOrd for JoinEdge
impl Eq for JoinEdge
impl StructuralPartialEq for JoinEdge
Auto Trait Implementations§
impl Freeze for JoinEdge
impl RefUnwindSafe for JoinEdge
impl Send for JoinEdge
impl Sync for JoinEdge
impl Unpin 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<Q, K> Comparable<K> for Q
impl<Q, K> Comparable<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
Compare self to
key and return true if they are equal.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