Class HashJoinOperator
- java.lang.Object
-
- org.apache.pinot.query.runtime.operator.MultiStageOperator
-
- org.apache.pinot.query.runtime.operator.HashJoinOperator
-
- All Implemented Interfaces:
AutoCloseable,Operator<TransferableBlock>
public class HashJoinOperator extends MultiStageOperator
This basicBroadcastJoinOperatorimplement a basic broadcast join algorithm. This algorithm assumes that the broadcast table has to fit in memory since we are not supporting any spilling. For left join, inner join, right join and full join,It takes the right table as the broadcast side and materialize a hash table. Then for each of the left table row, it looks up for the corresponding row(s) from the hash table and create a joint row.
For each of the data block received from the left table, it will generate a joint data block. We currently support left join, inner join, right join and full join. The output is in the format of [left_row, right_row]
-
-
Field Summary
-
Fields inherited from class org.apache.pinot.query.runtime.operator.MultiStageOperator
_context, _opChainStats, _operatorId
-
-
Constructor Summary
Constructors Constructor Description HashJoinOperator(OpChainExecutionContext context, MultiStageOperator leftTableOperator, MultiStageOperator rightTableOperator, DataSchema leftSchema, JoinNode node)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description List<MultiStageOperator>getChildOperators()protected TransferableBlockgetNextBlock()StringtoExplainString()-
Methods inherited from class org.apache.pinot.query.runtime.operator.MultiStageOperator
cancel, close, getOperatorId, nextBlock, shouldCollectStats
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface org.apache.pinot.core.common.Operator
explainPlan, getExecutionStatistics, getIndexSegment, prepareForExplainPlan
-
-
-
-
Constructor Detail
-
HashJoinOperator
public HashJoinOperator(OpChainExecutionContext context, MultiStageOperator leftTableOperator, MultiStageOperator rightTableOperator, DataSchema leftSchema, JoinNode node)
-
-
Method Detail
-
getChildOperators
public List<MultiStageOperator> getChildOperators()
- Specified by:
getChildOperatorsin interfaceOperator<TransferableBlock>- Overrides:
getChildOperatorsin classMultiStageOperator
-
toExplainString
@Nullable public String toExplainString()
-
getNextBlock
protected TransferableBlock getNextBlock()
- Specified by:
getNextBlockin classMultiStageOperator
-
-