You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@iotdb.apache.org by ja...@apache.org on 2021/11/23 03:34:09 UTC

[iotdb] 01/02: Fix Time Filter doesn't take effect in last query bug

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

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

commit c52638650a978fb2103de8c59c1608319910f987
Author: JackieTien97 <Ja...@foxmail.com>
AuthorDate: Tue Nov 23 11:33:08 2021 +0800

    Fix Time Filter doesn't take effect in last query bug
---
 .../iotdb/db/query/executor/LastQueryExecutor.java | 26 ++++++++++------------
 .../IoTDBLastQueryWithTimeFilterIT.java            |  3 ++-
 2 files changed, 14 insertions(+), 15 deletions(-)

diff --git a/server/src/main/java/org/apache/iotdb/db/query/executor/LastQueryExecutor.java b/server/src/main/java/org/apache/iotdb/db/query/executor/LastQueryExecutor.java
index 5216943..8d9e4fd 100644
--- a/server/src/main/java/org/apache/iotdb/db/query/executor/LastQueryExecutor.java
+++ b/server/src/main/java/org/apache/iotdb/db/query/executor/LastQueryExecutor.java
@@ -19,6 +19,16 @@
 
 package org.apache.iotdb.db.query.executor;
 
+import static org.apache.iotdb.db.conf.IoTDBConstant.COLUMN_TIMESERIES;
+import static org.apache.iotdb.db.conf.IoTDBConstant.COLUMN_TIMESERIES_DATATYPE;
+import static org.apache.iotdb.db.conf.IoTDBConstant.COLUMN_VALUE;
+
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
 import org.apache.iotdb.db.conf.IoTDBDescriptor;
 import org.apache.iotdb.db.engine.StorageEngine;
 import org.apache.iotdb.db.engine.querycontext.QueryDataSource;
@@ -45,21 +55,9 @@ import org.apache.iotdb.tsfile.read.filter.basic.Filter;
 import org.apache.iotdb.tsfile.read.query.dataset.QueryDataSet;
 import org.apache.iotdb.tsfile.utils.Binary;
 import org.apache.iotdb.tsfile.utils.Pair;
-
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-
-import static org.apache.iotdb.db.conf.IoTDBConstant.COLUMN_TIMESERIES;
-import static org.apache.iotdb.db.conf.IoTDBConstant.COLUMN_TIMESERIES_DATATYPE;
-import static org.apache.iotdb.db.conf.IoTDBConstant.COLUMN_VALUE;
-
 public class LastQueryExecutor {
 
   private List<PartialPath> selectedSeries;
@@ -177,7 +175,7 @@ public class LastQueryExecutor {
       for (int i = 0; i < nonCachedPaths.size(); i++) {
         QueryDataSource dataSource =
             QueryResourceManager.getInstance()
-                .getQueryDataSource(nonCachedPaths.get(i), context, null);
+                .getQueryDataSource(nonCachedPaths.get(i), context, filter);
         LastPointReader lastReader =
             new LastPointReader(
                 nonCachedPaths.get(i),
@@ -186,7 +184,7 @@ public class LastQueryExecutor {
                 context,
                 dataSource,
                 Long.MAX_VALUE,
-                null);
+                filter);
         readerList.add(lastReader);
       }
     } finally {
diff --git a/server/src/test/java/org/apache/iotdb/db/integration/IoTDBLastQueryWithTimeFilterIT.java b/server/src/test/java/org/apache/iotdb/db/integration/IoTDBLastQueryWithTimeFilterIT.java
index a9aa84a..6808933 100644
--- a/server/src/test/java/org/apache/iotdb/db/integration/IoTDBLastQueryWithTimeFilterIT.java
+++ b/server/src/test/java/org/apache/iotdb/db/integration/IoTDBLastQueryWithTimeFilterIT.java
@@ -85,7 +85,7 @@ public class IoTDBLastQueryWithTimeFilterIT {
 
     String[] retArray =
         new String[] {
-            "root.sg1,d1.s1,1",
+            "root.sg1.d1.s1,1.0",
         };
     try (Connection connection =
         DriverManager.getConnection("jdbc:iotdb://127.0.0.1:6667/", "root", "root");
@@ -98,6 +98,7 @@ public class IoTDBLastQueryWithTimeFilterIT {
       while (resultSet.next()) {
         String ans = resultSet.getString(TIMESEIRES_STR) + "," + resultSet.getString(VALUE_STR);
         Assert.assertEquals(retArray[cnt], ans);
+        cnt++;
       }
       Assert.assertEquals(retArray.length, cnt);
     }