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

leirui pushed a commit to branch research/LTS-visualization
in repository https://gitbox.apache.org/repos/asf/iotdb.git

commit 69c4eacfde43c3914d3b5f4e8aeb2a8ef4c7c49d
Author: Lei Rui <[email protected]>
AuthorDate: Mon Jan 29 01:17:09 2024 +0800

    fix
---
 .../groupby/LocalGroupByExecutorTri_M4.java        | 39 ++++++++++++++++++----
 1 file changed, 33 insertions(+), 6 deletions(-)

diff --git 
a/server/src/main/java/org/apache/iotdb/db/query/dataset/groupby/LocalGroupByExecutorTri_M4.java
 
b/server/src/main/java/org/apache/iotdb/db/query/dataset/groupby/LocalGroupByExecutorTri_M4.java
index 2978c748b54..420a355a9ac 100644
--- 
a/server/src/main/java/org/apache/iotdb/db/query/dataset/groupby/LocalGroupByExecutorTri_M4.java
+++ 
b/server/src/main/java/org/apache/iotdb/db/query/dataset/groupby/LocalGroupByExecutorTri_M4.java
@@ -288,6 +288,35 @@ public class LocalGroupByExecutorTri_M4 implements 
GroupByExecutor {
       Statistics statistics = chunkSuit4Tri.chunkMetadata.getStatistics();
 
       if (canUseStatistics(chunkSuit4Tri, curStartTime, curEndTime)) {
+        // min_value(s0), max_value(s0),min_time(s0), max_time(s0), 
first_value(s0),last_value(s0)
+        // update min_time
+        results
+            .get(2)
+            .updateResultUsingValues(
+                new long[] {chunkSuit4Tri.chunkMetadata.getStartTime()},
+                1,
+                new Object[] {statistics.getFirstValue()});
+        // update first_value
+        results
+            .get(4)
+            .updateResultUsingValues(
+                new long[] {chunkSuit4Tri.chunkMetadata.getStartTime()},
+                1,
+                new Object[] {statistics.getFirstValue()});
+        // update max_time
+        results
+            .get(3)
+            .updateResultUsingValues(
+                new long[] {chunkSuit4Tri.chunkMetadata.getEndTime()},
+                1,
+                new Object[] {statistics.getLastValue()});
+        // update last_value
+        results
+            .get(5)
+            .updateResultUsingValues(
+                new long[] {chunkSuit4Tri.chunkMetadata.getEndTime()},
+                1,
+                new Object[] {statistics.getLastValue()});
         // update BP
         MinValueAggrResult minValueAggrResult = (MinValueAggrResult) 
results.get(0);
         minValueAggrResult.updateResult(
@@ -357,8 +386,7 @@ public class LocalGroupByExecutorTri_M4 implements 
GroupByExecutor {
         }
         // 4. update MinMax by traversing points fallen within this bucket
         if (topTime >= 0) {
-          //  min_value(s0), max_value(s0),min_time(s0), max_time(s0), 
first_value(s0),
-          // last_value(s0)
+          // min_value(s0), max_value(s0),min_time(s0), max_time(s0), 
first_value(s0),last_value(s0)
           // update min_time
           results
               .get(2)
@@ -388,10 +416,9 @@ public class LocalGroupByExecutorTri_M4 implements 
GroupByExecutor {
 
   public boolean canUseStatistics(ChunkSuit4Tri chunkSuit4Tri, long 
curStartTime, long curEndTime) {
     return false;
-    //    long TP_t = 
chunkSuit4Tri.chunkMetadata.getStatistics().getTopTimestamp();
-    //    long BP_t = 
chunkSuit4Tri.chunkMetadata.getStatistics().getBottomTimestamp();
-    //    return TP_t >= curStartTime && TP_t < curEndTime && BP_t >= 
curStartTime && BP_t <
-    // curEndTime;
+    //    long minT = chunkSuit4Tri.chunkMetadata.getStartTime();
+    //    long maxT = chunkSuit4Tri.chunkMetadata.getEndTime();
+    //    return minT >= curStartTime && maxT < curEndTime;
   }
 
   @Override

Reply via email to