[fix](nereids)don't normalize column name for base index (#26476)
This commit is contained in:
@ -30,7 +30,6 @@ 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.SlotContext;
|
||||
import org.apache.doris.nereids.trees.expressions.Alias;
|
||||
import org.apache.doris.nereids.trees.expressions.Cast;
|
||||
import org.apache.doris.nereids.trees.expressions.ExprId;
|
||||
@ -940,6 +939,7 @@ 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);
|
||||
|
||||
@ -947,15 +947,20 @@ public class SelectMaterializedIndexWithAggregate extends AbstractSelectMaterial
|
||||
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)));
|
||||
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 -> normalizeName(parseMvColumnToMvName(c.getNameWithoutMvPrefix(),
|
||||
c.isAggregated() ? Optional.of(c.getAggregationType().name())
|
||||
: Optional.empty())),
|
||||
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,
|
||||
|
||||
Reference in New Issue
Block a user