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

ericpai pushed a commit to branch feature/small-refine
in repository https://gitbox.apache.org/repos/asf/iotdb.git

commit 8408fd291c0d4af5c99d8d11c76c847d82e41e8d
Author: ericpai <[email protected]>
AuthorDate: Mon Aug 8 15:09:52 2022 +0800

    Refine writeValueColumn() to TsBlockBuilder for common use
---
 .../schema/TimeSeriesSchemaScanOperator.java       | 25 +++++++---------------
 .../tsfile/read/common/block/TsBlockBuilder.java   | 16 ++++++++++++++
 2 files changed, 24 insertions(+), 17 deletions(-)

diff --git 
a/server/src/main/java/org/apache/iotdb/db/mpp/execution/operator/schema/TimeSeriesSchemaScanOperator.java
 
b/server/src/main/java/org/apache/iotdb/db/mpp/execution/operator/schema/TimeSeriesSchemaScanOperator.java
index ba9d4920fd..0580200fe5 100644
--- 
a/server/src/main/java/org/apache/iotdb/db/mpp/execution/operator/schema/TimeSeriesSchemaScanOperator.java
+++ 
b/server/src/main/java/org/apache/iotdb/db/mpp/execution/operator/schema/TimeSeriesSchemaScanOperator.java
@@ -29,7 +29,6 @@ import org.apache.iotdb.db.qp.physical.sys.ShowTimeSeriesPlan;
 import org.apache.iotdb.db.query.dataset.ShowTimeSeriesResult;
 import org.apache.iotdb.tsfile.read.common.block.TsBlock;
 import org.apache.iotdb.tsfile.read.common.block.TsBlockBuilder;
-import org.apache.iotdb.tsfile.utils.Binary;
 
 import java.util.Map;
 import java.util.stream.Collectors;
@@ -106,25 +105,17 @@ public class TimeSeriesSchemaScanOperator extends 
SchemaQueryScanOperator {
 
   private void setColumns(ShowTimeSeriesResult series, TsBlockBuilder builder) 
{
     builder.getTimeColumnBuilder().writeLong(series.getLastTime());
-    writeValueColumn(builder, 0, series.getName());
-    writeValueColumn(builder, 1, series.getAlias());
-    writeValueColumn(builder, 2, series.getSgName());
-    writeValueColumn(builder, 3, series.getDataType().toString());
-    writeValueColumn(builder, 4, series.getEncoding().toString());
-    writeValueColumn(builder, 5, series.getCompressor().toString());
-    writeValueColumn(builder, 6, mapToString(series.getTag()));
-    writeValueColumn(builder, 7, mapToString(series.getAttribute()));
+    builder.writeNullableText(0, series.getName());
+    builder.writeNullableText(1, series.getAlias());
+    builder.writeNullableText(2, series.getSgName());
+    builder.writeNullableText(3, series.getDataType().toString());
+    builder.writeNullableText(4, series.getEncoding().toString());
+    builder.writeNullableText(5, series.getCompressor().toString());
+    builder.writeNullableText(6, mapToString(series.getTag()));
+    builder.writeNullableText(7, mapToString(series.getAttribute()));
     builder.declarePosition();
   }
 
-  private void writeValueColumn(TsBlockBuilder builder, int columnIndex, 
String value) {
-    if (value == null) {
-      builder.getColumnBuilder(columnIndex).appendNull();
-    } else {
-      builder.getColumnBuilder(columnIndex).writeBinary(new Binary(value));
-    }
-  }
-
   private String mapToString(Map<String, String> map) {
     String content =
         map.entrySet().stream()
diff --git 
a/tsfile/src/main/java/org/apache/iotdb/tsfile/read/common/block/TsBlockBuilder.java
 
b/tsfile/src/main/java/org/apache/iotdb/tsfile/read/common/block/TsBlockBuilder.java
index b2b47bf43b..d4152d4ddb 100644
--- 
a/tsfile/src/main/java/org/apache/iotdb/tsfile/read/common/block/TsBlockBuilder.java
+++ 
b/tsfile/src/main/java/org/apache/iotdb/tsfile/read/common/block/TsBlockBuilder.java
@@ -30,6 +30,7 @@ import 
org.apache.iotdb.tsfile.read.common.block.column.IntColumnBuilder;
 import org.apache.iotdb.tsfile.read.common.block.column.LongColumnBuilder;
 import org.apache.iotdb.tsfile.read.common.block.column.TimeColumn;
 import org.apache.iotdb.tsfile.read.common.block.column.TimeColumnBuilder;
+import org.apache.iotdb.tsfile.utils.Binary;
 
 import java.util.List;
 
@@ -309,6 +310,21 @@ public class TsBlockBuilder {
     return TsBlock.wrapBlocksWithoutCopy(declaredPositions, timeColumn, 
columns);
   }
 
+  /**
+   * Write a text value to the columnIndex. If the value is null, then the 
place will be recorded
+   * with null.
+   *
+   * @param columnIndex the target column index.
+   * @param value the text value to be inserted.
+   */
+  public void writeNullableText(int columnIndex, String value) {
+    if (value == null) {
+      getColumnBuilder(columnIndex).appendNull();
+    } else {
+      getColumnBuilder(columnIndex).writeBinary(new Binary(value));
+    }
+  }
+
   private static void checkArgument(boolean expression, String errorMessage) {
     if (!expression) {
       throw new IllegalArgumentException(errorMessage);

Reply via email to