You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@kylin.apache.org by xx...@apache.org on 2023/02/07 07:09:41 UTC

[kylin] 12/15: KYLIN-5415 Rename the merge rule parameters to conform open source requirement

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

xxyu pushed a commit to branch kylin5
in repository https://gitbox.apache.org/repos/asf/kylin.git

commit 15ff1d04cbe015317bb4828fd0eb09c60e4247f8
Author: Bowen Song <bo...@kyligence.io>
AuthorDate: Thu Nov 24 20:19:12 2022 +0800

    KYLIN-5415 Rename the merge rule parameters to conform open source requirement
---
 .../org/apache/kylin/common/KylinConfigBase.java   |  6 ++--
 .../kylin/query/engine/SqlToRelNodeTest.java       | 41 ++++++++++++++--------
 .../kap/query/optrule/KapProjectMergeRule.java     |  2 +-
 3 files changed, 30 insertions(+), 19 deletions(-)

diff --git a/src/core-common/src/main/java/org/apache/kylin/common/KylinConfigBase.java b/src/core-common/src/main/java/org/apache/kylin/common/KylinConfigBase.java
index 4405eede60..d3665bd475 100644
--- a/src/core-common/src/main/java/org/apache/kylin/common/KylinConfigBase.java
+++ b/src/core-common/src/main/java/org/apache/kylin/common/KylinConfigBase.java
@@ -3721,10 +3721,10 @@ public abstract class KylinConfigBase implements Serializable {
     }
 
     public boolean isProjectMergeWithBloatEnabled() {
-        return Boolean.parseBoolean(getOptional("kylin.query.kap-project-merge-with-bloat-enabled", "true"));
+        return Boolean.parseBoolean(getOptional("kylin.query.project-merge-with-bloat-enabled", "true"));
     }
 
-    public int getKapProjectMergeRuleBloatThreshold() {
-        return Integer.parseInt(getOptional("kylin.query.kap-project-merge-bloat-threshold", "0"));
+    public int getProjectMergeRuleBloatThreshold() {
+        return Integer.parseInt(getOptional("kylin.query.project-merge-bloat-threshold", "0"));
     }
 }
diff --git a/src/kylin-it/src/test/java/org/apache/kylin/query/engine/SqlToRelNodeTest.java b/src/kylin-it/src/test/java/org/apache/kylin/query/engine/SqlToRelNodeTest.java
index 64f5ea16d2..1e2a0816fb 100644
--- a/src/kylin-it/src/test/java/org/apache/kylin/query/engine/SqlToRelNodeTest.java
+++ b/src/kylin-it/src/test/java/org/apache/kylin/query/engine/SqlToRelNodeTest.java
@@ -33,6 +33,7 @@ import org.apache.calcite.util.Litmus;
 import org.apache.kylin.common.KylinConfig;
 import org.apache.kylin.common.util.Pair;
 import org.apache.kylin.query.rules.CalciteRuleTestBase;
+import org.junit.After;
 import org.junit.Assert;
 import org.junit.Before;
 import org.junit.Test;
@@ -57,6 +58,11 @@ public class SqlToRelNodeTest extends CalciteRuleTestBase {
         queryExec = new QueryExec(PROJECT, config);
     }
 
+    @After
+    public void destroy() {
+        cleanupTestMetadata();
+    }
+
     @Override
     protected DiffRepository getDiffRepo() {
         return diff;
@@ -89,36 +95,41 @@ public class SqlToRelNodeTest extends CalciteRuleTestBase {
         String sql = "select q.x + q.x from( select (p.v + p.v) as x from (select (case when TRANS_ID > 60 then 1 else 0 end) v from test_kylin_fact) p)q";
 
         try (KylinConfig.SetAndUnsetThreadLocalConfig autoUnset = KylinConfig.setAndUnsetThreadLocalConfig(config)) {
-            config.setProperty("kylin.query.kap-project-merge-with-bloat-enabled", "false");
+            config.setProperty("kylin.query.project-merge-with-bloat-enabled", "false");
             QueryExec exec1 = new QueryExec(PROJECT, config);
             RelRoot relRoot = exec1.sqlToRelRoot(sql);
             RelNode rel = exec1.optimize(relRoot).rel;
             String realPlan = NL + RelOptUtil.toString(rel);
             diff.assertEquals("bloat_merge_sql.bloat_disabled", "${bloat_merge_sql.bloat_disabled}", realPlan);
+        }
 
-            config.setProperty("kylin.query.kap-project-merge-with-bloat-enabled", "true");
+        try (KylinConfig.SetAndUnsetThreadLocalConfig autoUnset = KylinConfig.setAndUnsetThreadLocalConfig(config)) {
+            config.setProperty("kylin.query.project-merge-with-bloat-enabled", "true");
             QueryExec exec2 = new QueryExec(PROJECT, config);
-            relRoot = exec2.sqlToRelRoot(sql);
-            rel = exec2.optimize(relRoot).rel;
-            realPlan = NL + RelOptUtil.toString(rel);
+            RelRoot relRoot = exec2.sqlToRelRoot(sql);
+            RelNode rel = exec2.optimize(relRoot).rel;
+            String realPlan = NL + RelOptUtil.toString(rel);
             diff.assertEquals("bloat_merge_sql.bloat_enabled", "${bloat_merge_sql.bloat_enabled}", realPlan);
+        }
 
-            config.setProperty("kylin.query.kap-project-merge-with-bloat-enabled", "true");
-            config.setProperty("kylin.query.kap-project-merge-bloat-threshold", "5");
+        try (KylinConfig.SetAndUnsetThreadLocalConfig autoUnset = KylinConfig.setAndUnsetThreadLocalConfig(config)) {
+            config.setProperty("kylin.query.project-merge-with-bloat-enabled", "true");
+            config.setProperty("kylin.query.project-merge-bloat-threshold", "5");
             QueryExec exec3 = new QueryExec(PROJECT, config);
-            relRoot = exec3.sqlToRelRoot(sql);
-            rel = exec3.optimize(relRoot).rel;
-            realPlan = NL + RelOptUtil.toString(rel);
+            RelRoot relRoot = exec3.sqlToRelRoot(sql);
+            RelNode rel = exec3.optimize(relRoot).rel;
+            String realPlan = NL + RelOptUtil.toString(rel);
             diff.assertEquals("bloat_merge_sql.bloat_enabled_bloat_5", "${bloat_merge_sql.bloat_enabled_bloat_5}", realPlan);
+        }
 
-            config.setProperty("kylin.query.kap-project-merge-bloat-threshold", "100");
+        try (KylinConfig.SetAndUnsetThreadLocalConfig autoUnset = KylinConfig.setAndUnsetThreadLocalConfig(config)) {
+            config.setProperty("kylin.query.project-merge-bloat-threshold", "100");
             QueryExec exec4 = new QueryExec(PROJECT, config);
-            relRoot = exec4.sqlToRelRoot(sql);
-            rel = exec4.optimize(relRoot).rel;
-            realPlan = NL + RelOptUtil.toString(rel);
+            RelRoot relRoot = exec4.sqlToRelRoot(sql);
+            RelNode rel = exec4.optimize(relRoot).rel;
+            String realPlan = NL + RelOptUtil.toString(rel);
             diff.assertEquals("bloat_merge_sql.bloat_disabled", "${bloat_merge_sql.bloat_disabled}", realPlan);
         }
-
     }
 
     /**
diff --git a/src/query/src/main/java/io/kyligence/kap/query/optrule/KapProjectMergeRule.java b/src/query/src/main/java/io/kyligence/kap/query/optrule/KapProjectMergeRule.java
index 8aefc1d645..231dec8e00 100644
--- a/src/query/src/main/java/io/kyligence/kap/query/optrule/KapProjectMergeRule.java
+++ b/src/query/src/main/java/io/kyligence/kap/query/optrule/KapProjectMergeRule.java
@@ -123,7 +123,7 @@ public class KapProjectMergeRule extends RelOptRule {
         final List<RexNode> pushedProjects;
         if (KylinConfig.getInstanceFromEnv().isProjectMergeWithBloatEnabled()) {
             pushedProjects = RelOptUtil.pushPastProjectUnlessBloat(topProject.getProjects(),
-                    bottomProject, KylinConfig.getInstanceFromEnv().getKapProjectMergeRuleBloatThreshold());
+                    bottomProject, KylinConfig.getInstanceFromEnv().getProjectMergeRuleBloatThreshold());
             if (pushedProjects == null) {
                 // Merged projects are significantly more complex. Do not merge.
                 return;