This is an automated email from the ASF dual-hosted git repository.
rong 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 67af4ea13cb Pipe: Fixed the NPE in pipe schema pattern parsing (#13047)
67af4ea13cb is described below
commit 67af4ea13cb5ad55c3dafc5ac3d17237f530cc1b
Author: Caideyipi <[email protected]>
AuthorDate: Mon Jul 29 15:00:51 2024 +0800
Pipe: Fixed the NPE in pipe schema pattern parsing (#13047)
---
.../schemaregion/PipePlanPatternParseVisitor.java | 16 ++++++++++++----
.../visitor/PipeStatementPatternParseVisitor.java | 1 +
.../receiver/visitor/PipeStatementToBatchVisitor.java | 1 +
.../db/queryengine/plan/parser/StatementGenerator.java | 2 +-
4 files changed, 15 insertions(+), 5 deletions(-)
diff --git
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/extractor/schemaregion/PipePlanPatternParseVisitor.java
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/extractor/schemaregion/PipePlanPatternParseVisitor.java
index 150775884aa..c3669d1b0b2 100644
---
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/extractor/schemaregion/PipePlanPatternParseVisitor.java
+++
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/extractor/schemaregion/PipePlanPatternParseVisitor.java
@@ -141,10 +141,18 @@ public class PipePlanPatternParseVisitor extends
PlanVisitor<Optional<PlanNode>,
group.getDataTypes().get(index),
group.getEncodings().get(index),
group.getCompressors().get(index));
- targetMeasurementGroup.addTags(group.getTagsList().get(index));
-
targetMeasurementGroup.addAttributes(group.getAttributesList().get(index));
- targetMeasurementGroup.addAlias(group.getAliasList().get(index));
- targetMeasurementGroup.addProps(group.getPropsList().get(index));
+ if (Objects.nonNull(group.getTagsList())) {
+ targetMeasurementGroup.addTags(group.getTagsList().get(index));
+ }
+ if (Objects.nonNull(group.getAttributesList())) {
+
targetMeasurementGroup.addAttributes(group.getAttributesList().get(index));
+ }
+ if (Objects.nonNull(group.getAliasList())) {
+
targetMeasurementGroup.addAlias(group.getAliasList().get(index));
+ }
+ if (Objects.nonNull(group.getPropsList())) {
+
targetMeasurementGroup.addProps(group.getPropsList().get(index));
+ }
});
return targetMeasurementGroup;
}
diff --git
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/receiver/visitor/PipeStatementPatternParseVisitor.java
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/receiver/visitor/PipeStatementPatternParseVisitor.java
index 1fd404375f4..0754a2fb55d 100644
---
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/receiver/visitor/PipeStatementPatternParseVisitor.java
+++
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/receiver/visitor/PipeStatementPatternParseVisitor.java
@@ -92,6 +92,7 @@ public class PipeStatementPatternParseVisitor
statement.getEncodings().get(index));
targetCreateAlignedTimeSeriesStatement.addCompressor(
statement.getCompressors().get(index));
+ // Non-null lists
targetCreateAlignedTimeSeriesStatement.addTagsList(
statement.getTagsList().get(index));
targetCreateAlignedTimeSeriesStatement.addAttributesList(
diff --git
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/receiver/visitor/PipeStatementToBatchVisitor.java
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/receiver/visitor/PipeStatementToBatchVisitor.java
index 213730a6c90..f48a2bc002c 100644
---
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/receiver/visitor/PipeStatementToBatchVisitor.java
+++
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/receiver/visitor/PipeStatementToBatchVisitor.java
@@ -143,6 +143,7 @@ public class PipeStatementToBatchVisitor extends
StatementVisitor<Optional<State
statement.getCompressors().get(i));
group.addProps(new HashMap<>());
}
+ // Non-null lists
statement.getTagsList().forEach(group::addTags);
statement.getAttributesList().forEach(group::addAttributes);
statement.getAliasList().forEach(group::addAlias);
diff --git
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/parser/StatementGenerator.java
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/parser/StatementGenerator.java
index 68bef30462f..08cddf94ac6 100644
---
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/parser/StatementGenerator.java
+++
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/parser/StatementGenerator.java
@@ -525,7 +525,7 @@ public class StatementGenerator {
public static CreateAlignedTimeSeriesStatement
createStatement(TSCreateAlignedTimeseriesReq req)
throws IllegalPathException {
final long startTime = System.nanoTime();
- // construct create aligned timeseries statement
+ // construct create aligned time series statement
CreateAlignedTimeSeriesStatement statement = new
CreateAlignedTimeSeriesStatement();
statement.setDevicePath(DEVICE_PATH_CACHE.getPartialPath(req.prefixPath));
List<TSDataType> dataTypes = new ArrayList<>();