Skip to content

Commit 5293cc3

Browse files
committed
Fix nested ColumnTransformer close
Propagate close calls through nested ColumnTransformer parents so UDF transformers are closed when wrapped by expressions.
1 parent 6a1961b commit 5293cc3

5 files changed

Lines changed: 35 additions & 0 deletions

File tree

iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/CaseWhenThenColumnTransformer.java

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -128,4 +128,14 @@ protected void evaluate() {
128128
protected void checkType() {
129129
// do nothing
130130
}
131+
132+
@Override
133+
public void close() {
134+
super.close();
135+
for (Pair<ColumnTransformer, ColumnTransformer> whenThenTransformer : whenThenTransformers) {
136+
whenThenTransformer.left.close();
137+
whenThenTransformer.right.close();
138+
}
139+
elseTransformer.close();
140+
}
131141
}

iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/binary/BinaryColumnTransformer.java

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -63,4 +63,11 @@ public ColumnTransformer getLeftTransformer() {
6363
public ColumnTransformer getRightTransformer() {
6464
return rightTransformer;
6565
}
66+
67+
@Override
68+
public void close() {
69+
super.close();
70+
this.leftTransformer.close();
71+
this.rightTransformer.close();
72+
}
6673
}

iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/multi/MappableUDFColumnTransformer.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -70,6 +70,10 @@ public ColumnTransformer[] getInputColumnTransformers() {
7070

7171
@Override
7272
public void close() {
73+
super.close();
74+
for (ColumnTransformer inputColumnTransformer : inputColumnTransformers) {
75+
inputColumnTransformer.close();
76+
}
7377
// finalize executor
7478
executor.beforeDestroy();
7579
}

iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/ternary/TernaryColumnTransformer.java

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,4 +54,12 @@ public ColumnTransformer getSecondColumnTransformer() {
5454
public ColumnTransformer getThirdColumnTransformer() {
5555
return thirdColumnTransformer;
5656
}
57+
58+
@Override
59+
public void close() {
60+
super.close();
61+
firstColumnTransformer.close();
62+
secondColumnTransformer.close();
63+
thirdColumnTransformer.close();
64+
}
5765
}

iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/UnaryColumnTransformer.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -53,4 +53,10 @@ protected void checkType() {
5353
}
5454

5555
protected abstract void doTransform(Column column, ColumnBuilder columnBuilder);
56+
57+
@Override
58+
public void close() {
59+
super.close();
60+
childColumnTransformer.close();
61+
}
5662
}

0 commit comments

Comments
 (0)