Skip to main content

build_halfjoin

Function build_halfjoin 

Source
fn build_halfjoin<'scope, T>(
    updates: VecCollection<'scope, T, (Row, T), Diff>,
    prev_key: Vec<LirScalarExpr>,
    prev_thinning: Vec<usize>,
    bundle: &CollectionBundle<'scope, T>,
    lookup_key: Vec<LirScalarExpr>,
    source_precedes_lookup: bool,
    closure: JoinClosure,
    config_set: Rc<ConfigSet>,
) -> (VecCollection<'scope, T, (Row, T), Diff>, VecCollection<'scope, T, DataflowErrorSer, Diff>)
where T: RenderTimestamp,
Expand description

Constructs a half_join against the arrangement held by a collection bundle.

This wrapper demuxes over the two flavors of arrangement (dataflow-local or imported trace) that the bundle might hold for lookup_key, dispatching to the generic build_halfjoin_trace for each. source_precedes_lookup selects the tie-breaking comparison: le if the source relation precedes the lookup relation in the total order on relations, otherwise lt.

The returned error collection holds only the errors this stage produces. The errors bundle already carries are the caller’s to propagate, once, rather than once per delta path that looks the input up. See bundle_errs.