This is an automated email from the ASF dual-hosted git repository.
rong pushed a commit to branch rc/1.3.3
in repository https://gitbox.apache.org/repos/asf/iotdb.git
The following commit(s) were added to refs/heads/rc/1.3.3 by this push:
new cf1e89000fb Pipe: Fixed the bug that different types in schema
snapshot transfer may cause transfer failure (#13627) (#13631)
cf1e89000fb is described below
commit cf1e89000fbc28418ecbdb0e6dec38c9dca78c27
Author: Caideyipi <[email protected]>
AuthorDate: Thu Sep 26 15:17:12 2024 +0800
Pipe: Fixed the bug that different types in schema snapshot transfer may
cause transfer failure (#13627) (#13631)
---
.../statemachine/schemaregion/SchemaExecutionVisitor.java | 12 ++++++++++++
1 file changed, 12 insertions(+)
diff --git
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/consensus/statemachine/schemaregion/SchemaExecutionVisitor.java
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/consensus/statemachine/schemaregion/SchemaExecutionVisitor.java
index 6efdeed997e..8f7d608d4ee 100644
---
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/consensus/statemachine/schemaregion/SchemaExecutionVisitor.java
+++
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/consensus/statemachine/schemaregion/SchemaExecutionVisitor.java
@@ -313,6 +313,18 @@ public class SchemaExecutionVisitor extends
PlanVisitor<TSStatus, ISchemaRegion>
encodingList.remove(index);
compressionTypeList.remove(index);
+ // If with merge is set, the lists are deep copied and need to be
altered here.
+ // We still remove the element from the original list to help
cascading pipe transfer
+ // schema.
+ // If this exception is thrown, the measurements, data types, etc.
must be unchanged.
+ // Thus, the index for the copied lists are identical to that in the
original lists.
+ if (withMerge) {
+ createAlignedTimeSeriesPlan.getMeasurements().remove(index);
+ createAlignedTimeSeriesPlan.getDataTypes().remove(index);
+ createAlignedTimeSeriesPlan.getEncodings().remove(index);
+ createAlignedTimeSeriesPlan.getCompressors().remove(index);
+ }
+
if (measurementList.isEmpty()) {
shouldRetry = false;
}