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

rong pushed a commit to branch convert-on-type-mismatch
in repository https://gitbox.apache.org/repos/asf/iotdb.git


The following commit(s) were added to refs/heads/convert-on-type-mismatch by 
this push:
     new 86895beaab2 Update PipeStatementDataTypeConvertExecutionVisitor.java
86895beaab2 is described below

commit 86895beaab2c99fcbe2b67d219c92de686d7ad5a
Author: Steve Yurong Su <[email protected]>
AuthorDate: Thu Aug 8 10:13:39 2024 +0800

    Update PipeStatementDataTypeConvertExecutionVisitor.java
---
 .../PipeStatementDataTypeConvertExecutionVisitor.java  | 18 +++++++++++++++---
 1 file changed, 15 insertions(+), 3 deletions(-)

diff --git 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/receiver/visitor/PipeStatementDataTypeConvertExecutionVisitor.java
 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/receiver/visitor/PipeStatementDataTypeConvertExecutionVisitor.java
index bf074ce8bff..69f456552f7 100644
--- 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/receiver/visitor/PipeStatementDataTypeConvertExecutionVisitor.java
+++ 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/receiver/visitor/PipeStatementDataTypeConvertExecutionVisitor.java
@@ -96,7 +96,11 @@ public class PipeStatementDataTypeConvertExecutionVisitor
   @Override
   public Optional<TSStatus> visitInsertRows(
       final InsertRowsStatement insertRowsStatement, final TSStatus status) {
-    // TODO: judge if the exception is caused by data type mismatch
+    if (!((status.getCode() == TSStatusCode.METADATA_ERROR.getStatusCode()
+            || status.getCode() == TSStatusCode.MULTIPLE_ERROR.getStatusCode())
+        && 
status.toString().contains(DataTypeMismatchException.REGISTERED_TYPE_STRING))) {
+      return Optional.empty();
+    }
 
     if (insertRowsStatement.getInsertRowStatementList() == null
         || insertRowsStatement.getInsertRowStatementList().isEmpty()) {
@@ -114,7 +118,11 @@ public class PipeStatementDataTypeConvertExecutionVisitor
   @Override
   public Optional<TSStatus> visitInsertRowsOfOneDevice(
       final InsertRowsOfOneDeviceStatement insertRowsOfOneDeviceStatement, 
final TSStatus status) {
-    // TODO: judge if the exception is caused by data type mismatch
+    if (!((status.getCode() == TSStatusCode.METADATA_ERROR.getStatusCode()
+            || status.getCode() == TSStatusCode.MULTIPLE_ERROR.getStatusCode())
+        && 
status.toString().contains(DataTypeMismatchException.REGISTERED_TYPE_STRING))) {
+      return Optional.empty();
+    }
 
     if (insertRowsOfOneDeviceStatement.getInsertRowStatementList() == null
         || 
insertRowsOfOneDeviceStatement.getInsertRowStatementList().isEmpty()) {
@@ -143,7 +151,11 @@ public class PipeStatementDataTypeConvertExecutionVisitor
   @Override
   public Optional<TSStatus> visitInsertMultiTablets(
       final InsertMultiTabletsStatement insertMultiTabletsStatement, final 
TSStatus status) {
-    // TODO: judge if the exception is caused by data type mismatch
+    if (!((status.getCode() == TSStatusCode.METADATA_ERROR.getStatusCode()
+            || status.getCode() == TSStatusCode.MULTIPLE_ERROR.getStatusCode())
+        && 
status.toString().contains(DataTypeMismatchException.REGISTERED_TYPE_STRING))) {
+      return Optional.empty();
+    }
 
     if (insertMultiTabletsStatement.getInsertTabletStatementList() == null
         || 
insertMultiTabletsStatement.getInsertTabletStatementList().isEmpty()) {

Reply via email to