Jackie-Jiang commented on code in PR #13966: URL: https://github.com/apache/pinot/pull/13966#discussion_r1752818276
########## 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: Are you suggesting using our customized `Rel` over the calcite `LogicalJoin` so that we can differentiate different join types? Then we can add different `JoinNode` accordingly for the ser/de? -- 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