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

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

commit 4dbc88e3f27524c4354d2f828ecb51dabdec66e1
Author: Lei Rui <[email protected]>
AuthorDate: Sun Jun 18 16:36:33 2023 +0800

    add config use_Statistics
---
 server/src/assembly/resources/conf/iotdb-engine.properties     |  2 ++
 .../main/java/org/apache/iotdb/db/conf/IoTDBDescriptor.java    |  8 ++++++++
 .../iotdb/db/query/reader/series/SeriesAggregateReader.java    | 10 ++++++++++
 .../java/org/apache/iotdb/tsfile/common/conf/TSFileConfig.java | 10 ++++++++++
 .../org/apache/iotdb/tsfile/common/conf/TSFileDescriptor.java  |  3 +++
 5 files changed, 33 insertions(+)

diff --git a/server/src/assembly/resources/conf/iotdb-engine.properties 
b/server/src/assembly/resources/conf/iotdb-engine.properties
index 31cfbba9fb5..28ca06a1e62 100644
--- a/server/src/assembly/resources/conf/iotdb-engine.properties
+++ b/server/src/assembly/resources/conf/iotdb-engine.properties
@@ -606,6 +606,8 @@ enable_unseq_compaction=false
 ### Configurations for tsfile-format
 ####################
 
+use_Statistics=true
+
 use_ChunkIndex=true
 
 use_Mad=false
diff --git a/server/src/main/java/org/apache/iotdb/db/conf/IoTDBDescriptor.java 
b/server/src/main/java/org/apache/iotdb/db/conf/IoTDBDescriptor.java
index ba2b9667c79..04da72c848a 100644
--- a/server/src/main/java/org/apache/iotdb/db/conf/IoTDBDescriptor.java
+++ b/server/src/main/java/org/apache/iotdb/db/conf/IoTDBDescriptor.java
@@ -896,6 +896,14 @@ public class IoTDBDescriptor {
   }
 
   private void loadTsFileProps(Properties properties) {
+    TSFileDescriptor.getInstance()
+        .getConfig()
+        .setUseStatistics(
+            Boolean.parseBoolean(
+                properties.getProperty(
+                    "use_Statistics",
+                    Boolean.toString(
+                        
TSFileDescriptor.getInstance().getConfig().isUseStatistics()))));
     TSFileDescriptor.getInstance()
         .getConfig()
         .setUseChunkIndex(
diff --git 
a/server/src/main/java/org/apache/iotdb/db/query/reader/series/SeriesAggregateReader.java
 
b/server/src/main/java/org/apache/iotdb/db/query/reader/series/SeriesAggregateReader.java
index 5f30838bf16..0e7b84f710a 100644
--- 
a/server/src/main/java/org/apache/iotdb/db/query/reader/series/SeriesAggregateReader.java
+++ 
b/server/src/main/java/org/apache/iotdb/db/query/reader/series/SeriesAggregateReader.java
@@ -24,6 +24,7 @@ import org.apache.iotdb.db.metadata.PartialPath;
 import org.apache.iotdb.db.query.context.QueryContext;
 import org.apache.iotdb.db.query.filter.TsFileFilter;
 import org.apache.iotdb.db.utils.TestOnly;
+import org.apache.iotdb.tsfile.common.conf.TSFileDescriptor;
 import org.apache.iotdb.tsfile.file.metadata.enums.TSDataType;
 import org.apache.iotdb.tsfile.file.metadata.statistics.Statistics;
 import org.apache.iotdb.tsfile.read.common.BatchData;
@@ -96,6 +97,9 @@ public class SeriesAggregateReader implements 
IAggregateReader {
 
   @Override
   public boolean canUseCurrentFileStatistics() throws IOException {
+    if (!TSFileDescriptor.getInstance().getConfig().isUseStatistics()) {
+      return false;
+    }
     Statistics fileStatistics = currentFileStatistics();
     return !seriesReader.isFileOverlapped()
         && containedByTimeFilter(fileStatistics)
@@ -119,6 +123,9 @@ public class SeriesAggregateReader implements 
IAggregateReader {
 
   @Override
   public boolean canUseCurrentChunkStatistics() throws IOException {
+    if (!TSFileDescriptor.getInstance().getConfig().isUseStatistics()) {
+      return false;
+    }
     Statistics chunkStatistics = currentChunkStatistics();
     return !seriesReader.isChunkOverlapped()
         && containedByTimeFilter(chunkStatistics)
@@ -142,6 +149,9 @@ public class SeriesAggregateReader implements 
IAggregateReader {
 
   @Override
   public boolean canUseCurrentPageStatistics() throws IOException {
+    if (!TSFileDescriptor.getInstance().getConfig().isUseStatistics()) {
+      return false;
+    }
     Statistics currentPageStatistics = currentPageStatistics();
     if (currentPageStatistics == null) {
       return false;
diff --git 
a/tsfile/src/main/java/org/apache/iotdb/tsfile/common/conf/TSFileConfig.java 
b/tsfile/src/main/java/org/apache/iotdb/tsfile/common/conf/TSFileConfig.java
index b7ba5a57d53..65cc33c8c6e 100644
--- a/tsfile/src/main/java/org/apache/iotdb/tsfile/common/conf/TSFileConfig.java
+++ b/tsfile/src/main/java/org/apache/iotdb/tsfile/common/conf/TSFileConfig.java
@@ -27,6 +27,8 @@ import java.nio.charset.Charset;
 /** TSFileConfig is a configure class. Every variables is public and has 
default value. */
 public class TSFileConfig implements Serializable {
 
+  private boolean useStatistics = true;
+
   private boolean useChunkIndex = true;
 
   private boolean useMad = false;
@@ -151,6 +153,14 @@ public class TSFileConfig implements Serializable {
 
   public TSFileConfig() {}
 
+  public boolean isUseStatistics() {
+    return useStatistics;
+  }
+
+  public void setUseStatistics(boolean useStatistics) {
+    this.useStatistics = useStatistics;
+  }
+
   public boolean isUseChunkIndex() {
     return useChunkIndex;
   }
diff --git 
a/tsfile/src/main/java/org/apache/iotdb/tsfile/common/conf/TSFileDescriptor.java
 
b/tsfile/src/main/java/org/apache/iotdb/tsfile/common/conf/TSFileDescriptor.java
index 403b40b606e..c287ad85d57 100644
--- 
a/tsfile/src/main/java/org/apache/iotdb/tsfile/common/conf/TSFileDescriptor.java
+++ 
b/tsfile/src/main/java/org/apache/iotdb/tsfile/common/conf/TSFileDescriptor.java
@@ -105,6 +105,9 @@ public class TSFileDescriptor {
     Properties properties = new Properties();
     try {
       properties.load(inputStream);
+      conf.setUseStatistics(
+          Boolean.parseBoolean(
+              properties.getProperty("use_Statistics", 
Boolean.toString(conf.isUseStatistics()))));
       conf.setUseChunkIndex(
           Boolean.parseBoolean(
               properties.getProperty("use_ChunkIndex", 
Boolean.toString(conf.isUseChunkIndex()))));

Reply via email to