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 c12b8b765cf Pipe: Fixed create logical view idempotency problem & some
IT check coverage missing (#12170)
c12b8b765cf is described below
commit c12b8b765cf527d3390d9768d5f7df177015ab02
Author: Caideyipi <[email protected]>
AuthorDate: Thu Mar 14 18:08:29 2024 +0800
Pipe: Fixed create logical view idempotency problem & some IT check
coverage missing (#12170)
---
.../iotdb/pipe/it/autocreate/IoTDBPipeIdempotentIT.java | 7 +++----
.../db/pipe/receiver/PipeStatementTSStatusVisitor.java | 13 ++++++++++---
2 files changed, 13 insertions(+), 7 deletions(-)
diff --git
a/integration-test/src/test/java/org/apache/iotdb/pipe/it/autocreate/IoTDBPipeIdempotentIT.java
b/integration-test/src/test/java/org/apache/iotdb/pipe/it/autocreate/IoTDBPipeIdempotentIT.java
index 2c288ad3695..867680f0680 100644
---
a/integration-test/src/test/java/org/apache/iotdb/pipe/it/autocreate/IoTDBPipeIdempotentIT.java
+++
b/integration-test/src/test/java/org/apache/iotdb/pipe/it/autocreate/IoTDBPipeIdempotentIT.java
@@ -154,10 +154,9 @@ public class IoTDBPipeIdempotentIT extends
AbstractPipeDualAutoIT {
@Test
public void testDeleteTimeSeriesIdempotent() throws Exception {
testIdempotent(
- Arrays.asList(
- "create timeseries root.ln.wf01.wt01.status0(status0) with
datatype=BOOLEAN,encoding=PLAIN",
- "create timeseries root.ln.wf01.wt01.status1(status1) with
datatype=BOOLEAN,encoding=PLAIN"),
- "delete timeseries root.**",
+ Collections.singletonList(
+ "create timeseries root.ln.wf01.wt01.status0(status0) with
datatype=BOOLEAN,encoding=PLAIN"),
+ "delete timeseries root.ln.wf01.wt01.status0",
"create timeseries root.ln.wf01.wt01.status2(status2) with
datatype=BOOLEAN,encoding=PLAIN",
"count timeseries",
"count(timeseries),",
diff --git
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/receiver/PipeStatementTSStatusVisitor.java
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/receiver/PipeStatementTSStatusVisitor.java
index 4d112b841da..e2c8183f202 100644
---
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/receiver/PipeStatementTSStatusVisitor.java
+++
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/receiver/PipeStatementTSStatusVisitor.java
@@ -157,12 +157,19 @@ public class PipeStatementTSStatusVisitor extends
StatementVisitor<TSStatus, TSS
}
@Override
- public TSStatus visitCreateLogicalView(CreateLogicalViewStatement statement,
TSStatus context) {
- if (context.getCode() ==
TSStatusCode.TIMESERIES_ALREADY_EXIST.getStatusCode()) {
+ public TSStatus visitCreateLogicalView(
+ CreateLogicalViewStatement createLogicalViewStatement, TSStatus context)
{
+ if (context.getCode() == TSStatusCode.MULTIPLE_ERROR.getStatusCode()) {
+ for (TSStatus status : context.getSubStatus()) {
+ if (status.getCode() != TSStatusCode.SUCCESS_STATUS.getStatusCode()
+ && status.getCode() !=
TSStatusCode.TIMESERIES_ALREADY_EXIST.getStatusCode()) {
+ return visitStatement(createLogicalViewStatement, context);
+ }
+ }
return new
TSStatus(TSStatusCode.PIPE_RECEIVER_IDEMPOTENT_CONFLICT_EXCEPTION.getStatusCode())
.setMessage(context.getMessage());
}
- return super.visitCreateLogicalView(statement, context);
+ return super.visitCreateLogicalView(createLogicalViewStatement, context);
}
@Override