This is an automated email from the ASF dual-hosted git repository.
jackietien pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/iotdb.git
The following commit(s) were added to refs/heads/master by this push:
new c84095d093 [IOTDB-3325] Thrown an exception when using group by in raw
data query (#6077)
c84095d093 is described below
commit c84095d093b7263084a62b36f726f31a7b282dc6
Author: liuminghui233 <[email protected]>
AuthorDate: Mon May 30 21:22:10 2022 +0800
[IOTDB-3325] Thrown an exception when using group by in raw data query
(#6077)
---
.../SmoothQueueSlidingWindowAggregator.java | 1 +
.../db/mpp/plan/statement/crud/QueryStatement.java | 4 ++++
.../thrift/impl/DataNodeTSIServiceImpl.java | 24 +++++++++++-----------
3 files changed, 17 insertions(+), 12 deletions(-)
diff --git
a/server/src/main/java/org/apache/iotdb/db/mpp/aggregation/slidingwindow/SmoothQueueSlidingWindowAggregator.java
b/server/src/main/java/org/apache/iotdb/db/mpp/aggregation/slidingwindow/SmoothQueueSlidingWindowAggregator.java
index 0d82e0169d..adfe1528c8 100644
---
a/server/src/main/java/org/apache/iotdb/db/mpp/aggregation/slidingwindow/SmoothQueueSlidingWindowAggregator.java
+++
b/server/src/main/java/org/apache/iotdb/db/mpp/aggregation/slidingwindow/SmoothQueueSlidingWindowAggregator.java
@@ -39,6 +39,7 @@ public class SmoothQueueSlidingWindowAggregator extends
SlidingWindowAggregator
protected void evictingExpiredValue() {
if (!deque.isEmpty() && !curTimeRange.contains(deque.getLast().getTime()))
{
this.accumulator.reset();
+ deque.clear();
return;
}
while (!deque.isEmpty() &&
!curTimeRange.contains(deque.getFirst().getTime())) {
diff --git
a/server/src/main/java/org/apache/iotdb/db/mpp/plan/statement/crud/QueryStatement.java
b/server/src/main/java/org/apache/iotdb/db/mpp/plan/statement/crud/QueryStatement.java
index 35a565f3e7..2c1d8cb2fb 100644
---
a/server/src/main/java/org/apache/iotdb/db/mpp/plan/statement/crud/QueryStatement.java
+++
b/server/src/main/java/org/apache/iotdb/db/mpp/plan/statement/crud/QueryStatement.java
@@ -240,6 +240,10 @@ public class QueryStatement extends Statement {
throw new SemanticException("Raw data and aggregation hybrid query
is not supported.");
}
}
+ } else {
+ if (isGroupByTime() || isGroupByLevel()) {
+ throw new SemanticException("Raw data query doesn't support GROUP
BY.");
+ }
}
if (isAlignByDevice()) {
diff --git
a/server/src/main/java/org/apache/iotdb/db/service/thrift/impl/DataNodeTSIServiceImpl.java
b/server/src/main/java/org/apache/iotdb/db/service/thrift/impl/DataNodeTSIServiceImpl.java
index 547e86dd6c..412301327f 100644
---
a/server/src/main/java/org/apache/iotdb/db/service/thrift/impl/DataNodeTSIServiceImpl.java
+++
b/server/src/main/java/org/apache/iotdb/db/service/thrift/impl/DataNodeTSIServiceImpl.java
@@ -530,20 +530,20 @@ public class DataNodeTSIServiceImpl implements
TSIEventHandler {
}
long startTime = System.currentTimeMillis();
- Statement s =
- StatementGenerator.createStatement(
- statement, SESSION_MANAGER.getZoneId(req.getSessionId()));
-
- // permission check
- TSStatus status = AuthorityChecker.checkAuthority(s, req.sessionId);
- if (status.getCode() != TSStatusCode.SUCCESS_STATUS.getStatusCode()) {
- return RpcUtils.getTSExecuteStatementResp(status);
- }
+ try {
+ Statement s =
+ StatementGenerator.createStatement(
+ statement, SESSION_MANAGER.getZoneId(req.getSessionId()));
- QUERY_FREQUENCY_RECORDER.incrementAndGet();
- AUDIT_LOGGER.debug("Session {} execute Query: {}", req.sessionId,
statement);
+ // permission check
+ TSStatus status = AuthorityChecker.checkAuthority(s, req.sessionId);
+ if (status.getCode() != TSStatusCode.SUCCESS_STATUS.getStatusCode()) {
+ return RpcUtils.getTSExecuteStatementResp(status);
+ }
+
+ QUERY_FREQUENCY_RECORDER.incrementAndGet();
+ AUDIT_LOGGER.debug("Session {} execute Query: {}", req.sessionId,
statement);
- try {
long queryId = SESSION_MANAGER.requestQueryId(req.statementId, true);
// create and cache dataset
ExecutionResult result =