This is an automated email from the ASF dual-hosted git repository.
jackietien pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/iotdb.git
The following commit(s) were added to refs/heads/master by this push:
new c7ab4723eaa Use min(limt, page size) as the init capacity of result
block
c7ab4723eaa is described below
commit c7ab4723eaa91206f7d03c391c014f7a4175497a
Author: Jackie Tien <[email protected]>
AuthorDate: Mon Nov 27 16:57:54 2023 +0800
Use min(limt, page size) as the init capacity of result block
---
.../iotdb/tsfile/read/reader/page/AlignedPageReader.java | 12 +++++++++++-
.../apache/iotdb/tsfile/read/reader/page/PageReader.java | 14 +++++++++++++-
2 files changed, 24 insertions(+), 2 deletions(-)
diff --git
a/iotdb-core/tsfile/src/main/java/org/apache/iotdb/tsfile/read/reader/page/AlignedPageReader.java
b/iotdb-core/tsfile/src/main/java/org/apache/iotdb/tsfile/read/reader/page/AlignedPageReader.java
index 67058a9661f..f5d56777dea 100644
---
a/iotdb-core/tsfile/src/main/java/org/apache/iotdb/tsfile/read/reader/page/AlignedPageReader.java
+++
b/iotdb-core/tsfile/src/main/java/org/apache/iotdb/tsfile/read/reader/page/AlignedPageReader.java
@@ -420,6 +420,16 @@ public class AlignedPageReader implements IPageReader,
IAlignedPageReader {
@Override
public void initTsBlockBuilder(List<TSDataType> dataTypes) {
- builder = new TsBlockBuilder((int)
timePageReader.getStatistics().getCount(), dataTypes);
+ if (paginationController.hasCurLimit()) {
+ builder =
+ new TsBlockBuilder(
+ (int)
+ Math.min(
+ paginationController.getCurLimit(),
+ timePageReader.getStatistics().getCount()),
+ dataTypes);
+ } else {
+ builder = new TsBlockBuilder((int)
timePageReader.getStatistics().getCount(), dataTypes);
+ }
}
}
diff --git
a/iotdb-core/tsfile/src/main/java/org/apache/iotdb/tsfile/read/reader/page/PageReader.java
b/iotdb-core/tsfile/src/main/java/org/apache/iotdb/tsfile/read/reader/page/PageReader.java
index b5cd89eb047..43b1b487041 100644
---
a/iotdb-core/tsfile/src/main/java/org/apache/iotdb/tsfile/read/reader/page/PageReader.java
+++
b/iotdb-core/tsfile/src/main/java/org/apache/iotdb/tsfile/read/reader/page/PageReader.java
@@ -181,7 +181,19 @@ public class PageReader implements IPageReader {
@Override
public TsBlock getAllSatisfiedData() throws IOException {
- TsBlockBuilder builder = new
TsBlockBuilder(Collections.singletonList(dataType));
+ TsBlockBuilder builder;
+ if (paginationController.hasCurLimit()) {
+ builder =
+ new TsBlockBuilder(
+ (int)
+ Math.min(
+ paginationController.getCurLimit(),
pageHeader.getStatistics().getCount()),
+ Collections.singletonList(dataType));
+ } else {
+ builder =
+ new TsBlockBuilder(
+ (int) pageHeader.getStatistics().getCount(),
Collections.singletonList(dataType));
+ }
TimeColumnBuilder timeBuilder = builder.getTimeColumnBuilder();
ColumnBuilder valueBuilder = builder.getColumnBuilder(0);
if (pageSatisfy()) {