You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@doris.apache.org by li...@apache.org on 2024/03/22 03:31:50 UTC
(doris) 09/12: refactor2 (#32278)
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 fb7d29887965678df65fb5138fbb8bf2937a2d6b
Author: Jibing-Li <64...@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 35b2ae2a586..a5f94b64dd5 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;
@@ -412,7 +412,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 61580047491..e8ae2ae60db 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-unsubscribe@doris.apache.org
For additional commands, e-mail: commits-help@doris.apache.org