diff --git a/java/tsfile/src/main/java/org/apache/tsfile/read/reader/page/AbstractAlignedPageReader.java b/java/tsfile/src/main/java/org/apache/tsfile/read/reader/page/AbstractAlignedPageReader.java index 9230d486c..214e6d8a7 100644 --- a/java/tsfile/src/main/java/org/apache/tsfile/read/reader/page/AbstractAlignedPageReader.java +++ b/java/tsfile/src/main/java/org/apache/tsfile/read/reader/page/AbstractAlignedPageReader.java @@ -350,7 +350,7 @@ public boolean isModified() { @Override public void initTsBlockBuilder(List dataTypes) { - if (paginationController.hasLimit()) { + if (paginationController.hasSetLimit()) { builder = new TsBlockBuilder( (int) diff --git a/java/tsfile/src/main/java/org/apache/tsfile/read/reader/page/PageReader.java b/java/tsfile/src/main/java/org/apache/tsfile/read/reader/page/PageReader.java index ee74f815d..6b8bef7b2 100644 --- a/java/tsfile/src/main/java/org/apache/tsfile/read/reader/page/PageReader.java +++ b/java/tsfile/src/main/java/org/apache/tsfile/read/reader/page/PageReader.java @@ -214,7 +214,7 @@ public TsBlock getAllSatisfiedData() throws IOException { uncompressDataIfNecessary(); TsBlockBuilder builder; int initialExpectedEntries = (int) pageHeader.getStatistics().getCount(); - if (paginationController.hasLimit()) { + if (paginationController.hasSetLimit()) { initialExpectedEntries = (int) Math.min(initialExpectedEntries, paginationController.getCurLimit()); } diff --git a/java/tsfile/src/main/java/org/apache/tsfile/read/reader/series/PaginationController.java b/java/tsfile/src/main/java/org/apache/tsfile/read/reader/series/PaginationController.java index cbd72a861..3ecb0aeb8 100644 --- a/java/tsfile/src/main/java/org/apache/tsfile/read/reader/series/PaginationController.java +++ b/java/tsfile/src/main/java/org/apache/tsfile/read/reader/series/PaginationController.java @@ -80,8 +80,8 @@ public void consumeLimit(long rowCount) { } } - public boolean hasLimit() { - return hasLimit && curLimit > 0; + public boolean hasSetLimit() { + return hasLimit; } public TsBlock applyTsBlock(TsBlock resultTsBlock) { @@ -92,7 +92,9 @@ public TsBlock applyTsBlock(TsBlock resultTsBlock) { length -= fromIndex; consumeOffset(fromIndex); } - if (hasLimit && curLimit > 0) { + if (hasSetLimit()) { + // When hasLimit is true and methods are called correctly, curLimit must be greater than or + // equal to 0. length = (int) Math.min(curLimit, length); consumeLimit(length); }