MCPcopy Create free account
hub / github.com/bytedance/bolt / evaluateJoinFilter

Method evaluateJoinFilter

bolt/exec/NestedLoopJoinProbe.cpp:570–590  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

568}
569
570void NestedLoopJoinProbe::evaluateJoinFilter(const RowVectorPtr& buildVector) {
571 // First step to process is to get a batch so we can evaluate the join
572 // filter.
573 auto filterInput = getNextCrossProductBatch(
574 buildVector,
575 filterInputType_,
576 filterProbeProjections_,
577 filterBuildProjections_);
578
579 if (filterInputRows_.size() != filterInput->size()) {
580 filterInputRows_.resizeFill(filterInput->size(), true);
581 }
582 BOLT_CHECK(filterInputRows_.isAllSelected());
583
584 std::vector<VectorPtr> filterResult;
585 EvalCtx evalCtx(
586 operatorCtx_->execCtx(), joinCondition_.get(), filterInput.get());
587 joinCondition_->eval(0, 1, true, filterInputRows_, evalCtx, filterResult);
588 filterOutput_ = filterResult[0];
589 decodedFilterResult_.decode(*filterOutput_, filterInputRows_);
590}
591
592RowVectorPtr NestedLoopJoinProbe::getNextCrossProductBatch(
593 const RowVectorPtr& buildVector,

Callers

nothing calls this directly

Calls 7

resizeFillMethod · 0.80
isAllSelectedMethod · 0.80
sizeMethod · 0.45
execCtxMethod · 0.45
getMethod · 0.45
evalMethod · 0.45
decodeMethod · 0.45

Tested by

no test coverage detected