diff --git a/fe/fe-core/src/main/java/org/apache/doris/nereids/glue/translator/PhysicalPlanTranslator.java b/fe/fe-core/src/main/java/org/apache/doris/nereids/glue/translator/PhysicalPlanTranslator.java index b51bb7a700..b7eebd4562 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/nereids/glue/translator/PhysicalPlanTranslator.java +++ b/fe/fe-core/src/main/java/org/apache/doris/nereids/glue/translator/PhysicalPlanTranslator.java @@ -646,14 +646,10 @@ public class PhysicalPlanTranslator extends DefaultPlanVisitor { sortTupleOutputList.add(ExpressionTranslator.translate(k, context)); }); - // 2. Generate new Tuple - TupleDescriptor tupleDesc = generateTupleDesc(outputList, orderKeyList, context, null); - // 3. Get current slotRef + // 2. Generate new Tuple and get current slotRef for newOrderingExprList List newOrderingExprList = Lists.newArrayList(); - orderKeyList.forEach(k -> { - newOrderingExprList.add(ExpressionTranslator.translate(k.getExpr(), context)); - }); - // 4. fill in SortInfo members + TupleDescriptor tupleDesc = generateTupleDesc(outputList, orderKeyList, newOrderingExprList, context, null); + // 3. fill in SortInfo members SortInfo sortInfo = new SortInfo(newOrderingExprList, ascOrderList, nullsFirstParamList, tupleDesc); PlanNode childNode = childFragment.getPlanRoot(); SortNode sortNode = new SortNode(context.nextPlanNodeId(), childNode, sortInfo, true); @@ -1445,6 +1441,7 @@ public class PhysicalPlanTranslator extends DefaultPlanVisitor slotList, List orderKeyList, + List newOrderingExprList, PlanTranslatorContext context, Table table) { TupleDescriptor tupleDescriptor = context.generateTupleDesc(); Set alreadyExists = Sets.newHashSet(); @@ -1458,9 +1455,11 @@ public class PhysicalPlanTranslator extends DefaultPlanVisitor 0 order by 1, isnull(b.k1), 2, 3, 4, 5 limit 65535""" qt_left_join2"""select ${i} from ${tbName1} a left join ${tbName2} b on a.k1 = b.k1 and a.k2 > b.k2 order by 1, isnull(b.k1), 2, 3, 4, 5 limit 65535""" + sql 'set batch_size = 3;' qt_left_join3"""select ${i} from ${tbName1} a left join ${tbName2} b on a.k2 = b.k2 and a.k1 > 0 left join ${tbName3} c on a.k3 = c.k3 and b.k1 = c.k1 + 1 and c.k3 > 0 order by 1, isnull(b.k1), 2, 3, 4, 5 limit 65535""" + sql 'set batch_size = 4064;' for (s in selected) { qt_left_join4"""select ${s} from ${tbName1} a left join ${tbName2} b