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."));
}
}