You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@iotdb.apache.org by xi...@apache.org on 2021/06/25 09:45:19 UTC

[iotdb] branch rel/0.11 updated: [To rel/0.11] [ISSUE-3316] Fix constructing firstChunkMetaDatahasNextChunk logic in hasNextChunk()

This is an automated email from the ASF dual-hosted git repository.

xiangweiwei pushed a commit to branch rel/0.11
in repository https://gitbox.apache.org/repos/asf/iotdb.git


The following commit(s) were added to refs/heads/rel/0.11 by this push:
     new 1ecc2f4  [To rel/0.11] [ISSUE-3316] Fix constructing firstChunkMetaDatahasNextChunk logic in hasNextChunk()
1ecc2f4 is described below

commit 1ecc2f4875accbf78ee0424515cf89d393160184
Author: Xiangwei Wei <34...@users.noreply.github.com>
AuthorDate: Fri Jun 25 17:44:56 2021 +0800

    [To rel/0.11] [ISSUE-3316] Fix constructing firstChunkMetaDatahasNextChunk logic in hasNextChunk()
    
    (cherry picked from commit 7ac39ef139e590b566acc60643bd2e29c0cb4bee)
---
 .../java/org/apache/iotdb/db/query/reader/series/SeriesReader.java | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

diff --git a/server/src/main/java/org/apache/iotdb/db/query/reader/series/SeriesReader.java b/server/src/main/java/org/apache/iotdb/db/query/reader/series/SeriesReader.java
index fe827ac..87fa80a 100644
--- a/server/src/main/java/org/apache/iotdb/db/query/reader/series/SeriesReader.java
+++ b/server/src/main/java/org/apache/iotdb/db/query/reader/series/SeriesReader.java
@@ -263,13 +263,16 @@ public class SeriesReader {
       /*
        * first time series metadata is already unpacked, consume cached ChunkMetadata
        */
-      if (!cachedChunkMetadata.isEmpty()) {
+      while (!cachedChunkMetadata.isEmpty()) {
         firstChunkMetadata = cachedChunkMetadata.peek();
         unpackAllOverlappedTsFilesToTimeSeriesMetadata(
             orderUtils.getOverlapCheckTime(firstChunkMetadata.getStatistics()));
         unpackAllOverlappedTimeSeriesMetadataToCachedChunkMetadata(
             orderUtils.getOverlapCheckTime(firstChunkMetadata.getStatistics()), false);
-        firstChunkMetadata = cachedChunkMetadata.poll();
+        if (firstChunkMetadata.equals(cachedChunkMetadata.peek())) {
+          firstChunkMetadata = cachedChunkMetadata.poll();
+          break;
+        }
       }
     }