diff --git a/java/tsfile/src/main/java/org/apache/tsfile/read/reader/page/AlignedPageReader.java b/java/tsfile/src/main/java/org/apache/tsfile/read/reader/page/AlignedPageReader.java index 383f41954..b1ff14e37 100644 --- a/java/tsfile/src/main/java/org/apache/tsfile/read/reader/page/AlignedPageReader.java +++ b/java/tsfile/src/main/java/org/apache/tsfile/read/reader/page/AlignedPageReader.java @@ -422,7 +422,7 @@ public boolean isModified() { @Override public void initTsBlockBuilder(List dataTypes) { - if (paginationController.hasCurLimit()) { + if (paginationController.hasLimit()) { 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 646c9f4ec..d4208f319 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 @@ -174,7 +174,7 @@ public BatchData getAllSatisfiedPageData(boolean ascending) throws IOException { public TsBlock getAllSatisfiedData() throws IOException { TsBlockBuilder builder; int initialExpectedEntries = (int) pageHeader.getStatistics().getCount(); - if (paginationController.hasCurLimit()) { + if (paginationController.hasLimit()) { 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 5fe4137e8..cbd72a861 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,6 +80,10 @@ public void consumeLimit(long rowCount) { } } + public boolean hasLimit() { + return hasLimit && curLimit > 0; + } + public TsBlock applyTsBlock(TsBlock resultTsBlock) { int fromIndex = 0; int length = resultTsBlock.getPositionCount();