From 1aca6e53b29a81b36fb7e115ec8e6cb0106c8ec1 Mon Sep 17 00:00:00 2001 From: seawinde Date: Tue, 27 Aug 2024 19:16:56 +0800 Subject: [PATCH 1/5] [improvement](mtmv) Optimize the materialized view hint info when explain --- .../src/main/java/org/apache/doris/nereids/NereidsPlanner.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/fe/fe-core/src/main/java/org/apache/doris/nereids/NereidsPlanner.java b/fe/fe-core/src/main/java/org/apache/doris/nereids/NereidsPlanner.java index 9d32af433b5849..15d67d99b41c4d 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/nereids/NereidsPlanner.java +++ b/fe/fe-core/src/main/java/org/apache/doris/nereids/NereidsPlanner.java @@ -596,9 +596,10 @@ public String getExplainString(ExplainOptions explainOptions) { default: plan = super.getExplainString(explainOptions); plan += mvSummary; + plan += "\n\n========== STATISTICS ==========\n"; if (statementContext != null) { if (statementContext.isHasUnknownColStats()) { - plan += "\n\nStatistics\n planed with unknown column statistics\n"; + plan += "planed with unknown column statistics\n"; } } } From d6f61f74757b7c80a682ec9954bf07cfa2f7e73a Mon Sep 17 00:00:00 2001 From: seawinde Date: Tue, 27 Aug 2024 19:18:09 +0800 Subject: [PATCH 2/5] add enter --- .../src/main/java/org/apache/doris/nereids/NereidsPlanner.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fe/fe-core/src/main/java/org/apache/doris/nereids/NereidsPlanner.java b/fe/fe-core/src/main/java/org/apache/doris/nereids/NereidsPlanner.java index 15d67d99b41c4d..9fc7e5a3b5779e 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/nereids/NereidsPlanner.java +++ b/fe/fe-core/src/main/java/org/apache/doris/nereids/NereidsPlanner.java @@ -596,7 +596,7 @@ public String getExplainString(ExplainOptions explainOptions) { default: plan = super.getExplainString(explainOptions); plan += mvSummary; - plan += "\n\n========== STATISTICS ==========\n"; + plan += "\n\n\n========== STATISTICS ==========\n"; if (statementContext != null) { if (statementContext.isHasUnknownColStats()) { plan += "planed with unknown column statistics\n"; From eae085a4a48b15edee53addb54e3f087c2b62448 Mon Sep 17 00:00:00 2001 From: seawinde Date: Wed, 28 Aug 2024 15:43:49 +0800 Subject: [PATCH 3/5] fix comment, use comma decollator --- .../nereids/rules/exploration/mv/MaterializationContext.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fe/fe-core/src/main/java/org/apache/doris/nereids/rules/exploration/mv/MaterializationContext.java b/fe/fe-core/src/main/java/org/apache/doris/nereids/rules/exploration/mv/MaterializationContext.java index 7913c47b36a8dd..609125280ded4b 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/nereids/rules/exploration/mv/MaterializationContext.java +++ b/fe/fe-core/src/main/java/org/apache/doris/nereids/rules/exploration/mv/MaterializationContext.java @@ -408,7 +408,7 @@ public Void visitPhysicalRelation(PhysicalRelation physicalRelation, Void contex } private static String generateIdentifierName(List qualifiers) { - return String.join("#", qualifiers); + return String.join(".", qualifiers); } @Override From a12cb343a4f6e983360fcee0633248870a7e5abd Mon Sep 17 00:00:00 2001 From: seawinde Date: Thu, 29 Aug 2024 18:51:40 +0800 Subject: [PATCH 4/5] optimize explain info --- .../main/java/org/apache/doris/nereids/NereidsPlanner.java | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/fe/fe-core/src/main/java/org/apache/doris/nereids/NereidsPlanner.java b/fe/fe-core/src/main/java/org/apache/doris/nereids/NereidsPlanner.java index 9fc7e5a3b5779e..0b98aacc74dbf8 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/nereids/NereidsPlanner.java +++ b/fe/fe-core/src/main/java/org/apache/doris/nereids/NereidsPlanner.java @@ -535,9 +535,10 @@ public String getExplainString(ExplainOptions explainOptions) { String plan = ""; String mvSummary = ""; if (this.getPhysicalPlan() != null && cascadesContext != null) { - mvSummary = "\n\n========== MATERIALIZATIONS ==========\n" - + MaterializationContext.toSummaryString(cascadesContext.getMaterializationContexts(), - this.getPhysicalPlan()); + mvSummary = cascadesContext.getMaterializationContexts().isEmpty() ? "" : + "\n\n========== MATERIALIZATIONS ==========\n" + + MaterializationContext.toSummaryString(cascadesContext.getMaterializationContexts(), + this.getPhysicalPlan()); } switch (explainLevel) { case PARSED_PLAN: From c7778de9e85c375aee214c5e190ae5aea9ebddca Mon Sep 17 00:00:00 2001 From: seawinde Date: Wed, 4 Sep 2024 14:57:07 +0800 Subject: [PATCH 5/5] fix test --- .../nereids_rules_p0/mv/same_name/sync_async_same_name.groovy | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/regression-test/suites/nereids_rules_p0/mv/same_name/sync_async_same_name.groovy b/regression-test/suites/nereids_rules_p0/mv/same_name/sync_async_same_name.groovy index e8350d487a88ef..20dbc0a083158f 100644 --- a/regression-test/suites/nereids_rules_p0/mv/same_name/sync_async_same_name.groovy +++ b/regression-test/suites/nereids_rules_p0/mv/same_name/sync_async_same_name.groovy @@ -165,7 +165,7 @@ suite("sync_async_same_name") { check {result -> def splitResult = result.split("MaterializedViewRewriteFail") splitResult.length == 2 ? splitResult[0].contains(common_mv_name) - && splitResult[0].contains("orders#${common_mv_name}") : false + && splitResult[0].contains("orders.${common_mv_name}") : false } }