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

Method IndexLookupJoin

bolt/exec/IndexLookupJoin.cpp:49–83  ·  view source on GitHub ↗

namespace

Source from the content-addressed store, hash-verified

47}
48} // namespace
49IndexLookupJoin::IndexLookupJoin(
50 int32_t operatorId,
51 DriverCtx* driverCtx,
52 const std::shared_ptr<const core::IndexLookupJoinNode>& joinNode)
53 : Operator(
54 driverCtx,
55 joinNode->outputType(),
56 operatorId,
57 joinNode->id(),
58 "IndexLookupJoin"),
59 // TODO: support to update output batch size with output size stats during
60 // the lookup processing.
61 outputBatchSize_{static_cast<vector_size_t>(outputBatchRows())},
62 joinType_{joinNode->joinType()},
63 numKeys_{joinNode->leftKeys().size()},
64 probeType_{joinNode->sources()[0]->outputType()},
65 lookupType_{joinNode->lookupSource()->outputType()},
66 lookupTableHandle_{joinNode->lookupSource()->tableHandle()},
67 lookupColumnHandles_(joinNode->lookupSource()->assignments()),
68 connectorQueryCtx_{operatorCtx_->createConnectorQueryCtx(
69 lookupTableHandle_->connectorId(),
70 planNodeId(),
71 driverCtx->task->addConnectorPoolLocked(
72 planNodeId(),
73 driverCtx->pipelineId,
74 driverCtx->driverId,
75 operatorType(),
76 lookupTableHandle_->connectorId()),
77 spillConfig_.has_value() ? &(spillConfig_.value()) : nullptr)},
78 expressionEvaluator_(connectorQueryCtx_->expressionEvaluator()),
79 connector_(connector::getConnector(lookupTableHandle_->connectorId())),
80 joinNode_{joinNode} {
81 duplicateJoinKeyCheck(joinNode_->leftKeys());
82 duplicateJoinKeyCheck(joinNode_->rightKeys());
83}
84
85void IndexLookupJoin::initialize() {
86 Operator::initialize();

Callers

nothing calls this directly

Calls 12

getConnectorFunction · 0.85
duplicateJoinKeyCheckFunction · 0.85
outputTypeMethod · 0.80
connectorIdMethod · 0.80
has_valueMethod · 0.80
expressionEvaluatorMethod · 0.80
idMethod · 0.45
joinTypeMethod · 0.45
sizeMethod · 0.45
valueMethod · 0.45

Tested by

no test coverage detected