walterddr commented on code in PR #9887:
URL: https://github.com/apache/pinot/pull/9887#discussion_r1041185364


##########
pinot-query-runtime/src/main/java/org/apache/pinot/query/runtime/operator/HashJoinOperator.java:
##########
@@ -122,24 +122,27 @@ protected TransferableBlock getNextBlock() {
 
   private void buildBroadcastHashTable() {
     TransferableBlock rightBlock = _rightTableOperator.nextBlock();
-    if (rightBlock.isErrorBlock()) {
-      _upstreamErrorBlock = rightBlock;
-      return;
-    }
+    while (!rightBlock.isNoOpBlock()) {

Review Comment:
   this operator is a bit tricky on the triggering. I am assuming both left 
mailbox and right mailbox triggers the same operator chain. 
   and when it reaches here, it will first consume all the right message then 
the left. do you assume in anywhere of this opChain scheduling that when 
onDataAvailable() it always will be available?
   This assumption doesn't hold for JOIN operator as the onDataAvailable of the 
left mailbox will result in a no-op if the hash table isn't built and right 
mailbox has no pending data



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to