siddharthteotia commented on code in PR #9100:
URL: https://github.com/apache/pinot/pull/9100#discussion_r937204103


##########
pinot-query-planner/src/main/java/org/apache/pinot/query/planner/logical/StagePlanner.java:
##########
@@ -105,30 +113,128 @@ private StageNode walkRelPlan(RelNode node, int 
currentStageId) {
       RelDistribution.Type exchangeType = distribution.getType();
 
       // 2. make an exchange sender and receiver node pair
-      StageNode mailboxReceiver = new MailboxReceiveNode(currentStageId, 
nextStageRoot.getDataSchema(),
-          nextStageRoot.getStageId(), exchangeType);
-      StageNode mailboxSender = new 
MailboxSendNode(nextStageRoot.getStageId(), nextStageRoot.getDataSchema(),
-          mailboxReceiver.getStageId(), exchangeType, exchangeType == 
RelDistribution.Type.HASH_DISTRIBUTED
-          ? new FieldSelectionKeySelector(distributionKeys) : null);
+      KeySelector<Object[], Object[]> keySelector = exchangeType == 
RelDistribution.Type.HASH_DISTRIBUTED
+          ? new FieldSelectionKeySelector(distributionKeys) : null;

Review Comment:
   Might want to add a comment here to explain the rationale. Something like 
this ?
   
   Basically, we currently support two kinds of exchanges (BROADCAST and 
HASH_DISTRIBUTE) via hints. Only in the latter scenario as of now, there is a 
case for optimizing the exchange and considering skipping it. If the exchange 
type is BROADCAST, we can't avoid exchange and we won't have this situation 
because otherwise it becomes sort of colocated partitioned join (which I think 
will be added later and should have used a different exchange type through a 
different hint). This is why the keySelector is null in the first scenario



-- 
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: commits-unsubscr...@pinot.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscr...@pinot.apache.org
For additional commands, e-mail: commits-h...@pinot.apache.org

Reply via email to