This is an automated email from the ASF dual-hosted git repository.

caogaofei pushed a commit to branch beyyes/fix_order_by_limit
in repository https://gitbox.apache.org/repos/asf/iotdb.git


The following commit(s) were added to refs/heads/beyyes/fix_order_by_limit by 
this push:
     new 9e5262d034c fix ut
9e5262d034c is described below

commit 9e5262d034ce9255ce609e7a28d219743fb8b043
Author: Beyyes <[email protected]>
AuthorDate: Thu Oct 12 17:52:18 2023 +0800

    fix ut
---
 .../iotdb/db/queryengine/execution/operator/process/TopKOperator.java | 2 +-
 .../apache/iotdb/db/queryengine/plan/planner/LogicalPlanBuilder.java  | 4 +++-
 .../apache/iotdb/db/queryengine/plan/planner/LogicalPlanVisitor.java  | 3 ++-
 .../iotdb/db/queryengine/plan/planner/plan/node/PlanGraphPrinter.java | 2 +-
 4 files changed, 7 insertions(+), 4 deletions(-)

diff --git 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/TopKOperator.java
 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/TopKOperator.java
index c5542441bec..448360f315a 100644
--- 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/TopKOperator.java
+++ 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/TopKOperator.java
@@ -162,7 +162,7 @@ public class TopKOperator extends 
AbstractConsumeAllOperator {
         }
       }
 
-      // if current childIdx tsblock has no value to put into heap
+      // if current childIdx TsBlock has no value to put into heap
       // the remaining data will also have no value to put int heap
       if (skipCurrentBatch) {
         noMoreTsBlocks[childIdx] = true;
diff --git 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/LogicalPlanBuilder.java
 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/LogicalPlanBuilder.java
index 751fb54e24e..5b3f7f1207b 100644
--- 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/LogicalPlanBuilder.java
+++ 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/LogicalPlanBuilder.java
@@ -773,7 +773,9 @@ public class LogicalPlanBuilder {
 
     OrderByParameter orderByParameter = new OrderByParameter(sortItemList);
 
-    if (queryStatement.hasLimit() && !queryStatement.isOrderByBasedOnDevice()) 
{
+    if (queryStatement.hasLimit()
+        && queryStatement.getOrderByComponent() != null
+        && !queryStatement.isOrderByBasedOnDevice()) {
       long limitValue =
           queryStatement.hasOffset()
               ? queryStatement.getRowOffset() + queryStatement.getRowLimit()
diff --git 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/LogicalPlanVisitor.java
 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/LogicalPlanVisitor.java
index bad986cae68..0e4150bc637 100644
--- 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/LogicalPlanVisitor.java
+++ 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/LogicalPlanVisitor.java
@@ -369,7 +369,8 @@ public class LogicalPlanVisitor extends 
StatementVisitor<PlanNode, MPPQueryConte
   }
 
   private long pushDownLimitToScanNode(QueryStatement queryStatement) {
-    // `order by time|device LIMIT N align by device` and no can push down 
limitValue to ScanNode
+    // `order by time|device LIMIT N align by device` and no value filter,
+    // can push down limitValue to ScanNode
     if (queryStatement.isAlignByDevice()
         && queryStatement.hasLimit()
         && !analysis.hasValueFilter()
diff --git 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/PlanGraphPrinter.java
 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/PlanGraphPrinter.java
index 4d4c25f218c..3de01571cb4 100644
--- 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/PlanGraphPrinter.java
+++ 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/PlanGraphPrinter.java
@@ -198,7 +198,7 @@ public class PlanGraphPrinter extends 
PlanVisitor<List<String>, PlanGraphPrinter
   public List<String> visitTopK(TopKNode node, GraphContext context) {
     List<String> boxValue = new ArrayList<>();
     boxValue.add(String.format("TopK-%s", node.getPlanNodeId().getId()));
-    boxValue.add(String.format("ChildrenCount: %d", 
node.getChildren().size()));
+    boxValue.add(String.format("LimitValue: %d", node.getTopValue()));
     boxValue.add(node.getMergeOrderParameter().toString());
     return render(node, boxValue, context);
   }

Reply via email to