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 b2ba141d7..872372b78 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 types; private TsBlockBuilderStatus tsBlockBuilderStatus; private int declaredPositions; + private int maxTsBlockLineNumber = + TSFileDescriptor.getInstance().getConfig().getMaxTsBlockLineNumber(); private TsBlockBuilder() {} @@ -266,7 +265,7 @@ public void declarePositions(int deltaPositions) { } public boolean isFull() { - return declaredPositions >= MAX_LINE_NUMBER || tsBlockBuilderStatus.isFull(); + return declaredPositions >= maxTsBlockLineNumber || tsBlockBuilderStatus.isFull(); } public boolean isEmpty() { @@ -277,6 +276,16 @@ public int getPositionCount() { 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 257553909..47db65626 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 void testIntTsBlock() { 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]);