[branch-2.1](mtmv) Support read sync materialized view in async materialized view (#38462)

## Proposed changes

pick #37396

<!--Describe your changes.-->

---------

Co-authored-by: liutang123 <liulijia@gmail.com>
This commit is contained in:
Lijia Liu
2024-07-31 22:32:28 +08:00
committed by GitHub
parent ee47ef8826
commit 96413e679d
3 changed files with 132 additions and 0 deletions

View File

@ -17,6 +17,8 @@
package org.apache.doris.nereids.rules.exploration.mv;
import org.apache.doris.analysis.Expr;
import org.apache.doris.analysis.SlotRef;
import org.apache.doris.catalog.Column;
import org.apache.doris.catalog.MTMV;
import org.apache.doris.catalog.PartitionType;
@ -405,6 +407,13 @@ public class MaterializedViewUtils {
return null;
}
Column mvReferenceColumn = contextPartitionColumn.getColumn().get();
Expr definExpr = mvReferenceColumn.getDefineExpr();
if (definExpr instanceof SlotRef) {
Column referenceRollupColumn = ((SlotRef) definExpr).getColumn();
if (referenceRollupColumn != null) {
mvReferenceColumn = referenceRollupColumn;
}
}
if (partitionColumnSet.contains(mvReferenceColumn)
&& (!mvReferenceColumn.isAllowNull() || relatedTable.isPartitionColumnAllowNull())) {
context.addTableColumn(table, mvReferenceColumn);