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

caogaofei pushed a commit to branch beyyes/develop
in repository https://gitbox.apache.org/repos/asf/tsfile.git

commit 9b6d4fd3476c19cf6b4861a3d17227fc65da6ba4
Author: Beyyes <[email protected]>
AuthorDate: Wed Jan 31 21:07:07 2024 +0800

    add maxTsBlockLineNumber variable in TsBlockBuilder
---
 .../apache/tsfile/read/common/block/TsBlockBuilder.java | 17 +++++++++++++----
 .../org/apache/tsfile/common/block/TsBlockTest.java     |  1 +
 2 files changed, 14 insertions(+), 4 deletions(-)

diff --git 
a/tsfile/src/main/java/org/apache/tsfile/read/common/block/TsBlockBuilder.java 
b/tsfile/src/main/java/org/apache/tsfile/read/common/block/TsBlockBuilder.java
index b2ba141d..872372b7 100644
--- 
a/tsfile/src/main/java/org/apache/tsfile/read/common/block/TsBlockBuilder.java
+++ 
b/tsfile/src/main/java/org/apache/tsfile/read/common/block/TsBlockBuilder.java
@@ -49,9 +49,6 @@ public class TsBlockBuilder {
   // This could be any other small number.
   private static final int DEFAULT_INITIAL_EXPECTED_ENTRIES = 8;
 
-  public static final int MAX_LINE_NUMBER =
-      TSFileDescriptor.getInstance().getConfig().getMaxTsBlockLineNumber();
-
   private static final int DEFAULT_MAX_TSBLOCK_SIZE_IN_BYTES =
       TSFileDescriptor.getInstance().getConfig().getMaxTsBlockSizeInBytes();
 
@@ -60,6 +57,8 @@ public class TsBlockBuilder {
   private List<TSDataType> types;
   private TsBlockBuilderStatus tsBlockBuilderStatus;
   private int declaredPositions;
+  private int maxTsBlockLineNumber =
+      TSFileDescriptor.getInstance().getConfig().getMaxTsBlockLineNumber();
 
   private TsBlockBuilder() {}
 
@@ -266,7 +265,7 @@ public class TsBlockBuilder {
   }
 
   public boolean isFull() {
-    return declaredPositions >= MAX_LINE_NUMBER || 
tsBlockBuilderStatus.isFull();
+    return declaredPositions >= maxTsBlockLineNumber || 
tsBlockBuilderStatus.isFull();
   }
 
   public boolean isEmpty() {
@@ -277,6 +276,16 @@ public class TsBlockBuilder {
     return declaredPositions;
   }
 
+  public int getMaxTsBlockLineNumber() {
+    return this.maxTsBlockLineNumber;
+  }
+
+  public void setMaxTsBlockLineNumber(int maxTsBlockLineNumber) {
+    if (maxTsBlockLineNumber > 0) {
+      this.maxTsBlockLineNumber = maxTsBlockLineNumber;
+    }
+  }
+
   public long getSizeInBytes() {
     return tsBlockBuilderStatus.getSizeInBytes();
   }
diff --git 
a/tsfile/src/test/java/org/apache/tsfile/common/block/TsBlockTest.java 
b/tsfile/src/test/java/org/apache/tsfile/common/block/TsBlockTest.java
index 25755390..47db6562 100644
--- a/tsfile/src/test/java/org/apache/tsfile/common/block/TsBlockTest.java
+++ b/tsfile/src/test/java/org/apache/tsfile/common/block/TsBlockTest.java
@@ -74,6 +74,7 @@ public class TsBlockTest {
     long[] timeArray = {1L, 2L, 3L, 4L, 5L};
     int[] valueArray = {10, 20, 30, 40, 50};
     TsBlockBuilder builder = new 
TsBlockBuilder(Collections.singletonList(TSDataType.INT32));
+    builder.setMaxTsBlockLineNumber(2);
     for (int i = 0; i < timeArray.length; i++) {
       builder.getTimeColumnBuilder().writeLong(timeArray[i]);
       builder.getColumnBuilder(0).writeInt(valueArray[i]);

Reply via email to