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]