pub struct HashSide {
pub null_keyed: Vec<usize>,
/* private fields */
}Expand description
Right-hand rows indexed by their key bucket.
Fields§
§null_keyed: Vec<usize>Right rows whose key contains a NULL. They match nothing, but a
RIGHT/FULL join still has to emit them as unmatched, so they cannot
simply be dropped.
Implementations§
Source§impl HashSide
impl HashSide
Sourcepub fn build(
n: usize,
key_of: impl FnMut(usize) -> Result<Option<Vec<HKey>>>,
) -> Result<Self>
pub fn build( n: usize, key_of: impl FnMut(usize) -> Result<Option<Vec<HKey>>>, ) -> Result<Self>
Build the probe side. key_of yields one row’s key values, or None
when any of them is NULL.
Sourcepub fn probe(&self, key: &[HKey]) -> &[usize]
pub fn probe(&self, key: &[HKey]) -> &[usize]
Candidate right-row indices for a left key, in ascending order.
pub fn distinct_keys(&self) -> usize
Auto Trait Implementations§
impl Freeze for HashSide
impl RefUnwindSafe for HashSide
impl Send for HashSide
impl Sync for HashSide
impl Unpin for HashSide
impl UnsafeUnpin for HashSide
impl UnwindSafe for HashSide
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
impl<A, B, T> HttpServerConnExec<A, B> for Twhere
B: Body,
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 more