pub struct HashJoin { /* private fields */ }Expand description
A hash join: build the index, then probe it.
Implementations§
Source§impl HashJoin
impl HashJoin
Sourcepub fn new(config: JoinConfig) -> Self
pub fn new(config: JoinConfig) -> Self
Create an empty join ready to receive build-side pages.
Sourcepub fn config(&self) -> &JoinConfig
pub fn config(&self) -> &JoinConfig
The compiled config.
Sourcepub fn add_build_page(&mut self, records: Vec<Value>) -> Result<(), FaucetError>
pub fn add_build_page(&mut self, records: Vec<Value>) -> Result<(), FaucetError>
Ingest a page of build-side records into the index.
Records whose build key resolves to null/absent are skipped (counted in
JoinStats::build_nulls). Returns FaucetError::Transform with a
JoinBuildOverflow-style message once the cumulative build count
exceeds JoinConfig::max_build_records.
Sourcepub fn indexed_keys(&self) -> usize
pub fn indexed_keys(&self) -> usize
Number of distinct keys indexed so far.
Sourcepub fn probe_page(
&mut self,
records: Vec<Value>,
) -> Result<Vec<Value>, FaucetError>
pub fn probe_page( &mut self, records: Vec<Value>, ) -> Result<Vec<Value>, FaucetError>
Enrich a page of probe-side records against the built index.
Must be called only after every build page has been ingested. Returns the enriched output records (0..N per input record depending on mode and duplicate policy).
Trait Implementations§
Auto Trait Implementations§
impl Freeze for HashJoin
impl RefUnwindSafe for HashJoin
impl Send for HashJoin
impl Sync for HashJoin
impl Unpin for HashJoin
impl UnsafeUnpin for HashJoin
impl UnwindSafe for HashJoin
Blanket Implementations§
impl<T> Allocation for T
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> FutureExt for T
impl<T> FutureExt for T
Source§fn with_context(self, otel_cx: Context) -> WithContext<Self>
fn with_context(self, otel_cx: Context) -> WithContext<Self>
Source§fn with_current_context(self) -> WithContext<Self>
fn with_current_context(self) -> WithContext<Self>
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> 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