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

jackietien 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 56158b46eab perf: Optimize the code structure and add comments for 
CaseWhen
56158b46eab is described below

commit 56158b46eab7788770ce4c0387d472ac8cbfe5d1
Author: FearfulTomcat27 <[email protected]>
AuthorDate: Thu May 15 10:01:51 2025 +0800

    perf: Optimize the code structure and add comments for CaseWhen
---
 .../dag/column/AbstractCaseWhenThenColumnTransformer.java             | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/AbstractCaseWhenThenColumnTransformer.java
 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/AbstractCaseWhenThenColumnTransformer.java
index c45e51adbc6..7817e4b8d65 100644
--- 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/AbstractCaseWhenThenColumnTransformer.java
+++ 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/AbstractCaseWhenThenColumnTransformer.java
@@ -213,12 +213,14 @@ public abstract class 
AbstractCaseWhenThenColumnTransformer extends ColumnTransf
     }
 
     initializeColumnCache(builder.build());
+    // Because of short-circuit evaluation, CaseWhen does not calculate all 
Then phrases, so its
+    // calculation results cannot be reused.
     for (Pair<ColumnTransformer, ColumnTransformer> whenThenColumnTransformer :
         whenThenTransformers) {
       whenThenColumnTransformer.left.clearCache();
       whenThenColumnTransformer.right.clearCache();
-      elseTransformer.clearCache();
     }
+    elseTransformer.clearCache();
   }
 
   protected abstract void writeToColumnBuilder(

Reply via email to