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 0d8ad0c6790 Pipe: Support table pattern matching when sync data 
between clusters (#13817 following fixup) (#13830)
0d8ad0c6790 is described below

commit 0d8ad0c67907f23411812d8c438b93cbfee6de34
Author: Steve Yurong Su <[email protected]>
AuthorDate: Sat Oct 19 02:25:13 2024 +0800

    Pipe: Support table pattern matching when sync data between clusters 
(#13817 following fixup) (#13830)
---
 .../db/pipe/agent/task/connection/PipeEventCollector.java    |  6 +++++-
 .../payload/evolvable/batch/PipeTabletEventPlainBatch.java   |  4 ++++
 .../table/TsFileInsertionEventTableParserTabletIterator.java | 12 +++++++++++-
 pom.xml                                                      |  2 +-
 4 files changed, 21 insertions(+), 3 deletions(-)

diff --git 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/agent/task/connection/PipeEventCollector.java
 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/agent/task/connection/PipeEventCollector.java
index 5ff7a87bc2c..fa02b6e8f2a 100644
--- 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/agent/task/connection/PipeEventCollector.java
+++ 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/agent/task/connection/PipeEventCollector.java
@@ -120,7 +120,11 @@ public class PipeEventCollector implements EventCollector {
       return;
     }
 
-    if (!forceTabletFormat && !sourceEvent.shouldParseTimeOrPattern()) {
+    if (!forceTabletFormat
+        && (!sourceEvent.shouldParseTimeOrPattern()
+            || (sourceEvent.isTableModelEvent()
+                && sourceEvent.getTablePattern() == null
+                && !sourceEvent.shouldParseTime()))) {
       collectEvent(sourceEvent);
       return;
     }
diff --git 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/connector/payload/evolvable/batch/PipeTabletEventPlainBatch.java
 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/connector/payload/evolvable/batch/PipeTabletEventPlainBatch.java
index c3fb4b9068e..fae2338a215 100644
--- 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/connector/payload/evolvable/batch/PipeTabletEventPlainBatch.java
+++ 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/connector/payload/evolvable/batch/PipeTabletEventPlainBatch.java
@@ -110,6 +110,10 @@ public class PipeTabletEventPlainBatch extends 
PipeTabletEventBatch {
     insertNodeBuffers.clear();
     tabletBuffers.clear();
 
+    binaryDataBases.clear();
+    inertNodeDataBases.clear();
+    tabletDataBases.clear();
+
     pipe2BytesAccumulated.clear();
   }
 
diff --git 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/event/common/tsfile/parser/table/TsFileInsertionEventTableParserTabletIterator.java
 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/event/common/tsfile/parser/table/TsFileInsertionEventTableParserTabletIterator.java
index 5ae2cf6188a..dc65963980a 100644
--- 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/event/common/tsfile/parser/table/TsFileInsertionEventTableParserTabletIterator.java
+++ 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/event/common/tsfile/parser/table/TsFileInsertionEventTableParserTabletIterator.java
@@ -102,6 +102,8 @@ public class TsFileInsertionEventTableParserTabletIterator 
implements Iterator<T
         new Tablet(tableName, columnSchemas, columnTypes, 
tsBlock.getPositionCount());
     tablet.initBitMaps();
 
+    boolean isAllNull = true;
+
     final TsBlock.TsBlockRowIterator rowIterator = 
tsBlock.getTsBlockRowIterator();
     while (rowIterator.hasNext()) {
       final Object[] row = rowIterator.next();
@@ -114,11 +116,19 @@ public class 
TsFileInsertionEventTableParserTabletIterator implements Iterator<T
       final int rowIndex = tablet.rowSize;
       tablet.addTimestamp(rowIndex, timestamp);
       for (int i = 0, fieldSize = row.length - 1; i < fieldSize; i++) {
-        tablet.addValue(columnNames.get(i), rowIndex, row[i]);
+        final Object value = row[i];
+        tablet.addValue(columnNames.get(i), rowIndex, value);
+        if (value != null && columnTypes.get(i) == 
Tablet.ColumnType.MEASUREMENT) {
+          isAllNull = false;
+        }
       }
       tablet.rowSize++;
     }
 
+    if (isAllNull) {
+      tablet.rowSize = 0;
+    }
+
     return tablet;
   }
 }
diff --git a/pom.xml b/pom.xml
index 2ea7ee7e908..b10fd9521e6 100644
--- a/pom.xml
+++ b/pom.xml
@@ -166,7 +166,7 @@
         <thrift.version>0.14.1</thrift.version>
         <xz.version>1.9</xz.version>
         <zstd-jni.version>1.5.6-3</zstd-jni.version>
-        <tsfile.version>1.2.0-241018-SNAPSHOT</tsfile.version>
+        <tsfile.version>1.2.0-4e902e0-SNAPSHOT</tsfile.version>
     </properties>
     <!--
     if we claim dependencies in dependencyManagement, then we do not claim

Reply via email to