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 358f8e7f7886feed43a4d828f7090f31000c9537
Author: Lei Rui <[email protected]>
AuthorDate: Wed Jan 31 16:56:40 2024 +0800

    fix DOUBLE.MIN_VALUE POSITIVE BUG
---
 server/src/main/java/org/apache/iotdb/db/conf/IoTDBConfig.java    | 2 +-
 .../db/query/dataset/groupby/LocalGroupByExecutorTri_M4.java      | 2 +-
 .../db/query/dataset/groupby/LocalGroupByExecutorTri_MinMax.java  | 2 +-
 .../java/org/apache/iotdb/db/query/udf/builtin/UDTFM4MAC.java     | 8 ++++----
 .../java/org/apache/iotdb/db/query/udf/builtin/UDTFMinMax.java    | 8 ++++----
 .../iotdb/tsfile/file/metadata/statistics/DoubleStatistics.java   | 3 ++-
 .../iotdb/tsfile/file/metadata/statistics/FloatStatistics.java    | 2 +-
 .../iotdb/tsfile/file/metadata/statistics/IntegerStatistics.java  | 2 +-
 .../iotdb/tsfile/file/metadata/statistics/LongStatistics.java     | 2 +-
 .../apache/iotdb/tsfile/file/metadata/statistics/StepRegress.java | 2 +-
 10 files changed, 17 insertions(+), 16 deletions(-)

diff --git a/server/src/main/java/org/apache/iotdb/db/conf/IoTDBConfig.java 
b/server/src/main/java/org/apache/iotdb/db/conf/IoTDBConfig.java
index 583c6debd53..902b48ad0b6 100644
--- a/server/src/main/java/org/apache/iotdb/db/conf/IoTDBConfig.java
+++ b/server/src/main/java/org/apache/iotdb/db/conf/IoTDBConfig.java
@@ -433,7 +433,7 @@ public class IoTDBConfig {
 
   private boolean enableCPV = false;
 
-  private String enableTri = ""; // MinMax, MinMaxLTTB, M4, LTTB, ILTS
+  private String enableTri = "MinMax"; // MinMax, MinMaxLTTB, M4, LTTB, ILTS
 
   private long p1t;
   private double p1v;
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 eb01687ddc6..196e3bb0b9d 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
@@ -329,7 +329,7 @@ public class LocalGroupByExecutorTri_M4 implements 
GroupByExecutor {
 
         double minVal = Double.MAX_VALUE;
         long bottomTime = -1;
-        double maxVal = Double.MIN_VALUE;
+        double maxVal = -Double.MAX_VALUE; // Double.MIN_VALUE is positive so 
do not use it!!!
         long topTime = -1;
         long firstTime = -1;
         double firstValue = 0;
diff --git 
a/server/src/main/java/org/apache/iotdb/db/query/dataset/groupby/LocalGroupByExecutorTri_MinMax.java
 
b/server/src/main/java/org/apache/iotdb/db/query/dataset/groupby/LocalGroupByExecutorTri_MinMax.java
index 86acd06573a..abf98948ec6 100644
--- 
a/server/src/main/java/org/apache/iotdb/db/query/dataset/groupby/LocalGroupByExecutorTri_MinMax.java
+++ 
b/server/src/main/java/org/apache/iotdb/db/query/dataset/groupby/LocalGroupByExecutorTri_MinMax.java
@@ -301,7 +301,7 @@ public class LocalGroupByExecutorTri_MinMax implements 
GroupByExecutor {
 
         double minVal = Double.MAX_VALUE;
         long bottomTime = -1;
-        double maxVal = Double.MIN_VALUE;
+        double maxVal = -Double.MAX_VALUE; // Double.MIN_VALUE is positive so 
do not use it!!!
         long topTime = -1;
 
         // 1. load page data if it hasn't been loaded
diff --git 
a/server/src/main/java/org/apache/iotdb/db/query/udf/builtin/UDTFM4MAC.java 
b/server/src/main/java/org/apache/iotdb/db/query/udf/builtin/UDTFM4MAC.java
index 654221963f7..9629a23dc51 100644
--- a/server/src/main/java/org/apache/iotdb/db/query/udf/builtin/UDTFM4MAC.java
+++ b/server/src/main/java/org/apache/iotdb/db/query/udf/builtin/UDTFM4MAC.java
@@ -94,10 +94,10 @@ public class UDTFM4MAC implements UDTF {
     this.floatMinV = Float.MAX_VALUE;
     this.doubleMinV = Double.MAX_VALUE;
 
-    this.intMaxV = Integer.MIN_VALUE;
-    this.longMaxV = Long.MIN_VALUE;
-    this.floatMaxV = Float.MIN_VALUE;
-    this.doubleMaxV = Double.MIN_VALUE;
+    this.intMaxV = -Integer.MAX_VALUE;
+    this.longMaxV = -Long.MAX_VALUE;
+    this.floatMaxV = -Float.MAX_VALUE;
+    this.doubleMaxV = -Double.MAX_VALUE; // Double.MIN_VALUE is positive so do 
not use it!!!
   }
 
   @Override
diff --git 
a/server/src/main/java/org/apache/iotdb/db/query/udf/builtin/UDTFMinMax.java 
b/server/src/main/java/org/apache/iotdb/db/query/udf/builtin/UDTFMinMax.java
index 6a8b1e1695a..b2fa3663e17 100644
--- a/server/src/main/java/org/apache/iotdb/db/query/udf/builtin/UDTFMinMax.java
+++ b/server/src/main/java/org/apache/iotdb/db/query/udf/builtin/UDTFMinMax.java
@@ -66,10 +66,10 @@ public class UDTFMinMax implements UDTF {
     this.floatMinV = Float.MAX_VALUE;
     this.doubleMinV = Double.MAX_VALUE;
 
-    this.intMaxV = Integer.MIN_VALUE;
-    this.longMaxV = Long.MIN_VALUE;
-    this.floatMaxV = Float.MIN_VALUE;
-    this.doubleMaxV = Double.MIN_VALUE;
+    this.intMaxV = -Integer.MAX_VALUE;
+    this.longMaxV = -Long.MAX_VALUE;
+    this.floatMaxV = -Float.MAX_VALUE;
+    this.doubleMaxV = -Double.MAX_VALUE; // Double.MIN_VALUE is positive so do 
not use it!!!
   }
 
   @Override
diff --git 
a/tsfile/src/main/java/org/apache/iotdb/tsfile/file/metadata/statistics/DoubleStatistics.java
 
b/tsfile/src/main/java/org/apache/iotdb/tsfile/file/metadata/statistics/DoubleStatistics.java
index 8771ff089dd..4d4ed492022 100644
--- 
a/tsfile/src/main/java/org/apache/iotdb/tsfile/file/metadata/statistics/DoubleStatistics.java
+++ 
b/tsfile/src/main/java/org/apache/iotdb/tsfile/file/metadata/statistics/DoubleStatistics.java
@@ -43,7 +43,8 @@ public class DoubleStatistics extends Statistics<Double> {
   /** @author Yuyuan Kang */
   public DoubleStatistics() {
     this.minInfo = new MinMaxInfo<>(Double.MAX_VALUE, -1);
-    this.maxInfo = new MinMaxInfo<>(Double.MIN_VALUE, -1);
+    this.maxInfo = new MinMaxInfo<>(-Double.MAX_VALUE, -1);
+    // Double.MIN_VALUE is positive so do not use it!!!
   }
 
   @Override
diff --git 
a/tsfile/src/main/java/org/apache/iotdb/tsfile/file/metadata/statistics/FloatStatistics.java
 
b/tsfile/src/main/java/org/apache/iotdb/tsfile/file/metadata/statistics/FloatStatistics.java
index c79aafb0a9f..c0a09a8d907 100644
--- 
a/tsfile/src/main/java/org/apache/iotdb/tsfile/file/metadata/statistics/FloatStatistics.java
+++ 
b/tsfile/src/main/java/org/apache/iotdb/tsfile/file/metadata/statistics/FloatStatistics.java
@@ -44,7 +44,7 @@ public class FloatStatistics extends Statistics<Float> {
   /** @author Yuyuan Kang */
   public FloatStatistics() {
     minInfo = new MinMaxInfo<>(Float.MAX_VALUE, -1);
-    maxInfo = new MinMaxInfo<>(Float.MIN_VALUE, -1);
+    maxInfo = new MinMaxInfo<>(-Float.MAX_VALUE, -1);
   }
 
   @Override
diff --git 
a/tsfile/src/main/java/org/apache/iotdb/tsfile/file/metadata/statistics/IntegerStatistics.java
 
b/tsfile/src/main/java/org/apache/iotdb/tsfile/file/metadata/statistics/IntegerStatistics.java
index 2bb2052ee30..f4af9e41cdb 100644
--- 
a/tsfile/src/main/java/org/apache/iotdb/tsfile/file/metadata/statistics/IntegerStatistics.java
+++ 
b/tsfile/src/main/java/org/apache/iotdb/tsfile/file/metadata/statistics/IntegerStatistics.java
@@ -50,7 +50,7 @@ public class IntegerStatistics extends Statistics<Integer> {
   /** @author Yuyuan Kang */
   public IntegerStatistics() {
     minInfo = new MinMaxInfo<>(Integer.MAX_VALUE, -1);
-    maxInfo = new MinMaxInfo<>(Integer.MIN_VALUE, -1);
+    maxInfo = new MinMaxInfo<>(-Integer.MAX_VALUE, -1);
   }
 
   /** @author Yuyuan Kang */
diff --git 
a/tsfile/src/main/java/org/apache/iotdb/tsfile/file/metadata/statistics/LongStatistics.java
 
b/tsfile/src/main/java/org/apache/iotdb/tsfile/file/metadata/statistics/LongStatistics.java
index 2ab67480fb5..4daa3aec587 100644
--- 
a/tsfile/src/main/java/org/apache/iotdb/tsfile/file/metadata/statistics/LongStatistics.java
+++ 
b/tsfile/src/main/java/org/apache/iotdb/tsfile/file/metadata/statistics/LongStatistics.java
@@ -48,7 +48,7 @@ public class LongStatistics extends Statistics<Long> {
   /** @author Yuyuan Kang */
   public LongStatistics() {
     this.minInfo = new MinMaxInfo<>(Long.MAX_VALUE, -1);
-    this.maxInfo = new MinMaxInfo<>(Long.MIN_VALUE, -1);
+    this.maxInfo = new MinMaxInfo<>(-Long.MAX_VALUE, -1);
   }
 
   /** @author Yuyuan Kang */
diff --git 
a/tsfile/src/main/java/org/apache/iotdb/tsfile/file/metadata/statistics/StepRegress.java
 
b/tsfile/src/main/java/org/apache/iotdb/tsfile/file/metadata/statistics/StepRegress.java
index 4d973cb2663..ad049901770 100644
--- 
a/tsfile/src/main/java/org/apache/iotdb/tsfile/file/metadata/statistics/StepRegress.java
+++ 
b/tsfile/src/main/java/org/apache/iotdb/tsfile/file/metadata/statistics/StepRegress.java
@@ -310,7 +310,7 @@ public class StepRegress {
    */
   private void checkOrder() throws IOException {
     double tiltIntercept = Double.MAX_VALUE;
-    double levelIntercept = Double.MIN_VALUE;
+    double levelIntercept = -Double.MAX_VALUE; // Double.MIN_VALUE is positive 
so do not use it!!!
     for (int i = 0; i < segmentIntercepts.size(); i++) {
       double intercept = segmentIntercepts.get(i);
       if (i % 2 == 0) {

Reply via email to