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

Reply via email to