This is an automated email from the ASF dual-hosted git repository. xiangweiwei pushed a commit to branch sumValue in repository https://gitbox.apache.org/repos/asf/iotdb.git
commit a2ef166d9d9ca04a69e0c418e0c3e021ac187451 Author: Alima777 <[email protected]> AuthorDate: Sat Apr 23 16:59:45 2022 +0800 push down limit to rawdatasetwithValueFilter --- .../iotdb/db/query/dataset/RawQueryDataSetWithValueFilter.java | 5 +++-- server/src/main/java/org/apache/iotdb/db/service/TSServiceImpl.java | 3 ++- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/server/src/main/java/org/apache/iotdb/db/query/dataset/RawQueryDataSetWithValueFilter.java b/server/src/main/java/org/apache/iotdb/db/query/dataset/RawQueryDataSetWithValueFilter.java index 3e71d2a512..754edb7827 100644 --- a/server/src/main/java/org/apache/iotdb/db/query/dataset/RawQueryDataSetWithValueFilter.java +++ b/server/src/main/java/org/apache/iotdb/db/query/dataset/RawQueryDataSetWithValueFilter.java @@ -87,10 +87,11 @@ public class RawQueryDataSetWithValueFilter extends QueryDataSet implements UDFI */ private boolean cacheRowRecords() throws IOException { int cachedTimeCnt = 0; - long[] cachedTimeArray = new long[fetchSize]; + int timeArraySize = rowLimit > 0 ? Math.min(fetchSize, rowLimit + rowOffset) : fetchSize; + long[] cachedTimeArray = new long[timeArraySize]; // TODO: LIMIT constraint // 1. fill time array from time Generator - while (timeGenerator.hasNext() && cachedTimeCnt < fetchSize) { + while (timeGenerator.hasNext() && cachedTimeCnt < timeArraySize) { cachedTimeArray[cachedTimeCnt++] = timeGenerator.next(); } if (cachedTimeCnt == 0) { diff --git a/server/src/main/java/org/apache/iotdb/db/service/TSServiceImpl.java b/server/src/main/java/org/apache/iotdb/db/service/TSServiceImpl.java index 92bc3c5df6..7614b48fbb 100644 --- a/server/src/main/java/org/apache/iotdb/db/service/TSServiceImpl.java +++ b/server/src/main/java/org/apache/iotdb/db/service/TSServiceImpl.java @@ -249,7 +249,6 @@ public class TSServiceImpl implements TSIService.Iface { @Override public TSExecuteStatementResp call() throws Exception { - queryCount.incrementAndGet(); AUDIT_LOGGER.debug( "Session {} execute Query: {}", sessionManager.getCurrSessionId(), statement); long startTime = System.currentTimeMillis(); @@ -804,6 +803,7 @@ public class TSServiceImpl implements TSIService.Iface { PhysicalPlan physicalPlan = processor.rawDataQueryReqToPhysicalPlan(req, sessionManager.getZoneId(req.sessionId)); if (physicalPlan.isQuery()) { + queryCount.incrementAndGet(); Future<TSExecuteStatementResp> resp = QueryTaskManager.getInstance() .submit( @@ -833,6 +833,7 @@ public class TSServiceImpl implements TSIService.Iface { private TSExecuteStatementResp submitQueryTask( PhysicalPlan physicalPlan, TSExecuteStatementReq req) throws Exception { + queryCount.incrementAndGet(); QueryTask queryTask = new QueryTask( physicalPlan,
