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

rubenql pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/calcite.git


The following commit(s) were added to refs/heads/main by this push:
     new a833bd626c [CALCITE-5679] HepPlanner#buildFinalPlan: do not clear 
metadata cache if RelNode has not changed
a833bd626c is described below

commit a833bd626c5e781ccc27bd6fab1c636a3b944907
Author: rubenada <rube...@gmail.com>
AuthorDate: Fri Apr 28 15:22:28 2023 +0100

    [CALCITE-5679] HepPlanner#buildFinalPlan: do not clear metadata cache if 
RelNode has not changed
---
 core/src/main/java/org/apache/calcite/plan/hep/HepPlanner.java | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)

diff --git a/core/src/main/java/org/apache/calcite/plan/hep/HepPlanner.java 
b/core/src/main/java/org/apache/calcite/plan/hep/HepPlanner.java
index 7e39b4399f..fc2f557c0b 100644
--- a/core/src/main/java/org/apache/calcite/plan/hep/HepPlanner.java
+++ b/core/src/main/java/org/apache/calcite/plan/hep/HepPlanner.java
@@ -944,6 +944,7 @@ public class HepPlanner extends AbstractRelOptPlanner {
     // Recursively process children, replacing this rel's inputs
     // with corresponding child rels.
     List<RelNode> inputs = rel.getInputs();
+    boolean changed = false;
     for (int i = 0; i < inputs.size(); ++i) {
       RelNode child = inputs.get(i);
       if (!(child instanceof HepRelVertex)) {
@@ -952,9 +953,12 @@ public class HepPlanner extends AbstractRelOptPlanner {
       }
       child = buildFinalPlan((HepRelVertex) child);
       rel.replaceInput(i, child);
+      changed = true;
+    }
+    if (changed) {
+      RelMdUtil.clearCache(rel);
+      rel.recomputeDigest();
     }
-    RelMdUtil.clearCache(rel);
-    rel.recomputeDigest();
 
     return rel;
   }

Reply via email to