diff --git a/hadoop/src/main/java/org/apache/iotdb/hadoop/tsfile/TSFRecordReader.java b/hadoop/src/main/java/org/apache/iotdb/hadoop/tsfile/TSFRecordReader.java index ab1d6d9c4151d..3c4d29c5def02 100644 --- a/hadoop/src/main/java/org/apache/iotdb/hadoop/tsfile/TSFRecordReader.java +++ b/hadoop/src/main/java/org/apache/iotdb/hadoop/tsfile/TSFRecordReader.java @@ -191,7 +191,7 @@ public static MapWritable getCurrentValue(List deviceIdList, int current public static void readFieldsValue(MapWritable mapWritable, List fields, List measurementIds) throws InterruptedException { int index = 0; for (Field field : fields) { - if (field.isNull()) { + if (field.getDataType() == null) { logger.info("Current value is null"); mapWritable.put(new Text(measurementIds.get(index)), NullWritable.get()); } else { diff --git a/jdbc/src/main/java/org/apache/iotdb/jdbc/IoTDBQueryResultSet.java b/jdbc/src/main/java/org/apache/iotdb/jdbc/IoTDBQueryResultSet.java index e7a7d84c2e039..3426646e7edef 100644 --- a/jdbc/src/main/java/org/apache/iotdb/jdbc/IoTDBQueryResultSet.java +++ b/jdbc/src/main/java/org/apache/iotdb/jdbc/IoTDBQueryResultSet.java @@ -1256,7 +1256,7 @@ private String getValueByName(String columnName) throws SQLException { for (Field field : record.getFields()) { i++; if (i == tmp - 1) { - return field.isNull() ? null : field.getStringValue(); + return field.getDataType() == null ? null : field.getStringValue(); } } return null; diff --git a/jdbc/src/main/java/org/apache/iotdb/jdbc/Utils.java b/jdbc/src/main/java/org/apache/iotdb/jdbc/Utils.java index 5ded029d4c66c..e3fe1982c732f 100644 --- a/jdbc/src/main/java/org/apache/iotdb/jdbc/Utils.java +++ b/jdbc/src/main/java/org/apache/iotdb/jdbc/Utils.java @@ -87,7 +87,6 @@ static List convertRowRecords(TSQueryDataSet tsQueryDataSet, boolean is_empty = BytesUtils.byteToBool(byteBuffer.get()); if (is_empty) { field = new Field(null); - field.setNull(); } else { TSDataType dataType = TSDataType.valueOf(type); field = new Field(dataType); diff --git a/jdbc/src/test/java/org/apache/iotdb/jdbc/UtilsTest.java b/jdbc/src/test/java/org/apache/iotdb/jdbc/UtilsTest.java index 630f604d7ab58..1a4c36a39c136 100644 --- a/jdbc/src/test/java/org/apache/iotdb/jdbc/UtilsTest.java +++ b/jdbc/src/test/java/org/apache/iotdb/jdbc/UtilsTest.java @@ -201,37 +201,37 @@ public void testConvertRowRecords() throws IOException { for (Field f : fields) { if (j == 0) { if (input[index][3 * j + 3] == null) { - assertTrue(f.isNull()); + assertTrue(f.getDataType() == null); } else { assertEquals(input[index][3 * j + 3], f.getBoolV()); } } else if (j == 1) { if (input[index][3 * j + 3] == null) { - assertTrue(f.isNull()); + assertTrue(f.getDataType() == null); } else { assertEquals(input[index][3 * j + 3], f.getIntV()); } } else if (j == 2) { if (input[index][3 * j + 3] == null) { - assertTrue(f.isNull()); + assertTrue(f.getDataType() == null); } else { assertEquals(input[index][3 * j + 3], f.getLongV()); } } else if (j == 3) { if (input[index][3 * j + 3] == null) { - assertTrue(f.isNull()); + assertTrue(f.getDataType() == null); } else { assertEquals(input[index][3 * j + 3], f.getFloatV()); } } else if (j == 4) { if (input[index][3 * j + 3] == null) { - assertTrue(f.isNull()); + assertTrue(f.getDataType() == null); } else { assertEquals(input[index][3 * j + 3], f.getDoubleV()); } } else { if (input[index][3 * j + 3] == null) { - assertTrue(f.isNull()); + assertTrue(f.getDataType() == null); } else { assertEquals(input[index][3 * j + 3], f.getStringValue()); } diff --git a/server/src/main/java/org/apache/iotdb/db/qp/executor/AbstractQueryProcessExecutor.java b/server/src/main/java/org/apache/iotdb/db/qp/executor/AbstractQueryProcessExecutor.java index 4b63d0436887d..5e42492537bca 100644 --- a/server/src/main/java/org/apache/iotdb/db/qp/executor/AbstractQueryProcessExecutor.java +++ b/server/src/main/java/org/apache/iotdb/db/qp/executor/AbstractQueryProcessExecutor.java @@ -101,7 +101,6 @@ private QueryDataSet processShowTTLQuery(ShowTTLPlan showTTLPlan) { ttl.setLongV(mNode.getDataTTL()); } else { ttl = new Field(null); - ttl.setNull(); } rowRecord.addField(sg); rowRecord.addField(ttl); diff --git a/session/src/main/java/org/apache/iotdb/session/SessionUtils.java b/session/src/main/java/org/apache/iotdb/session/SessionUtils.java index dbfee8499c1f8..c53c7f0224842 100644 --- a/session/src/main/java/org/apache/iotdb/session/SessionUtils.java +++ b/session/src/main/java/org/apache/iotdb/session/SessionUtils.java @@ -110,7 +110,6 @@ static List convertRowRecords(TSQueryDataSet tsQueryDataSet, boolean is_empty = BytesUtils.byteToBool(byteBuffer.get()); if (is_empty) { field = new Field(null); - field.setNull(); } else { TSDataType dataType = TSDataType.valueOf(type); field = new Field(dataType); diff --git a/spark-tsfile/src/main/scala/org/apache/iotdb/spark/tsfile/Converter.scala b/spark-tsfile/src/main/scala/org/apache/iotdb/spark/tsfile/Converter.scala index f10eeabf9712f..f80d650b3cdb3 100644 --- a/spark-tsfile/src/main/scala/org/apache/iotdb/spark/tsfile/Converter.scala +++ b/spark-tsfile/src/main/scala/org/apache/iotdb/spark/tsfile/Converter.scala @@ -57,7 +57,7 @@ abstract class Converter { def toSqlValue(field: Field): Any = { if (field == null) return null - if (field.isNull) + if (field.getDataType == null) null else field.getDataType match { case TSDataType.BOOLEAN => field.getBoolV diff --git a/tsfile/src/main/java/org/apache/iotdb/tsfile/read/common/Field.java b/tsfile/src/main/java/org/apache/iotdb/tsfile/read/common/Field.java index 28f81f97d7866..f3875282bfb81 100644 --- a/tsfile/src/main/java/org/apache/iotdb/tsfile/read/common/Field.java +++ b/tsfile/src/main/java/org/apache/iotdb/tsfile/read/common/Field.java @@ -35,7 +35,6 @@ public class Field { private float floatV; private double doubleV; private Binary binaryV; - private boolean isNull; public Field(TSDataType dataType) { this.dataType = dataType; @@ -99,7 +98,7 @@ public void setBinaryV(Binary binaryV) { * @return value string */ public String getStringValue() { - if (isNull || dataType == null) { + if (dataType == null) { return "null"; } switch (dataType) { @@ -125,16 +124,8 @@ public String toString() { return getStringValue(); } - public void setNull() { - this.isNull = true; - } - - public boolean isNull() { - return this.isNull; - } - public Object getObjectValue(TSDataType dataType) { - if (isNull) { + if (this.dataType == null) { return null; } switch (dataType) { diff --git a/tsfile/src/main/java/org/apache/iotdb/tsfile/read/query/dataset/DataSetWithoutTimeGenerator.java b/tsfile/src/main/java/org/apache/iotdb/tsfile/read/query/dataset/DataSetWithoutTimeGenerator.java index 7fd8e8e144514..38cd42b5ba71f 100644 --- a/tsfile/src/main/java/org/apache/iotdb/tsfile/read/query/dataset/DataSetWithoutTimeGenerator.java +++ b/tsfile/src/main/java/org/apache/iotdb/tsfile/read/query/dataset/DataSetWithoutTimeGenerator.java @@ -106,8 +106,7 @@ public RowRecord next() throws IOException { Field field = new Field(dataTypes.get(i)); if (!hasDataRemaining.get(i)) { - field.setNull(); - record.addField(field); + record.addField(new Field(null)); continue; } @@ -133,14 +132,11 @@ public RowRecord next() throws IOException { } else { timeHeapPut(data.currentTime()); } - + record.addField(field); } else { - field.setNull(); + record.addField(new Field(null)); } - - record.addField(field); } - return record; } diff --git a/tsfile/src/main/java/org/apache/iotdb/tsfile/read/query/dataset/QueryDataSet.java b/tsfile/src/main/java/org/apache/iotdb/tsfile/read/query/dataset/QueryDataSet.java index 4845ec4d40adf..0e398f0df931c 100644 --- a/tsfile/src/main/java/org/apache/iotdb/tsfile/read/query/dataset/QueryDataSet.java +++ b/tsfile/src/main/java/org/apache/iotdb/tsfile/read/query/dataset/QueryDataSet.java @@ -64,13 +64,11 @@ public void setDataTypes(List dataTypes) { } protected Field getField(Object value, TSDataType dataType) { - Field field = new Field(dataType); - if (value == null) { - field.setNull(); - return field; + return new Field(null); } + Field field = new Field(dataType); switch (dataType) { case DOUBLE: field.setDoubleV((double) value);