This is an automated email from the ASF dual-hosted git repository.
jackietien pushed a commit to branch develop
in repository https://gitbox.apache.org/repos/asf/tsfile.git
The following commit(s) were added to refs/heads/develop by this push:
new 1dc675d1 Fix bug in PaginationController (#578)
1dc675d1 is described below
commit 1dc675d1099784785ee1f915bf0d7d60710e5cda
Author: shuwenwei <[email protected]>
AuthorDate: Fri Oct 31 16:42:28 2025 +0800
Fix bug in PaginationController (#578)
---
.../apache/tsfile/read/reader/page/AbstractAlignedPageReader.java | 2 +-
.../main/java/org/apache/tsfile/read/reader/page/PageReader.java | 2 +-
.../apache/tsfile/read/reader/series/PaginationController.java | 8 +++++---
3 files changed, 7 insertions(+), 5 deletions(-)
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 ad5af3b5..42a802c9 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
@@ -355,7 +355,7 @@ public abstract class AbstractAlignedPageReader implements
IPageReader {
@Override
public void initTsBlockBuilder(List<TSDataType> 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 6d56530c..2576706b 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
@@ -215,7 +215,7 @@ public class PageReader implements IPageReader {
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 cbd72a86..3ecb0aeb 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 class PaginationController {
}
}
- public boolean hasLimit() {
- return hasLimit && curLimit > 0;
+ public boolean hasSetLimit() {
+ return hasLimit;
}
public TsBlock applyTsBlock(TsBlock resultTsBlock) {
@@ -92,7 +92,9 @@ public class PaginationController {
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);
}