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

(iotdb) branch dev/1.3 updated: [to dev/1.3] Fix nested ColumnTransformer close

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

JackieTien97 pushed a commit to branch dev/1.3
in repository https://gitbox.apache.org/repos/asf/iotdb.git


The following commit(s) were added to refs/heads/dev/1.3 by this push:
     new f3b83aafb1f [to dev/1.3] Fix nested ColumnTransformer close
f3b83aafb1f is described below

commit f3b83aafb1fe0cabc0a9de89f23e103b3abaa3f7
Author: shuwenwei <55...@users.noreply.github.com>
AuthorDate: Tue May 12 18:20:54 2026 +0800

    [to dev/1.3] Fix nested ColumnTransformer close
---
 .../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();
+  }
 }