You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@iotdb.apache.org by ja...@apache.org on 2022/12/28 06:22:58 UTC
[iotdb] branch master updated: Fix Bug in NullColumn
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 8bb400d17a Fix Bug in NullColumn
8bb400d17a is described below
commit 8bb400d17af8531cd8caf7c29123300c0322a4d2
Author: Weihao Li <60...@users.noreply.github.com>
AuthorDate: Wed Dec 28 14:22:53 2022 +0800
Fix Bug in NullColumn
---
.../tsfile/read/common/block/column/NullColumn.java | 19 ++-----------------
.../apache/iotdb/tsfile/read/common/ColumnTest.java | 12 ++++++++++++
2 files changed, 14 insertions(+), 17 deletions(-)
diff --git a/tsfile/src/main/java/org/apache/iotdb/tsfile/read/common/block/column/NullColumn.java b/tsfile/src/main/java/org/apache/iotdb/tsfile/read/common/block/column/NullColumn.java
index 29a9f8ae6b..d9307d44c0 100644
--- a/tsfile/src/main/java/org/apache/iotdb/tsfile/read/common/block/column/NullColumn.java
+++ b/tsfile/src/main/java/org/apache/iotdb/tsfile/read/common/block/column/NullColumn.java
@@ -36,24 +36,9 @@ public class NullColumn implements Column {
private final int positionCount;
- private final int arrayOffset;
-
private final long retainedSizeInBytes;
public NullColumn(int positionCount) {
- if (positionCount < 0) {
- throw new IllegalArgumentException("positionCount is negative");
- }
- this.positionCount = positionCount;
- arrayOffset = 0;
- retainedSizeInBytes = INSTANCE_SIZE;
- }
-
- public NullColumn(int arrayOffset, int positionCount) {
- if (arrayOffset < 0) {
- throw new IllegalArgumentException("arrayOffset is negative");
- }
- this.arrayOffset = positionCount;
if (positionCount < 0) {
throw new IllegalArgumentException("positionCount is negative");
}
@@ -99,7 +84,7 @@ public class NullColumn implements Column {
@Override
public Column getRegion(int positionOffset, int length) {
checkValidRegion(getPositionCount(), positionOffset, length);
- return new NullColumn(positionOffset + arrayOffset, length);
+ return new NullColumn(length);
}
@Override
@@ -107,7 +92,7 @@ public class NullColumn implements Column {
if (fromIndex > positionCount) {
throw new IllegalArgumentException("fromIndex is not valid");
}
- return new NullColumn(arrayOffset + fromIndex, positionCount - fromIndex);
+ return new NullColumn(positionCount - fromIndex);
}
@Override
diff --git a/tsfile/src/test/java/org/apache/iotdb/tsfile/read/common/ColumnTest.java b/tsfile/src/test/java/org/apache/iotdb/tsfile/read/common/ColumnTest.java
index 11b0c13d2e..bfd05e2434 100644
--- a/tsfile/src/test/java/org/apache/iotdb/tsfile/read/common/ColumnTest.java
+++ b/tsfile/src/test/java/org/apache/iotdb/tsfile/read/common/ColumnTest.java
@@ -23,6 +23,7 @@ import org.apache.iotdb.tsfile.read.common.block.column.BinaryColumn;
import org.apache.iotdb.tsfile.read.common.block.column.BinaryColumnBuilder;
import org.apache.iotdb.tsfile.read.common.block.column.BooleanColumn;
import org.apache.iotdb.tsfile.read.common.block.column.BooleanColumnBuilder;
+import org.apache.iotdb.tsfile.read.common.block.column.Column;
import org.apache.iotdb.tsfile.read.common.block.column.DoubleColumn;
import org.apache.iotdb.tsfile.read.common.block.column.DoubleColumnBuilder;
import org.apache.iotdb.tsfile.read.common.block.column.FloatColumn;
@@ -31,6 +32,7 @@ import org.apache.iotdb.tsfile.read.common.block.column.IntColumn;
import org.apache.iotdb.tsfile.read.common.block.column.IntColumnBuilder;
import org.apache.iotdb.tsfile.read.common.block.column.LongColumn;
import org.apache.iotdb.tsfile.read.common.block.column.LongColumnBuilder;
+import org.apache.iotdb.tsfile.read.common.block.column.NullColumn;
import org.apache.iotdb.tsfile.read.common.block.column.RunLengthEncodedColumn;
import org.apache.iotdb.tsfile.read.common.block.column.TimeColumn;
import org.apache.iotdb.tsfile.read.common.block.column.TimeColumnBuilder;
@@ -168,6 +170,16 @@ public class ColumnTest {
Assert.assertEquals(9, longColumn.getLong(1));
}
+ @Test
+ public void nullColumnTest() {
+ NullColumn nullColumn = new NullColumn(10);
+ Column subRegion = nullColumn.getRegion(7, 2);
+ Column subColumn = subRegion.subColumn(1);
+
+ Assert.assertEquals(2, subRegion.getPositionCount());
+ Assert.assertEquals(1, subColumn.getPositionCount());
+ }
+
@Test
public void runLengthEncodedColumnSubColumnTest() {
LongColumnBuilder longColumnBuilder = new LongColumnBuilder(null, 1);