morrySnow commented on code in PR #39316:
URL: https://github.com/apache/doris/pull/39316#discussion_r1726220689
##########
fe/fe-core/src/main/java/org/apache/doris/nereids/glue/translator/PhysicalPlanTranslator.java:
##########
@@ -1829,9 +1829,17 @@ public PlanFragment visitPhysicalNestedLoopJoin(
public PlanFragment visitPhysicalLimit(PhysicalLimit<? extends Plan>
physicalLimit, PlanTranslatorContext context) {
PlanFragment inputFragment = physicalLimit.child(0).accept(this,
context);
PlanNode child = inputFragment.getPlanRoot();
- child.setLimit(MergeLimits.mergeLimit(physicalLimit.getLimit(),
physicalLimit.getOffset(), child.getLimit()));
- // TODO: plan node don't support limit
- // child.setOffset(MergeLimits.mergeOffset(physicalLimit.getOffset(),
child.getOffset()));
+
+ if (!(child instanceof ExchangeNode)) {
Review Comment:
1. remove post process: AddOffsetIntoDistribute
2. in translator
2.1. if limit is local, just merge it with child.getLimit() and set it to
child.limit
2.2. if limit is global, check wether it's child is exchange. if child is
exchange, just merge limit and offset with exchange's limit and offset. if
child is not exchange, create exchange node and set limit and offset to it
--
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]