This is an automated email from the ASF dual-hosted git repository.
jakevin pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/doris.git
The following commit(s) were added to refs/heads/master by this push:
new a4ad25cabe4 [fix](Nereids): fix enable mv rewrite is useless in dphyp
(#30042)
a4ad25cabe4 is described below
commit a4ad25cabe469db4094dccef0421df6446e3f237
Author: 谢健 <[email protected]>
AuthorDate: Wed Jan 17 15:11:20 2024 +0800
[fix](Nereids): fix enable mv rewrite is useless in dphyp (#30042)
---
.../jobs/cascades/OptimizeGroupExpressionJob.java | 23 ++++++++++++++++------
.../org/apache/doris/nereids/rules/RuleSet.java | 1 -
2 files changed, 17 insertions(+), 7 deletions(-)
diff --git
a/fe/fe-core/src/main/java/org/apache/doris/nereids/jobs/cascades/OptimizeGroupExpressionJob.java
b/fe/fe-core/src/main/java/org/apache/doris/nereids/jobs/cascades/OptimizeGroupExpressionJob.java
index 16cf90b786e..8c8e7e43998 100644
---
a/fe/fe-core/src/main/java/org/apache/doris/nereids/jobs/cascades/OptimizeGroupExpressionJob.java
+++
b/fe/fe-core/src/main/java/org/apache/doris/nereids/jobs/cascades/OptimizeGroupExpressionJob.java
@@ -24,7 +24,8 @@ import org.apache.doris.nereids.memo.GroupExpression;
import org.apache.doris.nereids.rules.Rule;
import org.apache.doris.qe.ConnectContext;
-import java.util.ArrayList;
+import com.google.common.collect.ImmutableList;
+
import java.util.Collections;
import java.util.List;
@@ -48,11 +49,6 @@ public class OptimizeGroupExpressionJob extends Job {
countJobExecutionTimesOfGroupExpressions(groupExpression);
List<Rule> implementationRules = getRuleSet().getImplementationRules();
List<Rule> explorationRules = getExplorationRules();
- ConnectContext connectContext =
context.getCascadesContext().getConnectContext();
- if
(connectContext.getSessionVariable().isEnableMaterializedViewRewrite()) {
- explorationRules = new ArrayList<>(explorationRules);
- explorationRules.addAll(getRuleSet().getMaterializedViewRules());
- }
for (Rule rule : explorationRules) {
if (rule.isInvalid(disableRules, groupExpression)) {
@@ -70,6 +66,13 @@ public class OptimizeGroupExpressionJob extends Job {
}
private List<Rule> getExplorationRules() {
+ return ImmutableList.<Rule>builder()
+ .addAll(getJoinRules())
+ .addAll(getMvRules())
+ .build();
+ }
+
+ private List<Rule> getJoinRules() {
boolean isDisableJoinReorder =
context.getCascadesContext().getConnectContext().getSessionVariable()
.isDisableJoinReorder()
||
context.getCascadesContext().getMemo().getGroupExpressionsSize() >
context.getCascadesContext()
@@ -96,4 +99,12 @@ public class OptimizeGroupExpressionJob extends Job {
return getRuleSet().getZigZagTreeJoinReorder();
}
}
+
+ private List<Rule> getMvRules() {
+ ConnectContext connectContext =
context.getCascadesContext().getConnectContext();
+ if
(connectContext.getSessionVariable().isEnableMaterializedViewRewrite()) {
+ return getRuleSet().getMaterializedViewRules();
+ }
+ return ImmutableList.of();
+ }
}
diff --git
a/fe/fe-core/src/main/java/org/apache/doris/nereids/rules/RuleSet.java
b/fe/fe-core/src/main/java/org/apache/doris/nereids/rules/RuleSet.java
index bb5b2f3dcf8..de0f3d518fa 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/nereids/rules/RuleSet.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/nereids/rules/RuleSet.java
@@ -240,7 +240,6 @@ public class RuleSet {
.build();
public static final List<Rule> DPHYP_REORDER_RULES =
ImmutableList.<Rule>builder()
- .addAll(MATERIALIZED_VIEW_RULES)
.add(JoinCommute.BUSHY.build())
.build();
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]