xzj7019 commented on code in PR #20714:
URL: https://github.com/apache/doris/pull/20714#discussion_r1227438782
##########
fe/fe-core/src/main/java/org/apache/doris/nereids/processor/post/RuntimeFilterGenerator.java:
##########
@@ -105,29 +111,77 @@ public PhysicalPlan
visitPhysicalHashJoin(PhysicalHashJoin<? extends Plan, ? ext
if (type == TRuntimeFilterType.BITMAP) {
continue;
}
- // currently, we can ensure children in the two side are
corresponding to the equal_to's.
- // so right maybe an expression and left is a slot
- Slot unwrappedSlot = checkTargetChild(equalTo.left());
- // aliasTransMap doesn't contain the key, means that the
path from the olap scan to the join
- // contains join with denied join type. for example: a
left join b on a.id = b.id
- if (unwrappedSlot == null ||
!aliasTransferMap.containsKey(unwrappedSlot)) {
- continue;
- }
- Slot olapScanSlot =
aliasTransferMap.get(unwrappedSlot).second;
- PhysicalRelation scan =
aliasTransferMap.get(unwrappedSlot).first;
- // in-filter is not friendly to pipeline
- if (type == TRuntimeFilterType.IN_OR_BLOOM
- && ctx.getSessionVariable().enablePipelineEngine()
- && hasRemoteTarget(join, scan)) {
- type = TRuntimeFilterType.BLOOM;
+ if (join.left() instanceof PhysicalUnion
Review Comment:
It's not convenient to handle set operation as visit framework since the
join related info needs to be acquired. So just leave this inside the visit
join function and support this pattern currently.
--
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]