You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@iotdb.apache.org by xi...@apache.org on 2021/06/06 08:18:23 UTC

[iotdb] 03/03: Fix insert and udf bug:

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

xiangweiwei pushed a commit to branch removeTokenType
in repository https://gitbox.apache.org/repos/asf/iotdb.git

commit 656b2d86ebe0c78a5b0c3f8c76a5bd1a7cd98d06
Author: Alima777 <wx...@gmail.com>
AuthorDate: Sun Jun 6 16:17:38 2021 +0800

    Fix insert and udf bug:
---
 .../java/org/apache/iotdb/db/qp/logical/crud/InsertOperator.java  | 2 +-
 .../src/main/java/org/apache/iotdb/db/qp/sql/IoTDBSqlVisitor.java | 8 ++++----
 .../org/apache/iotdb/db/integration/IoTDBUDTFHybridQueryIT.java   | 2 +-
 3 files changed, 6 insertions(+), 6 deletions(-)

diff --git a/server/src/main/java/org/apache/iotdb/db/qp/logical/crud/InsertOperator.java b/server/src/main/java/org/apache/iotdb/db/qp/logical/crud/InsertOperator.java
index 6d98b2e..b48995e 100644
--- a/server/src/main/java/org/apache/iotdb/db/qp/logical/crud/InsertOperator.java
+++ b/server/src/main/java/org/apache/iotdb/db/qp/logical/crud/InsertOperator.java
@@ -100,7 +100,7 @@ public class InsertOperator extends Operator {
       insertRowsPlan.addOneInsertRowPlan(
           new InsertRowPlan(
               device,
-              times[0],
+              times[i],
               measurementList,
               Arrays.copyOfRange(valueList, i * measurementsNum, (i + 1) * measurementsNum)),
           i);
diff --git a/server/src/main/java/org/apache/iotdb/db/qp/sql/IoTDBSqlVisitor.java b/server/src/main/java/org/apache/iotdb/db/qp/sql/IoTDBSqlVisitor.java
index 1481cab..af98df6 100644
--- a/server/src/main/java/org/apache/iotdb/db/qp/sql/IoTDBSqlVisitor.java
+++ b/server/src/main/java/org/apache/iotdb/db/qp/sql/IoTDBSqlVisitor.java
@@ -1032,17 +1032,15 @@ public class IoTDBSqlVisitor extends SqlBaseBaseVisitor<Operator> {
       queryOp = new LastQueryOperator(queryOp);
     }
 
-    boolean isFirstElement = true;
     for (ResultColumnContext resultColumnContext : ctx.resultColumn()) {
       selectComponent.addResultColumn(parseResultColumn(resultColumnContext));
       // judge query type according to the first select element
-      if (!hasDecidedQueryType() && isFirstElement) {
+      if (!hasDecidedQueryType()) {
         if (selectComponent.hasAggregationFunction()) {
           queryOp = new AggregationQueryOperator(queryOp);
         } else if (selectComponent.hasTimeSeriesGeneratingFunction()) {
           queryOp = new UDFQueryOperator(queryOp);
         }
-        isFirstElement = false;
       }
     }
 
@@ -1052,7 +1050,9 @@ public class IoTDBSqlVisitor extends SqlBaseBaseVisitor<Operator> {
   private boolean hasDecidedQueryType() {
     return queryOp instanceof GroupByQueryOperator
         || queryOp instanceof FillQueryOperator
-        || queryOp instanceof LastQueryOperator;
+        || queryOp instanceof LastQueryOperator
+        || queryOp instanceof AggregationQueryOperator
+        || queryOp instanceof UDFQueryOperator;
   }
 
   @Override
diff --git a/server/src/test/java/org/apache/iotdb/db/integration/IoTDBUDTFHybridQueryIT.java b/server/src/test/java/org/apache/iotdb/db/integration/IoTDBUDTFHybridQueryIT.java
index 0710b24..7b63e9e 100644
--- a/server/src/test/java/org/apache/iotdb/db/integration/IoTDBUDTFHybridQueryIT.java
+++ b/server/src/test/java/org/apache/iotdb/db/integration/IoTDBUDTFHybridQueryIT.java
@@ -120,7 +120,7 @@ public class IoTDBUDTFHybridQueryIT {
       assertTrue(
           throwable
               .getMessage()
-              .contains("User-defined and built-in hybrid aggregation is not supported."));
+              .contains("User-defined and built-in hybrid aggregation is not supported together."));
     }
   }