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 d9a8aba8ce0298..cc7993d6ddab76 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 @@ -1861,6 +1861,10 @@ public PlanFragment visitPhysicalWindow(PhysicalWindow physicalW private PartitionSortNode translatePartitionSortNode(PhysicalPartitionTopN partitionTopN, PlanNode childNode, PlanTranslatorContext context) { + List partitionExprs = partitionTopN.getPartitionKeys().stream() + .map(e -> ExpressionTranslator.translate(e, context)) + .collect(Collectors.toList()); + // partition key should on child tuple, sort key should on partition top's tuple TupleDescriptor sortTuple = generateTupleDesc(partitionTopN.child().getOutput(), null, context); List orderingExprs = Lists.newArrayList(); List ascOrders = Lists.newArrayList(); @@ -1871,9 +1875,6 @@ private PartitionSortNode translatePartitionSortNode(PhysicalPartitionTopN partitionExprs = partitionTopN.getPartitionKeys().stream() - .map(e -> ExpressionTranslator.translate(e, context)) - .collect(Collectors.toList()); SortInfo sortInfo = new SortInfo(orderingExprs, ascOrders, nullsFirstParams, sortTuple); PartitionSortNode partitionSortNode = new PartitionSortNode(context.nextPlanNodeId(), childNode, partitionTopN.getFunction(), partitionExprs, sortInfo, partitionTopN.hasGlobalLimit(),