This is an automated email from the ASF dual-hosted git repository.
yiguolei pushed a commit to branch branch-2.1
in repository https://gitbox.apache.org/repos/asf/doris.git
The following commit(s) were added to refs/heads/branch-2.1 by this push:
new 24c32944f12 [feat](nereids) add session var to turn on/off common sub
expressoin extraction (branch-2.1) #33616
24c32944f12 is described below
commit 24c32944f1265064dea70e5a60f476e9de1a18d1
Author: minghong <[email protected]>
AuthorDate: Sat Apr 13 14:10:46 2024 +0800
[feat](nereids) add session var to turn on/off common sub expressoin
extraction (branch-2.1) #33616
---
.../org/apache/doris/nereids/processor/post/PlanPostProcessors.java | 4 +++-
fe/fe-core/src/main/java/org/apache/doris/qe/SessionVariable.java | 4 ++++
regression-test/suites/tpch_sf0.1_p1/sql/cse.groovy | 1 +
3 files changed, 8 insertions(+), 1 deletion(-)
diff --git
a/fe/fe-core/src/main/java/org/apache/doris/nereids/processor/post/PlanPostProcessors.java
b/fe/fe-core/src/main/java/org/apache/doris/nereids/processor/post/PlanPostProcessors.java
index 86c8486ef45..e0cc791f859 100644
---
a/fe/fe-core/src/main/java/org/apache/doris/nereids/processor/post/PlanPostProcessors.java
+++
b/fe/fe-core/src/main/java/org/apache/doris/nereids/processor/post/PlanPostProcessors.java
@@ -63,7 +63,9 @@ public class PlanPostProcessors {
builder.add(new MergeProjectPostProcessor());
builder.add(new RecomputeLogicalPropertiesProcessor());
builder.add(new AddOffsetIntoDistribute());
- builder.add(new CommonSubExpressionOpt());
+ if
(cascadesContext.getConnectContext().getSessionVariable().enableCommonSubExpression)
{
+ builder.add(new CommonSubExpressionOpt());
+ }
// DO NOT replace PLAN NODE from here
builder.add(new TopNScanOpt());
builder.add(new FragmentProcessor());
diff --git a/fe/fe-core/src/main/java/org/apache/doris/qe/SessionVariable.java
b/fe/fe-core/src/main/java/org/apache/doris/qe/SessionVariable.java
index ca814c494c1..fb0d8a42237 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/qe/SessionVariable.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/qe/SessionVariable.java
@@ -908,6 +908,10 @@ public class SessionVariable implements Serializable,
Writable {
varType = VariableAnnotation.EXPERIMENTAL, needForward = true)
private int parallelScanMaxScannersCount = 48;
+ @VariableMgr.VarAttr(name = "enable_common_sub_expression", fuzzy = false,
+ varType = VariableAnnotation.EXPERIMENTAL, needForward = true)
+ public boolean enableCommonSubExpression = false;
+
@VariableMgr.VarAttr(name = PARALLEL_SCAN_MIN_ROWS_PER_SCANNER, fuzzy =
true,
varType = VariableAnnotation.EXPERIMENTAL, needForward = true)
private long parallelScanMinRowsPerScanner = 16384; // 16K
diff --git a/regression-test/suites/tpch_sf0.1_p1/sql/cse.groovy
b/regression-test/suites/tpch_sf0.1_p1/sql/cse.groovy
index d5989cf68b8..c4c1ecb2e63 100644
--- a/regression-test/suites/tpch_sf0.1_p1/sql/cse.groovy
+++ b/regression-test/suites/tpch_sf0.1_p1/sql/cse.groovy
@@ -20,6 +20,7 @@
// and modified by Doris.
suite('cse') {
+ sql "set enable_common_sub_expression=true"
def q1 = """select s_suppkey,n_regionkey,(s_suppkey + n_regionkey) + 1 as
x, (s_suppkey + n_regionkey) + 2 as y
from supplier join nation on s_nationkey=n_nationkey order by
s_suppkey , n_regionkey limit 10 ;
"""
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]