From e5890d0c29445adfe36494c3921c741d401487cc Mon Sep 17 00:00:00 2001 From: seawinde <149132972+seawinde@users.noreply.github.com> Date: Sat, 11 May 2024 11:04:38 +0800 Subject: [PATCH 1/2] [improvement](mtmv) Split the expression mapping in LogicalCompatibilityContext for performance (#34646) Need query to view expression mapping when check the logic of hyper graph is equals or not. Getting all expression mapping one-time may affect performance. So split the expresson to three type JOIN_EDGE, NODE, FILTER_EDGE and get them step by step. --- .../exploration/mv/LogicalCompatibilityContext.java | 9 --------- 1 file changed, 9 deletions(-) diff --git a/fe/fe-core/src/main/java/org/apache/doris/nereids/rules/exploration/mv/LogicalCompatibilityContext.java b/fe/fe-core/src/main/java/org/apache/doris/nereids/rules/exploration/mv/LogicalCompatibilityContext.java index ca13c9701dabc2..148300cc3db829 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/nereids/rules/exploration/mv/LogicalCompatibilityContext.java +++ b/fe/fe-core/src/main/java/org/apache/doris/nereids/rules/exploration/mv/LogicalCompatibilityContext.java @@ -18,7 +18,6 @@ package org.apache.doris.nereids.rules.exploration.mv; import org.apache.doris.nereids.jobs.joinorder.hypergraph.node.StructInfoNode; -import org.apache.doris.nereids.memo.GroupExpression; import org.apache.doris.nereids.rules.exploration.mv.StructInfo.ExpressionPosition; import org.apache.doris.nereids.rules.exploration.mv.mapping.Mapping.MappedRelation; import org.apache.doris.nereids.rules.exploration.mv.mapping.RelationMapping; @@ -28,7 +27,6 @@ import org.apache.doris.nereids.trees.expressions.NamedExpression; import org.apache.doris.nereids.trees.expressions.SlotReference; import org.apache.doris.nereids.trees.expressions.visitor.DefaultExpressionRewriter; -import org.apache.doris.nereids.trees.plans.ObjectId; import org.apache.doris.nereids.trees.plans.RelationId; import org.apache.doris.nereids.util.ExpressionUtils; import org.apache.doris.nereids.util.Utils; @@ -47,13 +45,9 @@ public class LogicalCompatibilityContext { private final BiMap queryToViewNodeMapping; private final BiMap queryToViewNodeIDMapping; - private final ObjectId planNodeId; private final Supplier> queryToViewJoinEdgeExpressionMappingSupplier; private final Supplier> queryToViewNodeExpressionMappingSupplier; private final Supplier> queryToViewFilterEdgeExpressionMappingSupplier; - @Deprecated - private BiMap queryToViewAllExpressionMapping; - /** * LogicalCompatibilityContext */ @@ -79,9 +73,6 @@ private LogicalCompatibilityContext(BiMap queryT this.queryToViewNodeMapping = queryToViewNodeMapping; this.queryToViewNodeIDMapping = HashBiMap.create(); queryToViewNodeMapping.forEach((k, v) -> queryToViewNodeIDMapping.put(k.getIndex(), v.getIndex())); - - this.planNodeId = queryStructInfo.getTopPlan().getGroupExpression() - .map(GroupExpression::getId).orElseGet(() -> new ObjectId(-1)); } public BiMap getQueryToViewNodeMapping() { From ea45be3f22f7d3702f7cb947b4ed489e3d06083f Mon Sep 17 00:00:00 2001 From: seawinde Date: Thu, 23 May 2024 00:02:58 +0800 Subject: [PATCH 2/2] fix code style --- .../rules/exploration/mv/LogicalCompatibilityContext.java | 1 + 1 file changed, 1 insertion(+) diff --git a/fe/fe-core/src/main/java/org/apache/doris/nereids/rules/exploration/mv/LogicalCompatibilityContext.java b/fe/fe-core/src/main/java/org/apache/doris/nereids/rules/exploration/mv/LogicalCompatibilityContext.java index 148300cc3db829..06098b591857ad 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/nereids/rules/exploration/mv/LogicalCompatibilityContext.java +++ b/fe/fe-core/src/main/java/org/apache/doris/nereids/rules/exploration/mv/LogicalCompatibilityContext.java @@ -48,6 +48,7 @@ public class LogicalCompatibilityContext { private final Supplier> queryToViewJoinEdgeExpressionMappingSupplier; private final Supplier> queryToViewNodeExpressionMappingSupplier; private final Supplier> queryToViewFilterEdgeExpressionMappingSupplier; + /** * LogicalCompatibilityContext */