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()) {

Reply via email to