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()) {