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 51cf191fe1 Refine writeValueColumn() to TsBlockBuilder for common use
(#6912)
51cf191fe1 is described below
commit 51cf191fe18ba53b474d91f25af3eabf97041844
Author: BaiJian <[email protected]>
AuthorDate: Tue Aug 9 14:14:27 2022 +0800
Refine writeValueColumn() to TsBlockBuilder for common use (#6912)
---
.../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);