This is an automated email from the ASF dual-hosted git repository. rong pushed a commit to branch fix-pipe-tablet-with-nullable-binary-columns in repository https://gitbox.apache.org/repos/asf/iotdb.git
commit a0defb64a62465feb821b5fc0475cbddb29436ab Author: Steve Yurong Su <[email protected]> AuthorDate: Thu Jun 22 03:02:27 2023 +0800 [IOTDB-6021] Pipe: NPE when sync TEXT timeseries with null fields between IoTDB instances using file mode with pattern filter --- .../event/common/tsfile/TsFileInsertionDataTabletIterator.java | 9 ++++----- .../main/java/org/apache/iotdb/tsfile/write/record/Tablet.java | 2 ++ 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/server/src/main/java/org/apache/iotdb/db/pipe/event/common/tsfile/TsFileInsertionDataTabletIterator.java b/server/src/main/java/org/apache/iotdb/db/pipe/event/common/tsfile/TsFileInsertionDataTabletIterator.java index 63b2b15d403..4ff37e21741 100644 --- a/server/src/main/java/org/apache/iotdb/db/pipe/event/common/tsfile/TsFileInsertionDataTabletIterator.java +++ b/server/src/main/java/org/apache/iotdb/db/pipe/event/common/tsfile/TsFileInsertionDataTabletIterator.java @@ -128,11 +128,10 @@ public class TsFileInsertionDataTabletIterator implements Iterator<Tablet> { final int fieldSize = fields.size(); for (int i = 0; i < fieldSize; i++) { final Field field = fields.get(i); - if (field == null || field.getDataType() == null) { - tablet.bitMaps[i].mark(rowIndex); - } else { - tablet.addValue(measurements.get(i), rowIndex, field.getObjectValue(field.getDataType())); - } + tablet.addValue( + measurements.get(i), + rowIndex, + field == null ? null : field.getObjectValue(field.getDataType())); } tablet.rowSize++; diff --git a/tsfile/src/main/java/org/apache/iotdb/tsfile/write/record/Tablet.java b/tsfile/src/main/java/org/apache/iotdb/tsfile/write/record/Tablet.java index ea1cd5846ca..c213fc74a2f 100644 --- a/tsfile/src/main/java/org/apache/iotdb/tsfile/write/record/Tablet.java +++ b/tsfile/src/main/java/org/apache/iotdb/tsfile/write/record/Tablet.java @@ -586,6 +586,8 @@ public class Tablet { boolean isNotNull = BytesUtils.byteToBool(ReadWriteIOUtils.readByte(byteBuffer)); if (isNotNull) { binaryValues[index] = ReadWriteIOUtils.readBinary(byteBuffer); + } else { + binaryValues[index] = Binary.EMPTY_VALUE; } } values[i] = binaryValues;
