You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@iotdb.apache.org by sh...@apache.org on 2026/05/12 08:06:07 UTC

(iotdb) branch fixBugs0512-1.3 created (now 5293cc380f3)

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

shuwenwei pushed a change to branch fixBugs0512-1.3
in repository https://gitbox.apache.org/repos/asf/iotdb.git


      at 5293cc380f3 Fix nested ColumnTransformer close

This branch includes the following new commits:

     new 5293cc380f3 Fix nested ColumnTransformer close

The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.



(iotdb) 01/01: Fix nested ColumnTransformer close

Posted by sh...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

shuwenwei pushed a commit to branch fixBugs0512-1.3
in repository https://gitbox.apache.org/repos/asf/iotdb.git

commit 5293cc380f3cb229a11ae6ebf45a136c80858e78
Author: shuwenwei <s1...@gmail.com>
AuthorDate: Tue May 12 16:05:32 2026 +0800

    Fix nested ColumnTransformer close
    
    Propagate close calls through nested ColumnTransformer parents so UDF transformers are closed when wrapped by expressions.
---
 .../dag/column/CaseWhenThenColumnTransformer.java              | 10 ++++++++++
 .../dag/column/binary/BinaryColumnTransformer.java             |  7 +++++++
 .../dag/column/multi/MappableUDFColumnTransformer.java         |  4 ++++
 .../dag/column/ternary/TernaryColumnTransformer.java           |  8 ++++++++
 .../dag/column/unary/UnaryColumnTransformer.java               |  6 ++++++
 5 files changed, 35 insertions(+)

diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/CaseWhenThenColumnTransformer.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/CaseWhenThenColumnTransformer.java
index 68910f2aa4b..94156d1c71b 100644
--- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/CaseWhenThenColumnTransformer.java
+++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/CaseWhenThenColumnTransformer.java
@@ -128,4 +128,14 @@ public class CaseWhenThenColumnTransformer extends ColumnTransformer {
   protected void checkType() {
     // do nothing
   }
+
+  @Override
+  public void close() {
+    super.close();
+    for (Pair<ColumnTransformer, ColumnTransformer> whenThenTransformer : whenThenTransformers) {
+      whenThenTransformer.left.close();
+      whenThenTransformer.right.close();
+    }
+    elseTransformer.close();
+  }
 }
diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/binary/BinaryColumnTransformer.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/binary/BinaryColumnTransformer.java
index 6e074abe08f..996c6763afd 100644
--- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/binary/BinaryColumnTransformer.java
+++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/binary/BinaryColumnTransformer.java
@@ -63,4 +63,11 @@ public abstract class BinaryColumnTransformer extends ColumnTransformer {
   public ColumnTransformer getRightTransformer() {
     return rightTransformer;
   }
+
+  @Override
+  public void close() {
+    super.close();
+    this.leftTransformer.close();
+    this.rightTransformer.close();
+  }
 }
diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/multi/MappableUDFColumnTransformer.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/multi/MappableUDFColumnTransformer.java
index b3562a29208..74f15ab7055 100644
--- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/multi/MappableUDFColumnTransformer.java
+++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/multi/MappableUDFColumnTransformer.java
@@ -70,6 +70,10 @@ public class MappableUDFColumnTransformer extends ColumnTransformer {
 
   @Override
   public void close() {
+    super.close();
+    for (ColumnTransformer inputColumnTransformer : inputColumnTransformers) {
+      inputColumnTransformer.close();
+    }
     // finalize executor
     executor.beforeDestroy();
   }
diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/ternary/TernaryColumnTransformer.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/ternary/TernaryColumnTransformer.java
index 6d747d3dae8..1638d273bff 100644
--- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/ternary/TernaryColumnTransformer.java
+++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/ternary/TernaryColumnTransformer.java
@@ -54,4 +54,12 @@ public abstract class TernaryColumnTransformer extends ColumnTransformer {
   public ColumnTransformer getThirdColumnTransformer() {
     return thirdColumnTransformer;
   }
+
+  @Override
+  public void close() {
+    super.close();
+    firstColumnTransformer.close();
+    secondColumnTransformer.close();
+    thirdColumnTransformer.close();
+  }
 }
diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/UnaryColumnTransformer.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/UnaryColumnTransformer.java
index 0f1f48cfee8..e29ea0bf56f 100644
--- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/UnaryColumnTransformer.java
+++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/UnaryColumnTransformer.java
@@ -53,4 +53,10 @@ public abstract class UnaryColumnTransformer extends ColumnTransformer {
   }
 
   protected abstract void doTransform(Column column, ColumnBuilder columnBuilder);
+
+  @Override
+  public void close() {
+    super.close();
+    childColumnTransformer.close();
+  }
 }