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

kxiao pushed a commit to branch branch-2.0
in repository https://gitbox.apache.org/repos/asf/doris.git


The following commit(s) were added to refs/heads/branch-2.0 by this push:
     new dd9be5585e6 [fix](nereids)don't normalize column name for base index 
#26476 (#26690)
dd9be5585e6 is described below

commit dd9be5585e6c60dec124ddd2245c11cb5e942fc5
Author: starocean999 <[email protected]>
AuthorDate: Thu Nov 9 23:35:08 2023 +0800

    [fix](nereids)don't normalize column name for base index #26476 (#26690)
---
 .../mv/SelectMaterializedIndexWithAggregate.java   | 36 ++++++++++++++--------
 1 file changed, 23 insertions(+), 13 deletions(-)

diff --git 
a/fe/fe-core/src/main/java/org/apache/doris/nereids/rules/rewrite/mv/SelectMaterializedIndexWithAggregate.java
 
b/fe/fe-core/src/main/java/org/apache/doris/nereids/rules/rewrite/mv/SelectMaterializedIndexWithAggregate.java
index 468bb7d8ab0..65e1e0c4b80 100644
--- 
a/fe/fe-core/src/main/java/org/apache/doris/nereids/rules/rewrite/mv/SelectMaterializedIndexWithAggregate.java
+++ 
b/fe/fe-core/src/main/java/org/apache/doris/nereids/rules/rewrite/mv/SelectMaterializedIndexWithAggregate.java
@@ -30,6 +30,7 @@ import org.apache.doris.nereids.parser.NereidsParser;
 import org.apache.doris.nereids.rules.Rule;
 import org.apache.doris.nereids.rules.RuleType;
 import org.apache.doris.nereids.rules.rewrite.RewriteRuleFactory;
+import 
org.apache.doris.nereids.rules.rewrite.mv.AbstractSelectMaterializedIndexRule.ReplaceExpressions;
 import 
org.apache.doris.nereids.rules.rewrite.mv.AbstractSelectMaterializedIndexRule.SlotContext;
 import org.apache.doris.nereids.trees.expressions.Alias;
 import org.apache.doris.nereids.trees.expressions.Cast;
@@ -940,23 +941,32 @@ public class SelectMaterializedIndexWithAggregate extends 
AbstractSelectMaterial
 
         public CheckContext(LogicalOlapScan scan, long indexId) {
             this.scan = scan;
+            boolean isBaseIndex = indexId == scan.getTable().getBaseIndexId();
 
             Supplier<Map<String, Column>> supplier = () -> 
Maps.newTreeMap(String.CASE_INSENSITIVE_ORDER);
 
             // map<is_key, map<column_name, column>>
-            Map<Boolean, Map<String, Column>> baseNameToColumnGroupingByIsKey 
= scan.getTable()
-                    .getSchemaByIndexId(indexId).stream()
-                    .collect(Collectors.groupingBy(Column::isKey,
-                            Collectors.toMap(c -> 
normalizeName(parseMvColumnToSql(c.getName())), Function.identity(),
-                                    (v1, v2) -> v1, supplier)));
-            Map<Boolean, Map<String, Column>> mvNameToColumnGroupingByIsKey = 
scan.getTable()
-                    .getSchemaByIndexId(indexId).stream()
-                    .collect(Collectors.groupingBy(Column::isKey,
-                            Collectors.toMap(
-                                    c -> 
normalizeName(parseMvColumnToMvName(c.getNameWithoutMvPrefix(),
-                                            c.isAggregated() ? 
Optional.of(c.getAggregationType().name())
-                                                    : Optional.empty())),
-                                    Function.identity(), (v1, v2) -> v1, 
supplier)));
+            Map<Boolean, Map<String, Column>> baseNameToColumnGroupingByIsKey =
+                    scan.getTable().getSchemaByIndexId(indexId).stream()
+                            .collect(
+                                    Collectors.groupingBy(Column::isKey,
+                                            Collectors.toMap(
+                                                    c -> isBaseIndex ? 
c.getName()
+                                                            : 
normalizeName(parseMvColumnToSql(
+                                                                    
c.getName())),
+                                                    Function.identity(), (v1, 
v2) -> v1,
+                                                    supplier)));
+            Map<Boolean, Map<String, Column>> mvNameToColumnGroupingByIsKey =
+                    scan.getTable().getSchemaByIndexId(indexId).stream()
+                            .collect(Collectors.groupingBy(Column::isKey,
+                                    Collectors.toMap(
+                                            c -> isBaseIndex ? c.getName()
+                                                    : 
normalizeName(parseMvColumnToMvName(
+                                                            
c.getNameWithoutMvPrefix(),
+                                                            c.isAggregated() ? 
Optional.of(
+                                                                    
c.getAggregationType().name())
+                                                                    : 
Optional.empty())),
+                                            Function.identity(), (v1, v2) -> 
v1, supplier)));
 
             this.keyNameToColumn = 
mvNameToColumnGroupingByIsKey.getOrDefault(true,
                     Maps.newTreeMap(String.CASE_INSENSITIVE_ORDER));


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to