This is an automated email from the ASF dual-hosted git repository. lijibing pushed a commit to branch high-priority-column in repository https://gitbox.apache.org/repos/asf/doris.git
commit 6ad122238841c917deaad94f26b2214b4df48516 Author: Jibing-Li <64681310+jibing...@users.noreply.github.com> AuthorDate: Fri Mar 15 11:58:38 2024 +0800 refactor2 (#32278) --- .../doris/nereids/jobs/executor/Rewriter.java | 4 +-- ...umnCollector.java => QueryColumnCollector.java} | 32 +++++++++++----------- .../apache/doris/statistics/AnalysisManager.java | 6 ++-- 3 files changed, 21 insertions(+), 21 deletions(-) diff --git a/fe/fe-core/src/main/java/org/apache/doris/nereids/jobs/executor/Rewriter.java b/fe/fe-core/src/main/java/org/apache/doris/nereids/jobs/executor/Rewriter.java index 9977a36879c..1818529302b 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/nereids/jobs/executor/Rewriter.java +++ b/fe/fe-core/src/main/java/org/apache/doris/nereids/jobs/executor/Rewriter.java @@ -32,7 +32,7 @@ import org.apache.doris.nereids.rules.expression.CheckLegalityAfterRewrite; import org.apache.doris.nereids.rules.expression.ExpressionNormalization; import org.apache.doris.nereids.rules.expression.ExpressionOptimization; import org.apache.doris.nereids.rules.expression.ExpressionRewrite; -import org.apache.doris.nereids.rules.expression.HighPriorityColumnCollector; +import org.apache.doris.nereids.rules.expression.QueryColumnCollector; import org.apache.doris.nereids.rules.rewrite.AddDefaultLimit; import org.apache.doris.nereids.rules.rewrite.AdjustConjunctsReturnType; import org.apache.doris.nereids.rules.rewrite.AdjustNullable; @@ -410,7 +410,7 @@ public class Rewriter extends AbstractBatchJobExecutor { new CollectProjectAboveConsumer() ) ), - topic("Collect used column", custom(RuleType.COLLECT_COLUMNS, HighPriorityColumnCollector::new)) + topic("Collect used column", custom(RuleType.COLLECT_COLUMNS, QueryColumnCollector::new)) ); private static final List<RewriteJob> WHOLE_TREE_REWRITE_JOBS diff --git a/fe/fe-core/src/main/java/org/apache/doris/nereids/rules/expression/HighPriorityColumnCollector.java b/fe/fe-core/src/main/java/org/apache/doris/nereids/rules/expression/QueryColumnCollector.java similarity index 89% rename from fe/fe-core/src/main/java/org/apache/doris/nereids/rules/expression/HighPriorityColumnCollector.java rename to fe/fe-core/src/main/java/org/apache/doris/nereids/rules/expression/QueryColumnCollector.java index e20363b1202..ebf361de1d3 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/nereids/rules/expression/HighPriorityColumnCollector.java +++ b/fe/fe-core/src/main/java/org/apache/doris/nereids/rules/expression/QueryColumnCollector.java @@ -21,7 +21,7 @@ import org.apache.doris.catalog.Column; import org.apache.doris.catalog.Env; import org.apache.doris.catalog.TableIf; import org.apache.doris.nereids.jobs.JobContext; -import org.apache.doris.nereids.rules.expression.HighPriorityColumnCollector.CollectorContext; +import org.apache.doris.nereids.rules.expression.QueryColumnCollector.CollectorContext; import org.apache.doris.nereids.trees.expressions.NamedExpression; import org.apache.doris.nereids.trees.expressions.Slot; import org.apache.doris.nereids.trees.expressions.SlotReference; @@ -51,9 +51,9 @@ import java.util.Set; import java.util.stream.Collectors; /** - * Used to collect High priority column. + * Used to collect query column. */ -public class HighPriorityColumnCollector extends DefaultPlanRewriter<CollectorContext> implements CustomRewriter { +public class QueryColumnCollector extends DefaultPlanRewriter<CollectorContext> implements CustomRewriter { @Override public Plan rewriteRoot(Plan plan, JobContext jobContext) { @@ -64,10 +64,10 @@ public class HighPriorityColumnCollector extends DefaultPlanRewriter<CollectorCo CollectorContext context = new CollectorContext(); plan.accept(this, context); if (StatisticsUtil.enableAutoAnalyze()) { - context.queried.removeAll(context.usedInPredicate); + context.midPriority.removeAll(context.highPriority); AnalysisManager analysisManager = Env.getCurrentEnv().getAnalysisManager(); - analysisManager.updateColumnUsedInPredicate(context.usedInPredicate); - analysisManager.updateQueriedColumn(context.queried); + analysisManager.updateHighPriorityColumn(context.highPriority); + analysisManager.updateMidPriorityColumn(context.midPriority); } return plan; } @@ -78,9 +78,9 @@ public class HighPriorityColumnCollector extends DefaultPlanRewriter<CollectorCo public static class CollectorContext { public Map<Slot/*project output column*/, NamedExpression/*Actual project expr*/> projects = new HashMap<>(); - public Set<Slot> usedInPredicate = new HashSet<>(); + public Set<Slot> highPriority = new HashSet<>(); - public Set<Slot> queried = new HashSet<>(); + public Set<Slot> midPriority = new HashSet<>(); } @Override @@ -103,7 +103,7 @@ public class HighPriorityColumnCollector extends DefaultPlanRewriter<CollectorCo List<Slot> outputOfScan = scan.getOutput(); for (Slot slot : outputOfScan) { if (!allUsed.contains(slot)) { - context.queried.remove(slot); + context.midPriority.remove(slot); } } } @@ -114,7 +114,7 @@ public class HighPriorityColumnCollector extends DefaultPlanRewriter<CollectorCo public Plan visitLogicalJoin(LogicalJoin<? extends Plan, ? extends Plan> join, CollectorContext context) { join.child(0).accept(this, context); join.child(1).accept(this, context); - context.usedInPredicate.addAll( + context.highPriority.addAll( (join.isMarkJoin() ? join.getLeftConditionSlot() : join.getConditionSlot()) .stream().flatMap(s -> backtrace(s, context).stream()) .collect(Collectors.toSet()) @@ -125,7 +125,7 @@ public class HighPriorityColumnCollector extends DefaultPlanRewriter<CollectorCo @Override public Plan visitLogicalAggregate(LogicalAggregate<? extends Plan> aggregate, CollectorContext context) { aggregate.child(0).accept(this, context); - context.usedInPredicate.addAll(aggregate.getGroupByExpressions() + context.highPriority.addAll(aggregate.getGroupByExpressions() .stream() .flatMap(e -> e.<Set<SlotReference>>collect(n -> n instanceof SlotReference).stream()) .flatMap(s -> backtrace(s, context).stream()) @@ -136,7 +136,7 @@ public class HighPriorityColumnCollector extends DefaultPlanRewriter<CollectorCo @Override public Plan visitLogicalHaving(LogicalHaving<? extends Plan> having, CollectorContext context) { having.child(0).accept(this, context); - context.usedInPredicate.addAll( + context.highPriority.addAll( having.getExpressions().stream() .flatMap(e -> e.<Set<SlotReference>>collect(n -> n instanceof SlotReference).stream()) .flatMap(s -> backtrace(s, context).stream()) @@ -147,21 +147,21 @@ public class HighPriorityColumnCollector extends DefaultPlanRewriter<CollectorCo @Override public Plan visitLogicalOlapScan(LogicalOlapScan olapScan, CollectorContext context) { List<Slot> slots = olapScan.getOutput(); - context.queried.addAll(slots); + context.midPriority.addAll(slots); return olapScan; } @Override public Plan visitLogicalFileScan(LogicalFileScan fileScan, CollectorContext context) { List<Slot> slots = fileScan.getOutput(); - context.queried.addAll(slots); + context.midPriority.addAll(slots); return fileScan; } @Override public Plan visitLogicalFilter(LogicalFilter<? extends Plan> filter, CollectorContext context) { filter.child(0).accept(this, context); - context.usedInPredicate.addAll(filter + context.highPriority.addAll(filter .getExpressions() .stream() .flatMap(e -> e.<Set<SlotReference>>collect(n -> n instanceof SlotReference).stream()) @@ -173,7 +173,7 @@ public class HighPriorityColumnCollector extends DefaultPlanRewriter<CollectorCo @Override public Plan visitLogicalWindow(LogicalWindow<? extends Plan> window, CollectorContext context) { window.child(0).accept(this, context); - context.usedInPredicate.addAll(window + context.highPriority.addAll(window .getWindowExpressions() .stream() .flatMap(e -> e.<Set<SlotReference>>collect(n -> n instanceof SlotReference).stream()) diff --git a/fe/fe-core/src/main/java/org/apache/doris/statistics/AnalysisManager.java b/fe/fe-core/src/main/java/org/apache/doris/statistics/AnalysisManager.java index 8a30aec9e60..d795b64fbaa 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/statistics/AnalysisManager.java +++ b/fe/fe-core/src/main/java/org/apache/doris/statistics/AnalysisManager.java @@ -111,7 +111,7 @@ public class AnalysisManager implements Writable { private static final Logger LOG = LogManager.getLogger(AnalysisManager.class); - private static final int COLUMN_QUEUE_SIZE = 1000; + public static final int COLUMN_QUEUE_SIZE = 1000; public final Queue<QueryColumn> highPriorityColumns = new ArrayBlockingQueue<>(COLUMN_QUEUE_SIZE); public final Queue<QueryColumn> midPriorityColumns = new ArrayBlockingQueue<>(COLUMN_QUEUE_SIZE); public final Map<TableName, Set<String>> highPriorityJobs = new LinkedHashMap<>(); @@ -1152,11 +1152,11 @@ public class AnalysisManager implements Writable { } - public void updateColumnUsedInPredicate(Set<Slot> slotReferences) { + public void updateHighPriorityColumn(Set<Slot> slotReferences) { updateColumn(slotReferences, highPriorityColumns); } - public void updateQueriedColumn(Collection<Slot> slotReferences) { + public void updateMidPriorityColumn(Collection<Slot> slotReferences) { updateColumn(slotReferences, midPriorityColumns); } --------------------------------------------------------------------- To unsubscribe, e-mail: commits-unsubscr...@doris.apache.org For additional commands, e-mail: commits-h...@doris.apache.org