You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@iotdb.apache.org by ha...@apache.org on 2022/05/30 03:35:03 UTC

[iotdb] 01/01: Fix aligned data in memory query bug

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

haonan pushed a commit to branch fix_mem_data_query
in repository https://gitbox.apache.org/repos/asf/iotdb.git

commit 2cf17a9a678be716694ee056e36997a5ba672cc5
Author: HTHou <hh...@outlook.com>
AuthorDate: Mon May 30 11:34:46 2022 +0800

    Fix aligned data in memory query bug
---
 .../iotdb/db/query/reader/chunk/MemAlignedPageReader.java      | 10 +++++++---
 1 file changed, 7 insertions(+), 3 deletions(-)

diff --git a/server/src/main/java/org/apache/iotdb/db/query/reader/chunk/MemAlignedPageReader.java b/server/src/main/java/org/apache/iotdb/db/query/reader/chunk/MemAlignedPageReader.java
index 6b561c4fed..092715404d 100644
--- a/server/src/main/java/org/apache/iotdb/db/query/reader/chunk/MemAlignedPageReader.java
+++ b/server/src/main/java/org/apache/iotdb/db/query/reader/chunk/MemAlignedPageReader.java
@@ -101,10 +101,14 @@ public class MemAlignedPageReader implements IPageReader, IAlignedPageReader {
     for (int row = 0; row < tsBlock.getPositionCount(); row++) {
       long time = tsBlock.getTimeByIndex(row);
       Object value = tsBlock.getColumn(0).getObject(row);
-      if (!tsBlock.getColumn(0).isNull(row)
-          && (valueFilter == null || valueFilter.satisfy(time, value))) {
+      boolean valueIsNull = tsBlock.getColumn(0).isNull(row);
+      if ((valueFilter == null || !valueIsNull && valueFilter.satisfy(time, value))) {
         builder.getTimeColumnBuilder().write(timeColumn, row);
-        builder.getColumnBuilder(0).write(valueColumn, row);
+        if (!valueIsNull) {
+          builder.getColumnBuilder(0).write(valueColumn, row);
+        } else {
+          builder.getColumnBuilder(0).appendNull();
+        }
         satisfyInfo[row] = true;
         builder.declarePosition();
       }