Jackie-Jiang commented on code in PR #13966: URL: https://github.com/apache/pinot/pull/13966#discussion_r1756179430
########## pinot-query-runtime/src/main/java/org/apache/pinot/query/runtime/plan/server/ServerPlanRequestVisitor.java: ########## @@ -124,28 +128,41 @@ public Void visitFilter(FilterNode node, ServerPlanRequestContext context) { @Override public Void visitJoin(JoinNode node, ServerPlanRequestContext context) { - // visit only the static side, turn the dynamic side into a lookup from the pipeline breaker resultDataContainer - PlanNode staticSide = node.getInputs().get(0); - PlanNode dynamicSide = node.getInputs().get(1); - if (staticSide instanceof MailboxReceiveNode) { - dynamicSide = node.getInputs().get(0); - staticSide = node.getInputs().get(1); - } - if (visit(staticSide, context)) { - PipelineBreakerResult pipelineBreakerResult = context.getPipelineBreakerResult(); - int resultMapId = pipelineBreakerResult.getNodeIdMap().get(dynamicSide); - List<TransferableBlock> transferableBlocks = - pipelineBreakerResult.getResultMap().getOrDefault(resultMapId, Collections.emptyList()); - List<Object[]> resultDataContainer = new ArrayList<>(); - DataSchema dataSchema = dynamicSide.getDataSchema(); - for (TransferableBlock block : transferableBlocks) { - if (block.getType() == DataBlock.Type.ROW) { - resultDataContainer.addAll(block.getContainer()); + // We can reach here for dynamic broadcast SEMI join and lookup join. + List<PlanNode> inputs = node.getInputs(); + PlanNode left = inputs.get(0); + PlanNode right = inputs.get(1); + + if (right instanceof MailboxReceiveNode + && ((MailboxReceiveNode) right).getExchangeType() == PinotRelExchangeType.PIPELINE_BREAKER) { Review Comment: Added `JoinStrategy` enum into the `JoinNode`. It is quite hard to change the Calcite `LogicalJoin` directly without breaking backward compatibility, so left that as a follow up -- 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