You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@doris.apache.org by mo...@apache.org on 2024/10/17 12:36:13 UTC
(doris) branch branch-2.1 updated: [Feat](Nereids) support use cbo rule hint #35925 #39715 #40167 #40958 (#41869)
This is an automated email from the ASF dual-hosted git repository.
morrysnow pushed a commit to branch branch-2.1
in repository https://gitbox.apache.org/repos/asf/doris.git
The following commit(s) were added to refs/heads/branch-2.1 by this push:
new 80d7523a623 [Feat](Nereids) support use cbo rule hint #35925 #39715 #40167 #40958 (#41869)
80d7523a623 is described below
commit 80d7523a6236326eb7688396d7f1fe4a0ee95235
Author: LiBinfeng <46...@users.noreply.github.com>
AuthorDate: Thu Oct 17 20:36:03 2024 +0800
[Feat](Nereids) support use cbo rule hint #35925 #39715 #40167 #40958 (#41869)
pick: #35925 #39715 #40167 #40958
Add feat of force use/nouse cbo rule hint and fix pr
introduce
when not using this hint, cbo rules like INFER_SET_OPERATOR_DISTINCT
would generate two plans and compare their cost
and nereids optimizer would decide which is better. But when we want to
control the behavior of cbo rules we could use this force cbo rule hint
usage example
explain shape plan
select /*+ USE_CBO_RULE(INFER_SET_OPERATOR_DISTINCT) */
*
from t1
union
select * from t2;
the USE_CBO_RULE(INFER_SET_OPERATOR_DISTINCT) hint would force rule
INFER_SET_OPERATOR_DISTINCT to be used
and generate plan like, which hashAgg below union is generated by this
rule:
-- !with_hint_union_distinct --
----hashAgg[GLOBAL]
--------hashAgg[LOCAL]
----------PhysicalUnion
--------------hashAgg[LOCAL]
----------------PhysicalOlapScan[t1]
--------------hashAgg[LOCAL]
----------------PhysicalOlapScan[t2]
Hint log:
Used: INFER_SET_OPERATOR_DISTINCT
UnUsed:
SyntaxError:
When we want to force disable this rule, we could use
explain shape plan select /*+
NO_USE_CBO_RULE(INFER_SET_OPERATOR_DISTINCT) */ * from t1 union select *
from t2;
which would generate plan with this rule:
-- !with_hint_no_union_distinct --
----hashAgg[GLOBAL]
--------hashAgg[LOCAL]
----------PhysicalUnion
--------------PhysicalOlapScan[t1]
--------------PhysicalOlapScan[t2]
Hint log:
Used: NO_INFER_SET_OPERATOR_DISTINCT
UnUsed:
SyntaxError:
change sessionvariable enableNereidsRules to varType.remove
---
.../java/org/apache/doris/catalog/OlapTable.java | 95 +
.../org/apache/doris/nereids/CascadesContext.java | 19 +-
.../apache/doris/nereids/hint/UseCboRuleHint.java | 47 +
.../org/apache/doris/nereids/hint/UseMvHint.java | 144 +
.../doris/nereids/jobs/executor/Rewriter.java | 6 +-
.../nereids/jobs/rewrite/CostBasedRewriteJob.java | 74 +
.../nereids/jobs/rewrite/CustomRewriteJob.java | 5 +
.../jobs/rewrite/RootPlanTreeRewriteJob.java | 4 +
.../doris/nereids/parser/LogicalPlanBuilder.java | 48 +-
.../processor/pre/PullUpSubqueryAliasToCTE.java | 2 +-
.../nereids/properties/SelectHintUseCboRule.java | 53 +
.../doris/nereids/properties/SelectHintUseMv.java | 53 +
.../doris/nereids/rules/analysis/AnalyzeCTE.java | 1 +
.../rules/analysis/EliminateLogicalSelectHint.java | 51 +-
.../mv/AbstractSelectMaterializedIndexRule.java | 2 +-
.../trees/plans/logical/LogicalSelectHint.java | 30 +-
.../joinorder/joinhint/DistributeHintTest.java | 9 +-
.../nereids/rules/analysis/AnalyzeCTETest.java | 14 +
.../data/nereids_hint_tpcds_p0/shape/query30.out | 13 +-
.../data/nereids_hint_tpcds_p0/shape/query64.out | 78 +-
.../data/nereids_hint_tpcds_p0/shape/query81.out | 8 +-
.../data/nereids_hint_tpcds_p0/shape/query83.out | 117 +-
.../data/nereids_p0/hint/multi_leading.out | 115 +-
.../data/nereids_p0/hint/test_distribute.out | 4323 +++++++++++---------
.../data/nereids_p0/hint/test_leading.out | 47 +-
.../nereids_rules_p0/eager_aggregate/basic.out | 78 +-
.../eager_aggregate/basic_one_side.out | 65 +-
.../push_down_count_through_join.out | 821 +++-
.../push_down_count_through_join_one_side.out | 698 +++-
.../eager_aggregate/push_down_max_through_join.out | 418 +-
.../eager_aggregate/push_down_min_through_join.out | 418 +-
.../eager_aggregate/push_down_sum_through_join.out | 447 +-
.../push_down_sum_through_join_one_side.out | 418 +-
.../push_down_distinct_through_join.out | 17 +-
.../suites/nereids_p0/hint/multi_leading.groovy | 39 +-
.../suites/nereids_p0/hint/test_use_mv.groovy | 104 +
.../nereids_rules_p0/eager_aggregate/basic.groovy | 77 +-
.../eager_aggregate/basic_one_side.groovy | 74 +-
.../push_down_count_through_join.groovy | 193 +-
.../push_down_count_through_join_one_side.groovy | 193 +-
.../push_down_max_through_join.groovy | 109 +-
.../push_down_min_through_join.groovy | 108 +-
.../push_down_sum_through_join.groovy | 108 +-
.../push_down_sum_through_join_one_side.groovy | 110 +-
.../push_down_distinct_through_join.groovy | 13 +-
.../push_down_limit_distinct.groovy | 4 +-
.../noStatsRfPrune/query1.groovy | 2 +-
.../noStatsRfPrune/query30.groovy | 2 +-
.../noStatsRfPrune/query81.groovy | 2 +-
.../no_stats_shape/query1.groovy | 2 +-
.../no_stats_shape/query30.groovy | 2 +-
.../no_stats_shape/query81.groovy | 2 +-
52 files changed, 7151 insertions(+), 2731 deletions(-)
diff --git a/fe/fe-core/src/main/java/org/apache/doris/catalog/OlapTable.java b/fe/fe-core/src/main/java/org/apache/doris/catalog/OlapTable.java
index f30fcaadf3f..61701bfbf07 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/catalog/OlapTable.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/catalog/OlapTable.java
@@ -51,6 +51,8 @@ import org.apache.doris.mtmv.MTMVRefreshContext;
import org.apache.doris.mtmv.MTMVRelatedTableIf;
import org.apache.doris.mtmv.MTMVSnapshotIf;
import org.apache.doris.mtmv.MTMVVersionSnapshot;
+import org.apache.doris.nereids.hint.Hint;
+import org.apache.doris.nereids.hint.UseMvHint;
import org.apache.doris.qe.ConnectContext;
import org.apache.doris.qe.OriginStatement;
import org.apache.doris.resource.Tag;
@@ -513,6 +515,99 @@ public class OlapTable extends Table implements MTMVRelatedTableIf {
return visibleMVs;
}
+ public Long getBestMvIdWithHint(List<Long> orderedMvs) {
+ Optional<UseMvHint> useMvHint = getUseMvHint("USE_MV");
+ Optional<UseMvHint> noUseMvHint = getUseMvHint("NO_USE_MV");
+ if (useMvHint.isPresent() && noUseMvHint.isPresent()) {
+ if (noUseMvHint.get().getNoUseMVName(this.name).contains(useMvHint.get().getUseMvName(this.name))) {
+ String errorMsg = "conflict mv exist in use_mv and no_use_mv in the same time"
+ + useMvHint.get().getUseMvName(this.name);
+ useMvHint.get().setStatus(Hint.HintStatus.SYNTAX_ERROR);
+ useMvHint.get().setErrorMessage(errorMsg);
+ noUseMvHint.get().setStatus(Hint.HintStatus.SYNTAX_ERROR);
+ noUseMvHint.get().setErrorMessage(errorMsg);
+ }
+ return getMvIdWithUseMvHint(useMvHint.get(), orderedMvs);
+ } else if (useMvHint.isPresent()) {
+ return getMvIdWithUseMvHint(useMvHint.get(), orderedMvs);
+ } else if (noUseMvHint.isPresent()) {
+ return getMvIdWithNoUseMvHint(noUseMvHint.get(), orderedMvs);
+ }
+ return orderedMvs.get(0);
+ }
+
+ private Long getMvIdWithUseMvHint(UseMvHint useMvHint, List<Long> orderedMvs) {
+ if (useMvHint.isAllMv()) {
+ useMvHint.setStatus(Hint.HintStatus.SYNTAX_ERROR);
+ useMvHint.setErrorMessage("use_mv hint should only have one mv in one table: "
+ + this.name);
+ return orderedMvs.get(0);
+ } else {
+ String mvName = useMvHint.getUseMvName(this.name);
+ if (mvName != null) {
+ if (mvName.equals("`*`")) {
+ useMvHint.setStatus(Hint.HintStatus.SYNTAX_ERROR);
+ useMvHint.setErrorMessage("use_mv hint should only have one mv in one table: "
+ + this.name);
+ return orderedMvs.get(0);
+ }
+ Long choosedIndexId = indexNameToId.get(mvName);
+ if (orderedMvs.contains(choosedIndexId)) {
+ useMvHint.setStatus(Hint.HintStatus.SUCCESS);
+ return choosedIndexId;
+ } else {
+ useMvHint.setStatus(Hint.HintStatus.SYNTAX_ERROR);
+ useMvHint.setErrorMessage("do not have mv: " + mvName + " in table: " + this.name);
+ }
+ }
+ }
+ return orderedMvs.get(0);
+ }
+
+ private Long getMvIdWithNoUseMvHint(UseMvHint noUseMvHint, List<Long> orderedMvs) {
+ if (noUseMvHint.isAllMv()) {
+ noUseMvHint.setStatus(Hint.HintStatus.SUCCESS);
+ return getBaseIndex().getId();
+ } else {
+ List<String> mvNames = noUseMvHint.getNoUseMVName(this.name);
+ Set<Long> forbiddenIndexIds = Sets.newHashSet();
+ for (int i = 0; i < mvNames.size(); i++) {
+ if (mvNames.get(i).equals("`*`")) {
+ noUseMvHint.setStatus(Hint.HintStatus.SUCCESS);
+ return getBaseIndex().getId();
+ }
+ if (hasMaterializedIndex(mvNames.get(i))) {
+ Long forbiddenIndexId = indexNameToId.get(mvNames.get(i));
+ forbiddenIndexIds.add(forbiddenIndexId);
+ } else {
+ noUseMvHint.setStatus(Hint.HintStatus.SYNTAX_ERROR);
+ noUseMvHint.setErrorMessage("do not have mv: " + mvNames.get(i) + " in table: " + this.name);
+ break;
+ }
+ }
+ for (int i = 0; i < orderedMvs.size(); i++) {
+ if (forbiddenIndexIds.contains(orderedMvs.get(i))) {
+ noUseMvHint.setStatus(Hint.HintStatus.SUCCESS);
+ } else {
+ return orderedMvs.get(i);
+ }
+ }
+ }
+ return orderedMvs.get(0);
+ }
+
+ private Optional<UseMvHint> getUseMvHint(String useMvName) {
+ for (Hint hint : ConnectContext.get().getStatementContext().getHints()) {
+ if (hint.isSyntaxError()) {
+ continue;
+ }
+ if (hint.getHintName().equalsIgnoreCase(useMvName)) {
+ return Optional.of((UseMvHint) hint);
+ }
+ }
+ return Optional.empty();
+ }
+
public List<MaterializedIndex> getVisibleIndex() {
Optional<Partition> partition = idToPartition.values().stream().findFirst();
if (!partition.isPresent()) {
diff --git a/fe/fe-core/src/main/java/org/apache/doris/nereids/CascadesContext.java b/fe/fe-core/src/main/java/org/apache/doris/nereids/CascadesContext.java
index 0c3516f41c3..3adc9e43f2a 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/nereids/CascadesContext.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/nereids/CascadesContext.java
@@ -148,7 +148,7 @@ public class CascadesContext implements ScheduleContext {
*/
private CascadesContext(Optional<CascadesContext> parent, Optional<CTEId> currentTree,
StatementContext statementContext, Plan plan, Memo memo,
- CTEContext cteContext, PhysicalProperties requireProperties) {
+ CTEContext cteContext, PhysicalProperties requireProperties, boolean isLeadingDisableJoinReorder) {
this.parent = Objects.requireNonNull(parent, "parent should not null");
this.currentTree = Objects.requireNonNull(currentTree, "currentTree should not null");
this.statementContext = Objects.requireNonNull(statementContext, "statementContext should not null");
@@ -169,6 +169,10 @@ public class CascadesContext implements ScheduleContext {
} else {
this.isEnableExprTrace = false;
}
+ if (parent.isPresent()) {
+ this.tables = parent.get().tables;
+ }
+ this.isLeadingDisableJoinReorder = isLeadingDisableJoinReorder;
}
/**
@@ -177,7 +181,7 @@ public class CascadesContext implements ScheduleContext {
public static CascadesContext initContext(StatementContext statementContext,
Plan initPlan, PhysicalProperties requireProperties) {
return newContext(Optional.empty(), Optional.empty(), statementContext,
- initPlan, new CTEContext(), requireProperties);
+ initPlan, new CTEContext(), requireProperties, false);
}
/**
@@ -186,14 +190,15 @@ public class CascadesContext implements ScheduleContext {
public static CascadesContext newContextWithCteContext(CascadesContext cascadesContext,
Plan initPlan, CTEContext cteContext) {
return newContext(Optional.of(cascadesContext), Optional.empty(),
- cascadesContext.getStatementContext(), initPlan, cteContext, PhysicalProperties.ANY
+ cascadesContext.getStatementContext(), initPlan, cteContext, PhysicalProperties.ANY,
+ cascadesContext.isLeadingDisableJoinReorder
);
}
public static CascadesContext newCurrentTreeContext(CascadesContext context) {
return CascadesContext.newContext(context.getParent(), context.getCurrentTree(), context.getStatementContext(),
context.getRewritePlan(), context.getCteContext(),
- context.getCurrentJobContext().getRequiredProperties());
+ context.getCurrentJobContext().getRequiredProperties(), context.isLeadingDisableJoinReorder);
}
/**
@@ -202,14 +207,14 @@ public class CascadesContext implements ScheduleContext {
public static CascadesContext newSubtreeContext(Optional<CTEId> subtree, CascadesContext context,
Plan plan, PhysicalProperties requireProperties) {
return CascadesContext.newContext(Optional.of(context), subtree, context.getStatementContext(),
- plan, context.getCteContext(), requireProperties);
+ plan, context.getCteContext(), requireProperties, context.isLeadingDisableJoinReorder);
}
private static CascadesContext newContext(Optional<CascadesContext> parent, Optional<CTEId> subtree,
StatementContext statementContext, Plan initPlan, CTEContext cteContext,
- PhysicalProperties requireProperties) {
+ PhysicalProperties requireProperties, boolean isLeadingDisableJoinReorder) {
return new CascadesContext(parent, subtree, statementContext, initPlan, null,
- cteContext, requireProperties);
+ cteContext, requireProperties, isLeadingDisableJoinReorder);
}
public CascadesContext getRoot() {
diff --git a/fe/fe-core/src/main/java/org/apache/doris/nereids/hint/UseCboRuleHint.java b/fe/fe-core/src/main/java/org/apache/doris/nereids/hint/UseCboRuleHint.java
new file mode 100644
index 00000000000..34e18ab8568
--- /dev/null
+++ b/fe/fe-core/src/main/java/org/apache/doris/nereids/hint/UseCboRuleHint.java
@@ -0,0 +1,47 @@
+// Licensed to the Apache Software Foundation (ASF) under one
+// or more contributor license agreements. See the NOTICE file
+// distributed with this work for additional information
+// regarding copyright ownership. The ASF licenses this file
+// to you under the Apache License, Version 2.0 (the
+// "License"); you may not use this file except in compliance
+// with the License. You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing,
+// software distributed under the License is distributed on an
+// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+// KIND, either express or implied. See the License for the
+// specific language governing permissions and limitations
+// under the License.
+
+package org.apache.doris.nereids.hint;
+
+/**
+ * rule hint.
+ */
+public class UseCboRuleHint extends Hint {
+
+ private final boolean isNotUseCboRule;
+
+ public UseCboRuleHint(String hintName, boolean isNotUseCboRule) {
+ super(hintName);
+ this.isNotUseCboRule = isNotUseCboRule;
+ }
+
+ public boolean isNotUseCboRule() {
+ return isNotUseCboRule;
+ }
+
+ @Override
+ public String getExplainString() {
+ StringBuilder out = new StringBuilder();
+ if (isNotUseCboRule) {
+ out.append("no_use_");
+ } else {
+ out.append("use_");
+ }
+ out.append(getHintName());
+ return out.toString();
+ }
+}
diff --git a/fe/fe-core/src/main/java/org/apache/doris/nereids/hint/UseMvHint.java b/fe/fe-core/src/main/java/org/apache/doris/nereids/hint/UseMvHint.java
new file mode 100644
index 00000000000..5e37bdc2760
--- /dev/null
+++ b/fe/fe-core/src/main/java/org/apache/doris/nereids/hint/UseMvHint.java
@@ -0,0 +1,144 @@
+// Licensed to the Apache Software Foundation (ASF) under one
+// or more contributor license agreements. See the NOTICE file
+// distributed with this work for additional information
+// regarding copyright ownership. The ASF licenses this file
+// to you under the Apache License, Version 2.0 (the
+// "License"); you may not use this file except in compliance
+// with the License. You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing,
+// software distributed under the License is distributed on an
+// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+// KIND, either express or implied. See the License for the
+// specific language governing permissions and limitations
+// under the License.
+
+package org.apache.doris.nereids.hint;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * rule hint.
+ */
+public class UseMvHint extends Hint {
+
+ private final boolean isUseMv;
+
+ private final boolean isAllMv;
+
+ private final List<String> parameters;
+
+ private final Map<String, String> useMvTableColumnMap;
+
+ private final Map<String, List<String>> noUseMvTableColumnMap;
+
+ /**
+ * constructor of use mv hint
+ * @param hintName use mv
+ * @param parameters original parameters
+ * @param isUseMv use_mv hint or no_use_mv hint
+ * @param isAllMv should all mv be controlled
+ */
+ public UseMvHint(String hintName, List<String> parameters, boolean isUseMv, boolean isAllMv) {
+ super(hintName);
+ this.isUseMv = isUseMv;
+ this.isAllMv = isAllMv;
+ this.parameters = parameters;
+ this.useMvTableColumnMap = initUseMvTableColumnMap(parameters);
+ this.noUseMvTableColumnMap = initNoUseMvTableColumnMap(parameters);
+ }
+
+ private Map<String, String> initUseMvTableColumnMap(List<String> parameters) {
+ Map<String, String> tempUseMvTableColumnMap = new HashMap<>();
+ if (!isUseMv) {
+ return tempUseMvTableColumnMap;
+ }
+ if (parameters.size() % 2 == 1) {
+ this.setStatus(HintStatus.SYNTAX_ERROR);
+ this.setErrorMessage("parameter of use_mv hint must be in pairs");
+ return tempUseMvTableColumnMap;
+ }
+ for (int i = 0; i < parameters.size(); i += 2) {
+ String tableName = parameters.get(i);
+ String columnName = parameters.get(i + 1);
+ if (tempUseMvTableColumnMap.containsKey(tableName)) {
+ this.setStatus(HintStatus.SYNTAX_ERROR);
+ this.setErrorMessage("use_mv hint should only have one mv in one table: "
+ + tableName + "." + columnName);
+ break;
+ }
+ tempUseMvTableColumnMap.put(tableName, columnName);
+ }
+ return tempUseMvTableColumnMap;
+ }
+
+ private Map<String, List<String>> initNoUseMvTableColumnMap(List<String> parameters) {
+ Map<String, List<String>> tempNoUseMvTableColumnMap = new HashMap<>();
+ if (isUseMv) {
+ return tempNoUseMvTableColumnMap;
+ }
+ if (parameters.size() % 2 == 1) {
+ this.setStatus(HintStatus.SYNTAX_ERROR);
+ this.setErrorMessage("parameter of no_use_mv hint must be in pairs");
+ return tempNoUseMvTableColumnMap;
+ }
+ for (int i = 0; i < parameters.size(); i += 2) {
+ String tableName = parameters.get(i);
+ String columnName = parameters.get(i + 1);
+ if (tempNoUseMvTableColumnMap.containsKey(tableName)) {
+ tempNoUseMvTableColumnMap.get(tableName).add(columnName);
+ } else {
+ List<String> list = new ArrayList<>();
+ list.add(columnName);
+ tempNoUseMvTableColumnMap.put(tableName, list);
+ }
+ }
+ return tempNoUseMvTableColumnMap;
+ }
+
+ public boolean isUseMv() {
+ return isUseMv;
+ }
+
+ public boolean isAllMv() {
+ return isAllMv;
+ }
+
+ public String getUseMvName(String tableName) {
+ return useMvTableColumnMap.get(tableName);
+ }
+
+ public List<String> getNoUseMVName(String tableName) {
+ return noUseMvTableColumnMap.get(tableName);
+ }
+
+ @Override
+ public String getExplainString() {
+ StringBuilder out = new StringBuilder();
+ if (isUseMv) {
+ out.append("use_mv");
+ } else {
+ out.append("no_use_mv");
+ }
+ if (!parameters.isEmpty()) {
+ out.append("(");
+ for (int i = 0; i < parameters.size(); i++) {
+ if (i % 2 == 0) {
+ out.append(parameters.get(i));
+ } else {
+ out.append(".");
+ out.append(parameters.get(i));
+ out.append(" ");
+ }
+ }
+ out.append(")");
+ }
+
+ return out.toString();
+ }
+}
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 413a410ac59..a8860bf6cb3 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
@@ -328,11 +328,11 @@ public class Rewriter extends AbstractBatchJobExecutor {
),
topic("Eager aggregation",
- topDown(
+ costBased(topDown(
new PushDownAggThroughJoinOneSide(),
new PushDownAggThroughJoin()
- ),
- custom(RuleType.PUSH_DOWN_DISTINCT_THROUGH_JOIN, PushDownDistinctThroughJoin::new)
+ )),
+ costBased(custom(RuleType.PUSH_DOWN_DISTINCT_THROUGH_JOIN, PushDownDistinctThroughJoin::new))
),
// this rule should invoke after infer predicate and push down distinct, and before push down limit
diff --git a/fe/fe-core/src/main/java/org/apache/doris/nereids/jobs/rewrite/CostBasedRewriteJob.java b/fe/fe-core/src/main/java/org/apache/doris/nereids/jobs/rewrite/CostBasedRewriteJob.java
index 1ff91dfbac9..dc13412031a 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/nereids/jobs/rewrite/CostBasedRewriteJob.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/nereids/jobs/rewrite/CostBasedRewriteJob.java
@@ -20,16 +20,23 @@ package org.apache.doris.nereids.jobs.rewrite;
import org.apache.doris.common.Pair;
import org.apache.doris.nereids.CascadesContext;
import org.apache.doris.nereids.cost.Cost;
+import org.apache.doris.nereids.hint.Hint;
+import org.apache.doris.nereids.hint.UseCboRuleHint;
import org.apache.doris.nereids.jobs.JobContext;
import org.apache.doris.nereids.jobs.executor.Optimizer;
import org.apache.doris.nereids.jobs.executor.Rewriter;
import org.apache.doris.nereids.memo.GroupExpression;
+import org.apache.doris.nereids.rules.Rule;
+import org.apache.doris.nereids.rules.RuleType;
import org.apache.doris.nereids.trees.plans.logical.LogicalCTEAnchor;
import org.apache.doris.nereids.trees.plans.logical.LogicalPlan;
+import org.apache.doris.qe.ConnectContext;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
+import java.util.ArrayList;
+import java.util.Arrays;
import java.util.List;
import java.util.Optional;
@@ -50,6 +57,12 @@ public class CostBasedRewriteJob implements RewriteJob {
@Override
public void execute(JobContext jobContext) {
+ // checkHint.first means whether it use hint and checkHint.second means what kind of hint it used
+ Pair<Boolean, Hint> checkHint = checkRuleHint();
+ // this means it no_use_cbo_rule(xxx) hint
+ if (checkHint.first && checkHint.second == null) {
+ return;
+ }
CascadesContext currentCtx = jobContext.getCascadesContext();
CascadesContext skipCboRuleCtx = CascadesContext.newCurrentTreeContext(currentCtx);
CascadesContext applyCboRuleCtx = CascadesContext.newCurrentTreeContext(currentCtx);
@@ -70,12 +83,73 @@ public class CostBasedRewriteJob implements RewriteJob {
rewriteJobs, currentCtx.getRewritePlan());
return;
}
+ if (checkHint.first) {
+ checkHint.second.setStatus(Hint.HintStatus.SUCCESS);
+ if (!((UseCboRuleHint) checkHint.second).isNotUseCboRule()) {
+ currentCtx.setRewritePlan(applyCboRuleCtx.getRewritePlan());
+ }
+ return;
+ }
// If the candidate applied cbo rule is better, replace the original plan with it.
if (appliedCboRuleCost.get().first.getValue() < skipCboRuleCost.get().first.getValue()) {
currentCtx.setRewritePlan(applyCboRuleCtx.getRewritePlan());
}
}
+ /**
+ * check if we have use rule hint or no use rule hint
+ * return an optional object which checkHint.first means whether it use hint
+ * and checkHint.second means what kind of hint it used
+ * example, when we use *+ no_use_cbo_rule(xxx) * the optional would be (true, false)
+ * which means it use hint and the hint forbid this kind of rule
+ */
+ private Pair<Boolean, Hint> checkRuleHint() {
+ Pair<Boolean, Hint> checkResult = Pair.of(false, null);
+ if (rewriteJobs.get(0) instanceof RootPlanTreeRewriteJob) {
+ for (Rule rule : ((RootPlanTreeRewriteJob) rewriteJobs.get(0)).getRules()) {
+ checkResult = checkRuleHintWithHintName(rule.getRuleType());
+ if (checkResult.first) {
+ return checkResult;
+ }
+ }
+ }
+ if (rewriteJobs.get(0) instanceof CustomRewriteJob) {
+ checkResult = checkRuleHintWithHintName(((CustomRewriteJob) rewriteJobs.get(0)).getRuleType());
+ }
+ return checkResult;
+ }
+
+ /**
+ * for these rules we need use_cbo_rule hint to enable it, otherwise it would be close by default
+ */
+ private static boolean checkBlackList(RuleType ruleType) {
+ List<RuleType> ruleWhiteList = new ArrayList<>(Arrays.asList(
+ RuleType.PUSH_DOWN_AGG_THROUGH_JOIN,
+ RuleType.PUSH_DOWN_AGG_THROUGH_JOIN_ONE_SIDE,
+ RuleType.PUSH_DOWN_DISTINCT_THROUGH_JOIN));
+ if (!ruleWhiteList.isEmpty() && ruleWhiteList.contains(ruleType)) {
+ return true;
+ }
+ return false;
+ }
+
+ /**
+ * main mechanism of checkRuleHint
+ * return an optional object which checkHint.first means whether it use hint
+ * and checkHint.second means what kind of hint it used
+ */
+ private Pair<Boolean, Hint> checkRuleHintWithHintName(RuleType ruleType) {
+ for (Hint hint : ConnectContext.get().getStatementContext().getHints()) {
+ if (hint.getHintName().equalsIgnoreCase(ruleType.name())) {
+ return Pair.of(true, hint);
+ }
+ }
+ if (checkBlackList(ruleType)) {
+ return Pair.of(true, null);
+ }
+ return Pair.of(false, null);
+ }
+
@Override
public boolean isOnce() {
// TODO: currently, we do not support execute it more than once.
diff --git a/fe/fe-core/src/main/java/org/apache/doris/nereids/jobs/rewrite/CustomRewriteJob.java b/fe/fe-core/src/main/java/org/apache/doris/nereids/jobs/rewrite/CustomRewriteJob.java
index ae3aa52c4f2..3e3d3368871 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/nereids/jobs/rewrite/CustomRewriteJob.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/nereids/jobs/rewrite/CustomRewriteJob.java
@@ -79,4 +79,9 @@ public class CustomRewriteJob implements RewriteJob {
public boolean isOnce() {
return false;
}
+
+ public RuleType getRuleType() {
+ return ruleType;
+ }
+
}
diff --git a/fe/fe-core/src/main/java/org/apache/doris/nereids/jobs/rewrite/RootPlanTreeRewriteJob.java b/fe/fe-core/src/main/java/org/apache/doris/nereids/jobs/rewrite/RootPlanTreeRewriteJob.java
index 859e942b380..551efa1026d 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/nereids/jobs/rewrite/RootPlanTreeRewriteJob.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/nereids/jobs/rewrite/RootPlanTreeRewriteJob.java
@@ -129,6 +129,10 @@ public class RootPlanTreeRewriteJob implements RewriteJob {
}
}
+ public List<Rule> getRules() {
+ return rules;
+ }
+
/** use to assemble the rewriting plan */
private static class LinkPlanJob extends Job {
LinkPlanJob parentJob;
diff --git a/fe/fe-core/src/main/java/org/apache/doris/nereids/parser/LogicalPlanBuilder.java b/fe/fe-core/src/main/java/org/apache/doris/nereids/parser/LogicalPlanBuilder.java
index 518bd292fbb..05e8feabd7f 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/nereids/parser/LogicalPlanBuilder.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/nereids/parser/LogicalPlanBuilder.java
@@ -225,6 +225,8 @@ import org.apache.doris.nereids.properties.SelectHint;
import org.apache.doris.nereids.properties.SelectHintLeading;
import org.apache.doris.nereids.properties.SelectHintOrdered;
import org.apache.doris.nereids.properties.SelectHintSetVar;
+import org.apache.doris.nereids.properties.SelectHintUseCboRule;
+import org.apache.doris.nereids.properties.SelectHintUseMv;
import org.apache.doris.nereids.trees.TableSample;
import org.apache.doris.nereids.trees.expressions.Add;
import org.apache.doris.nereids.trees.expressions.And;
@@ -3116,7 +3118,7 @@ public class LogicalPlanBuilder extends DorisParserBaseVisitor<Object> {
if (hintContexts.isEmpty()) {
return logicalPlan;
}
- Map<String, SelectHint> hints = Maps.newLinkedHashMap();
+ ImmutableList.Builder<SelectHint> hints = ImmutableList.builder();
for (ParserRuleContext hintContext : hintContexts) {
SelectHintContext selectHintContext = (SelectHintContext) hintContext;
for (HintStatementContext hintStatement : selectHintContext.hintStatements) {
@@ -3138,7 +3140,7 @@ public class LogicalPlanBuilder extends DorisParserBaseVisitor<Object> {
parameters.put(parameterName, value);
}
}
- hints.put(hintName, new SelectHintSetVar(hintName, parameters));
+ hints.add(new SelectHintSetVar(hintName, parameters));
break;
case "leading":
List<String> leadingParameters = new ArrayList<String>();
@@ -3148,17 +3150,53 @@ public class LogicalPlanBuilder extends DorisParserBaseVisitor<Object> {
leadingParameters.add(parameterName);
}
}
- hints.put(hintName, new SelectHintLeading(hintName, leadingParameters));
+ hints.add(new SelectHintLeading(hintName, leadingParameters));
break;
case "ordered":
- hints.put(hintName, new SelectHintOrdered(hintName));
+ hints.add(new SelectHintOrdered(hintName));
+ break;
+ case "use_cbo_rule":
+ List<String> useRuleParameters = new ArrayList<String>();
+ for (HintAssignmentContext kv : hintStatement.parameters) {
+ String parameterName = visitIdentifierOrText(kv.key);
+ useRuleParameters.add(parameterName);
+ }
+ hints.add(new SelectHintUseCboRule(hintName, useRuleParameters, false));
+ break;
+ case "no_use_cbo_rule":
+ List<String> noUseRuleParameters = new ArrayList<String>();
+ for (HintAssignmentContext kv : hintStatement.parameters) {
+ String parameterName = visitIdentifierOrText(kv.key);
+ noUseRuleParameters.add(parameterName);
+ }
+ hints.add(new SelectHintUseCboRule(hintName, noUseRuleParameters, true));
+ break;
+ case "use_mv":
+ List<String> useIndexParameters = new ArrayList<String>();
+ for (HintAssignmentContext kv : hintStatement.parameters) {
+ String parameterName = visitIdentifierOrText(kv.key);
+ if (kv.key != null) {
+ useIndexParameters.add(parameterName);
+ }
+ }
+ hints.add(new SelectHintUseMv(hintName, useIndexParameters, true));
+ break;
+ case "no_use_mv":
+ List<String> noUseIndexParameters = new ArrayList<String>();
+ for (HintAssignmentContext kv : hintStatement.parameters) {
+ String parameterName = visitIdentifierOrText(kv.key);
+ if (kv.key != null) {
+ noUseIndexParameters.add(parameterName);
+ }
+ }
+ hints.add(new SelectHintUseMv(hintName, noUseIndexParameters, false));
break;
default:
break;
}
}
}
- return new LogicalSelectHint<>(hints, logicalPlan);
+ return new LogicalSelectHint<>(hints.build(), logicalPlan);
}
@Override
diff --git a/fe/fe-core/src/main/java/org/apache/doris/nereids/processor/pre/PullUpSubqueryAliasToCTE.java b/fe/fe-core/src/main/java/org/apache/doris/nereids/processor/pre/PullUpSubqueryAliasToCTE.java
index 8e8889f5e62..31a205d5ed5 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/nereids/processor/pre/PullUpSubqueryAliasToCTE.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/nereids/processor/pre/PullUpSubqueryAliasToCTE.java
@@ -59,7 +59,7 @@ public class PullUpSubqueryAliasToCTE extends PlanPreprocessor {
public Plan visitLogicalSubQueryAlias(LogicalSubQueryAlias<? extends Plan> alias,
StatementContext context) {
if (alias.child() instanceof LogicalSelectHint
- && ((LogicalSelectHint) alias.child()).isIncludeLeading()) {
+ && ((LogicalSelectHint) alias.child()).isIncludeHint("Leading")) {
aliasQueries.add((LogicalSubQueryAlias<Plan>) alias);
List<String> tableName = new ArrayList<>();
tableName.add(alias.getAlias());
diff --git a/fe/fe-core/src/main/java/org/apache/doris/nereids/properties/SelectHintUseCboRule.java b/fe/fe-core/src/main/java/org/apache/doris/nereids/properties/SelectHintUseCboRule.java
new file mode 100644
index 00000000000..47c1ef9dcd7
--- /dev/null
+++ b/fe/fe-core/src/main/java/org/apache/doris/nereids/properties/SelectHintUseCboRule.java
@@ -0,0 +1,53 @@
+// Licensed to the Apache Software Foundation (ASF) under one
+// or more contributor license agreements. See the NOTICE file
+// distributed with this work for additional information
+// regarding copyright ownership. The ASF licenses this file
+// to you under the Apache License, Version 2.0 (the
+// "License"); you may not use this file except in compliance
+// with the License. You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing,
+// software distributed under the License is distributed on an
+// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+// KIND, either express or implied. See the License for the
+// specific language governing permissions and limitations
+// under the License.
+
+package org.apache.doris.nereids.properties;
+
+import java.util.List;
+
+/**
+ * select hint CostBasedRule.
+ */
+public class SelectHintUseCboRule extends SelectHint {
+ private final List<String> parameters;
+
+ private final boolean isNotUseCboRule;
+
+ public SelectHintUseCboRule(String hintName, List<String> parameters, boolean isNotUseCboRule) {
+ super(hintName);
+ this.parameters = parameters;
+ this.isNotUseCboRule = isNotUseCboRule;
+ }
+
+ public List<String> getParameters() {
+ return parameters;
+ }
+
+ public boolean isNotUseCboRule() {
+ return isNotUseCboRule;
+ }
+
+ @Override
+ public String getHintName() {
+ return super.getHintName();
+ }
+
+ @Override
+ public String toString() {
+ return super.getHintName();
+ }
+}
diff --git a/fe/fe-core/src/main/java/org/apache/doris/nereids/properties/SelectHintUseMv.java b/fe/fe-core/src/main/java/org/apache/doris/nereids/properties/SelectHintUseMv.java
new file mode 100644
index 00000000000..35ce25fb4f4
--- /dev/null
+++ b/fe/fe-core/src/main/java/org/apache/doris/nereids/properties/SelectHintUseMv.java
@@ -0,0 +1,53 @@
+// Licensed to the Apache Software Foundation (ASF) under one
+// or more contributor license agreements. See the NOTICE file
+// distributed with this work for additional information
+// regarding copyright ownership. The ASF licenses this file
+// to you under the Apache License, Version 2.0 (the
+// "License"); you may not use this file except in compliance
+// with the License. You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing,
+// software distributed under the License is distributed on an
+// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+// KIND, either express or implied. See the License for the
+// specific language governing permissions and limitations
+// under the License.
+
+package org.apache.doris.nereids.properties;
+
+import java.util.List;
+
+/**
+ * select hint UseMv.
+ */
+public class SelectHintUseMv extends SelectHint {
+ private final List<String> parameters;
+
+ private final boolean isUseMv;
+
+ public SelectHintUseMv(String hintName, List<String> parameters, boolean isUseMv) {
+ super(hintName);
+ this.parameters = parameters;
+ this.isUseMv = isUseMv;
+ }
+
+ public List<String> getParameters() {
+ return parameters;
+ }
+
+ public boolean isUseMv() {
+ return isUseMv;
+ }
+
+ @Override
+ public String getHintName() {
+ return super.getHintName();
+ }
+
+ @Override
+ public String toString() {
+ return super.getHintName();
+ }
+}
diff --git a/fe/fe-core/src/main/java/org/apache/doris/nereids/rules/analysis/AnalyzeCTE.java b/fe/fe-core/src/main/java/org/apache/doris/nereids/rules/analysis/AnalyzeCTE.java
index 0fe083c1e93..129b0860a74 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/nereids/rules/analysis/AnalyzeCTE.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/nereids/rules/analysis/AnalyzeCTE.java
@@ -72,6 +72,7 @@ public class AnalyzeCTE extends OneAnalysisRuleFactory {
CascadesContext outerCascadesCtx = CascadesContext.newContextWithCteContext(
ctx.cascadesContext, logicalCTE.child(), result.first);
outerCascadesCtx.newAnalyzer().analyze();
+ ctx.cascadesContext.setLeadingDisableJoinReorder(outerCascadesCtx.isLeadingDisableJoinReorder());
Plan root = outerCascadesCtx.getRewritePlan();
// should construct anchor from back to front, because the cte behind depends on the front
for (int i = result.second.size() - 1; i >= 0; i--) {
diff --git a/fe/fe-core/src/main/java/org/apache/doris/nereids/rules/analysis/EliminateLogicalSelectHint.java b/fe/fe-core/src/main/java/org/apache/doris/nereids/rules/analysis/EliminateLogicalSelectHint.java
index ac41323f5bc..13eee57637b 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/nereids/rules/analysis/EliminateLogicalSelectHint.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/nereids/rules/analysis/EliminateLogicalSelectHint.java
@@ -26,9 +26,13 @@ import org.apache.doris.nereids.exceptions.AnalysisException;
import org.apache.doris.nereids.hint.Hint;
import org.apache.doris.nereids.hint.LeadingHint;
import org.apache.doris.nereids.hint.OrderedHint;
+import org.apache.doris.nereids.hint.UseCboRuleHint;
+import org.apache.doris.nereids.hint.UseMvHint;
import org.apache.doris.nereids.properties.SelectHint;
import org.apache.doris.nereids.properties.SelectHintLeading;
import org.apache.doris.nereids.properties.SelectHintSetVar;
+import org.apache.doris.nereids.properties.SelectHintUseCboRule;
+import org.apache.doris.nereids.properties.SelectHintUseMv;
import org.apache.doris.nereids.rules.Rule;
import org.apache.doris.nereids.rules.RuleType;
import org.apache.doris.nereids.rules.rewrite.OneRewriteRuleFactory;
@@ -41,7 +45,6 @@ import org.apache.doris.qe.VariableMgr;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import java.util.Map;
import java.util.Map.Entry;
import java.util.Optional;
@@ -55,10 +58,10 @@ public class EliminateLogicalSelectHint extends OneRewriteRuleFactory {
public Rule build() {
return logicalSelectHint().thenApply(ctx -> {
LogicalSelectHint<Plan> selectHintPlan = ctx.root;
- for (Entry<String, SelectHint> hint : selectHintPlan.getHints().entrySet()) {
- String hintName = hint.getKey();
+ for (SelectHint hint : selectHintPlan.getHints()) {
+ String hintName = hint.getHintName();
if (hintName.equalsIgnoreCase("SET_VAR")) {
- setVar((SelectHintSetVar) hint.getValue(), ctx.statementContext);
+ setVar((SelectHintSetVar) hint, ctx.statementContext);
} else if (hintName.equalsIgnoreCase("ORDERED")) {
try {
ctx.cascadesContext.getConnectContext().getSessionVariable()
@@ -71,10 +74,16 @@ public class EliminateLogicalSelectHint extends OneRewriteRuleFactory {
ctx.cascadesContext.getHintMap().put("Ordered", ordered);
ctx.statementContext.addHint(ordered);
} else if (hintName.equalsIgnoreCase("LEADING")) {
- extractLeading((SelectHintLeading) hint.getValue(), ctx.cascadesContext,
- ctx.statementContext, selectHintPlan.getHints());
+ extractLeading((SelectHintLeading) hint, ctx.cascadesContext,
+ ctx.statementContext, selectHintPlan);
+ } else if (hintName.equalsIgnoreCase("USE_CBO_RULE")) {
+ extractRule((SelectHintUseCboRule) hint, ctx.statementContext);
+ } else if (hintName.equalsIgnoreCase("USE_MV")) {
+ extractMv((SelectHintUseMv) hint, ConnectContext.get().getStatementContext());
+ } else if (hintName.equalsIgnoreCase("NO_USE_MV")) {
+ extractMv((SelectHintUseMv) hint, ConnectContext.get().getStatementContext());
} else {
- logger.warn("Can not process select hint '{}' and skip it", hint.getKey());
+ logger.warn("Can not process select hint '{}' and skip it", hint.getHintName());
}
}
return selectHintPlan.child();
@@ -112,7 +121,7 @@ public class EliminateLogicalSelectHint extends OneRewriteRuleFactory {
}
private void extractLeading(SelectHintLeading selectHint, CascadesContext context,
- StatementContext statementContext, Map<String, SelectHint> hints) {
+ StatementContext statementContext, LogicalSelectHint<Plan> selectHintPlan) {
LeadingHint hint = new LeadingHint("Leading", selectHint.getParameters(), selectHint.toString());
if (context.getHintMap().get("Leading") != null) {
hint.setStatus(Hint.HintStatus.SYNTAX_ERROR);
@@ -135,7 +144,8 @@ public class EliminateLogicalSelectHint extends OneRewriteRuleFactory {
if (!hint.isSyntaxError()) {
hint.setStatus(Hint.HintStatus.SUCCESS);
}
- if (hints.get("ordered") != null || ConnectContext.get().getSessionVariable().isDisableJoinReorder()
+ if (selectHintPlan.isIncludeHint("Ordered")
+ || ConnectContext.get().getSessionVariable().isDisableJoinReorder()
|| context.isLeadingDisableJoinReorder()) {
context.setLeadingJoin(false);
hint.setStatus(Hint.HintStatus.UNUSED);
@@ -146,4 +156,27 @@ public class EliminateLogicalSelectHint extends OneRewriteRuleFactory {
assert (context != null);
}
+ private void extractRule(SelectHintUseCboRule selectHint, StatementContext statementContext) {
+ // rule hint need added to statementContext only cause it's set in all scopes
+ for (String parameter : selectHint.getParameters()) {
+ UseCboRuleHint hint = new UseCboRuleHint(parameter, selectHint.isNotUseCboRule());
+ statementContext.addHint(hint);
+ }
+ }
+
+ private void extractMv(SelectHintUseMv selectHint, StatementContext statementContext) {
+ boolean isAllMv = selectHint.getParameters().isEmpty();
+ UseMvHint useMvHint = new UseMvHint(selectHint.getHintName(), selectHint.getParameters(),
+ selectHint.isUseMv(), isAllMv);
+ for (Hint hint : statementContext.getHints()) {
+ if (hint.getHintName().equals(selectHint.getHintName())) {
+ hint.setStatus(Hint.HintStatus.SYNTAX_ERROR);
+ hint.setErrorMessage("only one " + selectHint.getHintName() + " hint is allowed");
+ useMvHint.setStatus(Hint.HintStatus.SYNTAX_ERROR);
+ useMvHint.setErrorMessage("only one " + selectHint.getHintName() + " hint is allowed");
+ }
+ }
+ statementContext.addHint(useMvHint);
+ }
+
}
diff --git a/fe/fe-core/src/main/java/org/apache/doris/nereids/rules/rewrite/mv/AbstractSelectMaterializedIndexRule.java b/fe/fe-core/src/main/java/org/apache/doris/nereids/rules/rewrite/mv/AbstractSelectMaterializedIndexRule.java
index f1b2d1233cf..13c0600689f 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/nereids/rules/rewrite/mv/AbstractSelectMaterializedIndexRule.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/nereids/rules/rewrite/mv/AbstractSelectMaterializedIndexRule.java
@@ -266,7 +266,7 @@ public abstract class AbstractSelectMaterializedIndexRule {
.thenComparing(rid -> (Long) rid))
.collect(Collectors.toList());
- return sortedIndexIds.get(0);
+ return table.getBestMvIdWithHint(sortedIndexIds);
}
protected static List<MaterializedIndex> matchPrefixMost(
diff --git a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/logical/LogicalSelectHint.java b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/logical/LogicalSelectHint.java
index 127889ea7ed..a33e2194131 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/logical/LogicalSelectHint.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/logical/LogicalSelectHint.java
@@ -29,10 +29,8 @@ import org.apache.doris.nereids.trees.plans.visitor.PlanVisitor;
import com.google.common.base.Preconditions;
import com.google.common.collect.ImmutableList;
-import com.google.common.collect.ImmutableMap;
import java.util.List;
-import java.util.Map;
import java.util.Objects;
import java.util.Optional;
import java.util.stream.Collectors;
@@ -44,9 +42,9 @@ import java.util.stream.Collectors;
public class LogicalSelectHint<CHILD_TYPE extends Plan> extends LogicalUnary<CHILD_TYPE>
implements BlockFuncDepsPropagation {
- private final Map<String, SelectHint> hints;
+ private final ImmutableList<SelectHint> hints;
- public LogicalSelectHint(Map<String, SelectHint> hints, CHILD_TYPE child) {
+ public LogicalSelectHint(ImmutableList<SelectHint> hints, CHILD_TYPE child) {
this(hints, Optional.empty(), Optional.empty(), child);
}
@@ -57,19 +55,29 @@ public class LogicalSelectHint<CHILD_TYPE extends Plan> extends LogicalUnary<CHI
* @param logicalProperties logicalProperties is use for compute output
* @param child child plan
*/
- public LogicalSelectHint(Map<String, SelectHint> hints,
+ public LogicalSelectHint(ImmutableList<SelectHint> hints,
Optional<GroupExpression> groupExpression,
Optional<LogicalProperties> logicalProperties, CHILD_TYPE child) {
super(PlanType.LOGICAL_SELECT_HINT, groupExpression, logicalProperties, child);
- this.hints = ImmutableMap.copyOf(Objects.requireNonNull(hints, "hints can not be null"));
+ this.hints = ImmutableList.copyOf(Objects.requireNonNull(hints, "hints can not be null"));
}
- public Map<String, SelectHint> getHints() {
+ public List<SelectHint> getHints() {
return hints;
}
- public boolean isIncludeLeading() {
- return hints.containsKey("leading");
+ /**
+ * check if current select hint include some hint
+ * @param hintName hint name
+ * @return boolean which indicate have hint
+ */
+ public boolean isIncludeHint(String hintName) {
+ for (SelectHint hint : hints) {
+ if (hint.getHintName().equalsIgnoreCase(hintName)) {
+ return true;
+ }
+ }
+ return false;
}
@Override
@@ -107,9 +115,9 @@ public class LogicalSelectHint<CHILD_TYPE extends Plan> extends LogicalUnary<CHI
@Override
public String toString() {
- String hintStr = this.hints.entrySet()
+ String hintStr = this.hints
.stream()
- .map(entry -> entry.getValue().toString())
+ .map(hint -> hint.toString())
.collect(Collectors.joining(", "));
return "LogicalSelectHint (" + hintStr + ")";
}
diff --git a/fe/fe-core/src/test/java/org/apache/doris/nereids/jobs/joinorder/joinhint/DistributeHintTest.java b/fe/fe-core/src/test/java/org/apache/doris/nereids/jobs/joinorder/joinhint/DistributeHintTest.java
index 0b2ed8069ad..f96fe7e918c 100644
--- a/fe/fe-core/src/test/java/org/apache/doris/nereids/jobs/joinorder/joinhint/DistributeHintTest.java
+++ b/fe/fe-core/src/test/java/org/apache/doris/nereids/jobs/joinorder/joinhint/DistributeHintTest.java
@@ -28,13 +28,12 @@ import org.apache.doris.nereids.util.HyperGraphBuilder;
import org.apache.doris.nereids.util.MemoTestUtils;
import org.apache.doris.nereids.util.PlanChecker;
-import com.google.common.collect.Maps;
+import com.google.common.collect.ImmutableList;
import org.junit.jupiter.api.Test;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
-import java.util.Map;
import java.util.Set;
public class DistributeHintTest extends TPCHTestBase {
@@ -85,15 +84,15 @@ public class DistributeHintTest extends TPCHTestBase {
}
private Plan generateLeadingHintPlan(int tableNum, Plan childPlan) {
- Map<String, SelectHint> hints = Maps.newLinkedHashMap();
+ ImmutableList.Builder<SelectHint> hints = ImmutableList.builder();
List<String> leadingParameters = new ArrayList<String>();
for (int i = 0; i < tableNum; i++) {
leadingParameters.add(String.valueOf(i));
}
Collections.shuffle(leadingParameters);
System.out.println("LeadingHint: " + leadingParameters.toString());
- hints.put("leading", new SelectHintLeading("leading", leadingParameters));
- return new LogicalSelectHint<>(hints, childPlan);
+ hints.add(new SelectHintLeading("Leading", leadingParameters));
+ return new LogicalSelectHint<>(hints.build(), childPlan);
}
private void randomTest(int tableNum, int edgeNum, boolean withJoinHint, boolean withLeading) {
diff --git a/fe/fe-core/src/test/java/org/apache/doris/nereids/rules/analysis/AnalyzeCTETest.java b/fe/fe-core/src/test/java/org/apache/doris/nereids/rules/analysis/AnalyzeCTETest.java
index abe82c858d4..a91c0dd4712 100644
--- a/fe/fe-core/src/test/java/org/apache/doris/nereids/rules/analysis/AnalyzeCTETest.java
+++ b/fe/fe-core/src/test/java/org/apache/doris/nereids/rules/analysis/AnalyzeCTETest.java
@@ -68,6 +68,11 @@ public class AnalyzeCTETest extends TestWithFeService implements MemoPatternMatc
+ "cte2 AS (SELECT sk FROM cte1 WHERE sk < 3)"
+ "SELECT * FROM cte1 JOIN cte2 ON cte1.sk = cte2.sk";
+ private final String cteLeadingJoin = "WITH cte1 AS (SELECT /*+ leading(supplier customer) */ s_suppkey AS sk "
+ + "FROM supplier join customer on c_nation = s_nation), "
+ + "cte2 AS (SELECT sk FROM cte1 WHERE sk < 3)"
+ + "SELECT /*+ leading(cte2 cte1) */ * FROM cte1 JOIN cte2 ON cte1.sk = cte2.sk";
+
private final String cteReferToAnotherOne = "WITH V1 AS (SELECT s_suppkey FROM supplier), "
+ "V2 AS (SELECT s_suppkey FROM V1)"
+ "SELECT * FROM V2";
@@ -128,6 +133,15 @@ public class AnalyzeCTETest extends TestWithFeService implements MemoPatternMatc
}
}
+ @Test
+ public void testLeadingCte() throws Exception {
+ StatementScopeIdGenerator.clear();
+ StatementContext statementContext = MemoTestUtils.createStatementContext(connectContext, cteLeadingJoin);
+ NereidsPlanner planner = new NereidsPlanner(statementContext);
+ planner.planWithLock(parser.parseSingle(cteLeadingJoin), PhysicalProperties.ANY);
+ Assertions.assertTrue(planner.getCascadesContext().isLeadingDisableJoinReorder());
+ }
+
@Test
public void testCTEInHavingAndSubquery() {
diff --git a/regression-test/data/nereids_hint_tpcds_p0/shape/query30.out b/regression-test/data/nereids_hint_tpcds_p0/shape/query30.out
index 14332a7762c..be41df2b567 100644
--- a/regression-test/data/nereids_hint_tpcds_p0/shape/query30.out
+++ b/regression-test/data/nereids_hint_tpcds_p0/shape/query30.out
@@ -31,13 +31,14 @@ PhysicalCteAnchor ( cteId=CTEId#0 )
------------------PhysicalDistribute[DistributionSpecHash]
--------------------PhysicalCteConsumer ( cteId=CTEId#0 ) apply RFs: RF3 RF4
------------------PhysicalDistribute[DistributionSpecHash]
---------------------hashJoin[INNER_JOIN] hashCondition=((customer_address.ca_address_sk = customer.c_current_addr_sk)) otherCondition=() build RFs:RF2 ca_address_sk->[c_current_addr_sk]
-----------------------PhysicalProject
-------------------------PhysicalOlapScan[customer] apply RFs: RF2
-----------------------PhysicalDistribute[DistributionSpecReplicated]
+--------------------PhysicalProject
+----------------------hashJoin[INNER_JOIN] hashCondition=((customer_address.ca_address_sk = customer.c_current_addr_sk)) otherCondition=() build RFs:RF2 ca_address_sk->[c_current_addr_sk]
------------------------PhysicalProject
---------------------------filter((customer_address.ca_state = 'AR'))
-----------------------------PhysicalOlapScan[customer_address]
+--------------------------PhysicalOlapScan[customer] apply RFs: RF2
+------------------------PhysicalDistribute[DistributionSpecReplicated]
+--------------------------PhysicalProject
+----------------------------filter((customer_address.ca_state = 'AR'))
+------------------------------PhysicalOlapScan[customer_address]
--------------PhysicalDistribute[DistributionSpecReplicated]
----------------hashAgg[GLOBAL]
------------------PhysicalDistribute[DistributionSpecHash]
diff --git a/regression-test/data/nereids_hint_tpcds_p0/shape/query64.out b/regression-test/data/nereids_hint_tpcds_p0/shape/query64.out
index ae4207e7263..aa57e97704f 100644
--- a/regression-test/data/nereids_hint_tpcds_p0/shape/query64.out
+++ b/regression-test/data/nereids_hint_tpcds_p0/shape/query64.out
@@ -4,48 +4,48 @@ PhysicalCteAnchor ( cteId=CTEId#1 )
--PhysicalCteProducer ( cteId=CTEId#1 )
----hashAgg[GLOBAL]
------hashAgg[LOCAL]
---------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_promo_sk = promotion.p_promo_sk)) otherCondition=() build RFs:RF20 p_promo_sk->[ss_promo_sk]
-----------hashJoin[INNER_JOIN] hashCondition=((customer.c_current_addr_sk = ad2.ca_address_sk)) otherCondition=() build RFs:RF19 ca_address_sk->[c_current_addr_sk]
+--------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_item_sk = cs_ui.cs_item_sk)) otherCondition=() build RFs:RF20 cs_item_sk->[i_item_sk,sr_item_sk,ss_item_sk]
+----------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_promo_sk = promotion.p_promo_sk)) otherCondition=() build RFs:RF19 p_promo_sk->[ss_promo_sk]
------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_store_sk = store.s_store_sk)) otherCondition=() build RFs:RF18 s_store_sk->[ss_store_sk]
---------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_item_sk = store_returns.sr_item_sk) and (store_sales.ss_ticket_number = store_returns.sr_ticket_number)) otherCondition=() build RFs:RF15 sr_item_sk->[ss_item_sk];RF16 sr_item_sk->[cr_item_sk,cs_item_sk,i_item_sk];RF17 sr_ticket_number->[ss_ticket_number]
-----------------hashJoin[INNER_JOIN] hashCondition=((customer.c_first_shipto_date_sk = d3.d_date_sk)) otherCondition=() build RFs:RF14 d_date_sk->[c_first_shipto_date_sk]
-------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_addr_sk = ad1.ca_address_sk)) otherCondition=() build RFs:RF13 ca_address_sk->[ss_addr_sk]
---------------------hashJoin[INNER_JOIN] hashCondition=((customer.c_current_hdemo_sk = hd2.hd_demo_sk)) otherCondition=() build RFs:RF12 hd_demo_sk->[c_current_hdemo_sk]
-----------------------hashJoin[INNER_JOIN] hashCondition=((customer.c_first_sales_date_sk = d2.d_date_sk)) otherCondition=() build RFs:RF11 d_date_sk->[c_first_sales_date_sk]
-------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_hdemo_sk = hd1.hd_demo_sk)) otherCondition=() build RFs:RF10 hd_demo_sk->[ss_hdemo_sk]
---------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_item_sk = item.i_item_sk)) otherCondition=() build RFs:RF9 i_item_sk->[cr_item_sk,cs_item_sk,ss_item_sk]
-----------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_sold_date_sk = d1.d_date_sk)) otherCondition=() build RFs:RF8 d_date_sk->[ss_sold_date_sk]
-------------------------------hashJoin[INNER_JOIN] hashCondition=((customer.c_current_cdemo_sk = cd2.cd_demo_sk)) otherCondition=(( not (cd_marital_status = cd_marital_status))) build RFs:RF7 cd_demo_sk->[c_current_cdemo_sk]
---------------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_item_sk = cs_ui.cs_item_sk)) otherCondition=() build RFs:RF6 cs_item_sk->[ss_item_sk]
-----------------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_cdemo_sk = cd1.cd_demo_sk)) otherCondition=() build RFs:RF5 cd_demo_sk->[ss_cdemo_sk]
-------------------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_customer_sk = customer.c_customer_sk)) otherCondition=() build RFs:RF4 c_customer_sk->[ss_customer_sk]
---------------------------------------PhysicalOlapScan[store_sales] apply RFs: RF4 RF5 RF6 RF8 RF9 RF10 RF13 RF15 RF17 RF18 RF20
---------------------------------------PhysicalOlapScan[customer] apply RFs: RF7 RF11 RF12 RF14 RF19
-------------------------------------PhysicalOlapScan[customer_demographics]
-----------------------------------filter((sale > (2 * refund)))
-------------------------------------hashAgg[GLOBAL]
---------------------------------------hashAgg[LOCAL]
-----------------------------------------hashJoin[INNER_JOIN] hashCondition=((catalog_sales.cs_item_sk = catalog_returns.cr_item_sk) and (catalog_sales.cs_order_number = catalog_returns.cr_order_number)) otherCondition=() build RFs:RF2 cr_item_sk->[cs_item_sk];RF3 cr_order_number->[cs_order_number]
-------------------------------------------PhysicalOlapScan[catalog_sales] apply RFs: RF2 RF3 RF9 RF16
-------------------------------------------PhysicalOlapScan[catalog_returns] apply RFs: RF9 RF16
---------------------------------PhysicalOlapScan[customer_demographics]
-------------------------------filter(d_year IN (1999, 2000))
+--------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_sold_date_sk = d1.d_date_sk)) otherCondition=() build RFs:RF17 d_date_sk->[ss_sold_date_sk]
+----------------hashJoin[INNER_JOIN] hashCondition=((hd2.hd_income_band_sk = ib2.ib_income_band_sk)) otherCondition=() build RFs:RF16 ib_income_band_sk->[hd_income_band_sk]
+------------------hashJoin[INNER_JOIN] hashCondition=((customer.c_current_addr_sk = ad2.ca_address_sk)) otherCondition=() build RFs:RF15 ca_address_sk->[c_current_addr_sk]
+--------------------hashJoin[INNER_JOIN] hashCondition=((customer.c_current_hdemo_sk = hd2.hd_demo_sk)) otherCondition=() build RFs:RF14 hd_demo_sk->[c_current_hdemo_sk]
+----------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_addr_sk = ad1.ca_address_sk)) otherCondition=() build RFs:RF13 ca_address_sk->[ss_addr_sk]
+------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_item_sk = store_returns.sr_item_sk) and (store_sales.ss_ticket_number = store_returns.sr_ticket_number)) otherCondition=() build RFs:RF10 sr_item_sk->[ss_item_sk];RF11 sr_item_sk->[i_item_sk];RF12 sr_ticket_number->[ss_ticket_number]
+--------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_hdemo_sk = hd1.hd_demo_sk)) otherCondition=() build RFs:RF9 hd_demo_sk->[ss_hdemo_sk]
+----------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_item_sk = item.i_item_sk)) otherCondition=() build RFs:RF8 i_item_sk->[ss_item_sk]
+------------------------------hashJoin[INNER_JOIN] hashCondition=((customer.c_first_shipto_date_sk = d3.d_date_sk)) otherCondition=() build RFs:RF7 d_date_sk->[c_first_shipto_date_sk]
+--------------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_cdemo_sk = cd1.cd_demo_sk)) otherCondition=(( not (cd_marital_status = cd_marital_status))) build RFs:RF6 cd_demo_sk->[ss_cdemo_sk]
+----------------------------------hashJoin[INNER_JOIN] hashCondition=((store_sales.ss_customer_sk = customer.c_customer_sk)) otherCondition=() build RFs:RF5 c_customer_sk->[ss_customer_sk]
+------------------------------------PhysicalOlapScan[store_sales] apply RFs: RF5 RF6 RF8 RF9 RF10 RF12 RF13 RF17 RF18 RF19 RF20
+------------------------------------hashJoin[INNER_JOIN] hashCondition=((customer.c_current_cdemo_sk = cd2.cd_demo_sk)) otherCondition=() build RFs:RF4 cd_demo_sk->[c_current_cdemo_sk]
+--------------------------------------hashJoin[INNER_JOIN] hashCondition=((customer.c_first_sales_date_sk = d2.d_date_sk)) otherCondition=() build RFs:RF3 d_date_sk->[c_first_sales_date_sk]
+----------------------------------------PhysicalOlapScan[customer] apply RFs: RF3 RF4 RF7 RF14 RF15
+----------------------------------------PhysicalOlapScan[date_dim]
+--------------------------------------PhysicalOlapScan[customer_demographics]
+----------------------------------PhysicalOlapScan[customer_demographics]
--------------------------------PhysicalOlapScan[date_dim]
-----------------------------filter((item.i_current_price <= 58.00) and (item.i_current_price >= 49.00) and i_color IN ('blush', 'lace', 'lawn', 'misty', 'orange', 'pink'))
-------------------------------PhysicalOlapScan[item] apply RFs: RF16
---------------------------hashJoin[INNER_JOIN] hashCondition=((hd1.hd_income_band_sk = ib1.ib_income_band_sk)) otherCondition=() build RFs:RF1 ib_income_band_sk->[hd_income_band_sk]
-----------------------------PhysicalOlapScan[household_demographics] apply RFs: RF1
-----------------------------PhysicalOlapScan[income_band]
-------------------------PhysicalOlapScan[date_dim]
-----------------------hashJoin[INNER_JOIN] hashCondition=((hd2.hd_income_band_sk = ib2.ib_income_band_sk)) otherCondition=() build RFs:RF0 ib_income_band_sk->[hd_income_band_sk]
-------------------------PhysicalOlapScan[household_demographics] apply RFs: RF0
-------------------------PhysicalOlapScan[income_band]
+------------------------------filter((item.i_current_price <= 58.00) and (item.i_current_price >= 49.00) and i_color IN ('blush', 'lace', 'lawn', 'misty', 'orange', 'pink'))
+--------------------------------PhysicalOlapScan[item] apply RFs: RF11 RF20
+----------------------------hashJoin[INNER_JOIN] hashCondition=((hd1.hd_income_band_sk = ib1.ib_income_band_sk)) otherCondition=() build RFs:RF2 ib_income_band_sk->[hd_income_band_sk]
+------------------------------PhysicalOlapScan[household_demographics] apply RFs: RF2
+------------------------------PhysicalOlapScan[income_band]
+--------------------------PhysicalOlapScan[store_returns] apply RFs: RF20
+------------------------PhysicalOlapScan[customer_address]
+----------------------PhysicalOlapScan[household_demographics] apply RFs: RF16
--------------------PhysicalOlapScan[customer_address]
+------------------PhysicalOlapScan[income_band]
+----------------filter(d_year IN (1999, 2000))
------------------PhysicalOlapScan[date_dim]
-----------------PhysicalOlapScan[store_returns]
--------------PhysicalOlapScan[store]
-------------PhysicalOlapScan[customer_address]
-----------PhysicalOlapScan[promotion]
+------------PhysicalOlapScan[promotion]
+----------filter((sale > (2 * refund)))
+------------hashAgg[GLOBAL]
+--------------hashAgg[LOCAL]
+----------------hashJoin[INNER_JOIN] hashCondition=((catalog_sales.cs_item_sk = catalog_returns.cr_item_sk) and (catalog_sales.cs_order_number = catalog_returns.cr_order_number)) otherCondition=() build RFs:RF0 cr_item_sk->[cs_item_sk];RF1 cr_order_number->[cs_order_number]
+------------------PhysicalOlapScan[catalog_sales] apply RFs: RF0 RF1
+------------------PhysicalOlapScan[catalog_returns]
--PhysicalResultSink
----PhysicalQuickSort[MERGE_SORT]
------PhysicalQuickSort[LOCAL_SORT]
@@ -56,7 +56,7 @@ PhysicalCteAnchor ( cteId=CTEId#1 )
------------PhysicalCteConsumer ( cteId=CTEId#1 )
Hint log:
-Used: leading(catalog_sales catalog_returns ) leading({ store_sales { { customer d2 } cd2 } } cd1 d3 item { hd1 ib1 } store_returns ad1 hd2 ad2 ib2 d1 store promotion cs_ui ) leading(cs1 cs2 )
-UnUsed:
+Used: leading(catalog_sales shuffle catalog_returns ) leading({ store_sales { { customer d2 } cd2 } } cd1 d3 item { hd1 ib1 } store_returns ad1 hd2 ad2 ib2 d1 store promotion cs_ui ) leading(cs1 shuffle cs2 )
+UnUsed:
SyntaxError:
diff --git a/regression-test/data/nereids_hint_tpcds_p0/shape/query81.out b/regression-test/data/nereids_hint_tpcds_p0/shape/query81.out
index 62e2e1dc402..85c1c1fc6ec 100644
--- a/regression-test/data/nereids_hint_tpcds_p0/shape/query81.out
+++ b/regression-test/data/nereids_hint_tpcds_p0/shape/query81.out
@@ -27,19 +27,19 @@ PhysicalCteAnchor ( cteId=CTEId#0 )
----------PhysicalProject
------------hashJoin[INNER_JOIN] hashCondition=((ctr1.ctr_state = ctr2.ctr_state)) otherCondition=((cast(ctr_total_return as DOUBLE) > cast((avg(cast(ctr_total_return as DECIMALV3(38, 4))) * 1.2) as DOUBLE))) build RFs:RF4 ctr_state->[ctr_state]
--------------PhysicalProject
-----------------hashJoin[INNER_JOIN] hashCondition=((ctr1.ctr_customer_sk = customer.c_customer_sk)) otherCondition=() build RFs:RF3 c_customer_sk->[ctr_customer_sk]
-------------------PhysicalDistribute[DistributionSpecHash]
---------------------PhysicalCteConsumer ( cteId=CTEId#0 ) apply RFs: RF3 RF4
+----------------hashJoin[INNER_JOIN] hashCondition=((ctr1.ctr_customer_sk = customer.c_customer_sk)) otherCondition=() build RFs:RF3 ctr_customer_sk->[c_customer_sk]
------------------PhysicalDistribute[DistributionSpecHash]
--------------------PhysicalProject
----------------------hashJoin[INNER_JOIN] hashCondition=((customer_address.ca_address_sk = customer.c_current_addr_sk)) otherCondition=() build RFs:RF2 ca_address_sk->[c_current_addr_sk]
------------------------PhysicalDistribute[DistributionSpecHash]
--------------------------PhysicalProject
-----------------------------PhysicalOlapScan[customer] apply RFs: RF2
+----------------------------PhysicalOlapScan[customer] apply RFs: RF2 RF3
------------------------PhysicalDistribute[DistributionSpecHash]
--------------------------PhysicalProject
----------------------------filter((customer_address.ca_state = 'TN'))
------------------------------PhysicalOlapScan[customer_address]
+------------------PhysicalDistribute[DistributionSpecHash]
+--------------------PhysicalCteConsumer ( cteId=CTEId#0 ) apply RFs: RF4
--------------PhysicalDistribute[DistributionSpecReplicated]
----------------hashAgg[GLOBAL]
------------------PhysicalDistribute[DistributionSpecHash]
diff --git a/regression-test/data/nereids_hint_tpcds_p0/shape/query83.out b/regression-test/data/nereids_hint_tpcds_p0/shape/query83.out
index b87ee9dbc20..7b639f77eb2 100644
--- a/regression-test/data/nereids_hint_tpcds_p0/shape/query83.out
+++ b/regression-test/data/nereids_hint_tpcds_p0/shape/query83.out
@@ -5,90 +5,91 @@ PhysicalResultSink
----PhysicalDistribute[DistributionSpecGather]
------PhysicalTopN[LOCAL_SORT]
--------PhysicalProject
-----------hashJoin[INNER_JOIN] hashCondition=((sr_items.item_id = cr_items.item_id)) otherCondition=() build RFs:RF13 item_id->[i_item_id]
+----------hashJoin[INNER_JOIN] hashCondition=((sr_items.item_id = wr_items.item_id)) otherCondition=() build RFs:RF13 item_id->[i_item_id,i_item_id]
------------PhysicalProject
---------------hashAgg[GLOBAL]
-----------------PhysicalDistribute[DistributionSpecHash]
-------------------hashAgg[LOCAL]
---------------------PhysicalProject
-----------------------hashJoin[INNER_JOIN] hashCondition=((catalog_returns.cr_item_sk = item.i_item_sk)) otherCondition=() build RFs:RF12 i_item_sk->[cr_item_sk]
-------------------------PhysicalDistribute[DistributionSpecHash]
---------------------------hashJoin[INNER_JOIN] hashCondition=((catalog_returns.cr_returned_date_sk = date_dim.d_date_sk)) otherCondition=() build RFs:RF11 d_date_sk->[cr_returned_date_sk]
+--------------hashJoin[INNER_JOIN] hashCondition=((sr_items.item_id = cr_items.item_id)) otherCondition=() build RFs:RF12 item_id->[i_item_id]
+----------------PhysicalProject
+------------------hashAgg[GLOBAL]
+--------------------PhysicalDistribute[DistributionSpecHash]
+----------------------hashAgg[LOCAL]
+------------------------PhysicalProject
+--------------------------hashJoin[INNER_JOIN] hashCondition=((store_returns.sr_returned_date_sk = date_dim.d_date_sk)) otherCondition=() build RFs:RF11 d_date_sk->[sr_returned_date_sk]
----------------------------PhysicalProject
-------------------------------PhysicalOlapScan[catalog_returns] apply RFs: RF11 RF12
+------------------------------hashJoin[INNER_JOIN] hashCondition=((store_returns.sr_item_sk = item.i_item_sk)) otherCondition=() build RFs:RF10 i_item_sk->[sr_item_sk]
+--------------------------------PhysicalProject
+----------------------------------PhysicalOlapScan[store_returns] apply RFs: RF10 RF11
+--------------------------------PhysicalDistribute[DistributionSpecReplicated]
+----------------------------------PhysicalProject
+------------------------------------PhysicalOlapScan[item] apply RFs: RF12 RF13
----------------------------PhysicalDistribute[DistributionSpecReplicated]
------------------------------PhysicalProject
---------------------------------hashJoin[LEFT_SEMI_JOIN] hashCondition=((date_dim.d_date = date_dim.d_date)) otherCondition=() build RFs:RF10 d_date->[d_date]
+--------------------------------hashJoin[LEFT_SEMI_JOIN] hashCondition=((date_dim.d_date = date_dim.d_date)) otherCondition=() build RFs:RF9 d_date->[d_date]
----------------------------------PhysicalProject
-------------------------------------PhysicalOlapScan[date_dim] apply RFs: RF10
+------------------------------------PhysicalOlapScan[date_dim] apply RFs: RF9
----------------------------------PhysicalDistribute[DistributionSpecReplicated]
------------------------------------PhysicalProject
---------------------------------------hashJoin[LEFT_SEMI_JOIN] hashCondition=((date_dim.d_week_seq = date_dim.d_week_seq)) otherCondition=() build RFs:RF9 d_week_seq->[d_week_seq]
+--------------------------------------hashJoin[LEFT_SEMI_JOIN] hashCondition=((date_dim.d_week_seq = date_dim.d_week_seq)) otherCondition=() build RFs:RF8 d_week_seq->[d_week_seq]
----------------------------------------PhysicalProject
-------------------------------------------PhysicalOlapScan[date_dim] apply RFs: RF9
+------------------------------------------PhysicalOlapScan[date_dim] apply RFs: RF8
----------------------------------------PhysicalDistribute[DistributionSpecReplicated]
------------------------------------------PhysicalProject
--------------------------------------------filter(d_date IN ('2001-07-13', '2001-09-10', '2001-11-16'))
----------------------------------------------PhysicalOlapScan[date_dim]
-------------------------PhysicalDistribute[DistributionSpecHash]
---------------------------PhysicalProject
-----------------------------PhysicalOlapScan[item] apply RFs: RF13
-------------PhysicalProject
---------------hashJoin[INNER_JOIN] hashCondition=((sr_items.item_id = wr_items.item_id)) otherCondition=() build RFs:RF8 item_id->[i_item_id]
----------------PhysicalProject
------------------hashAgg[GLOBAL]
--------------------PhysicalDistribute[DistributionSpecHash]
----------------------hashAgg[LOCAL]
------------------------PhysicalProject
---------------------------hashJoin[INNER_JOIN] hashCondition=((store_returns.sr_item_sk = item.i_item_sk)) otherCondition=() build RFs:RF7 i_item_sk->[sr_item_sk]
-----------------------------PhysicalDistribute[DistributionSpecHash]
-------------------------------hashJoin[INNER_JOIN] hashCondition=((store_returns.sr_returned_date_sk = date_dim.d_date_sk)) otherCondition=() build RFs:RF6 d_date_sk->[sr_returned_date_sk]
+--------------------------hashJoin[INNER_JOIN] hashCondition=((catalog_returns.cr_returned_date_sk = date_dim.d_date_sk)) otherCondition=() build RFs:RF7 d_date_sk->[cr_returned_date_sk]
+----------------------------PhysicalProject
+------------------------------hashJoin[INNER_JOIN] hashCondition=((catalog_returns.cr_item_sk = item.i_item_sk)) otherCondition=() build RFs:RF6 i_item_sk->[cr_item_sk]
--------------------------------PhysicalProject
-----------------------------------PhysicalOlapScan[store_returns] apply RFs: RF6 RF7
+----------------------------------PhysicalOlapScan[catalog_returns] apply RFs: RF6 RF7
--------------------------------PhysicalDistribute[DistributionSpecReplicated]
----------------------------------PhysicalProject
-------------------------------------hashJoin[LEFT_SEMI_JOIN] hashCondition=((date_dim.d_date = date_dim.d_date)) otherCondition=() build RFs:RF5 d_date->[d_date]
---------------------------------------PhysicalProject
-----------------------------------------PhysicalOlapScan[date_dim] apply RFs: RF5
---------------------------------------PhysicalDistribute[DistributionSpecReplicated]
-----------------------------------------PhysicalProject
-------------------------------------------hashJoin[LEFT_SEMI_JOIN] hashCondition=((date_dim.d_week_seq = date_dim.d_week_seq)) otherCondition=() build RFs:RF4 d_week_seq->[d_week_seq]
---------------------------------------------PhysicalProject
-----------------------------------------------PhysicalOlapScan[date_dim] apply RFs: RF4
---------------------------------------------PhysicalDistribute[DistributionSpecReplicated]
-----------------------------------------------PhysicalProject
-------------------------------------------------filter(d_date IN ('2001-07-13', '2001-09-10', '2001-11-16'))
---------------------------------------------------PhysicalOlapScan[date_dim]
-----------------------------PhysicalDistribute[DistributionSpecHash]
+------------------------------------PhysicalOlapScan[item] apply RFs: RF13
+----------------------------PhysicalDistribute[DistributionSpecReplicated]
------------------------------PhysicalProject
---------------------------------PhysicalOlapScan[item] apply RFs: RF8
-----------------PhysicalProject
-------------------hashAgg[GLOBAL]
---------------------PhysicalDistribute[DistributionSpecHash]
-----------------------hashAgg[LOCAL]
-------------------------PhysicalProject
---------------------------hashJoin[INNER_JOIN] hashCondition=((web_returns.wr_item_sk = item.i_item_sk)) otherCondition=() build RFs:RF3 i_item_sk->[wr_item_sk]
-----------------------------PhysicalDistribute[DistributionSpecHash]
-------------------------------hashJoin[INNER_JOIN] hashCondition=((web_returns.wr_returned_date_sk = date_dim.d_date_sk)) otherCondition=() build RFs:RF2 d_date_sk->[wr_returned_date_sk]
---------------------------------PhysicalProject
-----------------------------------PhysicalOlapScan[web_returns] apply RFs: RF2 RF3
---------------------------------PhysicalDistribute[DistributionSpecReplicated]
+--------------------------------hashJoin[LEFT_SEMI_JOIN] hashCondition=((date_dim.d_date = date_dim.d_date)) otherCondition=() build RFs:RF5 d_date->[d_date]
----------------------------------PhysicalProject
-------------------------------------hashJoin[LEFT_SEMI_JOIN] hashCondition=((date_dim.d_date = date_dim.d_date)) otherCondition=() build RFs:RF1 d_date->[d_date]
---------------------------------------PhysicalProject
-----------------------------------------PhysicalOlapScan[date_dim] apply RFs: RF1
---------------------------------------PhysicalDistribute[DistributionSpecReplicated]
+------------------------------------PhysicalOlapScan[date_dim] apply RFs: RF5
+----------------------------------PhysicalDistribute[DistributionSpecReplicated]
+------------------------------------PhysicalProject
+--------------------------------------hashJoin[LEFT_SEMI_JOIN] hashCondition=((date_dim.d_week_seq = date_dim.d_week_seq)) otherCondition=() build RFs:RF4 d_week_seq->[d_week_seq]
----------------------------------------PhysicalProject
-------------------------------------------hashJoin[LEFT_SEMI_JOIN] hashCondition=((date_dim.d_week_seq = date_dim.d_week_seq)) otherCondition=() build RFs:RF0 d_week_seq->[d_week_seq]
---------------------------------------------PhysicalProject
-----------------------------------------------PhysicalOlapScan[date_dim] apply RFs: RF0
---------------------------------------------PhysicalDistribute[DistributionSpecReplicated]
-----------------------------------------------PhysicalProject
-------------------------------------------------filter(d_date IN ('2001-07-13', '2001-09-10', '2001-11-16'))
---------------------------------------------------PhysicalOlapScan[date_dim]
+------------------------------------------PhysicalOlapScan[date_dim] apply RFs: RF4
+----------------------------------------PhysicalDistribute[DistributionSpecReplicated]
+------------------------------------------PhysicalProject
+--------------------------------------------filter(d_date IN ('2001-07-13', '2001-09-10', '2001-11-16'))
+----------------------------------------------PhysicalOlapScan[date_dim]
+------------PhysicalProject
+--------------hashAgg[GLOBAL]
+----------------PhysicalDistribute[DistributionSpecHash]
+------------------hashAgg[LOCAL]
+--------------------PhysicalProject
+----------------------hashJoin[INNER_JOIN] hashCondition=((web_returns.wr_returned_date_sk = date_dim.d_date_sk)) otherCondition=() build RFs:RF3 d_date_sk->[wr_returned_date_sk]
+------------------------PhysicalProject
+--------------------------hashJoin[INNER_JOIN] hashCondition=((web_returns.wr_item_sk = item.i_item_sk)) otherCondition=() build RFs:RF2 i_item_sk->[wr_item_sk]
+----------------------------PhysicalDistribute[DistributionSpecHash]
+------------------------------PhysicalProject
+--------------------------------PhysicalOlapScan[web_returns] apply RFs: RF2 RF3
----------------------------PhysicalDistribute[DistributionSpecHash]
------------------------------PhysicalProject
--------------------------------PhysicalOlapScan[item]
+------------------------PhysicalDistribute[DistributionSpecReplicated]
+--------------------------PhysicalProject
+----------------------------hashJoin[LEFT_SEMI_JOIN] hashCondition=((date_dim.d_date = date_dim.d_date)) otherCondition=() build RFs:RF1 d_date->[d_date]
+------------------------------PhysicalProject
+--------------------------------PhysicalOlapScan[date_dim] apply RFs: RF1
+------------------------------PhysicalDistribute[DistributionSpecReplicated]
+--------------------------------PhysicalProject
+----------------------------------hashJoin[LEFT_SEMI_JOIN] hashCondition=((date_dim.d_week_seq = date_dim.d_week_seq)) otherCondition=() build RFs:RF0 d_week_seq->[d_week_seq]
+------------------------------------PhysicalProject
+--------------------------------------PhysicalOlapScan[date_dim] apply RFs: RF0
+------------------------------------PhysicalDistribute[DistributionSpecReplicated]
+--------------------------------------PhysicalProject
+----------------------------------------filter(d_date IN ('2001-07-13', '2001-09-10', '2001-11-16'))
+------------------------------------------PhysicalOlapScan[date_dim]
Hint log:
Used: leading(sr_items cr_items wr_items )
diff --git a/regression-test/data/nereids_p0/hint/multi_leading.out b/regression-test/data/nereids_p0/hint/multi_leading.out
index 8e12a465bf2..2659fc32911 100644
--- a/regression-test/data/nereids_p0/hint/multi_leading.out
+++ b/regression-test/data/nereids_p0/hint/multi_leading.out
@@ -1,20 +1,4 @@
-- This file is automatically generated. You should know what you did if you want to edit this
--- !sql1_1 --
-PhysicalResultSink
---hashAgg[GLOBAL]
-----PhysicalDistribute[DistributionSpecGather]
-------hashAgg[LOCAL]
---------hashJoin[INNER_JOIN] hashCondition=((cte.c1 = t1.c1)) otherCondition=()
-----------hashJoin[INNER_JOIN] hashCondition=((cte.c1 = t2.c2)) otherCondition=()
-------------filter((t2.c2 > 300))
---------------PhysicalOlapScan[t2]
-------------PhysicalDistribute[DistributionSpecHash]
---------------filter((cte.c1 > 300))
-----------------PhysicalOlapScan[t1]
-----------PhysicalDistribute[DistributionSpecHash]
-------------filter((t1.c1 > 300))
---------------PhysicalOlapScan[t1]
-
-- !sql1_2 --
PhysicalResultSink
--hashAgg[GLOBAL]
@@ -88,19 +72,6 @@ SyntaxError:
-- !sql1_res_4 --
1686
--- !sql2_1 --
-PhysicalResultSink
---hashAgg[GLOBAL]
-----PhysicalDistribute[DistributionSpecGather]
-------hashAgg[LOCAL]
---------hashJoin[INNER_JOIN] hashCondition=((alias1.c1 = t3.c3)) otherCondition=()
-----------hashJoin[INNER_JOIN] hashCondition=((t1.c1 = t2.c2)) otherCondition=()
-------------PhysicalOlapScan[t1]
-------------PhysicalDistribute[DistributionSpecHash]
---------------PhysicalOlapScan[t2]
-----------PhysicalDistribute[DistributionSpecHash]
-------------PhysicalOlapScan[t3]
-
-- !sql2_2 --
PhysicalResultSink
--hashAgg[GLOBAL]
@@ -167,25 +138,6 @@ SyntaxError:
-- !sql2_res_4 --
3103
--- !sql3_1 --
-PhysicalResultSink
---hashAgg[GLOBAL]
-----PhysicalDistribute[DistributionSpecGather]
-------hashAgg[LOCAL]
---------hashJoin[INNER_JOIN] hashCondition=((alias1.c1 = cte.c11)) otherCondition=()
-----------hashJoin[INNER_JOIN] hashCondition=((alias1.c1 = t3.c3)) otherCondition=()
-------------hashJoin[INNER_JOIN] hashCondition=((t1.c1 = t2.c2)) otherCondition=()
---------------PhysicalOlapScan[t1]
---------------PhysicalDistribute[DistributionSpecHash]
-----------------PhysicalOlapScan[t2]
-------------PhysicalDistribute[DistributionSpecHash]
---------------PhysicalOlapScan[t3]
-----------PhysicalDistribute[DistributionSpecHash]
-------------hashJoin[INNER_JOIN] hashCondition=((cte.c1 = t2.c2)) otherCondition=()
---------------PhysicalOlapScan[t1]
---------------PhysicalDistribute[DistributionSpecHash]
-----------------PhysicalOlapScan[t2]
-
-- !sql3_2 --
PhysicalResultSink
--hashAgg[GLOBAL]
@@ -270,22 +222,6 @@ SyntaxError:
-- !sql3_res_4 --
10411
--- !sql4_0 --
-PhysicalResultSink
---hashAgg[GLOBAL]
-----PhysicalDistribute[DistributionSpecGather]
-------hashAgg[LOCAL]
---------hashJoin[INNER_JOIN] hashCondition=((alias1.c1 = t3.c3)) otherCondition=()
-----------hashJoin[INNER_JOIN] hashCondition=((t1.c1 = alias2.c2)) otherCondition=()
-------------PhysicalOlapScan[t1]
-------------PhysicalDistribute[DistributionSpecHash]
---------------hashJoin[INNER_JOIN] hashCondition=((t2.c2 = t4.c4)) otherCondition=()
-----------------PhysicalOlapScan[t2]
-----------------PhysicalDistribute[DistributionSpecHash]
-------------------PhysicalOlapScan[t4]
-----------PhysicalDistribute[DistributionSpecHash]
-------------PhysicalOlapScan[t3]
-
-- !sql4_1 --
PhysicalResultSink
--hashAgg[GLOBAL]
@@ -394,51 +330,10 @@ SyntaxError:
-- !sql4_res_7 --
6224
--- !sql5_1 --
-PhysicalCteAnchor ( cteId=CTEId#0 )
---PhysicalCteProducer ( cteId=CTEId#0 )
-----PhysicalOlapScan[t1]
---PhysicalResultSink
-----PhysicalDistribute[DistributionSpecGather]
-------NestedLoopJoin[INNER_JOIN](cast(sum(c11) as DOUBLE) > (cast(0.05 as DOUBLE) * avg(c11)))
---------hashAgg[GLOBAL]
-----------PhysicalDistribute[DistributionSpecHash]
-------------hashAgg[LOCAL]
---------------PhysicalDistribute[DistributionSpecExecutionAny]
-----------------PhysicalCteConsumer ( cteId=CTEId#0 )
---------PhysicalDistribute[DistributionSpecReplicated]
-----------hashAgg[GLOBAL]
-------------PhysicalDistribute[DistributionSpecGather]
---------------hashAgg[LOCAL]
-----------------hashJoin[INNER_JOIN] hashCondition=((t1.c1 = cte.c11)) otherCondition=()
-------------------PhysicalOlapScan[t1]
-------------------PhysicalDistribute[DistributionSpecHash]
---------------------PhysicalCteConsumer ( cteId=CTEId#0 )
-
-- !sql5_2 --
-PhysicalCteAnchor ( cteId=CTEId#0 )
---PhysicalCteProducer ( cteId=CTEId#0 )
-----PhysicalOlapScan[t1]
---PhysicalResultSink
-----PhysicalDistribute[DistributionSpecGather]
-------NestedLoopJoin[INNER_JOIN](cast(sum(c11) as DOUBLE) > (cast(0.05 as DOUBLE) * avg(c11)))
---------hashAgg[GLOBAL]
-----------PhysicalDistribute[DistributionSpecHash]
-------------hashAgg[LOCAL]
---------------PhysicalDistribute[DistributionSpecExecutionAny]
-----------------PhysicalCteConsumer ( cteId=CTEId#0 )
---------PhysicalDistribute[DistributionSpecReplicated]
-----------hashAgg[GLOBAL]
-------------PhysicalDistribute[DistributionSpecGather]
---------------hashAgg[LOCAL]
-----------------hashJoin[INNER_JOIN] hashCondition=((t1.c1 = cte.c11)) otherCondition=()
-------------------PhysicalDistribute[DistributionSpecExecutionAny]
---------------------PhysicalCteConsumer ( cteId=CTEId#0 )
-------------------PhysicalDistribute[DistributionSpecReplicated]
---------------------PhysicalOlapScan[t1]
-
-Hint log:
-Used: leading(cte t1 )
-UnUsed:
-SyntaxError:
+0
+1
+3
+4
+1
diff --git a/regression-test/data/nereids_p0/hint/test_distribute.out b/regression-test/data/nereids_p0/hint/test_distribute.out
index 5379183bebe..9a167d97d28 100644
--- a/regression-test/data/nereids_p0/hint/test_distribute.out
+++ b/regression-test/data/nereids_p0/hint/test_distribute.out
@@ -1594,17 +1594,18 @@ PhysicalResultSink
--hashAgg[GLOBAL]
----PhysicalDistribute[DistributionSpecGather]
------hashAgg[LOCAL]
---------hashJoin[LEFT_SEMI_JOIN] hashCondition=((t2.c2 = t3.c3)) otherCondition=()
-----------PhysicalProject
-------------hashJoin[INNER_JOIN] hashCondition=((t1.c1 = t2.c2)) otherCondition=()
---------------PhysicalProject
-----------------PhysicalOlapScan[t1]
---------------PhysicalDistribute[DistributionSpecReplicated]
-----------------PhysicalProject
-------------------PhysicalOlapScan[t2]
-----------PhysicalDistribute[DistributionSpecHash]
+--------PhysicalProject
+----------hashJoin[LEFT_SEMI_JOIN] hashCondition=((t2.c2 = t3.c3)) otherCondition=()
------------PhysicalProject
---------------PhysicalOlapScan[t3]
+--------------hashJoin[INNER_JOIN] hashCondition=((t1.c1 = t2.c2)) otherCondition=()
+----------------PhysicalProject
+------------------PhysicalOlapScan[t1]
+----------------PhysicalDistribute[DistributionSpecReplicated]
+------------------PhysicalProject
+--------------------PhysicalOlapScan[t2]
+------------PhysicalDistribute[DistributionSpecHash]
+--------------PhysicalProject
+----------------PhysicalOlapScan[t3]
Hint log:
Used: [broadcast]_2
@@ -1616,17 +1617,18 @@ PhysicalResultSink
--hashAgg[GLOBAL]
----PhysicalDistribute[DistributionSpecGather]
------hashAgg[LOCAL]
---------hashJoin[LEFT_SEMI_JOIN] hashCondition=((t2.c2 = t3.c3)) otherCondition=()
-----------PhysicalProject
-------------hashJoin[INNER_JOIN] hashCondition=((t1.c1 = t2.c2)) otherCondition=()
---------------PhysicalProject
-----------------PhysicalOlapScan[t1]
---------------PhysicalDistribute[DistributionSpecHash]
-----------------PhysicalProject
-------------------PhysicalOlapScan[t2]
-----------PhysicalDistribute[DistributionSpecReplicated]
+--------PhysicalProject
+----------hashJoin[LEFT_SEMI_JOIN] hashCondition=((t2.c2 = t3.c3)) otherCondition=()
------------PhysicalProject
---------------PhysicalOlapScan[t3]
+--------------hashJoin[INNER_JOIN] hashCondition=((t1.c1 = t2.c2)) otherCondition=()
+----------------PhysicalProject
+------------------PhysicalOlapScan[t1]
+----------------PhysicalDistribute[DistributionSpecHash]
+------------------PhysicalProject
+--------------------PhysicalOlapScan[t2]
+------------PhysicalDistribute[DistributionSpecReplicated]
+--------------PhysicalProject
+----------------PhysicalOlapScan[t3]
Hint log:
Used: [broadcast]_2
@@ -1638,17 +1640,18 @@ PhysicalResultSink
--hashAgg[GLOBAL]
----PhysicalDistribute[DistributionSpecGather]
------hashAgg[LOCAL]
---------hashJoin[LEFT_SEMI_JOIN] hashCondition=((t2.c2 = t3.c3)) otherCondition=()
-----------PhysicalProject
-------------hashJoin[INNER_JOIN] hashCondition=((t1.c1 = t2.c2)) otherCondition=()
---------------PhysicalProject
-----------------PhysicalOlapScan[t1]
---------------PhysicalDistribute[DistributionSpecReplicated]
-----------------PhysicalProject
-------------------PhysicalOlapScan[t2]
-----------PhysicalDistribute[DistributionSpecReplicated]
+--------PhysicalProject
+----------hashJoin[LEFT_SEMI_JOIN] hashCondition=((t2.c2 = t3.c3)) otherCondition=()
------------PhysicalProject
---------------PhysicalOlapScan[t3]
+--------------hashJoin[INNER_JOIN] hashCondition=((t1.c1 = t2.c2)) otherCondition=()
+----------------PhysicalProject
+------------------PhysicalOlapScan[t1]
+----------------PhysicalDistribute[DistributionSpecReplicated]
+------------------PhysicalProject
+--------------------PhysicalOlapScan[t2]
+------------PhysicalDistribute[DistributionSpecReplicated]
+--------------PhysicalProject
+----------------PhysicalOlapScan[t3]
Hint log:
Used: [broadcast]_2
@@ -1660,17 +1663,18 @@ PhysicalResultSink
--hashAgg[GLOBAL]
----PhysicalDistribute[DistributionSpecGather]
------hashAgg[LOCAL]
---------hashJoin[LEFT_SEMI_JOIN] hashCondition=((t2.c2 = t3.c3)) otherCondition=()
-----------PhysicalProject
-------------hashJoin[INNER_JOIN] hashCondition=((t1.c1 = t2.c2)) otherCondition=()
---------------PhysicalProject
-----------------PhysicalOlapScan[t1]
---------------PhysicalDistribute[DistributionSpecHash]
-----------------PhysicalProject
-------------------PhysicalOlapScan[t2]
-----------PhysicalDistribute[DistributionSpecHash]
+--------PhysicalProject
+----------hashJoin[LEFT_SEMI_JOIN] hashCondition=((t2.c2 = t3.c3)) otherCondition=()
------------PhysicalProject
---------------PhysicalOlapScan[t3]
+--------------hashJoin[INNER_JOIN] hashCondition=((t1.c1 = t2.c2)) otherCondition=()
+----------------PhysicalProject
+------------------PhysicalOlapScan[t1]
+----------------PhysicalDistribute[DistributionSpecHash]
+------------------PhysicalProject
+--------------------PhysicalOlapScan[t2]
+------------PhysicalDistribute[DistributionSpecHash]
+--------------PhysicalProject
+----------------PhysicalOlapScan[t3]
Hint log:
Used: [shuffle]_2
@@ -1682,17 +1686,18 @@ PhysicalResultSink
--hashAgg[GLOBAL]
----PhysicalDistribute[DistributionSpecGather]
------hashAgg[LOCAL]
---------hashJoin[LEFT_SEMI_JOIN] hashCondition=((t2.c2 = t3.c3)) otherCondition=()
-----------PhysicalProject
-------------hashJoin[INNER_JOIN] hashCondition=((t1.c1 = t2.c2)) otherCondition=()
---------------PhysicalProject
-----------------PhysicalOlapScan[t1]
---------------PhysicalDistribute[DistributionSpecHash]
-----------------PhysicalProject
-------------------PhysicalOlapScan[t2]
-----------PhysicalDistribute[DistributionSpecHash]
+--------PhysicalProject
+----------hashJoin[LEFT_SEMI_JOIN] hashCondition=((t2.c2 = t3.c3)) otherCondition=()
------------PhysicalProject
---------------PhysicalOlapScan[t3]
+--------------hashJoin[INNER_JOIN] hashCondition=((t1.c1 = t2.c2)) otherCondition=()
+----------------PhysicalProject
+------------------PhysicalOlapScan[t1]
+----------------PhysicalDistribute[DistributionSpecHash]
+------------------PhysicalProject
+--------------------PhysicalOlapScan[t2]
+------------PhysicalDistribute[DistributionSpecHash]
+--------------PhysicalProject
+----------------PhysicalOlapScan[t3]
Hint log:
Used: [shuffle]_2
@@ -1704,17 +1709,18 @@ PhysicalResultSink
--hashAgg[GLOBAL]
----PhysicalDistribute[DistributionSpecGather]
------hashAgg[LOCAL]
---------hashJoin[LEFT_SEMI_JOIN] hashCondition=((t2.c2 = t3.c3)) otherCondition=()
-----------PhysicalProject
-------------hashJoin[INNER_JOIN] hashCondition=((t1.c1 = t2.c2)) otherCondition=()
---------------PhysicalProject
-----------------PhysicalOlapScan[t1]
---------------PhysicalDistribute[DistributionSpecHash]
-----------------PhysicalProject
-------------------PhysicalOlapScan[t2]
-----------PhysicalDistribute[DistributionSpecHash]
+--------PhysicalProject
+----------hashJoin[LEFT_SEMI_JOIN] hashCondition=((t2.c2 = t3.c3)) otherCondition=()
------------PhysicalProject
---------------PhysicalOlapScan[t3]
+--------------hashJoin[INNER_JOIN] hashCondition=((t1.c1 = t2.c2)) otherCondition=()
+----------------PhysicalProject
+------------------PhysicalOlapScan[t1]
+----------------PhysicalDistribute[DistributionSpecHash]
+------------------PhysicalProject
+--------------------PhysicalOlapScan[t2]
+------------PhysicalDistribute[DistributionSpecHash]
+--------------PhysicalProject
+----------------PhysicalOlapScan[t3]
Hint log:
Used: [shuffle]_2
@@ -1726,17 +1732,18 @@ PhysicalResultSink
--hashAgg[GLOBAL]
----PhysicalDistribute[DistributionSpecGather]
------hashAgg[LOCAL]
---------hashJoin[LEFT_SEMI_JOIN] hashCondition=((t2.c2 = t3.c3)) otherCondition=()
-----------PhysicalProject
-------------hashJoin[INNER_JOIN] hashCondition=((t1.c1 = t2.c2)) otherCondition=()
---------------PhysicalProject
-----------------PhysicalOlapScan[t1]
---------------PhysicalDistribute[DistributionSpecHash]
-----------------PhysicalProject
-------------------PhysicalOlapScan[t2]
-----------PhysicalDistribute[DistributionSpecReplicated]
+--------PhysicalProject
+----------hashJoin[LEFT_SEMI_JOIN] hashCondition=((t2.c2 = t3.c3)) otherCondition=()
------------PhysicalProject
---------------PhysicalOlapScan[t3]
+--------------hashJoin[INNER_JOIN] hashCondition=((t1.c1 = t2.c2)) otherCondition=()
+----------------PhysicalProject
+------------------PhysicalOlapScan[t1]
+----------------PhysicalDistribute[DistributionSpecHash]
+------------------PhysicalProject
+--------------------PhysicalOlapScan[t2]
+------------PhysicalDistribute[DistributionSpecReplicated]
+--------------PhysicalProject
+----------------PhysicalOlapScan[t3]
Hint log:
Used: [shuffle]_2 [broadcast]_3
@@ -1748,17 +1755,18 @@ PhysicalResultSink
--hashAgg[GLOBAL]
----PhysicalDistribute[DistributionSpecGather]
------hashAgg[LOCAL]
---------hashJoin[LEFT_SEMI_JOIN] hashCondition=((t2.c2 = t3.c3)) otherCondition=()
-----------PhysicalProject
-------------hashJoin[INNER_JOIN] hashCondition=((t1.c1 = t2.c2)) otherCondition=()
---------------PhysicalProject
-----------------PhysicalOlapScan[t1]
---------------PhysicalDistribute[DistributionSpecReplicated]
-----------------PhysicalProject
-------------------PhysicalOlapScan[t2]
-----------PhysicalDistribute[DistributionSpecHash]
+--------PhysicalProject
+----------hashJoin[LEFT_SEMI_JOIN] hashCondition=((t2.c2 = t3.c3)) otherCondition=()
------------PhysicalProject
---------------PhysicalOlapScan[t3]
+--------------hashJoin[INNER_JOIN] hashCondition=((t1.c1 = t2.c2)) otherCondition=()
+----------------PhysicalProject
+------------------PhysicalOlapScan[t1]
+----------------PhysicalDistribute[DistributionSpecReplicated]
+------------------PhysicalProject
+--------------------PhysicalOlapScan[t2]
+------------PhysicalDistribute[DistributionSpecHash]
+--------------PhysicalProject
+----------------PhysicalOlapScan[t3]
Hint log:
Used: [broadcast]_2 [shuffle]_3
@@ -1787,17 +1795,18 @@ PhysicalResultSink
--hashAgg[GLOBAL]
----PhysicalDistribute[DistributionSpecGather]
------hashAgg[LOCAL]
---------hashJoin[LEFT_ANTI_JOIN] hashCondition=((t2.c2 = t3.c3)) otherCondition=()
-----------PhysicalProject
-------------hashJoin[INNER_JOIN] hashCondition=((t1.c1 = t2.c2)) otherCondition=()
---------------PhysicalProject
-----------------PhysicalOlapScan[t1]
---------------PhysicalDistribute[DistributionSpecReplicated]
-----------------PhysicalProject
-------------------PhysicalOlapScan[t2]
-----------PhysicalDistribute[DistributionSpecHash]
+--------PhysicalProject
+----------hashJoin[LEFT_ANTI_JOIN] hashCondition=((t2.c2 = t3.c3)) otherCondition=()
------------PhysicalProject
---------------PhysicalOlapScan[t3]
+--------------hashJoin[INNER_JOIN] hashCondition=((t1.c1 = t2.c2)) otherCondition=()
+----------------PhysicalProject
+------------------PhysicalOlapScan[t1]
+----------------PhysicalDistribute[DistributionSpecReplicated]
+------------------PhysicalProject
+--------------------PhysicalOlapScan[t2]
+------------PhysicalDistribute[DistributionSpecHash]
+--------------PhysicalProject
+----------------PhysicalOlapScan[t3]
Hint log:
Used: [broadcast]_2
@@ -1809,17 +1818,18 @@ PhysicalResultSink
--hashAgg[GLOBAL]
----PhysicalDistribute[DistributionSpecGather]
------hashAgg[LOCAL]
---------hashJoin[LEFT_ANTI_JOIN] hashCondition=((t2.c2 = t3.c3)) otherCondition=()
-----------PhysicalProject
-------------hashJoin[INNER_JOIN] hashCondition=((t1.c1 = t2.c2)) otherCondition=()
---------------PhysicalProject
-----------------PhysicalOlapScan[t1]
---------------PhysicalDistribute[DistributionSpecHash]
-----------------PhysicalProject
-------------------PhysicalOlapScan[t2]
-----------PhysicalDistribute[DistributionSpecReplicated]
+--------PhysicalProject
+----------hashJoin[LEFT_ANTI_JOIN] hashCondition=((t2.c2 = t3.c3)) otherCondition=()
------------PhysicalProject
---------------PhysicalOlapScan[t3]
+--------------hashJoin[INNER_JOIN] hashCondition=((t1.c1 = t2.c2)) otherCondition=()
+----------------PhysicalProject
+------------------PhysicalOlapScan[t1]
+----------------PhysicalDistribute[DistributionSpecHash]
+------------------PhysicalProject
+--------------------PhysicalOlapScan[t2]
+------------PhysicalDistribute[DistributionSpecReplicated]
+--------------PhysicalProject
+----------------PhysicalOlapScan[t3]
Hint log:
Used: [broadcast]_2
@@ -1831,17 +1841,18 @@ PhysicalResultSink
--hashAgg[GLOBAL]
----PhysicalDistribute[DistributionSpecGather]
------hashAgg[LOCAL]
---------hashJoin[LEFT_ANTI_JOIN] hashCondition=((t2.c2 = t3.c3)) otherCondition=()
-----------PhysicalProject
-------------hashJoin[INNER_JOIN] hashCondition=((t1.c1 = t2.c2)) otherCondition=()
---------------PhysicalProject
-----------------PhysicalOlapScan[t1]
---------------PhysicalDistribute[DistributionSpecReplicated]
-----------------PhysicalProject
-------------------PhysicalOlapScan[t2]
-----------PhysicalDistribute[DistributionSpecReplicated]
+--------PhysicalProject
+----------hashJoin[LEFT_ANTI_JOIN] hashCondition=((t2.c2 = t3.c3)) otherCondition=()
------------PhysicalProject
---------------PhysicalOlapScan[t3]
+--------------hashJoin[INNER_JOIN] hashCondition=((t1.c1 = t2.c2)) otherCondition=()
+----------------PhysicalProject
+------------------PhysicalOlapScan[t1]
+----------------PhysicalDistribute[DistributionSpecReplicated]
+------------------PhysicalProject
+--------------------PhysicalOlapScan[t2]
+------------PhysicalDistribute[DistributionSpecReplicated]
+--------------PhysicalProject
+----------------PhysicalOlapScan[t3]
Hint log:
Used: [broadcast]_2
@@ -1853,17 +1864,18 @@ PhysicalResultSink
--hashAgg[GLOBAL]
----PhysicalDistribute[DistributionSpecGather]
------hashAgg[LOCAL]
---------hashJoin[LEFT_ANTI_JOIN] hashCondition=((t2.c2 = t3.c3)) otherCondition=()
-----------PhysicalProject
-------------hashJoin[INNER_JOIN] hashCondition=((t1.c1 = t2.c2)) otherCondition=()
---------------PhysicalProject
-----------------PhysicalOlapScan[t1]
---------------PhysicalDistribute[DistributionSpecHash]
-----------------PhysicalProject
-------------------PhysicalOlapScan[t2]
-----------PhysicalDistribute[DistributionSpecHash]
+--------PhysicalProject
+----------hashJoin[LEFT_ANTI_JOIN] hashCondition=((t2.c2 = t3.c3)) otherCondition=()
------------PhysicalProject
---------------PhysicalOlapScan[t3]
+--------------hashJoin[INNER_JOIN] hashCondition=((t1.c1 = t2.c2)) otherCondition=()
+----------------PhysicalProject
+------------------PhysicalOlapScan[t1]
+----------------PhysicalDistribute[DistributionSpecHash]
+------------------PhysicalProject
+--------------------PhysicalOlapScan[t2]
+------------PhysicalDistribute[DistributionSpecHash]
+--------------PhysicalProject
+----------------PhysicalOlapScan[t3]
Hint log:
Used: [shuffle]_2
@@ -1875,17 +1887,18 @@ PhysicalResultSink
--hashAgg[GLOBAL]
----PhysicalDistribute[DistributionSpecGather]
------hashAgg[LOCAL]
---------hashJoin[LEFT_ANTI_JOIN] hashCondition=((t2.c2 = t3.c3)) otherCondition=()
-----------PhysicalProject
-------------hashJoin[INNER_JOIN] hashCondition=((t1.c1 = t2.c2)) otherCondition=()
---------------PhysicalProject
-----------------PhysicalOlapScan[t1]
---------------PhysicalDistribute[DistributionSpecHash]
-----------------PhysicalProject
-------------------PhysicalOlapScan[t2]
-----------PhysicalDistribute[DistributionSpecHash]
+--------PhysicalProject
+----------hashJoin[LEFT_ANTI_JOIN] hashCondition=((t2.c2 = t3.c3)) otherCondition=()
------------PhysicalProject
---------------PhysicalOlapScan[t3]
+--------------hashJoin[INNER_JOIN] hashCondition=((t1.c1 = t2.c2)) otherCondition=()
+----------------PhysicalProject
+------------------PhysicalOlapScan[t1]
+----------------PhysicalDistribute[DistributionSpecHash]
+------------------PhysicalProject
+--------------------PhysicalOlapScan[t2]
+------------PhysicalDistribute[DistributionSpecHash]
+--------------PhysicalProject
+----------------PhysicalOlapScan[t3]
Hint log:
Used: [shuffle]_2
@@ -1897,17 +1910,18 @@ PhysicalResultSink
--hashAgg[GLOBAL]
----PhysicalDistribute[DistributionSpecGather]
------hashAgg[LOCAL]
---------hashJoin[LEFT_ANTI_JOIN] hashCondition=((t2.c2 = t3.c3)) otherCondition=()
-----------PhysicalProject
-------------hashJoin[INNER_JOIN] hashCondition=((t1.c1 = t2.c2)) otherCondition=()
---------------PhysicalProject
-----------------PhysicalOlapScan[t1]
---------------PhysicalDistribute[DistributionSpecHash]
-----------------PhysicalProject
-------------------PhysicalOlapScan[t2]
-----------PhysicalDistribute[DistributionSpecHash]
+--------PhysicalProject
+----------hashJoin[LEFT_ANTI_JOIN] hashCondition=((t2.c2 = t3.c3)) otherCondition=()
------------PhysicalProject
---------------PhysicalOlapScan[t3]
+--------------hashJoin[INNER_JOIN] hashCondition=((t1.c1 = t2.c2)) otherCondition=()
+----------------PhysicalProject
+------------------PhysicalOlapScan[t1]
+----------------PhysicalDistribute[DistributionSpecHash]
+------------------PhysicalProject
+--------------------PhysicalOlapScan[t2]
+------------PhysicalDistribute[DistributionSpecHash]
+--------------PhysicalProject
+----------------PhysicalOlapScan[t3]
Hint log:
Used: [shuffle]_2
@@ -1919,17 +1933,18 @@ PhysicalResultSink
--hashAgg[GLOBAL]
----PhysicalDistribute[DistributionSpecGather]
------hashAgg[LOCAL]
---------hashJoin[LEFT_ANTI_JOIN] hashCondition=((t2.c2 = t3.c3)) otherCondition=()
-----------PhysicalProject
-------------hashJoin[INNER_JOIN] hashCondition=((t1.c1 = t2.c2)) otherCondition=()
---------------PhysicalProject
-----------------PhysicalOlapScan[t1]
---------------PhysicalDistribute[DistributionSpecHash]
-----------------PhysicalProject
-------------------PhysicalOlapScan[t2]
-----------PhysicalDistribute[DistributionSpecReplicated]
+--------PhysicalProject
+----------hashJoin[LEFT_ANTI_JOIN] hashCondition=((t2.c2 = t3.c3)) otherCondition=()
------------PhysicalProject
---------------PhysicalOlapScan[t3]
+--------------hashJoin[INNER_JOIN] hashCondition=((t1.c1 = t2.c2)) otherCondition=()
+----------------PhysicalProject
+------------------PhysicalOlapScan[t1]
+----------------PhysicalDistribute[DistributionSpecHash]
+------------------PhysicalProject
+--------------------PhysicalOlapScan[t2]
+------------PhysicalDistribute[DistributionSpecReplicated]
+--------------PhysicalProject
+----------------PhysicalOlapScan[t3]
Hint log:
Used: [shuffle]_2 [broadcast]_3
@@ -1941,17 +1956,18 @@ PhysicalResultSink
--hashAgg[GLOBAL]
----PhysicalDistribute[DistributionSpecGather]
------hashAgg[LOCAL]
---------hashJoin[LEFT_ANTI_JOIN] hashCondition=((t2.c2 = t3.c3)) otherCondition=()
-----------PhysicalProject
-------------hashJoin[INNER_JOIN] hashCondition=((t1.c1 = t2.c2)) otherCondition=()
---------------PhysicalProject
-----------------PhysicalOlapScan[t1]
---------------PhysicalDistribute[DistributionSpecReplicated]
-----------------PhysicalProject
-------------------PhysicalOlapScan[t2]
-----------PhysicalDistribute[DistributionSpecHash]
+--------PhysicalProject
+----------hashJoin[LEFT_ANTI_JOIN] hashCondition=((t2.c2 = t3.c3)) otherCondition=()
------------PhysicalProject
---------------PhysicalOlapScan[t3]
+--------------hashJoin[INNER_JOIN] hashCondition=((t1.c1 = t2.c2)) otherCondition=()
+----------------PhysicalProject
+------------------PhysicalOlapScan[t1]
+----------------PhysicalDistribute[DistributionSpecReplicated]
+------------------PhysicalProject
+--------------------PhysicalOlapScan[t2]
+------------PhysicalDistribute[DistributionSpecHash]
+--------------PhysicalProject
+----------------PhysicalOlapScan[t3]
Hint log:
Used: [broadcast]_2 [shuffle]_3
@@ -2393,17 +2409,18 @@ PhysicalResultSink
--hashAgg[GLOBAL]
----PhysicalDistribute[DistributionSpecGather]
------hashAgg[LOCAL]
---------hashJoin[LEFT_SEMI_JOIN] hashCondition=((t2.c2 = t3.c3)) otherCondition=()
-----------PhysicalProject
-------------hashJoin[INNER_JOIN] hashCondition=((t1.c1 = t2.c2)) otherCondition=()
---------------PhysicalProject
-----------------PhysicalOlapScan[t1]
---------------PhysicalDistribute[DistributionSpecReplicated]
-----------------PhysicalProject
-------------------PhysicalOlapScan[t2]
-----------PhysicalDistribute[DistributionSpecHash]
+--------PhysicalProject
+----------hashJoin[LEFT_SEMI_JOIN] hashCondition=((t2.c2 = t3.c3)) otherCondition=()
------------PhysicalProject
---------------PhysicalOlapScan[t3]
+--------------hashJoin[INNER_JOIN] hashCondition=((t1.c1 = t2.c2)) otherCondition=()
+----------------PhysicalProject
+------------------PhysicalOlapScan[t1]
+----------------PhysicalDistribute[DistributionSpecReplicated]
+------------------PhysicalProject
+--------------------PhysicalOlapScan[t2]
+------------PhysicalDistribute[DistributionSpecHash]
+--------------PhysicalProject
+----------------PhysicalOlapScan[t3]
Hint log:
Used: [broadcast]_2
@@ -2415,17 +2432,18 @@ PhysicalResultSink
--hashAgg[GLOBAL]
----PhysicalDistribute[DistributionSpecGather]
------hashAgg[LOCAL]
---------hashJoin[LEFT_SEMI_JOIN] hashCondition=((t2.c2 = t3.c3)) otherCondition=()
-----------PhysicalProject
-------------hashJoin[INNER_JOIN] hashCondition=((t1.c1 = t2.c2)) otherCondition=()
---------------PhysicalProject
-----------------PhysicalOlapScan[t1]
---------------PhysicalDistribute[DistributionSpecHash]
-----------------PhysicalProject
-------------------PhysicalOlapScan[t2]
-----------PhysicalDistribute[DistributionSpecReplicated]
+--------PhysicalProject
+----------hashJoin[LEFT_SEMI_JOIN] hashCondition=((t2.c2 = t3.c3)) otherCondition=()
------------PhysicalProject
---------------PhysicalOlapScan[t3]
+--------------hashJoin[INNER_JOIN] hashCondition=((t1.c1 = t2.c2)) otherCondition=()
+----------------PhysicalProject
+------------------PhysicalOlapScan[t1]
+----------------PhysicalDistribute[DistributionSpecHash]
+------------------PhysicalProject
+--------------------PhysicalOlapScan[t2]
+------------PhysicalDistribute[DistributionSpecReplicated]
+--------------PhysicalProject
+----------------PhysicalOlapScan[t3]
Hint log:
Used: [broadcast]_2
@@ -2437,17 +2455,18 @@ PhysicalResultSink
--hashAgg[GLOBAL]
----PhysicalDistribute[DistributionSpecGather]
------hashAgg[LOCAL]
---------hashJoin[LEFT_SEMI_JOIN] hashCondition=((t2.c2 = t3.c3)) otherCondition=()
-----------PhysicalProject
-------------hashJoin[INNER_JOIN] hashCondition=((t1.c1 = t2.c2)) otherCondition=()
---------------PhysicalProject
-----------------PhysicalOlapScan[t1]
---------------PhysicalDistribute[DistributionSpecReplicated]
-----------------PhysicalProject
-------------------PhysicalOlapScan[t2]
-----------PhysicalDistribute[DistributionSpecReplicated]
+--------PhysicalProject
+----------hashJoin[LEFT_SEMI_JOIN] hashCondition=((t2.c2 = t3.c3)) otherCondition=()
------------PhysicalProject
---------------PhysicalOlapScan[t3]
+--------------hashJoin[INNER_JOIN] hashCondition=((t1.c1 = t2.c2)) otherCondition=()
+----------------PhysicalProject
+------------------PhysicalOlapScan[t1]
+----------------PhysicalDistribute[DistributionSpecReplicated]
+------------------PhysicalProject
+--------------------PhysicalOlapScan[t2]
+------------PhysicalDistribute[DistributionSpecReplicated]
+--------------PhysicalProject
+----------------PhysicalOlapScan[t3]
Hint log:
Used: [broadcast]_2
@@ -2459,17 +2478,18 @@ PhysicalResultSink
--hashAgg[GLOBAL]
----PhysicalDistribute[DistributionSpecGather]
------hashAgg[LOCAL]
---------hashJoin[LEFT_SEMI_JOIN] hashCondition=((t2.c2 = t3.c3)) otherCondition=()
-----------PhysicalProject
-------------hashJoin[INNER_JOIN] hashCondition=((t1.c1 = t2.c2)) otherCondition=()
---------------PhysicalProject
-----------------PhysicalOlapScan[t1]
---------------PhysicalDistribute[DistributionSpecHash]
-----------------PhysicalProject
-------------------PhysicalOlapScan[t2]
-----------PhysicalDistribute[DistributionSpecHash]
+--------PhysicalProject
+----------hashJoin[LEFT_SEMI_JOIN] hashCondition=((t2.c2 = t3.c3)) otherCondition=()
------------PhysicalProject
---------------PhysicalOlapScan[t3]
+--------------hashJoin[INNER_JOIN] hashCondition=((t1.c1 = t2.c2)) otherCondition=()
+----------------PhysicalProject
+------------------PhysicalOlapScan[t1]
+----------------PhysicalDistribute[DistributionSpecHash]
+------------------PhysicalProject
+--------------------PhysicalOlapScan[t2]
+------------PhysicalDistribute[DistributionSpecHash]
+--------------PhysicalProject
+----------------PhysicalOlapScan[t3]
Hint log:
Used: [shuffle]_2
@@ -2481,17 +2501,18 @@ PhysicalResultSink
--hashAgg[GLOBAL]
----PhysicalDistribute[DistributionSpecGather]
------hashAgg[LOCAL]
---------hashJoin[LEFT_SEMI_JOIN] hashCondition=((t2.c2 = t3.c3)) otherCondition=()
-----------PhysicalProject
-------------hashJoin[INNER_JOIN] hashCondition=((t1.c1 = t2.c2)) otherCondition=()
---------------PhysicalProject
-----------------PhysicalOlapScan[t1]
---------------PhysicalDistribute[DistributionSpecHash]
-----------------PhysicalProject
-------------------PhysicalOlapScan[t2]
-----------PhysicalDistribute[DistributionSpecHash]
+--------PhysicalProject
+----------hashJoin[LEFT_SEMI_JOIN] hashCondition=((t2.c2 = t3.c3)) otherCondition=()
------------PhysicalProject
---------------PhysicalOlapScan[t3]
+--------------hashJoin[INNER_JOIN] hashCondition=((t1.c1 = t2.c2)) otherCondition=()
+----------------PhysicalProject
+------------------PhysicalOlapScan[t1]
+----------------PhysicalDistribute[DistributionSpecHash]
+------------------PhysicalProject
+--------------------PhysicalOlapScan[t2]
+------------PhysicalDistribute[DistributionSpecHash]
+--------------PhysicalProject
+----------------PhysicalOlapScan[t3]
Hint log:
Used: [shuffle]_2
@@ -2503,17 +2524,18 @@ PhysicalResultSink
--hashAgg[GLOBAL]
----PhysicalDistribute[DistributionSpecGather]
------hashAgg[LOCAL]
---------hashJoin[LEFT_SEMI_JOIN] hashCondition=((t2.c2 = t3.c3)) otherCondition=()
-----------PhysicalProject
-------------hashJoin[INNER_JOIN] hashCondition=((t1.c1 = t2.c2)) otherCondition=()
---------------PhysicalProject
-----------------PhysicalOlapScan[t1]
---------------PhysicalDistribute[DistributionSpecHash]
-----------------PhysicalProject
-------------------PhysicalOlapScan[t2]
-----------PhysicalDistribute[DistributionSpecHash]
+--------PhysicalProject
+----------hashJoin[LEFT_SEMI_JOIN] hashCondition=((t2.c2 = t3.c3)) otherCondition=()
------------PhysicalProject
---------------PhysicalOlapScan[t3]
+--------------hashJoin[INNER_JOIN] hashCondition=((t1.c1 = t2.c2)) otherCondition=()
+----------------PhysicalProject
+------------------PhysicalOlapScan[t1]
+----------------PhysicalDistribute[DistributionSpecHash]
+------------------PhysicalProject
+--------------------PhysicalOlapScan[t2]
+------------PhysicalDistribute[DistributionSpecHash]
+--------------PhysicalProject
+----------------PhysicalOlapScan[t3]
Hint log:
Used: [shuffle]_2
@@ -2525,17 +2547,18 @@ PhysicalResultSink
--hashAgg[GLOBAL]
----PhysicalDistribute[DistributionSpecGather]
------hashAgg[LOCAL]
---------hashJoin[LEFT_SEMI_JOIN] hashCondition=((t2.c2 = t3.c3)) otherCondition=()
-----------PhysicalProject
-------------hashJoin[INNER_JOIN] hashCondition=((t1.c1 = t2.c2)) otherCondition=()
---------------PhysicalProject
-----------------PhysicalOlapScan[t1]
---------------PhysicalDistribute[DistributionSpecHash]
-----------------PhysicalProject
-------------------PhysicalOlapScan[t2]
-----------PhysicalDistribute[DistributionSpecReplicated]
+--------PhysicalProject
+----------hashJoin[LEFT_SEMI_JOIN] hashCondition=((t2.c2 = t3.c3)) otherCondition=()
------------PhysicalProject
---------------PhysicalOlapScan[t3]
+--------------hashJoin[INNER_JOIN] hashCondition=((t1.c1 = t2.c2)) otherCondition=()
+----------------PhysicalProject
+------------------PhysicalOlapScan[t1]
+----------------PhysicalDistribute[DistributionSpecHash]
+------------------PhysicalProject
+--------------------PhysicalOlapScan[t2]
+------------PhysicalDistribute[DistributionSpecReplicated]
+--------------PhysicalProject
+----------------PhysicalOlapScan[t3]
Hint log:
Used: [shuffle]_2 [broadcast]_3
@@ -2547,17 +2570,18 @@ PhysicalResultSink
--hashAgg[GLOBAL]
----PhysicalDistribute[DistributionSpecGather]
------hashAgg[LOCAL]
---------hashJoin[LEFT_SEMI_JOIN] hashCondition=((t2.c2 = t3.c3)) otherCondition=()
-----------PhysicalProject
-------------hashJoin[INNER_JOIN] hashCondition=((t1.c1 = t2.c2)) otherCondition=()
---------------PhysicalProject
-----------------PhysicalOlapScan[t1]
---------------PhysicalDistribute[DistributionSpecReplicated]
-----------------PhysicalProject
-------------------PhysicalOlapScan[t2]
-----------PhysicalDistribute[DistributionSpecHash]
+--------PhysicalProject
+----------hashJoin[LEFT_SEMI_JOIN] hashCondition=((t2.c2 = t3.c3)) otherCondition=()
------------PhysicalProject
---------------PhysicalOlapScan[t3]
+--------------hashJoin[INNER_JOIN] hashCondition=((t1.c1 = t2.c2)) otherCondition=()
+----------------PhysicalProject
+------------------PhysicalOlapScan[t1]
+----------------PhysicalDistribute[DistributionSpecReplicated]
+------------------PhysicalProject
+--------------------PhysicalOlapScan[t2]
+------------PhysicalDistribute[DistributionSpecHash]
+--------------PhysicalProject
+----------------PhysicalOlapScan[t3]
Hint log:
Used: [broadcast]_2 [shuffle]_3
@@ -2569,34 +2593,36 @@ PhysicalResultSink
--hashAgg[GLOBAL]
----PhysicalDistribute[DistributionSpecGather]
------hashAgg[LOCAL]
---------hashJoin[LEFT_ANTI_JOIN] hashCondition=((t2.c2 = t3.c3)) otherCondition=()
-----------PhysicalProject
-------------hashJoin[LEFT_OUTER_JOIN] hashCondition=((t1.c1 = t2.c2)) otherCondition=()
---------------PhysicalProject
-----------------PhysicalOlapScan[t1]
---------------PhysicalDistribute[DistributionSpecHash]
-----------------PhysicalProject
-------------------PhysicalOlapScan[t2]
-----------PhysicalDistribute[DistributionSpecReplicated]
+--------PhysicalProject
+----------hashJoin[LEFT_ANTI_JOIN] hashCondition=((t2.c2 = t3.c3)) otherCondition=()
------------PhysicalProject
---------------PhysicalOlapScan[t3]
+--------------hashJoin[LEFT_OUTER_JOIN] hashCondition=((t1.c1 = t2.c2)) otherCondition=()
+----------------PhysicalProject
+------------------PhysicalOlapScan[t1]
+----------------PhysicalDistribute[DistributionSpecHash]
+------------------PhysicalProject
+--------------------PhysicalOlapScan[t2]
+------------PhysicalDistribute[DistributionSpecReplicated]
+--------------PhysicalProject
+----------------PhysicalOlapScan[t3]
-- !select25_2 --
PhysicalResultSink
--hashAgg[GLOBAL]
----PhysicalDistribute[DistributionSpecGather]
------hashAgg[LOCAL]
---------hashJoin[LEFT_ANTI_JOIN] hashCondition=((t2.c2 = t3.c3)) otherCondition=()
-----------PhysicalProject
-------------hashJoin[LEFT_OUTER_JOIN] hashCondition=((t1.c1 = t2.c2)) otherCondition=()
---------------PhysicalProject
-----------------PhysicalOlapScan[t1]
---------------PhysicalDistribute[DistributionSpecReplicated]
-----------------PhysicalProject
-------------------PhysicalOlapScan[t2]
-----------PhysicalDistribute[DistributionSpecReplicated]
+--------PhysicalProject
+----------hashJoin[LEFT_ANTI_JOIN] hashCondition=((t2.c2 = t3.c3)) otherCondition=()
------------PhysicalProject
---------------PhysicalOlapScan[t3]
+--------------hashJoin[LEFT_OUTER_JOIN] hashCondition=((t1.c1 = t2.c2)) otherCondition=()
+----------------PhysicalProject
+------------------PhysicalOlapScan[t1]
+----------------PhysicalDistribute[DistributionSpecReplicated]
+------------------PhysicalProject
+--------------------PhysicalOlapScan[t2]
+------------PhysicalDistribute[DistributionSpecReplicated]
+--------------PhysicalProject
+----------------PhysicalOlapScan[t3]
Hint log:
Used: [broadcast]_2
@@ -2608,17 +2634,18 @@ PhysicalResultSink
--hashAgg[GLOBAL]
----PhysicalDistribute[DistributionSpecGather]
------hashAgg[LOCAL]
---------hashJoin[LEFT_ANTI_JOIN] hashCondition=((t2.c2 = t3.c3)) otherCondition=()
-----------PhysicalProject
-------------hashJoin[LEFT_OUTER_JOIN] hashCondition=((t1.c1 = t2.c2)) otherCondition=()
---------------PhysicalProject
-----------------PhysicalOlapScan[t1]
---------------PhysicalDistribute[DistributionSpecHash]
-----------------PhysicalProject
-------------------PhysicalOlapScan[t2]
-----------PhysicalDistribute[DistributionSpecReplicated]
+--------PhysicalProject
+----------hashJoin[LEFT_ANTI_JOIN] hashCondition=((t2.c2 = t3.c3)) otherCondition=()
------------PhysicalProject
---------------PhysicalOlapScan[t3]
+--------------hashJoin[LEFT_OUTER_JOIN] hashCondition=((t1.c1 = t2.c2)) otherCondition=()
+----------------PhysicalProject
+------------------PhysicalOlapScan[t1]
+----------------PhysicalDistribute[DistributionSpecHash]
+------------------PhysicalProject
+--------------------PhysicalOlapScan[t2]
+------------PhysicalDistribute[DistributionSpecReplicated]
+--------------PhysicalProject
+----------------PhysicalOlapScan[t3]
Hint log:
Used: [broadcast]_2
@@ -2630,17 +2657,18 @@ PhysicalResultSink
--hashAgg[GLOBAL]
----PhysicalDistribute[DistributionSpecGather]
------hashAgg[LOCAL]
---------hashJoin[LEFT_ANTI_JOIN] hashCondition=((t2.c2 = t3.c3)) otherCondition=()
-----------PhysicalProject
-------------hashJoin[LEFT_OUTER_JOIN] hashCondition=((t1.c1 = t2.c2)) otherCondition=()
---------------PhysicalProject
-----------------PhysicalOlapScan[t1]
---------------PhysicalDistribute[DistributionSpecReplicated]
-----------------PhysicalProject
-------------------PhysicalOlapScan[t2]
-----------PhysicalDistribute[DistributionSpecReplicated]
+--------PhysicalProject
+----------hashJoin[LEFT_ANTI_JOIN] hashCondition=((t2.c2 = t3.c3)) otherCondition=()
------------PhysicalProject
---------------PhysicalOlapScan[t3]
+--------------hashJoin[LEFT_OUTER_JOIN] hashCondition=((t1.c1 = t2.c2)) otherCondition=()
+----------------PhysicalProject
+------------------PhysicalOlapScan[t1]
+----------------PhysicalDistribute[DistributionSpecReplicated]
+------------------PhysicalProject
+--------------------PhysicalOlapScan[t2]
+------------PhysicalDistribute[DistributionSpecReplicated]
+--------------PhysicalProject
+----------------PhysicalOlapScan[t3]
Hint log:
Used: [broadcast]_2
@@ -2652,17 +2680,18 @@ PhysicalResultSink
--hashAgg[GLOBAL]
----PhysicalDistribute[DistributionSpecGather]
------hashAgg[LOCAL]
---------hashJoin[LEFT_ANTI_JOIN] hashCondition=((t2.c2 = t3.c3)) otherCondition=()
-----------PhysicalProject
-------------hashJoin[LEFT_OUTER_JOIN] hashCondition=((t1.c1 = t2.c2)) otherCondition=()
---------------PhysicalProject
-----------------PhysicalOlapScan[t1]
---------------PhysicalDistribute[DistributionSpecHash]
-----------------PhysicalProject
-------------------PhysicalOlapScan[t2]
-----------PhysicalDistribute[DistributionSpecReplicated]
+--------PhysicalProject
+----------hashJoin[LEFT_ANTI_JOIN] hashCondition=((t2.c2 = t3.c3)) otherCondition=()
------------PhysicalProject
---------------PhysicalOlapScan[t3]
+--------------hashJoin[LEFT_OUTER_JOIN] hashCondition=((t1.c1 = t2.c2)) otherCondition=()
+----------------PhysicalProject
+------------------PhysicalOlapScan[t1]
+----------------PhysicalDistribute[DistributionSpecHash]
+------------------PhysicalProject
+--------------------PhysicalOlapScan[t2]
+------------PhysicalDistribute[DistributionSpecReplicated]
+--------------PhysicalProject
+----------------PhysicalOlapScan[t3]
Hint log:
Used: [shuffle]_2
@@ -2674,18 +2703,19 @@ PhysicalResultSink
--hashAgg[GLOBAL]
----PhysicalDistribute[DistributionSpecGather]
------hashAgg[LOCAL]
---------hashJoin[LEFT_ANTI_JOIN] hashCondition=((t2.c2 = t3.c3)) otherCondition=()
-----------PhysicalDistribute[DistributionSpecHash]
-------------PhysicalProject
---------------hashJoin[LEFT_OUTER_JOIN] hashCondition=((t1.c1 = t2.c2)) otherCondition=()
-----------------PhysicalProject
-------------------PhysicalOlapScan[t1]
-----------------PhysicalDistribute[DistributionSpecHash]
+--------PhysicalProject
+----------hashJoin[LEFT_ANTI_JOIN] hashCondition=((t2.c2 = t3.c3)) otherCondition=()
+------------PhysicalDistribute[DistributionSpecHash]
+--------------PhysicalProject
+----------------hashJoin[LEFT_OUTER_JOIN] hashCondition=((t1.c1 = t2.c2)) otherCondition=()
------------------PhysicalProject
---------------------PhysicalOlapScan[t2]
-----------PhysicalDistribute[DistributionSpecHash]
-------------PhysicalProject
---------------PhysicalOlapScan[t3]
+--------------------PhysicalOlapScan[t1]
+------------------PhysicalDistribute[DistributionSpecHash]
+--------------------PhysicalProject
+----------------------PhysicalOlapScan[t2]
+------------PhysicalDistribute[DistributionSpecHash]
+--------------PhysicalProject
+----------------PhysicalOlapScan[t3]
Hint log:
Used: [shuffle]_2
@@ -2697,18 +2727,19 @@ PhysicalResultSink
--hashAgg[GLOBAL]
----PhysicalDistribute[DistributionSpecGather]
------hashAgg[LOCAL]
---------hashJoin[LEFT_ANTI_JOIN] hashCondition=((t2.c2 = t3.c3)) otherCondition=()
-----------PhysicalDistribute[DistributionSpecHash]
-------------PhysicalProject
---------------hashJoin[LEFT_OUTER_JOIN] hashCondition=((t1.c1 = t2.c2)) otherCondition=()
-----------------PhysicalProject
-------------------PhysicalOlapScan[t1]
-----------------PhysicalDistribute[DistributionSpecHash]
+--------PhysicalProject
+----------hashJoin[LEFT_ANTI_JOIN] hashCondition=((t2.c2 = t3.c3)) otherCondition=()
+------------PhysicalDistribute[DistributionSpecHash]
+--------------PhysicalProject
+----------------hashJoin[LEFT_OUTER_JOIN] hashCondition=((t1.c1 = t2.c2)) otherCondition=()
------------------PhysicalProject
---------------------PhysicalOlapScan[t2]
-----------PhysicalDistribute[DistributionSpecHash]
-------------PhysicalProject
---------------PhysicalOlapScan[t3]
+--------------------PhysicalOlapScan[t1]
+------------------PhysicalDistribute[DistributionSpecHash]
+--------------------PhysicalProject
+----------------------PhysicalOlapScan[t2]
+------------PhysicalDistribute[DistributionSpecHash]
+--------------PhysicalProject
+----------------PhysicalOlapScan[t3]
Hint log:
Used: [shuffle]_2
@@ -2720,17 +2751,18 @@ PhysicalResultSink
--hashAgg[GLOBAL]
----PhysicalDistribute[DistributionSpecGather]
------hashAgg[LOCAL]
---------hashJoin[LEFT_ANTI_JOIN] hashCondition=((t2.c2 = t3.c3)) otherCondition=()
-----------PhysicalProject
-------------hashJoin[LEFT_OUTER_JOIN] hashCondition=((t1.c1 = t2.c2)) otherCondition=()
---------------PhysicalProject
-----------------PhysicalOlapScan[t1]
---------------PhysicalDistribute[DistributionSpecHash]
-----------------PhysicalProject
-------------------PhysicalOlapScan[t2]
-----------PhysicalDistribute[DistributionSpecReplicated]
+--------PhysicalProject
+----------hashJoin[LEFT_ANTI_JOIN] hashCondition=((t2.c2 = t3.c3)) otherCondition=()
------------PhysicalProject
---------------PhysicalOlapScan[t3]
+--------------hashJoin[LEFT_OUTER_JOIN] hashCondition=((t1.c1 = t2.c2)) otherCondition=()
+----------------PhysicalProject
+------------------PhysicalOlapScan[t1]
+----------------PhysicalDistribute[DistributionSpecHash]
+------------------PhysicalProject
+--------------------PhysicalOlapScan[t2]
+------------PhysicalDistribute[DistributionSpecReplicated]
+--------------PhysicalProject
+----------------PhysicalOlapScan[t3]
Hint log:
Used: [shuffle]_2 [broadcast]_3
@@ -2742,18 +2774,19 @@ PhysicalResultSink
--hashAgg[GLOBAL]
----PhysicalDistribute[DistributionSpecGather]
------hashAgg[LOCAL]
---------hashJoin[LEFT_ANTI_JOIN] hashCondition=((t2.c2 = t3.c3)) otherCondition=()
-----------PhysicalDistribute[DistributionSpecHash]
-------------PhysicalProject
---------------hashJoin[LEFT_OUTER_JOIN] hashCondition=((t1.c1 = t2.c2)) otherCondition=()
-----------------PhysicalProject
-------------------PhysicalOlapScan[t1]
-----------------PhysicalDistribute[DistributionSpecReplicated]
+--------PhysicalProject
+----------hashJoin[LEFT_ANTI_JOIN] hashCondition=((t2.c2 = t3.c3)) otherCondition=()
+------------PhysicalDistribute[DistributionSpecHash]
+--------------PhysicalProject
+----------------hashJoin[LEFT_OUTER_JOIN] hashCondition=((t1.c1 = t2.c2)) otherCondition=()
------------------PhysicalProject
---------------------PhysicalOlapScan[t2]
-----------PhysicalDistribute[DistributionSpecHash]
-------------PhysicalProject
---------------PhysicalOlapScan[t3]
+--------------------PhysicalOlapScan[t1]
+------------------PhysicalDistribute[DistributionSpecReplicated]
+--------------------PhysicalProject
+----------------------PhysicalOlapScan[t2]
+------------PhysicalDistribute[DistributionSpecHash]
+--------------PhysicalProject
+----------------PhysicalOlapScan[t3]
Hint log:
Used: [broadcast]_2 [shuffle]_3
@@ -2782,18 +2815,19 @@ PhysicalResultSink
--hashAgg[GLOBAL]
----PhysicalDistribute[DistributionSpecGather]
------hashAgg[LOCAL]
---------hashJoin[LEFT_SEMI_JOIN] hashCondition=((t2.c2 = t3.c3)) otherCondition=()
-----------PhysicalProject
-------------hashJoin[RIGHT_OUTER_JOIN] hashCondition=((t1.c1 = t2.c2)) otherCondition=()
---------------PhysicalDistribute[DistributionSpecHash]
-----------------PhysicalProject
-------------------PhysicalOlapScan[t1]
---------------PhysicalDistribute[DistributionSpecHash]
-----------------PhysicalProject
-------------------PhysicalOlapScan[t2]
-----------PhysicalDistribute[DistributionSpecHash]
+--------PhysicalProject
+----------hashJoin[LEFT_SEMI_JOIN] hashCondition=((t2.c2 = t3.c3)) otherCondition=()
------------PhysicalProject
---------------PhysicalOlapScan[t3]
+--------------hashJoin[RIGHT_OUTER_JOIN] hashCondition=((t1.c1 = t2.c2)) otherCondition=()
+----------------PhysicalDistribute[DistributionSpecHash]
+------------------PhysicalProject
+--------------------PhysicalOlapScan[t1]
+----------------PhysicalDistribute[DistributionSpecHash]
+------------------PhysicalProject
+--------------------PhysicalOlapScan[t2]
+------------PhysicalDistribute[DistributionSpecHash]
+--------------PhysicalProject
+----------------PhysicalOlapScan[t3]
Hint log:
Used:
@@ -2805,17 +2839,18 @@ PhysicalResultSink
--hashAgg[GLOBAL]
----PhysicalDistribute[DistributionSpecGather]
------hashAgg[LOCAL]
---------hashJoin[LEFT_SEMI_JOIN] hashCondition=((t2.c2 = t3.c3)) otherCondition=()
-----------PhysicalProject
-------------hashJoin[LEFT_OUTER_JOIN] hashCondition=((t1.c1 = t2.c2)) otherCondition=()
---------------PhysicalProject
-----------------PhysicalOlapScan[t2]
---------------PhysicalDistribute[DistributionSpecHash]
-----------------PhysicalProject
-------------------PhysicalOlapScan[t1]
-----------PhysicalDistribute[DistributionSpecReplicated]
+--------PhysicalProject
+----------hashJoin[LEFT_SEMI_JOIN] hashCondition=((t2.c2 = t3.c3)) otherCondition=()
------------PhysicalProject
---------------PhysicalOlapScan[t3]
+--------------hashJoin[LEFT_OUTER_JOIN] hashCondition=((t1.c1 = t2.c2)) otherCondition=()
+----------------PhysicalProject
+------------------PhysicalOlapScan[t2]
+----------------PhysicalDistribute[DistributionSpecHash]
+------------------PhysicalProject
+--------------------PhysicalOlapScan[t1]
+------------PhysicalDistribute[DistributionSpecReplicated]
+--------------PhysicalProject
+----------------PhysicalOlapScan[t3]
Hint log:
Used: [broadcast]_2
@@ -2827,18 +2862,19 @@ PhysicalResultSink
--hashAgg[GLOBAL]
----PhysicalDistribute[DistributionSpecGather]
------hashAgg[LOCAL]
---------hashJoin[LEFT_SEMI_JOIN] hashCondition=((t2.c2 = t3.c3)) otherCondition=()
-----------PhysicalProject
-------------hashJoin[RIGHT_OUTER_JOIN] hashCondition=((t1.c1 = t2.c2)) otherCondition=()
---------------PhysicalDistribute[DistributionSpecHash]
-----------------PhysicalProject
-------------------PhysicalOlapScan[t1]
---------------PhysicalDistribute[DistributionSpecHash]
-----------------PhysicalProject
-------------------PhysicalOlapScan[t2]
-----------PhysicalDistribute[DistributionSpecReplicated]
+--------PhysicalProject
+----------hashJoin[LEFT_SEMI_JOIN] hashCondition=((t2.c2 = t3.c3)) otherCondition=()
------------PhysicalProject
---------------PhysicalOlapScan[t3]
+--------------hashJoin[RIGHT_OUTER_JOIN] hashCondition=((t1.c1 = t2.c2)) otherCondition=()
+----------------PhysicalDistribute[DistributionSpecHash]
+------------------PhysicalProject
+--------------------PhysicalOlapScan[t1]
+----------------PhysicalDistribute[DistributionSpecHash]
+------------------PhysicalProject
+--------------------PhysicalOlapScan[t2]
+------------PhysicalDistribute[DistributionSpecReplicated]
+--------------PhysicalProject
+----------------PhysicalOlapScan[t3]
Hint log:
Used:
@@ -2850,18 +2886,19 @@ PhysicalResultSink
--hashAgg[GLOBAL]
----PhysicalDistribute[DistributionSpecGather]
------hashAgg[LOCAL]
---------hashJoin[LEFT_SEMI_JOIN] hashCondition=((t2.c2 = t3.c3)) otherCondition=()
-----------PhysicalProject
-------------hashJoin[RIGHT_OUTER_JOIN] hashCondition=((t1.c1 = t2.c2)) otherCondition=()
---------------PhysicalDistribute[DistributionSpecHash]
-----------------PhysicalProject
-------------------PhysicalOlapScan[t1]
---------------PhysicalDistribute[DistributionSpecHash]
-----------------PhysicalProject
-------------------PhysicalOlapScan[t2]
-----------PhysicalDistribute[DistributionSpecHash]
+--------PhysicalProject
+----------hashJoin[LEFT_SEMI_JOIN] hashCondition=((t2.c2 = t3.c3)) otherCondition=()
------------PhysicalProject
---------------PhysicalOlapScan[t3]
+--------------hashJoin[RIGHT_OUTER_JOIN] hashCondition=((t1.c1 = t2.c2)) otherCondition=()
+----------------PhysicalDistribute[DistributionSpecHash]
+------------------PhysicalProject
+--------------------PhysicalOlapScan[t1]
+----------------PhysicalDistribute[DistributionSpecHash]
+------------------PhysicalProject
+--------------------PhysicalOlapScan[t2]
+------------PhysicalDistribute[DistributionSpecHash]
+--------------PhysicalProject
+----------------PhysicalOlapScan[t3]
Hint log:
Used: [shuffle]_2
@@ -2873,17 +2910,18 @@ PhysicalResultSink
--hashAgg[GLOBAL]
----PhysicalDistribute[DistributionSpecGather]
------hashAgg[LOCAL]
---------hashJoin[LEFT_SEMI_JOIN] hashCondition=((t2.c2 = t3.c3)) otherCondition=()
-----------PhysicalProject
-------------hashJoin[LEFT_OUTER_JOIN] hashCondition=((t1.c1 = t2.c2)) otherCondition=()
---------------PhysicalProject
-----------------PhysicalOlapScan[t2]
---------------PhysicalDistribute[DistributionSpecHash]
-----------------PhysicalProject
-------------------PhysicalOlapScan[t1]
-----------PhysicalDistribute[DistributionSpecHash]
+--------PhysicalProject
+----------hashJoin[LEFT_SEMI_JOIN] hashCondition=((t2.c2 = t3.c3)) otherCondition=()
------------PhysicalProject
---------------PhysicalOlapScan[t3]
+--------------hashJoin[LEFT_OUTER_JOIN] hashCondition=((t1.c1 = t2.c2)) otherCondition=()
+----------------PhysicalProject
+------------------PhysicalOlapScan[t2]
+----------------PhysicalDistribute[DistributionSpecHash]
+------------------PhysicalProject
+--------------------PhysicalOlapScan[t1]
+------------PhysicalDistribute[DistributionSpecHash]
+--------------PhysicalProject
+----------------PhysicalOlapScan[t3]
Hint log:
Used: [shuffle]_2
@@ -2895,18 +2933,19 @@ PhysicalResultSink
--hashAgg[GLOBAL]
----PhysicalDistribute[DistributionSpecGather]
------hashAgg[LOCAL]
---------hashJoin[LEFT_SEMI_JOIN] hashCondition=((t2.c2 = t3.c3)) otherCondition=()
-----------PhysicalProject
-------------hashJoin[RIGHT_OUTER_JOIN] hashCondition=((t1.c1 = t2.c2)) otherCondition=()
---------------PhysicalDistribute[DistributionSpecHash]
-----------------PhysicalProject
-------------------PhysicalOlapScan[t1]
---------------PhysicalDistribute[DistributionSpecHash]
-----------------PhysicalProject
-------------------PhysicalOlapScan[t2]
-----------PhysicalDistribute[DistributionSpecHash]
+--------PhysicalProject
+----------hashJoin[LEFT_SEMI_JOIN] hashCondition=((t2.c2 = t3.c3)) otherCondition=()
------------PhysicalProject
---------------PhysicalOlapScan[t3]
+--------------hashJoin[RIGHT_OUTER_JOIN] hashCondition=((t1.c1 = t2.c2)) otherCondition=()
+----------------PhysicalDistribute[DistributionSpecHash]
+------------------PhysicalProject
+--------------------PhysicalOlapScan[t1]
+----------------PhysicalDistribute[DistributionSpecHash]
+------------------PhysicalProject
+--------------------PhysicalOlapScan[t2]
+------------PhysicalDistribute[DistributionSpecHash]
+--------------PhysicalProject
+----------------PhysicalOlapScan[t3]
Hint log:
Used: [shuffle]_2
@@ -2918,18 +2957,19 @@ PhysicalResultSink
--hashAgg[GLOBAL]
----PhysicalDistribute[DistributionSpecGather]
------hashAgg[LOCAL]
---------hashJoin[LEFT_SEMI_JOIN] hashCondition=((t2.c2 = t3.c3)) otherCondition=()
-----------PhysicalProject
-------------hashJoin[RIGHT_OUTER_JOIN] hashCondition=((t1.c1 = t2.c2)) otherCondition=()
---------------PhysicalDistribute[DistributionSpecHash]
-----------------PhysicalProject
-------------------PhysicalOlapScan[t1]
---------------PhysicalDistribute[DistributionSpecHash]
-----------------PhysicalProject
-------------------PhysicalOlapScan[t2]
-----------PhysicalDistribute[DistributionSpecReplicated]
+--------PhysicalProject
+----------hashJoin[LEFT_SEMI_JOIN] hashCondition=((t2.c2 = t3.c3)) otherCondition=()
------------PhysicalProject
---------------PhysicalOlapScan[t3]
+--------------hashJoin[RIGHT_OUTER_JOIN] hashCondition=((t1.c1 = t2.c2)) otherCondition=()
+----------------PhysicalDistribute[DistributionSpecHash]
+------------------PhysicalProject
+--------------------PhysicalOlapScan[t1]
+----------------PhysicalDistribute[DistributionSpecHash]
+------------------PhysicalProject
+--------------------PhysicalOlapScan[t2]
+------------PhysicalDistribute[DistributionSpecReplicated]
+--------------PhysicalProject
+----------------PhysicalOlapScan[t3]
Hint log:
Used: [shuffle]_2 [broadcast]_3
@@ -2941,18 +2981,19 @@ PhysicalResultSink
--hashAgg[GLOBAL]
----PhysicalDistribute[DistributionSpecGather]
------hashAgg[LOCAL]
---------hashJoin[LEFT_SEMI_JOIN] hashCondition=((t2.c2 = t3.c3)) otherCondition=()
-----------PhysicalProject
-------------hashJoin[RIGHT_OUTER_JOIN] hashCondition=((t1.c1 = t2.c2)) otherCondition=()
---------------PhysicalDistribute[DistributionSpecHash]
-----------------PhysicalProject
-------------------PhysicalOlapScan[t1]
---------------PhysicalDistribute[DistributionSpecHash]
-----------------PhysicalProject
-------------------PhysicalOlapScan[t2]
-----------PhysicalDistribute[DistributionSpecHash]
+--------PhysicalProject
+----------hashJoin[LEFT_SEMI_JOIN] hashCondition=((t2.c2 = t3.c3)) otherCondition=()
------------PhysicalProject
---------------PhysicalOlapScan[t3]
+--------------hashJoin[RIGHT_OUTER_JOIN] hashCondition=((t1.c1 = t2.c2)) otherCondition=()
+----------------PhysicalDistribute[DistributionSpecHash]
+------------------PhysicalProject
+--------------------PhysicalOlapScan[t1]
+----------------PhysicalDistribute[DistributionSpecHash]
+------------------PhysicalProject
+--------------------PhysicalOlapScan[t2]
+------------PhysicalDistribute[DistributionSpecHash]
+--------------PhysicalProject
+----------------PhysicalOlapScan[t3]
Hint log:
Used: [shuffle]_3
@@ -2981,18 +3022,19 @@ PhysicalResultSink
--hashAgg[GLOBAL]
----PhysicalDistribute[DistributionSpecGather]
------hashAgg[LOCAL]
---------hashJoin[LEFT_ANTI_JOIN] hashCondition=((t2.c2 = t3.c3)) otherCondition=()
-----------PhysicalProject
-------------hashJoin[RIGHT_OUTER_JOIN] hashCondition=((t1.c1 = t2.c2)) otherCondition=()
---------------PhysicalDistribute[DistributionSpecHash]
-----------------PhysicalProject
-------------------PhysicalOlapScan[t1]
---------------PhysicalDistribute[DistributionSpecHash]
-----------------PhysicalProject
-------------------PhysicalOlapScan[t2]
-----------PhysicalDistribute[DistributionSpecHash]
+--------PhysicalProject
+----------hashJoin[LEFT_ANTI_JOIN] hashCondition=((t2.c2 = t3.c3)) otherCondition=()
------------PhysicalProject
---------------PhysicalOlapScan[t3]
+--------------hashJoin[RIGHT_OUTER_JOIN] hashCondition=((t1.c1 = t2.c2)) otherCondition=()
+----------------PhysicalDistribute[DistributionSpecHash]
+------------------PhysicalProject
+--------------------PhysicalOlapScan[t1]
+----------------PhysicalDistribute[DistributionSpecHash]
+------------------PhysicalProject
+--------------------PhysicalOlapScan[t2]
+------------PhysicalDistribute[DistributionSpecHash]
+--------------PhysicalProject
+----------------PhysicalOlapScan[t3]
Hint log:
Used:
@@ -3004,17 +3046,18 @@ PhysicalResultSink
--hashAgg[GLOBAL]
----PhysicalDistribute[DistributionSpecGather]
------hashAgg[LOCAL]
---------hashJoin[LEFT_ANTI_JOIN] hashCondition=((t2.c2 = t3.c3)) otherCondition=()
-----------PhysicalProject
-------------hashJoin[LEFT_OUTER_JOIN] hashCondition=((t1.c1 = t2.c2)) otherCondition=()
---------------PhysicalProject
-----------------PhysicalOlapScan[t2]
---------------PhysicalDistribute[DistributionSpecHash]
-----------------PhysicalProject
-------------------PhysicalOlapScan[t1]
-----------PhysicalDistribute[DistributionSpecReplicated]
+--------PhysicalProject
+----------hashJoin[LEFT_ANTI_JOIN] hashCondition=((t2.c2 = t3.c3)) otherCondition=()
------------PhysicalProject
---------------PhysicalOlapScan[t3]
+--------------hashJoin[LEFT_OUTER_JOIN] hashCondition=((t1.c1 = t2.c2)) otherCondition=()
+----------------PhysicalProject
+------------------PhysicalOlapScan[t2]
+----------------PhysicalDistribute[DistributionSpecHash]
+------------------PhysicalProject
+--------------------PhysicalOlapScan[t1]
+------------PhysicalDistribute[DistributionSpecReplicated]
+--------------PhysicalProject
+----------------PhysicalOlapScan[t3]
Hint log:
Used: [broadcast]_2
@@ -3026,18 +3069,19 @@ PhysicalResultSink
--hashAgg[GLOBAL]
----PhysicalDistribute[DistributionSpecGather]
------hashAgg[LOCAL]
---------hashJoin[LEFT_ANTI_JOIN] hashCondition=((t2.c2 = t3.c3)) otherCondition=()
-----------PhysicalProject
-------------hashJoin[RIGHT_OUTER_JOIN] hashCondition=((t1.c1 = t2.c2)) otherCondition=()
---------------PhysicalDistribute[DistributionSpecHash]
-----------------PhysicalProject
-------------------PhysicalOlapScan[t1]
---------------PhysicalDistribute[DistributionSpecHash]
-----------------PhysicalProject
-------------------PhysicalOlapScan[t2]
-----------PhysicalDistribute[DistributionSpecReplicated]
+--------PhysicalProject
+----------hashJoin[LEFT_ANTI_JOIN] hashCondition=((t2.c2 = t3.c3)) otherCondition=()
------------PhysicalProject
---------------PhysicalOlapScan[t3]
+--------------hashJoin[RIGHT_OUTER_JOIN] hashCondition=((t1.c1 = t2.c2)) otherCondition=()
+----------------PhysicalDistribute[DistributionSpecHash]
+------------------PhysicalProject
+--------------------PhysicalOlapScan[t1]
+----------------PhysicalDistribute[DistributionSpecHash]
+------------------PhysicalProject
+--------------------PhysicalOlapScan[t2]
+------------PhysicalDistribute[DistributionSpecReplicated]
+--------------PhysicalProject
+----------------PhysicalOlapScan[t3]
Hint log:
Used:
@@ -3049,18 +3093,19 @@ PhysicalResultSink
--hashAgg[GLOBAL]
----PhysicalDistribute[DistributionSpecGather]
------hashAgg[LOCAL]
---------hashJoin[LEFT_ANTI_JOIN] hashCondition=((t2.c2 = t3.c3)) otherCondition=()
-----------PhysicalProject
-------------hashJoin[RIGHT_OUTER_JOIN] hashCondition=((t1.c1 = t2.c2)) otherCondition=()
---------------PhysicalDistribute[DistributionSpecHash]
-----------------PhysicalProject
-------------------PhysicalOlapScan[t1]
---------------PhysicalDistribute[DistributionSpecHash]
-----------------PhysicalProject
-------------------PhysicalOlapScan[t2]
-----------PhysicalDistribute[DistributionSpecHash]
+--------PhysicalProject
+----------hashJoin[LEFT_ANTI_JOIN] hashCondition=((t2.c2 = t3.c3)) otherCondition=()
------------PhysicalProject
---------------PhysicalOlapScan[t3]
+--------------hashJoin[RIGHT_OUTER_JOIN] hashCondition=((t1.c1 = t2.c2)) otherCondition=()
+----------------PhysicalDistribute[DistributionSpecHash]
+------------------PhysicalProject
+--------------------PhysicalOlapScan[t1]
+----------------PhysicalDistribute[DistributionSpecHash]
+------------------PhysicalProject
+--------------------PhysicalOlapScan[t2]
+------------PhysicalDistribute[DistributionSpecHash]
+--------------PhysicalProject
+----------------PhysicalOlapScan[t3]
Hint log:
Used: [shuffle]_2
@@ -3072,17 +3117,18 @@ PhysicalResultSink
--hashAgg[GLOBAL]
----PhysicalDistribute[DistributionSpecGather]
------hashAgg[LOCAL]
---------hashJoin[LEFT_ANTI_JOIN] hashCondition=((t2.c2 = t3.c3)) otherCondition=()
-----------PhysicalProject
-------------hashJoin[LEFT_OUTER_JOIN] hashCondition=((t1.c1 = t2.c2)) otherCondition=()
---------------PhysicalProject
-----------------PhysicalOlapScan[t2]
---------------PhysicalDistribute[DistributionSpecHash]
-----------------PhysicalProject
-------------------PhysicalOlapScan[t1]
-----------PhysicalDistribute[DistributionSpecHash]
+--------PhysicalProject
+----------hashJoin[LEFT_ANTI_JOIN] hashCondition=((t2.c2 = t3.c3)) otherCondition=()
------------PhysicalProject
---------------PhysicalOlapScan[t3]
+--------------hashJoin[LEFT_OUTER_JOIN] hashCondition=((t1.c1 = t2.c2)) otherCondition=()
+----------------PhysicalProject
+------------------PhysicalOlapScan[t2]
+----------------PhysicalDistribute[DistributionSpecHash]
+------------------PhysicalProject
+--------------------PhysicalOlapScan[t1]
+------------PhysicalDistribute[DistributionSpecHash]
+--------------PhysicalProject
+----------------PhysicalOlapScan[t3]
Hint log:
Used: [shuffle]_2
@@ -3094,18 +3140,19 @@ PhysicalResultSink
--hashAgg[GLOBAL]
----PhysicalDistribute[DistributionSpecGather]
------hashAgg[LOCAL]
---------hashJoin[LEFT_ANTI_JOIN] hashCondition=((t2.c2 = t3.c3)) otherCondition=()
-----------PhysicalProject
-------------hashJoin[RIGHT_OUTER_JOIN] hashCondition=((t1.c1 = t2.c2)) otherCondition=()
---------------PhysicalDistribute[DistributionSpecHash]
-----------------PhysicalProject
-------------------PhysicalOlapScan[t1]
---------------PhysicalDistribute[DistributionSpecHash]
-----------------PhysicalProject
-------------------PhysicalOlapScan[t2]
-----------PhysicalDistribute[DistributionSpecHash]
+--------PhysicalProject
+----------hashJoin[LEFT_ANTI_JOIN] hashCondition=((t2.c2 = t3.c3)) otherCondition=()
------------PhysicalProject
---------------PhysicalOlapScan[t3]
+--------------hashJoin[RIGHT_OUTER_JOIN] hashCondition=((t1.c1 = t2.c2)) otherCondition=()
+----------------PhysicalDistribute[DistributionSpecHash]
+------------------PhysicalProject
+--------------------PhysicalOlapScan[t1]
+----------------PhysicalDistribute[DistributionSpecHash]
+------------------PhysicalProject
+--------------------PhysicalOlapScan[t2]
+------------PhysicalDistribute[DistributionSpecHash]
+--------------PhysicalProject
+----------------PhysicalOlapScan[t3]
Hint log:
Used: [shuffle]_2
@@ -3117,18 +3164,19 @@ PhysicalResultSink
--hashAgg[GLOBAL]
----PhysicalDistribute[DistributionSpecGather]
------hashAgg[LOCAL]
---------hashJoin[LEFT_ANTI_JOIN] hashCondition=((t2.c2 = t3.c3)) otherCondition=()
-----------PhysicalProject
-------------hashJoin[RIGHT_OUTER_JOIN] hashCondition=((t1.c1 = t2.c2)) otherCondition=()
---------------PhysicalDistribute[DistributionSpecHash]
-----------------PhysicalProject
-------------------PhysicalOlapScan[t1]
---------------PhysicalDistribute[DistributionSpecHash]
-----------------PhysicalProject
-------------------PhysicalOlapScan[t2]
-----------PhysicalDistribute[DistributionSpecReplicated]
+--------PhysicalProject
+----------hashJoin[LEFT_ANTI_JOIN] hashCondition=((t2.c2 = t3.c3)) otherCondition=()
------------PhysicalProject
---------------PhysicalOlapScan[t3]
+--------------hashJoin[RIGHT_OUTER_JOIN] hashCondition=((t1.c1 = t2.c2)) otherCondition=()
+----------------PhysicalDistribute[DistributionSpecHash]
+------------------PhysicalProject
+--------------------PhysicalOlapScan[t1]
+----------------PhysicalDistribute[DistributionSpecHash]
+------------------PhysicalProject
+--------------------PhysicalOlapScan[t2]
+------------PhysicalDistribute[DistributionSpecReplicated]
+--------------PhysicalProject
+----------------PhysicalOlapScan[t3]
Hint log:
Used: [shuffle]_2 [broadcast]_3
@@ -3140,18 +3188,19 @@ PhysicalResultSink
--hashAgg[GLOBAL]
----PhysicalDistribute[DistributionSpecGather]
------hashAgg[LOCAL]
---------hashJoin[LEFT_ANTI_JOIN] hashCondition=((t2.c2 = t3.c3)) otherCondition=()
-----------PhysicalProject
-------------hashJoin[RIGHT_OUTER_JOIN] hashCondition=((t1.c1 = t2.c2)) otherCondition=()
---------------PhysicalDistribute[DistributionSpecHash]
-----------------PhysicalProject
-------------------PhysicalOlapScan[t1]
---------------PhysicalDistribute[DistributionSpecHash]
-----------------PhysicalProject
-------------------PhysicalOlapScan[t2]
-----------PhysicalDistribute[DistributionSpecHash]
+--------PhysicalProject
+----------hashJoin[LEFT_ANTI_JOIN] hashCondition=((t2.c2 = t3.c3)) otherCondition=()
------------PhysicalProject
---------------PhysicalOlapScan[t3]
+--------------hashJoin[RIGHT_OUTER_JOIN] hashCondition=((t1.c1 = t2.c2)) otherCondition=()
+----------------PhysicalDistribute[DistributionSpecHash]
+------------------PhysicalProject
+--------------------PhysicalOlapScan[t1]
+----------------PhysicalDistribute[DistributionSpecHash]
+------------------PhysicalProject
+--------------------PhysicalOlapScan[t2]
+------------PhysicalDistribute[DistributionSpecHash]
+--------------PhysicalProject
+----------------PhysicalOlapScan[t3]
Hint log:
Used: [shuffle]_3
@@ -3163,32 +3212,34 @@ PhysicalResultSink
--hashAgg[GLOBAL]
----PhysicalDistribute[DistributionSpecGather]
------hashAgg[LOCAL]
---------hashJoin[LEFT_ANTI_JOIN] hashCondition=((t1.c1 = t3.c3)) otherCondition=()
-----------hashJoin[LEFT_SEMI_JOIN] hashCondition=((t1.c1 = t2.c2)) otherCondition=()
-------------PhysicalProject
---------------PhysicalOlapScan[t1]
+--------PhysicalProject
+----------hashJoin[LEFT_ANTI_JOIN] hashCondition=((t1.c1 = t3.c3)) otherCondition=()
+------------hashJoin[LEFT_SEMI_JOIN] hashCondition=((t1.c1 = t2.c2)) otherCondition=()
+--------------PhysicalProject
+----------------PhysicalOlapScan[t1]
+--------------PhysicalDistribute[DistributionSpecHash]
+----------------PhysicalProject
+------------------PhysicalOlapScan[t2]
------------PhysicalDistribute[DistributionSpecHash]
--------------PhysicalProject
-----------------PhysicalOlapScan[t2]
-----------PhysicalDistribute[DistributionSpecHash]
-------------PhysicalProject
---------------PhysicalOlapScan[t3]
+----------------PhysicalOlapScan[t3]
-- !select28_2 --
PhysicalResultSink
--hashAgg[GLOBAL]
----PhysicalDistribute[DistributionSpecGather]
------hashAgg[LOCAL]
---------hashJoin[LEFT_ANTI_JOIN] hashCondition=((t1.c1 = t3.c3)) otherCondition=()
-----------hashJoin[LEFT_SEMI_JOIN] hashCondition=((t1.c1 = t2.c2)) otherCondition=()
-------------PhysicalProject
---------------PhysicalOlapScan[t1]
-------------PhysicalDistribute[DistributionSpecReplicated]
+--------PhysicalProject
+----------hashJoin[LEFT_ANTI_JOIN] hashCondition=((t1.c1 = t3.c3)) otherCondition=()
+------------hashJoin[LEFT_SEMI_JOIN] hashCondition=((t1.c1 = t2.c2)) otherCondition=()
--------------PhysicalProject
-----------------PhysicalOlapScan[t2]
-----------PhysicalDistribute[DistributionSpecHash]
-------------PhysicalProject
---------------PhysicalOlapScan[t3]
+----------------PhysicalOlapScan[t1]
+--------------PhysicalDistribute[DistributionSpecReplicated]
+----------------PhysicalProject
+------------------PhysicalOlapScan[t2]
+------------PhysicalDistribute[DistributionSpecHash]
+--------------PhysicalProject
+----------------PhysicalOlapScan[t3]
Hint log:
Used: [broadcast]_2
@@ -3200,16 +3251,17 @@ PhysicalResultSink
--hashAgg[GLOBAL]
----PhysicalDistribute[DistributionSpecGather]
------hashAgg[LOCAL]
---------hashJoin[LEFT_ANTI_JOIN] hashCondition=((t1.c1 = t3.c3)) otherCondition=()
-----------hashJoin[LEFT_SEMI_JOIN] hashCondition=((t1.c1 = t2.c2)) otherCondition=()
-------------PhysicalProject
---------------PhysicalOlapScan[t1]
-------------PhysicalDistribute[DistributionSpecHash]
+--------PhysicalProject
+----------hashJoin[LEFT_ANTI_JOIN] hashCondition=((t1.c1 = t3.c3)) otherCondition=()
+------------hashJoin[LEFT_SEMI_JOIN] hashCondition=((t1.c1 = t2.c2)) otherCondition=()
--------------PhysicalProject
-----------------PhysicalOlapScan[t2]
-----------PhysicalDistribute[DistributionSpecReplicated]
-------------PhysicalProject
---------------PhysicalOlapScan[t3]
+----------------PhysicalOlapScan[t1]
+--------------PhysicalDistribute[DistributionSpecHash]
+----------------PhysicalProject
+------------------PhysicalOlapScan[t2]
+------------PhysicalDistribute[DistributionSpecReplicated]
+--------------PhysicalProject
+----------------PhysicalOlapScan[t3]
Hint log:
Used: [broadcast]_2
@@ -3221,16 +3273,17 @@ PhysicalResultSink
--hashAgg[GLOBAL]
----PhysicalDistribute[DistributionSpecGather]
------hashAgg[LOCAL]
---------hashJoin[LEFT_ANTI_JOIN] hashCondition=((t1.c1 = t3.c3)) otherCondition=()
-----------hashJoin[LEFT_SEMI_JOIN] hashCondition=((t1.c1 = t2.c2)) otherCondition=()
-------------PhysicalProject
---------------PhysicalOlapScan[t1]
+--------PhysicalProject
+----------hashJoin[LEFT_ANTI_JOIN] hashCondition=((t1.c1 = t3.c3)) otherCondition=()
+------------hashJoin[LEFT_SEMI_JOIN] hashCondition=((t1.c1 = t2.c2)) otherCondition=()
+--------------PhysicalProject
+----------------PhysicalOlapScan[t1]
+--------------PhysicalDistribute[DistributionSpecReplicated]
+----------------PhysicalProject
+------------------PhysicalOlapScan[t2]
------------PhysicalDistribute[DistributionSpecReplicated]
--------------PhysicalProject
-----------------PhysicalOlapScan[t2]
-----------PhysicalDistribute[DistributionSpecReplicated]
-------------PhysicalProject
---------------PhysicalOlapScan[t3]
+----------------PhysicalOlapScan[t3]
Hint log:
Used: [broadcast]_2
@@ -3242,16 +3295,17 @@ PhysicalResultSink
--hashAgg[GLOBAL]
----PhysicalDistribute[DistributionSpecGather]
------hashAgg[LOCAL]
---------hashJoin[LEFT_ANTI_JOIN] hashCondition=((t1.c1 = t3.c3)) otherCondition=()
-----------hashJoin[LEFT_SEMI_JOIN] hashCondition=((t1.c1 = t2.c2)) otherCondition=()
-------------PhysicalProject
---------------PhysicalOlapScan[t1]
+--------PhysicalProject
+----------hashJoin[LEFT_ANTI_JOIN] hashCondition=((t1.c1 = t3.c3)) otherCondition=()
+------------hashJoin[LEFT_SEMI_JOIN] hashCondition=((t1.c1 = t2.c2)) otherCondition=()
+--------------PhysicalProject
+----------------PhysicalOlapScan[t1]
+--------------PhysicalDistribute[DistributionSpecHash]
+----------------PhysicalProject
+------------------PhysicalOlapScan[t2]
------------PhysicalDistribute[DistributionSpecHash]
--------------PhysicalProject
-----------------PhysicalOlapScan[t2]
-----------PhysicalDistribute[DistributionSpecHash]
-------------PhysicalProject
---------------PhysicalOlapScan[t3]
+----------------PhysicalOlapScan[t3]
Hint log:
Used: [shuffle]_2
@@ -3263,16 +3317,17 @@ PhysicalResultSink
--hashAgg[GLOBAL]
----PhysicalDistribute[DistributionSpecGather]
------hashAgg[LOCAL]
---------hashJoin[LEFT_ANTI_JOIN] hashCondition=((t1.c1 = t3.c3)) otherCondition=()
-----------hashJoin[LEFT_SEMI_JOIN] hashCondition=((t1.c1 = t2.c2)) otherCondition=()
-------------PhysicalProject
---------------PhysicalOlapScan[t1]
+--------PhysicalProject
+----------hashJoin[LEFT_ANTI_JOIN] hashCondition=((t1.c1 = t3.c3)) otherCondition=()
+------------hashJoin[LEFT_SEMI_JOIN] hashCondition=((t1.c1 = t2.c2)) otherCondition=()
+--------------PhysicalProject
+----------------PhysicalOlapScan[t1]
+--------------PhysicalDistribute[DistributionSpecHash]
+----------------PhysicalProject
+------------------PhysicalOlapScan[t2]
------------PhysicalDistribute[DistributionSpecHash]
--------------PhysicalProject
-----------------PhysicalOlapScan[t2]
-----------PhysicalDistribute[DistributionSpecHash]
-------------PhysicalProject
---------------PhysicalOlapScan[t3]
+----------------PhysicalOlapScan[t3]
Hint log:
Used: [shuffle]_2
@@ -3284,16 +3339,17 @@ PhysicalResultSink
--hashAgg[GLOBAL]
----PhysicalDistribute[DistributionSpecGather]
------hashAgg[LOCAL]
---------hashJoin[LEFT_ANTI_JOIN] hashCondition=((t1.c1 = t3.c3)) otherCondition=()
-----------hashJoin[LEFT_SEMI_JOIN] hashCondition=((t1.c1 = t2.c2)) otherCondition=()
-------------PhysicalProject
---------------PhysicalOlapScan[t1]
+--------PhysicalProject
+----------hashJoin[LEFT_ANTI_JOIN] hashCondition=((t1.c1 = t3.c3)) otherCondition=()
+------------hashJoin[LEFT_SEMI_JOIN] hashCondition=((t1.c1 = t2.c2)) otherCondition=()
+--------------PhysicalProject
+----------------PhysicalOlapScan[t1]
+--------------PhysicalDistribute[DistributionSpecHash]
+----------------PhysicalProject
+------------------PhysicalOlapScan[t2]
------------PhysicalDistribute[DistributionSpecHash]
--------------PhysicalProject
-----------------PhysicalOlapScan[t2]
-----------PhysicalDistribute[DistributionSpecHash]
-------------PhysicalProject
---------------PhysicalOlapScan[t3]
+----------------PhysicalOlapScan[t3]
Hint log:
Used: [shuffle]_2
@@ -3305,16 +3361,17 @@ PhysicalResultSink
--hashAgg[GLOBAL]
----PhysicalDistribute[DistributionSpecGather]
------hashAgg[LOCAL]
---------hashJoin[LEFT_ANTI_JOIN] hashCondition=((t1.c1 = t3.c3)) otherCondition=()
-----------hashJoin[LEFT_SEMI_JOIN] hashCondition=((t1.c1 = t2.c2)) otherCondition=()
-------------PhysicalProject
---------------PhysicalOlapScan[t1]
-------------PhysicalDistribute[DistributionSpecHash]
+--------PhysicalProject
+----------hashJoin[LEFT_ANTI_JOIN] hashCondition=((t1.c1 = t3.c3)) otherCondition=()
+------------hashJoin[LEFT_SEMI_JOIN] hashCondition=((t1.c1 = t2.c2)) otherCondition=()
--------------PhysicalProject
-----------------PhysicalOlapScan[t2]
-----------PhysicalDistribute[DistributionSpecReplicated]
-------------PhysicalProject
---------------PhysicalOlapScan[t3]
+----------------PhysicalOlapScan[t1]
+--------------PhysicalDistribute[DistributionSpecHash]
+----------------PhysicalProject
+------------------PhysicalOlapScan[t2]
+------------PhysicalDistribute[DistributionSpecReplicated]
+--------------PhysicalProject
+----------------PhysicalOlapScan[t3]
Hint log:
Used: [shuffle]_2 [broadcast]_3
@@ -3326,16 +3383,17 @@ PhysicalResultSink
--hashAgg[GLOBAL]
----PhysicalDistribute[DistributionSpecGather]
------hashAgg[LOCAL]
---------hashJoin[LEFT_ANTI_JOIN] hashCondition=((t1.c1 = t3.c3)) otherCondition=()
-----------hashJoin[LEFT_SEMI_JOIN] hashCondition=((t1.c1 = t2.c2)) otherCondition=()
-------------PhysicalProject
---------------PhysicalOlapScan[t1]
-------------PhysicalDistribute[DistributionSpecReplicated]
+--------PhysicalProject
+----------hashJoin[LEFT_ANTI_JOIN] hashCondition=((t1.c1 = t3.c3)) otherCondition=()
+------------hashJoin[LEFT_SEMI_JOIN] hashCondition=((t1.c1 = t2.c2)) otherCondition=()
--------------PhysicalProject
-----------------PhysicalOlapScan[t2]
-----------PhysicalDistribute[DistributionSpecHash]
-------------PhysicalProject
---------------PhysicalOlapScan[t3]
+----------------PhysicalOlapScan[t1]
+--------------PhysicalDistribute[DistributionSpecReplicated]
+----------------PhysicalProject
+------------------PhysicalOlapScan[t2]
+------------PhysicalDistribute[DistributionSpecHash]
+--------------PhysicalProject
+----------------PhysicalOlapScan[t3]
Hint log:
Used: [broadcast]_2 [shuffle]_3
@@ -5842,16 +5900,18 @@ PhysicalResultSink
----------------------PhysicalProject
------------------------PhysicalOlapScan[t3]
------------PhysicalDistribute[DistributionSpecReplicated]
---------------PhysicalLimit[GLOBAL]
-----------------PhysicalDistribute[DistributionSpecGather]
-------------------PhysicalLimit[LOCAL]
+--------------PhysicalProject
+----------------PhysicalLimit[GLOBAL]
+------------------PhysicalDistribute[DistributionSpecGather]
--------------------PhysicalProject
-----------------------hashJoin[INNER_JOIN] hashCondition=((t3.c3 = t4.c4)) otherCondition=()
+----------------------PhysicalLimit[LOCAL]
------------------------PhysicalProject
---------------------------PhysicalOlapScan[t3]
-------------------------PhysicalDistribute[DistributionSpecHash]
---------------------------PhysicalProject
-----------------------------PhysicalOlapScan[t4]
+--------------------------hashJoin[INNER_JOIN] hashCondition=((t3.c3 = t4.c4)) otherCondition=()
+----------------------------PhysicalProject
+------------------------------PhysicalOlapScan[t3]
+----------------------------PhysicalDistribute[DistributionSpecHash]
+------------------------------PhysicalProject
+--------------------------------PhysicalOlapScan[t4]
-- !select41_2 --
PhysicalResultSink
@@ -5862,26 +5922,29 @@ PhysicalResultSink
----------NestedLoopJoin[CROSS_JOIN]
------------PhysicalProject
--------------hashJoin[LEFT_ANTI_JOIN] hashCondition=((alias2.c2 = t3.c3)) otherCondition=()
-----------------hashJoin[INNER_JOIN] hashCondition=((t1.c1 = alias2.c2)) otherCondition=()
-------------------PhysicalProject
---------------------PhysicalOlapScan[t1]
-------------------PhysicalDistribute[DistributionSpecReplicated]
+----------------PhysicalProject
+------------------hashJoin[INNER_JOIN] hashCondition=((t1.c1 = alias2.c2)) otherCondition=()
--------------------PhysicalProject
-----------------------PhysicalOlapScan[t2]
+----------------------PhysicalOlapScan[t1]
+--------------------PhysicalDistribute[DistributionSpecReplicated]
+----------------------PhysicalProject
+------------------------PhysicalOlapScan[t2]
----------------PhysicalDistribute[DistributionSpecHash]
------------------PhysicalProject
--------------------PhysicalOlapScan[t3]
------------PhysicalDistribute[DistributionSpecReplicated]
---------------PhysicalLimit[GLOBAL]
-----------------PhysicalDistribute[DistributionSpecGather]
-------------------PhysicalLimit[LOCAL]
+--------------PhysicalProject
+----------------PhysicalLimit[GLOBAL]
+------------------PhysicalDistribute[DistributionSpecGather]
--------------------PhysicalProject
-----------------------hashJoin[INNER_JOIN] hashCondition=((t3.c3 = t4.c4)) otherCondition=()
+----------------------PhysicalLimit[LOCAL]
------------------------PhysicalProject
---------------------------PhysicalOlapScan[t3]
-------------------------PhysicalDistribute[DistributionSpecHash]
---------------------------PhysicalProject
-----------------------------PhysicalOlapScan[t4]
+--------------------------hashJoin[INNER_JOIN] hashCondition=((t3.c3 = t4.c4)) otherCondition=()
+----------------------------PhysicalProject
+------------------------------PhysicalOlapScan[t3]
+----------------------------PhysicalDistribute[DistributionSpecHash]
+------------------------------PhysicalProject
+--------------------------------PhysicalOlapScan[t4]
Hint log:
Used: [broadcast]_2
@@ -5897,26 +5960,29 @@ PhysicalResultSink
----------NestedLoopJoin[CROSS_JOIN]
------------PhysicalProject
--------------hashJoin[LEFT_ANTI_JOIN] hashCondition=((alias2.c2 = t3.c3)) otherCondition=()
-----------------hashJoin[INNER_JOIN] hashCondition=((t1.c1 = alias2.c2)) otherCondition=()
-------------------PhysicalProject
---------------------PhysicalOlapScan[t1]
-------------------PhysicalDistribute[DistributionSpecHash]
+----------------PhysicalProject
+------------------hashJoin[INNER_JOIN] hashCondition=((t1.c1 = alias2.c2)) otherCondition=()
--------------------PhysicalProject
-----------------------PhysicalOlapScan[t2]
+----------------------PhysicalOlapScan[t1]
+--------------------PhysicalDistribute[DistributionSpecHash]
+----------------------PhysicalProject
+------------------------PhysicalOlapScan[t2]
----------------PhysicalDistribute[DistributionSpecReplicated]
------------------PhysicalProject
--------------------PhysicalOlapScan[t3]
------------PhysicalDistribute[DistributionSpecReplicated]
---------------PhysicalLimit[GLOBAL]
-----------------PhysicalDistribute[DistributionSpecGather]
-------------------PhysicalLimit[LOCAL]
+--------------PhysicalProject
+----------------PhysicalLimit[GLOBAL]
+------------------PhysicalDistribute[DistributionSpecGather]
--------------------PhysicalProject
-----------------------hashJoin[INNER_JOIN] hashCondition=((t3.c3 = t4.c4)) otherCondition=()
+----------------------PhysicalLimit[LOCAL]
------------------------PhysicalProject
---------------------------PhysicalOlapScan[t3]
-------------------------PhysicalDistribute[DistributionSpecHash]
---------------------------PhysicalProject
-----------------------------PhysicalOlapScan[t4]
+--------------------------hashJoin[INNER_JOIN] hashCondition=((t3.c3 = t4.c4)) otherCondition=()
+----------------------------PhysicalProject
+------------------------------PhysicalOlapScan[t3]
+----------------------------PhysicalDistribute[DistributionSpecHash]
+------------------------------PhysicalProject
+--------------------------------PhysicalOlapScan[t4]
Hint log:
Used: [broadcast]_2
@@ -5942,16 +6008,18 @@ PhysicalResultSink
----------------------PhysicalProject
------------------------PhysicalOlapScan[t3]
------------PhysicalDistribute[DistributionSpecReplicated]
---------------PhysicalLimit[GLOBAL]
-----------------PhysicalDistribute[DistributionSpecGather]
-------------------PhysicalLimit[LOCAL]
+--------------PhysicalProject
+----------------PhysicalLimit[GLOBAL]
+------------------PhysicalDistribute[DistributionSpecGather]
--------------------PhysicalProject
-----------------------hashJoin[INNER_JOIN] hashCondition=((t3.c3 = t4.c4)) otherCondition=()
+----------------------PhysicalLimit[LOCAL]
------------------------PhysicalProject
---------------------------PhysicalOlapScan[t3]
-------------------------PhysicalDistribute[DistributionSpecReplicated]
---------------------------PhysicalProject
-----------------------------PhysicalOlapScan[t4]
+--------------------------hashJoin[INNER_JOIN] hashCondition=((t3.c3 = t4.c4)) otherCondition=()
+----------------------------PhysicalProject
+------------------------------PhysicalOlapScan[t3]
+----------------------------PhysicalDistribute[DistributionSpecReplicated]
+------------------------------PhysicalProject
+--------------------------------PhysicalOlapScan[t4]
Hint log:
Used: [broadcast]_2
@@ -5967,26 +6035,29 @@ PhysicalResultSink
----------NestedLoopJoin[CROSS_JOIN]
------------PhysicalProject
--------------hashJoin[LEFT_ANTI_JOIN] hashCondition=((alias2.c2 = t3.c3)) otherCondition=()
-----------------hashJoin[INNER_JOIN] hashCondition=((t1.c1 = alias2.c2)) otherCondition=()
-------------------PhysicalProject
---------------------PhysicalOlapScan[t1]
-------------------PhysicalDistribute[DistributionSpecReplicated]
+----------------PhysicalProject
+------------------hashJoin[INNER_JOIN] hashCondition=((t1.c1 = alias2.c2)) otherCondition=()
--------------------PhysicalProject
-----------------------PhysicalOlapScan[t2]
+----------------------PhysicalOlapScan[t1]
+--------------------PhysicalDistribute[DistributionSpecReplicated]
+----------------------PhysicalProject
+------------------------PhysicalOlapScan[t2]
----------------PhysicalDistribute[DistributionSpecReplicated]
------------------PhysicalProject
--------------------PhysicalOlapScan[t3]
------------PhysicalDistribute[DistributionSpecReplicated]
---------------PhysicalLimit[GLOBAL]
-----------------PhysicalDistribute[DistributionSpecGather]
-------------------PhysicalLimit[LOCAL]
+--------------PhysicalProject
+----------------PhysicalLimit[GLOBAL]
+------------------PhysicalDistribute[DistributionSpecGather]
--------------------PhysicalProject
-----------------------hashJoin[INNER_JOIN] hashCondition=((t3.c3 = t4.c4)) otherCondition=()
+----------------------PhysicalLimit[LOCAL]
------------------------PhysicalProject
---------------------------PhysicalOlapScan[t3]
-------------------------PhysicalDistribute[DistributionSpecHash]
---------------------------PhysicalProject
-----------------------------PhysicalOlapScan[t4]
+--------------------------hashJoin[INNER_JOIN] hashCondition=((t3.c3 = t4.c4)) otherCondition=()
+----------------------------PhysicalProject
+------------------------------PhysicalOlapScan[t3]
+----------------------------PhysicalDistribute[DistributionSpecHash]
+------------------------------PhysicalProject
+--------------------------------PhysicalOlapScan[t4]
Hint log:
Used: [broadcast]_2
@@ -6002,26 +6073,29 @@ PhysicalResultSink
----------NestedLoopJoin[CROSS_JOIN]
------------PhysicalProject
--------------hashJoin[LEFT_ANTI_JOIN] hashCondition=((alias2.c2 = t3.c3)) otherCondition=()
-----------------hashJoin[INNER_JOIN] hashCondition=((t1.c1 = alias2.c2)) otherCondition=()
-------------------PhysicalProject
---------------------PhysicalOlapScan[t1]
-------------------PhysicalDistribute[DistributionSpecHash]
+----------------PhysicalProject
+------------------hashJoin[INNER_JOIN] hashCondition=((t1.c1 = alias2.c2)) otherCondition=()
--------------------PhysicalProject
-----------------------PhysicalOlapScan[t2]
+----------------------PhysicalOlapScan[t1]
+--------------------PhysicalDistribute[DistributionSpecHash]
+----------------------PhysicalProject
+------------------------PhysicalOlapScan[t2]
----------------PhysicalDistribute[DistributionSpecReplicated]
------------------PhysicalProject
--------------------PhysicalOlapScan[t3]
------------PhysicalDistribute[DistributionSpecReplicated]
---------------PhysicalLimit[GLOBAL]
-----------------PhysicalDistribute[DistributionSpecGather]
-------------------PhysicalLimit[LOCAL]
+--------------PhysicalProject
+----------------PhysicalLimit[GLOBAL]
+------------------PhysicalDistribute[DistributionSpecGather]
--------------------PhysicalProject
-----------------------hashJoin[INNER_JOIN] hashCondition=((t3.c3 = t4.c4)) otherCondition=()
+----------------------PhysicalLimit[LOCAL]
------------------------PhysicalProject
---------------------------PhysicalOlapScan[t3]
-------------------------PhysicalDistribute[DistributionSpecReplicated]
---------------------------PhysicalProject
-----------------------------PhysicalOlapScan[t4]
+--------------------------hashJoin[INNER_JOIN] hashCondition=((t3.c3 = t4.c4)) otherCondition=()
+----------------------------PhysicalProject
+------------------------------PhysicalOlapScan[t3]
+----------------------------PhysicalDistribute[DistributionSpecReplicated]
+------------------------------PhysicalProject
+--------------------------------PhysicalOlapScan[t4]
Hint log:
Used: [broadcast]_2
@@ -6037,26 +6111,29 @@ PhysicalResultSink
----------NestedLoopJoin[CROSS_JOIN]
------------PhysicalProject
--------------hashJoin[LEFT_ANTI_JOIN] hashCondition=((alias2.c2 = t3.c3)) otherCondition=()
-----------------hashJoin[INNER_JOIN] hashCondition=((t1.c1 = alias2.c2)) otherCondition=()
-------------------PhysicalProject
---------------------PhysicalOlapScan[t1]
-------------------PhysicalDistribute[DistributionSpecReplicated]
+----------------PhysicalProject
+------------------hashJoin[INNER_JOIN] hashCondition=((t1.c1 = alias2.c2)) otherCondition=()
--------------------PhysicalProject
-----------------------PhysicalOlapScan[t2]
+----------------------PhysicalOlapScan[t1]
+--------------------PhysicalDistribute[DistributionSpecReplicated]
+----------------------PhysicalProject
+------------------------PhysicalOlapScan[t2]
----------------PhysicalDistribute[DistributionSpecReplicated]
------------------PhysicalProject
--------------------PhysicalOlapScan[t3]
------------PhysicalDistribute[DistributionSpecReplicated]
---------------PhysicalLimit[GLOBAL]
-----------------PhysicalDistribute[DistributionSpecGather]
-------------------PhysicalLimit[LOCAL]
+--------------PhysicalProject
+----------------PhysicalLimit[GLOBAL]
+------------------PhysicalDistribute[DistributionSpecGather]
--------------------PhysicalProject
-----------------------hashJoin[INNER_JOIN] hashCondition=((t3.c3 = t4.c4)) otherCondition=()
+----------------------PhysicalLimit[LOCAL]
------------------------PhysicalProject
---------------------------PhysicalOlapScan[t3]
-------------------------PhysicalDistribute[DistributionSpecReplicated]
---------------------------PhysicalProject
-----------------------------PhysicalOlapScan[t4]
+--------------------------hashJoin[INNER_JOIN] hashCondition=((t3.c3 = t4.c4)) otherCondition=()
+----------------------------PhysicalProject
+------------------------------PhysicalOlapScan[t3]
+----------------------------PhysicalDistribute[DistributionSpecReplicated]
+------------------------------PhysicalProject
+--------------------------------PhysicalOlapScan[t4]
Hint log:
Used: [broadcast]_2
@@ -6072,26 +6149,29 @@ PhysicalResultSink
----------NestedLoopJoin[CROSS_JOIN]
------------PhysicalProject
--------------hashJoin[LEFT_ANTI_JOIN] hashCondition=((alias2.c2 = t3.c3)) otherCondition=()
-----------------hashJoin[INNER_JOIN] hashCondition=((t1.c1 = alias2.c2)) otherCondition=()
-------------------PhysicalProject
---------------------PhysicalOlapScan[t1]
-------------------PhysicalDistribute[DistributionSpecHash]
+----------------PhysicalProject
+------------------hashJoin[INNER_JOIN] hashCondition=((t1.c1 = alias2.c2)) otherCondition=()
--------------------PhysicalProject
-----------------------PhysicalOlapScan[t2]
+----------------------PhysicalOlapScan[t1]
+--------------------PhysicalDistribute[DistributionSpecHash]
+----------------------PhysicalProject
+------------------------PhysicalOlapScan[t2]
----------------PhysicalDistribute[DistributionSpecHash]
------------------PhysicalProject
--------------------PhysicalOlapScan[t3]
------------PhysicalDistribute[DistributionSpecReplicated]
---------------PhysicalLimit[GLOBAL]
-----------------PhysicalDistribute[DistributionSpecGather]
-------------------PhysicalLimit[LOCAL]
+--------------PhysicalProject
+----------------PhysicalLimit[GLOBAL]
+------------------PhysicalDistribute[DistributionSpecGather]
--------------------PhysicalProject
-----------------------hashJoin[INNER_JOIN] hashCondition=((t3.c3 = t4.c4)) otherCondition=()
+----------------------PhysicalLimit[LOCAL]
------------------------PhysicalProject
---------------------------PhysicalOlapScan[t3]
-------------------------PhysicalDistribute[DistributionSpecHash]
---------------------------PhysicalProject
-----------------------------PhysicalOlapScan[t4]
+--------------------------hashJoin[INNER_JOIN] hashCondition=((t3.c3 = t4.c4)) otherCondition=()
+----------------------------PhysicalProject
+------------------------------PhysicalOlapScan[t3]
+----------------------------PhysicalDistribute[DistributionSpecHash]
+------------------------------PhysicalProject
+--------------------------------PhysicalOlapScan[t4]
Hint log:
Used: [shuffle]_2
@@ -6107,26 +6187,29 @@ PhysicalResultSink
----------NestedLoopJoin[CROSS_JOIN]
------------PhysicalProject
--------------hashJoin[LEFT_ANTI_JOIN] hashCondition=((alias2.c2 = t3.c3)) otherCondition=()
-----------------hashJoin[INNER_JOIN] hashCondition=((t1.c1 = alias2.c2)) otherCondition=()
-------------------PhysicalProject
---------------------PhysicalOlapScan[t1]
-------------------PhysicalDistribute[DistributionSpecHash]
+----------------PhysicalProject
+------------------hashJoin[INNER_JOIN] hashCondition=((t1.c1 = alias2.c2)) otherCondition=()
--------------------PhysicalProject
-----------------------PhysicalOlapScan[t2]
+----------------------PhysicalOlapScan[t1]
+--------------------PhysicalDistribute[DistributionSpecHash]
+----------------------PhysicalProject
+------------------------PhysicalOlapScan[t2]
----------------PhysicalDistribute[DistributionSpecHash]
------------------PhysicalProject
--------------------PhysicalOlapScan[t3]
------------PhysicalDistribute[DistributionSpecReplicated]
---------------PhysicalLimit[GLOBAL]
-----------------PhysicalDistribute[DistributionSpecGather]
-------------------PhysicalLimit[LOCAL]
+--------------PhysicalProject
+----------------PhysicalLimit[GLOBAL]
+------------------PhysicalDistribute[DistributionSpecGather]
--------------------PhysicalProject
-----------------------hashJoin[INNER_JOIN] hashCondition=((t3.c3 = t4.c4)) otherCondition=()
+----------------------PhysicalLimit[LOCAL]
------------------------PhysicalProject
---------------------------PhysicalOlapScan[t3]
-------------------------PhysicalDistribute[DistributionSpecHash]
---------------------------PhysicalProject
-----------------------------PhysicalOlapScan[t4]
+--------------------------hashJoin[INNER_JOIN] hashCondition=((t3.c3 = t4.c4)) otherCondition=()
+----------------------------PhysicalProject
+------------------------------PhysicalOlapScan[t3]
+----------------------------PhysicalDistribute[DistributionSpecHash]
+------------------------------PhysicalProject
+--------------------------------PhysicalOlapScan[t4]
Hint log:
Used: [shuffle]_2
@@ -6152,16 +6235,18 @@ PhysicalResultSink
----------------------PhysicalProject
------------------------PhysicalOlapScan[t3]
------------PhysicalDistribute[DistributionSpecReplicated]
---------------PhysicalLimit[GLOBAL]
-----------------PhysicalDistribute[DistributionSpecGather]
-------------------PhysicalLimit[LOCAL]
+--------------PhysicalProject
+----------------PhysicalLimit[GLOBAL]
+------------------PhysicalDistribute[DistributionSpecGather]
--------------------PhysicalProject
-----------------------hashJoin[INNER_JOIN] hashCondition=((t3.c3 = t4.c4)) otherCondition=()
+----------------------PhysicalLimit[LOCAL]
------------------------PhysicalProject
---------------------------PhysicalOlapScan[t3]
-------------------------PhysicalDistribute[DistributionSpecHash]
---------------------------PhysicalProject
-----------------------------PhysicalOlapScan[t4]
+--------------------------hashJoin[INNER_JOIN] hashCondition=((t3.c3 = t4.c4)) otherCondition=()
+----------------------------PhysicalProject
+------------------------------PhysicalOlapScan[t3]
+----------------------------PhysicalDistribute[DistributionSpecHash]
+------------------------------PhysicalProject
+--------------------------------PhysicalOlapScan[t4]
Hint log:
Used: [shuffle]_2
@@ -6177,26 +6262,29 @@ PhysicalResultSink
----------NestedLoopJoin[CROSS_JOIN]
------------PhysicalProject
--------------hashJoin[LEFT_ANTI_JOIN] hashCondition=((alias2.c2 = t3.c3)) otherCondition=()
-----------------hashJoin[INNER_JOIN] hashCondition=((t1.c1 = alias2.c2)) otherCondition=()
-------------------PhysicalProject
---------------------PhysicalOlapScan[t1]
-------------------PhysicalDistribute[DistributionSpecHash]
+----------------PhysicalProject
+------------------hashJoin[INNER_JOIN] hashCondition=((t1.c1 = alias2.c2)) otherCondition=()
--------------------PhysicalProject
-----------------------PhysicalOlapScan[t2]
+----------------------PhysicalOlapScan[t1]
+--------------------PhysicalDistribute[DistributionSpecHash]
+----------------------PhysicalProject
+------------------------PhysicalOlapScan[t2]
----------------PhysicalDistribute[DistributionSpecHash]
------------------PhysicalProject
--------------------PhysicalOlapScan[t3]
------------PhysicalDistribute[DistributionSpecReplicated]
---------------PhysicalLimit[GLOBAL]
-----------------PhysicalDistribute[DistributionSpecGather]
-------------------PhysicalLimit[LOCAL]
+--------------PhysicalProject
+----------------PhysicalLimit[GLOBAL]
+------------------PhysicalDistribute[DistributionSpecGather]
--------------------PhysicalProject
-----------------------hashJoin[INNER_JOIN] hashCondition=((t3.c3 = t4.c4)) otherCondition=()
+----------------------PhysicalLimit[LOCAL]
------------------------PhysicalProject
---------------------------PhysicalOlapScan[t3]
-------------------------PhysicalDistribute[DistributionSpecHash]
---------------------------PhysicalProject
-----------------------------PhysicalOlapScan[t4]
+--------------------------hashJoin[INNER_JOIN] hashCondition=((t3.c3 = t4.c4)) otherCondition=()
+----------------------------PhysicalProject
+------------------------------PhysicalOlapScan[t3]
+----------------------------PhysicalDistribute[DistributionSpecHash]
+------------------------------PhysicalProject
+--------------------------------PhysicalOlapScan[t4]
Hint log:
Used: [shuffle]_2
@@ -6212,26 +6300,29 @@ PhysicalResultSink
----------NestedLoopJoin[CROSS_JOIN]
------------PhysicalProject
--------------hashJoin[LEFT_ANTI_JOIN] hashCondition=((alias2.c2 = t3.c3)) otherCondition=()
-----------------hashJoin[INNER_JOIN] hashCondition=((t1.c1 = alias2.c2)) otherCondition=()
-------------------PhysicalProject
---------------------PhysicalOlapScan[t1]
-------------------PhysicalDistribute[DistributionSpecHash]
+----------------PhysicalProject
+------------------hashJoin[INNER_JOIN] hashCondition=((t1.c1 = alias2.c2)) otherCondition=()
--------------------PhysicalProject
-----------------------PhysicalOlapScan[t2]
+----------------------PhysicalOlapScan[t1]
+--------------------PhysicalDistribute[DistributionSpecHash]
+----------------------PhysicalProject
+------------------------PhysicalOlapScan[t2]
----------------PhysicalDistribute[DistributionSpecHash]
------------------PhysicalProject
--------------------PhysicalOlapScan[t3]
------------PhysicalDistribute[DistributionSpecReplicated]
---------------PhysicalLimit[GLOBAL]
-----------------PhysicalDistribute[DistributionSpecGather]
-------------------PhysicalLimit[LOCAL]
+--------------PhysicalProject
+----------------PhysicalLimit[GLOBAL]
+------------------PhysicalDistribute[DistributionSpecGather]
--------------------PhysicalProject
-----------------------hashJoin[INNER_JOIN] hashCondition=((t3.c3 = t4.c4)) otherCondition=()
+----------------------PhysicalLimit[LOCAL]
------------------------PhysicalProject
---------------------------PhysicalOlapScan[t3]
-------------------------PhysicalDistribute[DistributionSpecHash]
---------------------------PhysicalProject
-----------------------------PhysicalOlapScan[t4]
+--------------------------hashJoin[INNER_JOIN] hashCondition=((t3.c3 = t4.c4)) otherCondition=()
+----------------------------PhysicalProject
+------------------------------PhysicalOlapScan[t3]
+----------------------------PhysicalDistribute[DistributionSpecHash]
+------------------------------PhysicalProject
+--------------------------------PhysicalOlapScan[t4]
Hint log:
Used: [shuffle]_2
@@ -6247,26 +6338,29 @@ PhysicalResultSink
----------NestedLoopJoin[CROSS_JOIN]
------------PhysicalProject
--------------hashJoin[LEFT_ANTI_JOIN] hashCondition=((alias2.c2 = t3.c3)) otherCondition=()
-----------------hashJoin[INNER_JOIN] hashCondition=((t1.c1 = alias2.c2)) otherCondition=()
-------------------PhysicalProject
---------------------PhysicalOlapScan[t1]
-------------------PhysicalDistribute[DistributionSpecHash]
+----------------PhysicalProject
+------------------hashJoin[INNER_JOIN] hashCondition=((t1.c1 = alias2.c2)) otherCondition=()
--------------------PhysicalProject
-----------------------PhysicalOlapScan[t2]
+----------------------PhysicalOlapScan[t1]
+--------------------PhysicalDistribute[DistributionSpecHash]
+----------------------PhysicalProject
+------------------------PhysicalOlapScan[t2]
----------------PhysicalDistribute[DistributionSpecHash]
------------------PhysicalProject
--------------------PhysicalOlapScan[t3]
------------PhysicalDistribute[DistributionSpecReplicated]
---------------PhysicalLimit[GLOBAL]
-----------------PhysicalDistribute[DistributionSpecGather]
-------------------PhysicalLimit[LOCAL]
+--------------PhysicalProject
+----------------PhysicalLimit[GLOBAL]
+------------------PhysicalDistribute[DistributionSpecGather]
--------------------PhysicalProject
-----------------------hashJoin[INNER_JOIN] hashCondition=((t3.c3 = t4.c4)) otherCondition=()
+----------------------PhysicalLimit[LOCAL]
------------------------PhysicalProject
---------------------------PhysicalOlapScan[t3]
-------------------------PhysicalDistribute[DistributionSpecHash]
---------------------------PhysicalProject
-----------------------------PhysicalOlapScan[t4]
+--------------------------hashJoin[INNER_JOIN] hashCondition=((t3.c3 = t4.c4)) otherCondition=()
+----------------------------PhysicalProject
+------------------------------PhysicalOlapScan[t3]
+----------------------------PhysicalDistribute[DistributionSpecHash]
+------------------------------PhysicalProject
+--------------------------------PhysicalOlapScan[t4]
Hint log:
Used: [shuffle]_2
@@ -6282,26 +6376,29 @@ PhysicalResultSink
----------NestedLoopJoin[CROSS_JOIN]
------------PhysicalProject
--------------hashJoin[LEFT_OUTER_JOIN] hashCondition=((alias2.c2 = t3.c3)) otherCondition=()
-----------------hashJoin[LEFT_OUTER_JOIN] hashCondition=((t1.c1 = alias2.c2)) otherCondition=()
-------------------PhysicalProject
---------------------PhysicalOlapScan[t1]
-------------------PhysicalDistribute[DistributionSpecHash]
+----------------PhysicalProject
+------------------hashJoin[LEFT_OUTER_JOIN] hashCondition=((t1.c1 = alias2.c2)) otherCondition=()
--------------------PhysicalProject
-----------------------PhysicalOlapScan[t2]
+----------------------PhysicalOlapScan[t1]
+--------------------PhysicalDistribute[DistributionSpecHash]
+----------------------PhysicalProject
+------------------------PhysicalOlapScan[t2]
----------------PhysicalDistribute[DistributionSpecReplicated]
------------------PhysicalProject
--------------------PhysicalOlapScan[t3]
------------PhysicalDistribute[DistributionSpecReplicated]
---------------PhysicalLimit[GLOBAL]
-----------------PhysicalDistribute[DistributionSpecGather]
-------------------PhysicalLimit[LOCAL]
+--------------PhysicalProject
+----------------PhysicalLimit[GLOBAL]
+------------------PhysicalDistribute[DistributionSpecGather]
--------------------PhysicalProject
-----------------------hashJoin[INNER_JOIN] hashCondition=((t3.c3 = t4.c4)) otherCondition=()
+----------------------PhysicalLimit[LOCAL]
------------------------PhysicalProject
---------------------------PhysicalOlapScan[t3]
-------------------------PhysicalDistribute[DistributionSpecHash]
---------------------------PhysicalProject
-----------------------------PhysicalOlapScan[t4]
+--------------------------hashJoin[INNER_JOIN] hashCondition=((t3.c3 = t4.c4)) otherCondition=()
+----------------------------PhysicalProject
+------------------------------PhysicalOlapScan[t3]
+----------------------------PhysicalDistribute[DistributionSpecHash]
+------------------------------PhysicalProject
+--------------------------------PhysicalOlapScan[t4]
-- !select42_2 --
PhysicalResultSink
@@ -6312,26 +6409,29 @@ PhysicalResultSink
----------NestedLoopJoin[CROSS_JOIN]
------------PhysicalProject
--------------hashJoin[LEFT_OUTER_JOIN] hashCondition=((alias2.c2 = t3.c3)) otherCondition=()
-----------------hashJoin[LEFT_OUTER_JOIN] hashCondition=((t1.c1 = alias2.c2)) otherCondition=()
-------------------PhysicalProject
---------------------PhysicalOlapScan[t1]
-------------------PhysicalDistribute[DistributionSpecReplicated]
+----------------PhysicalProject
+------------------hashJoin[LEFT_OUTER_JOIN] hashCondition=((t1.c1 = alias2.c2)) otherCondition=()
--------------------PhysicalProject
-----------------------PhysicalOlapScan[t2]
+----------------------PhysicalOlapScan[t1]
+--------------------PhysicalDistribute[DistributionSpecReplicated]
+----------------------PhysicalProject
+------------------------PhysicalOlapScan[t2]
----------------PhysicalDistribute[DistributionSpecReplicated]
------------------PhysicalProject
--------------------PhysicalOlapScan[t3]
------------PhysicalDistribute[DistributionSpecReplicated]
---------------PhysicalLimit[GLOBAL]
-----------------PhysicalDistribute[DistributionSpecGather]
-------------------PhysicalLimit[LOCAL]
+--------------PhysicalProject
+----------------PhysicalLimit[GLOBAL]
+------------------PhysicalDistribute[DistributionSpecGather]
--------------------PhysicalProject
-----------------------hashJoin[INNER_JOIN] hashCondition=((t3.c3 = t4.c4)) otherCondition=()
+----------------------PhysicalLimit[LOCAL]
------------------------PhysicalProject
---------------------------PhysicalOlapScan[t3]
-------------------------PhysicalDistribute[DistributionSpecHash]
---------------------------PhysicalProject
-----------------------------PhysicalOlapScan[t4]
+--------------------------hashJoin[INNER_JOIN] hashCondition=((t3.c3 = t4.c4)) otherCondition=()
+----------------------------PhysicalProject
+------------------------------PhysicalOlapScan[t3]
+----------------------------PhysicalDistribute[DistributionSpecHash]
+------------------------------PhysicalProject
+--------------------------------PhysicalOlapScan[t4]
Hint log:
Used: [broadcast]_2
@@ -6347,26 +6447,29 @@ PhysicalResultSink
----------NestedLoopJoin[CROSS_JOIN]
------------PhysicalProject
--------------hashJoin[LEFT_OUTER_JOIN] hashCondition=((alias2.c2 = t3.c3)) otherCondition=()
-----------------hashJoin[LEFT_OUTER_JOIN] hashCondition=((t1.c1 = alias2.c2)) otherCondition=()
-------------------PhysicalProject
---------------------PhysicalOlapScan[t1]
-------------------PhysicalDistribute[DistributionSpecHash]
+----------------PhysicalProject
+------------------hashJoin[LEFT_OUTER_JOIN] hashCondition=((t1.c1 = alias2.c2)) otherCondition=()
--------------------PhysicalProject
-----------------------PhysicalOlapScan[t2]
+----------------------PhysicalOlapScan[t1]
+--------------------PhysicalDistribute[DistributionSpecHash]
+----------------------PhysicalProject
+------------------------PhysicalOlapScan[t2]
----------------PhysicalDistribute[DistributionSpecReplicated]
------------------PhysicalProject
--------------------PhysicalOlapScan[t3]
------------PhysicalDistribute[DistributionSpecReplicated]
---------------PhysicalLimit[GLOBAL]
-----------------PhysicalDistribute[DistributionSpecGather]
-------------------PhysicalLimit[LOCAL]
+--------------PhysicalProject
+----------------PhysicalLimit[GLOBAL]
+------------------PhysicalDistribute[DistributionSpecGather]
--------------------PhysicalProject
-----------------------hashJoin[INNER_JOIN] hashCondition=((t3.c3 = t4.c4)) otherCondition=()
+----------------------PhysicalLimit[LOCAL]
------------------------PhysicalProject
---------------------------PhysicalOlapScan[t3]
-------------------------PhysicalDistribute[DistributionSpecHash]
---------------------------PhysicalProject
-----------------------------PhysicalOlapScan[t4]
+--------------------------hashJoin[INNER_JOIN] hashCondition=((t3.c3 = t4.c4)) otherCondition=()
+----------------------------PhysicalProject
+------------------------------PhysicalOlapScan[t3]
+----------------------------PhysicalDistribute[DistributionSpecHash]
+------------------------------PhysicalProject
+--------------------------------PhysicalOlapScan[t4]
Hint log:
Used: [broadcast]_2
@@ -6382,26 +6485,29 @@ PhysicalResultSink
----------NestedLoopJoin[CROSS_JOIN]
------------PhysicalProject
--------------hashJoin[LEFT_OUTER_JOIN] hashCondition=((alias2.c2 = t3.c3)) otherCondition=()
-----------------hashJoin[LEFT_OUTER_JOIN] hashCondition=((t1.c1 = alias2.c2)) otherCondition=()
-------------------PhysicalProject
---------------------PhysicalOlapScan[t1]
-------------------PhysicalDistribute[DistributionSpecHash]
+----------------PhysicalProject
+------------------hashJoin[LEFT_OUTER_JOIN] hashCondition=((t1.c1 = alias2.c2)) otherCondition=()
--------------------PhysicalProject
-----------------------PhysicalOlapScan[t2]
+----------------------PhysicalOlapScan[t1]
+--------------------PhysicalDistribute[DistributionSpecHash]
+----------------------PhysicalProject
+------------------------PhysicalOlapScan[t2]
----------------PhysicalDistribute[DistributionSpecReplicated]
------------------PhysicalProject
--------------------PhysicalOlapScan[t3]
------------PhysicalDistribute[DistributionSpecReplicated]
---------------PhysicalLimit[GLOBAL]
-----------------PhysicalDistribute[DistributionSpecGather]
-------------------PhysicalLimit[LOCAL]
+--------------PhysicalProject
+----------------PhysicalLimit[GLOBAL]
+------------------PhysicalDistribute[DistributionSpecGather]
--------------------PhysicalProject
-----------------------hashJoin[INNER_JOIN] hashCondition=((t3.c3 = t4.c4)) otherCondition=()
+----------------------PhysicalLimit[LOCAL]
------------------------PhysicalProject
---------------------------PhysicalOlapScan[t3]
-------------------------PhysicalDistribute[DistributionSpecReplicated]
---------------------------PhysicalProject
-----------------------------PhysicalOlapScan[t4]
+--------------------------hashJoin[INNER_JOIN] hashCondition=((t3.c3 = t4.c4)) otherCondition=()
+----------------------------PhysicalProject
+------------------------------PhysicalOlapScan[t3]
+----------------------------PhysicalDistribute[DistributionSpecReplicated]
+------------------------------PhysicalProject
+--------------------------------PhysicalOlapScan[t4]
Hint log:
Used: [broadcast]_2
@@ -6417,26 +6523,29 @@ PhysicalResultSink
----------NestedLoopJoin[CROSS_JOIN]
------------PhysicalProject
--------------hashJoin[LEFT_OUTER_JOIN] hashCondition=((alias2.c2 = t3.c3)) otherCondition=()
-----------------hashJoin[LEFT_OUTER_JOIN] hashCondition=((t1.c1 = alias2.c2)) otherCondition=()
-------------------PhysicalProject
---------------------PhysicalOlapScan[t1]
-------------------PhysicalDistribute[DistributionSpecReplicated]
+----------------PhysicalProject
+------------------hashJoin[LEFT_OUTER_JOIN] hashCondition=((t1.c1 = alias2.c2)) otherCondition=()
--------------------PhysicalProject
-----------------------PhysicalOlapScan[t2]
+----------------------PhysicalOlapScan[t1]
+--------------------PhysicalDistribute[DistributionSpecReplicated]
+----------------------PhysicalProject
+------------------------PhysicalOlapScan[t2]
----------------PhysicalDistribute[DistributionSpecReplicated]
------------------PhysicalProject
--------------------PhysicalOlapScan[t3]
------------PhysicalDistribute[DistributionSpecReplicated]
---------------PhysicalLimit[GLOBAL]
-----------------PhysicalDistribute[DistributionSpecGather]
-------------------PhysicalLimit[LOCAL]
+--------------PhysicalProject
+----------------PhysicalLimit[GLOBAL]
+------------------PhysicalDistribute[DistributionSpecGather]
--------------------PhysicalProject
-----------------------hashJoin[INNER_JOIN] hashCondition=((t3.c3 = t4.c4)) otherCondition=()
+----------------------PhysicalLimit[LOCAL]
------------------------PhysicalProject
---------------------------PhysicalOlapScan[t3]
-------------------------PhysicalDistribute[DistributionSpecHash]
---------------------------PhysicalProject
-----------------------------PhysicalOlapScan[t4]
+--------------------------hashJoin[INNER_JOIN] hashCondition=((t3.c3 = t4.c4)) otherCondition=()
+----------------------------PhysicalProject
+------------------------------PhysicalOlapScan[t3]
+----------------------------PhysicalDistribute[DistributionSpecHash]
+------------------------------PhysicalProject
+--------------------------------PhysicalOlapScan[t4]
Hint log:
Used: [broadcast]_2
@@ -6452,26 +6561,29 @@ PhysicalResultSink
----------NestedLoopJoin[CROSS_JOIN]
------------PhysicalProject
--------------hashJoin[LEFT_OUTER_JOIN] hashCondition=((alias2.c2 = t3.c3)) otherCondition=()
-----------------hashJoin[LEFT_OUTER_JOIN] hashCondition=((t1.c1 = alias2.c2)) otherCondition=()
-------------------PhysicalProject
---------------------PhysicalOlapScan[t1]
-------------------PhysicalDistribute[DistributionSpecHash]
+----------------PhysicalProject
+------------------hashJoin[LEFT_OUTER_JOIN] hashCondition=((t1.c1 = alias2.c2)) otherCondition=()
--------------------PhysicalProject
-----------------------PhysicalOlapScan[t2]
+----------------------PhysicalOlapScan[t1]
+--------------------PhysicalDistribute[DistributionSpecHash]
+----------------------PhysicalProject
+------------------------PhysicalOlapScan[t2]
----------------PhysicalDistribute[DistributionSpecReplicated]
------------------PhysicalProject
--------------------PhysicalOlapScan[t3]
------------PhysicalDistribute[DistributionSpecReplicated]
---------------PhysicalLimit[GLOBAL]
-----------------PhysicalDistribute[DistributionSpecGather]
-------------------PhysicalLimit[LOCAL]
+--------------PhysicalProject
+----------------PhysicalLimit[GLOBAL]
+------------------PhysicalDistribute[DistributionSpecGather]
--------------------PhysicalProject
-----------------------hashJoin[INNER_JOIN] hashCondition=((t3.c3 = t4.c4)) otherCondition=()
+----------------------PhysicalLimit[LOCAL]
------------------------PhysicalProject
---------------------------PhysicalOlapScan[t3]
-------------------------PhysicalDistribute[DistributionSpecReplicated]
---------------------------PhysicalProject
-----------------------------PhysicalOlapScan[t4]
+--------------------------hashJoin[INNER_JOIN] hashCondition=((t3.c3 = t4.c4)) otherCondition=()
+----------------------------PhysicalProject
+------------------------------PhysicalOlapScan[t3]
+----------------------------PhysicalDistribute[DistributionSpecReplicated]
+------------------------------PhysicalProject
+--------------------------------PhysicalOlapScan[t4]
Hint log:
Used: [broadcast]_2
@@ -6487,26 +6599,29 @@ PhysicalResultSink
----------NestedLoopJoin[CROSS_JOIN]
------------PhysicalProject
--------------hashJoin[LEFT_OUTER_JOIN] hashCondition=((alias2.c2 = t3.c3)) otherCondition=()
-----------------hashJoin[LEFT_OUTER_JOIN] hashCondition=((t1.c1 = alias2.c2)) otherCondition=()
-------------------PhysicalProject
---------------------PhysicalOlapScan[t1]
-------------------PhysicalDistribute[DistributionSpecReplicated]
+----------------PhysicalProject
+------------------hashJoin[LEFT_OUTER_JOIN] hashCondition=((t1.c1 = alias2.c2)) otherCondition=()
--------------------PhysicalProject
-----------------------PhysicalOlapScan[t2]
+----------------------PhysicalOlapScan[t1]
+--------------------PhysicalDistribute[DistributionSpecReplicated]
+----------------------PhysicalProject
+------------------------PhysicalOlapScan[t2]
----------------PhysicalDistribute[DistributionSpecReplicated]
------------------PhysicalProject
--------------------PhysicalOlapScan[t3]
------------PhysicalDistribute[DistributionSpecReplicated]
---------------PhysicalLimit[GLOBAL]
-----------------PhysicalDistribute[DistributionSpecGather]
-------------------PhysicalLimit[LOCAL]
+--------------PhysicalProject
+----------------PhysicalLimit[GLOBAL]
+------------------PhysicalDistribute[DistributionSpecGather]
--------------------PhysicalProject
-----------------------hashJoin[INNER_JOIN] hashCondition=((t3.c3 = t4.c4)) otherCondition=()
+----------------------PhysicalLimit[LOCAL]
------------------------PhysicalProject
---------------------------PhysicalOlapScan[t3]
-------------------------PhysicalDistribute[DistributionSpecReplicated]
---------------------------PhysicalProject
-----------------------------PhysicalOlapScan[t4]
+--------------------------hashJoin[INNER_JOIN] hashCondition=((t3.c3 = t4.c4)) otherCondition=()
+----------------------------PhysicalProject
+------------------------------PhysicalOlapScan[t3]
+----------------------------PhysicalDistribute[DistributionSpecReplicated]
+------------------------------PhysicalProject
+--------------------------------PhysicalOlapScan[t4]
Hint log:
Used: [broadcast]_2
@@ -6522,26 +6637,29 @@ PhysicalResultSink
----------NestedLoopJoin[CROSS_JOIN]
------------PhysicalProject
--------------hashJoin[LEFT_OUTER_JOIN] hashCondition=((alias2.c2 = t3.c3)) otherCondition=()
-----------------hashJoin[LEFT_OUTER_JOIN] hashCondition=((t1.c1 = alias2.c2)) otherCondition=()
-------------------PhysicalProject
---------------------PhysicalOlapScan[t1]
-------------------PhysicalDistribute[DistributionSpecHash]
+----------------PhysicalProject
+------------------hashJoin[LEFT_OUTER_JOIN] hashCondition=((t1.c1 = alias2.c2)) otherCondition=()
--------------------PhysicalProject
-----------------------PhysicalOlapScan[t2]
+----------------------PhysicalOlapScan[t1]
+--------------------PhysicalDistribute[DistributionSpecHash]
+----------------------PhysicalProject
+------------------------PhysicalOlapScan[t2]
----------------PhysicalDistribute[DistributionSpecReplicated]
------------------PhysicalProject
--------------------PhysicalOlapScan[t3]
------------PhysicalDistribute[DistributionSpecReplicated]
---------------PhysicalLimit[GLOBAL]
-----------------PhysicalDistribute[DistributionSpecGather]
-------------------PhysicalLimit[LOCAL]
+--------------PhysicalProject
+----------------PhysicalLimit[GLOBAL]
+------------------PhysicalDistribute[DistributionSpecGather]
--------------------PhysicalProject
-----------------------hashJoin[INNER_JOIN] hashCondition=((t3.c3 = t4.c4)) otherCondition=()
+----------------------PhysicalLimit[LOCAL]
------------------------PhysicalProject
---------------------------PhysicalOlapScan[t3]
-------------------------PhysicalDistribute[DistributionSpecHash]
---------------------------PhysicalProject
-----------------------------PhysicalOlapScan[t4]
+--------------------------hashJoin[INNER_JOIN] hashCondition=((t3.c3 = t4.c4)) otherCondition=()
+----------------------------PhysicalProject
+------------------------------PhysicalOlapScan[t3]
+----------------------------PhysicalDistribute[DistributionSpecHash]
+------------------------------PhysicalProject
+--------------------------------PhysicalOlapScan[t4]
Hint log:
Used: [shuffle]_2
@@ -6558,26 +6676,29 @@ PhysicalResultSink
------------PhysicalProject
--------------hashJoin[LEFT_OUTER_JOIN] hashCondition=((alias2.c2 = t3.c3)) otherCondition=()
----------------PhysicalDistribute[DistributionSpecHash]
-------------------hashJoin[LEFT_OUTER_JOIN] hashCondition=((t1.c1 = alias2.c2)) otherCondition=()
---------------------PhysicalProject
-----------------------PhysicalOlapScan[t1]
---------------------PhysicalDistribute[DistributionSpecHash]
+------------------PhysicalProject
+--------------------hashJoin[LEFT_OUTER_JOIN] hashCondition=((t1.c1 = alias2.c2)) otherCondition=()
----------------------PhysicalProject
-------------------------PhysicalOlapScan[t2]
+------------------------PhysicalOlapScan[t1]
+----------------------PhysicalDistribute[DistributionSpecHash]
+------------------------PhysicalProject
+--------------------------PhysicalOlapScan[t2]
----------------PhysicalDistribute[DistributionSpecHash]
------------------PhysicalProject
--------------------PhysicalOlapScan[t3]
------------PhysicalDistribute[DistributionSpecReplicated]
---------------PhysicalLimit[GLOBAL]
-----------------PhysicalDistribute[DistributionSpecGather]
-------------------PhysicalLimit[LOCAL]
+--------------PhysicalProject
+----------------PhysicalLimit[GLOBAL]
+------------------PhysicalDistribute[DistributionSpecGather]
--------------------PhysicalProject
-----------------------hashJoin[INNER_JOIN] hashCondition=((t3.c3 = t4.c4)) otherCondition=()
+----------------------PhysicalLimit[LOCAL]
------------------------PhysicalProject
---------------------------PhysicalOlapScan[t3]
-------------------------PhysicalDistribute[DistributionSpecHash]
---------------------------PhysicalProject
-----------------------------PhysicalOlapScan[t4]
+--------------------------hashJoin[INNER_JOIN] hashCondition=((t3.c3 = t4.c4)) otherCondition=()
+----------------------------PhysicalProject
+------------------------------PhysicalOlapScan[t3]
+----------------------------PhysicalDistribute[DistributionSpecHash]
+------------------------------PhysicalProject
+--------------------------------PhysicalOlapScan[t4]
Hint log:
Used: [shuffle]_2
@@ -6593,26 +6714,29 @@ PhysicalResultSink
----------NestedLoopJoin[CROSS_JOIN]
------------PhysicalProject
--------------hashJoin[LEFT_OUTER_JOIN] hashCondition=((alias2.c2 = t3.c3)) otherCondition=()
-----------------hashJoin[LEFT_OUTER_JOIN] hashCondition=((t1.c1 = alias2.c2)) otherCondition=()
-------------------PhysicalProject
---------------------PhysicalOlapScan[t1]
-------------------PhysicalDistribute[DistributionSpecHash]
+----------------PhysicalProject
+------------------hashJoin[LEFT_OUTER_JOIN] hashCondition=((t1.c1 = alias2.c2)) otherCondition=()
--------------------PhysicalProject
-----------------------PhysicalOlapScan[t2]
+----------------------PhysicalOlapScan[t1]
+--------------------PhysicalDistribute[DistributionSpecHash]
+----------------------PhysicalProject
+------------------------PhysicalOlapScan[t2]
----------------PhysicalDistribute[DistributionSpecReplicated]
------------------PhysicalProject
--------------------PhysicalOlapScan[t3]
------------PhysicalDistribute[DistributionSpecReplicated]
---------------PhysicalLimit[GLOBAL]
-----------------PhysicalDistribute[DistributionSpecGather]
-------------------PhysicalLimit[LOCAL]
+--------------PhysicalProject
+----------------PhysicalLimit[GLOBAL]
+------------------PhysicalDistribute[DistributionSpecGather]
--------------------PhysicalProject
-----------------------hashJoin[INNER_JOIN] hashCondition=((t3.c3 = t4.c4)) otherCondition=()
+----------------------PhysicalLimit[LOCAL]
------------------------PhysicalProject
---------------------------PhysicalOlapScan[t3]
-------------------------PhysicalDistribute[DistributionSpecHash]
---------------------------PhysicalProject
-----------------------------PhysicalOlapScan[t4]
+--------------------------hashJoin[INNER_JOIN] hashCondition=((t3.c3 = t4.c4)) otherCondition=()
+----------------------------PhysicalProject
+------------------------------PhysicalOlapScan[t3]
+----------------------------PhysicalDistribute[DistributionSpecHash]
+------------------------------PhysicalProject
+--------------------------------PhysicalOlapScan[t4]
Hint log:
Used: [shuffle]_2
@@ -6629,26 +6753,29 @@ PhysicalResultSink
------------PhysicalProject
--------------hashJoin[LEFT_OUTER_JOIN] hashCondition=((alias2.c2 = t3.c3)) otherCondition=()
----------------PhysicalDistribute[DistributionSpecHash]
-------------------hashJoin[LEFT_OUTER_JOIN] hashCondition=((t1.c1 = alias2.c2)) otherCondition=()
---------------------PhysicalProject
-----------------------PhysicalOlapScan[t1]
---------------------PhysicalDistribute[DistributionSpecHash]
+------------------PhysicalProject
+--------------------hashJoin[LEFT_OUTER_JOIN] hashCondition=((t1.c1 = alias2.c2)) otherCondition=()
----------------------PhysicalProject
-------------------------PhysicalOlapScan[t2]
+------------------------PhysicalOlapScan[t1]
+----------------------PhysicalDistribute[DistributionSpecHash]
+------------------------PhysicalProject
+--------------------------PhysicalOlapScan[t2]
----------------PhysicalDistribute[DistributionSpecHash]
------------------PhysicalProject
--------------------PhysicalOlapScan[t3]
------------PhysicalDistribute[DistributionSpecReplicated]
---------------PhysicalLimit[GLOBAL]
-----------------PhysicalDistribute[DistributionSpecGather]
-------------------PhysicalLimit[LOCAL]
+--------------PhysicalProject
+----------------PhysicalLimit[GLOBAL]
+------------------PhysicalDistribute[DistributionSpecGather]
--------------------PhysicalProject
-----------------------hashJoin[INNER_JOIN] hashCondition=((t3.c3 = t4.c4)) otherCondition=()
+----------------------PhysicalLimit[LOCAL]
------------------------PhysicalProject
---------------------------PhysicalOlapScan[t3]
-------------------------PhysicalDistribute[DistributionSpecHash]
---------------------------PhysicalProject
-----------------------------PhysicalOlapScan[t4]
+--------------------------hashJoin[INNER_JOIN] hashCondition=((t3.c3 = t4.c4)) otherCondition=()
+----------------------------PhysicalProject
+------------------------------PhysicalOlapScan[t3]
+----------------------------PhysicalDistribute[DistributionSpecHash]
+------------------------------PhysicalProject
+--------------------------------PhysicalOlapScan[t4]
Hint log:
Used: [shuffle]_2
@@ -6664,26 +6791,29 @@ PhysicalResultSink
----------NestedLoopJoin[CROSS_JOIN]
------------PhysicalProject
--------------hashJoin[LEFT_OUTER_JOIN] hashCondition=((alias2.c2 = t3.c3)) otherCondition=()
-----------------hashJoin[LEFT_OUTER_JOIN] hashCondition=((t1.c1 = alias2.c2)) otherCondition=()
-------------------PhysicalProject
---------------------PhysicalOlapScan[t1]
-------------------PhysicalDistribute[DistributionSpecHash]
+----------------PhysicalProject
+------------------hashJoin[LEFT_OUTER_JOIN] hashCondition=((t1.c1 = alias2.c2)) otherCondition=()
--------------------PhysicalProject
-----------------------PhysicalOlapScan[t2]
+----------------------PhysicalOlapScan[t1]
+--------------------PhysicalDistribute[DistributionSpecHash]
+----------------------PhysicalProject
+------------------------PhysicalOlapScan[t2]
----------------PhysicalDistribute[DistributionSpecReplicated]
------------------PhysicalProject
--------------------PhysicalOlapScan[t3]
------------PhysicalDistribute[DistributionSpecReplicated]
---------------PhysicalLimit[GLOBAL]
-----------------PhysicalDistribute[DistributionSpecGather]
-------------------PhysicalLimit[LOCAL]
+--------------PhysicalProject
+----------------PhysicalLimit[GLOBAL]
+------------------PhysicalDistribute[DistributionSpecGather]
--------------------PhysicalProject
-----------------------hashJoin[INNER_JOIN] hashCondition=((t3.c3 = t4.c4)) otherCondition=()
+----------------------PhysicalLimit[LOCAL]
------------------------PhysicalProject
---------------------------PhysicalOlapScan[t3]
-------------------------PhysicalDistribute[DistributionSpecHash]
---------------------------PhysicalProject
-----------------------------PhysicalOlapScan[t4]
+--------------------------hashJoin[INNER_JOIN] hashCondition=((t3.c3 = t4.c4)) otherCondition=()
+----------------------------PhysicalProject
+------------------------------PhysicalOlapScan[t3]
+----------------------------PhysicalDistribute[DistributionSpecHash]
+------------------------------PhysicalProject
+--------------------------------PhysicalOlapScan[t4]
Hint log:
Used: [shuffle]_2
@@ -6700,26 +6830,29 @@ PhysicalResultSink
------------PhysicalProject
--------------hashJoin[LEFT_OUTER_JOIN] hashCondition=((alias2.c2 = t3.c3)) otherCondition=()
----------------PhysicalDistribute[DistributionSpecHash]
-------------------hashJoin[LEFT_OUTER_JOIN] hashCondition=((t1.c1 = alias2.c2)) otherCondition=()
---------------------PhysicalProject
-----------------------PhysicalOlapScan[t1]
---------------------PhysicalDistribute[DistributionSpecHash]
+------------------PhysicalProject
+--------------------hashJoin[LEFT_OUTER_JOIN] hashCondition=((t1.c1 = alias2.c2)) otherCondition=()
----------------------PhysicalProject
-------------------------PhysicalOlapScan[t2]
+------------------------PhysicalOlapScan[t1]
+----------------------PhysicalDistribute[DistributionSpecHash]
+------------------------PhysicalProject
+--------------------------PhysicalOlapScan[t2]
----------------PhysicalDistribute[DistributionSpecHash]
------------------PhysicalProject
--------------------PhysicalOlapScan[t3]
------------PhysicalDistribute[DistributionSpecReplicated]
---------------PhysicalLimit[GLOBAL]
-----------------PhysicalDistribute[DistributionSpecGather]
-------------------PhysicalLimit[LOCAL]
+--------------PhysicalProject
+----------------PhysicalLimit[GLOBAL]
+------------------PhysicalDistribute[DistributionSpecGather]
--------------------PhysicalProject
-----------------------hashJoin[INNER_JOIN] hashCondition=((t3.c3 = t4.c4)) otherCondition=()
+----------------------PhysicalLimit[LOCAL]
------------------------PhysicalProject
---------------------------PhysicalOlapScan[t3]
-------------------------PhysicalDistribute[DistributionSpecHash]
---------------------------PhysicalProject
-----------------------------PhysicalOlapScan[t4]
+--------------------------hashJoin[INNER_JOIN] hashCondition=((t3.c3 = t4.c4)) otherCondition=()
+----------------------------PhysicalProject
+------------------------------PhysicalOlapScan[t3]
+----------------------------PhysicalDistribute[DistributionSpecHash]
+------------------------------PhysicalProject
+--------------------------------PhysicalOlapScan[t4]
Hint log:
Used: [shuffle]_2
@@ -6746,16 +6879,18 @@ PhysicalResultSink
------------------------PhysicalProject
--------------------------PhysicalOlapScan[t2]
------------PhysicalDistribute[DistributionSpecReplicated]
---------------PhysicalLimit[GLOBAL]
-----------------PhysicalDistribute[DistributionSpecGather]
-------------------PhysicalLimit[LOCAL]
+--------------PhysicalProject
+----------------PhysicalLimit[GLOBAL]
+------------------PhysicalDistribute[DistributionSpecGather]
--------------------PhysicalProject
-----------------------hashJoin[INNER_JOIN] hashCondition=((t3.c3 = t4.c4)) otherCondition=()
+----------------------PhysicalLimit[LOCAL]
------------------------PhysicalProject
---------------------------PhysicalOlapScan[t3]
-------------------------PhysicalDistribute[DistributionSpecHash]
---------------------------PhysicalProject
-----------------------------PhysicalOlapScan[t4]
+--------------------------hashJoin[INNER_JOIN] hashCondition=((t3.c3 = t4.c4)) otherCondition=()
+----------------------------PhysicalProject
+------------------------------PhysicalOlapScan[t3]
+----------------------------PhysicalDistribute[DistributionSpecHash]
+------------------------------PhysicalProject
+--------------------------------PhysicalOlapScan[t4]
-- !select43_2 --
PhysicalResultSink
@@ -6777,16 +6912,18 @@ PhysicalResultSink
------------------------PhysicalProject
--------------------------PhysicalOlapScan[t2]
------------PhysicalDistribute[DistributionSpecReplicated]
---------------PhysicalLimit[GLOBAL]
-----------------PhysicalDistribute[DistributionSpecGather]
-------------------PhysicalLimit[LOCAL]
+--------------PhysicalProject
+----------------PhysicalLimit[GLOBAL]
+------------------PhysicalDistribute[DistributionSpecGather]
--------------------PhysicalProject
-----------------------hashJoin[INNER_JOIN] hashCondition=((t3.c3 = t4.c4)) otherCondition=()
+----------------------PhysicalLimit[LOCAL]
------------------------PhysicalProject
---------------------------PhysicalOlapScan[t3]
-------------------------PhysicalDistribute[DistributionSpecHash]
---------------------------PhysicalProject
-----------------------------PhysicalOlapScan[t4]
+--------------------------hashJoin[INNER_JOIN] hashCondition=((t3.c3 = t4.c4)) otherCondition=()
+----------------------------PhysicalProject
+------------------------------PhysicalOlapScan[t3]
+----------------------------PhysicalDistribute[DistributionSpecHash]
+------------------------------PhysicalProject
+--------------------------------PhysicalOlapScan[t4]
Hint log:
Used: [broadcast]_2
@@ -6803,26 +6940,29 @@ PhysicalResultSink
------------PhysicalProject
--------------hashJoin[RIGHT_OUTER_JOIN] hashCondition=((alias2.c2 = t3.c3)) otherCondition=()
----------------PhysicalDistribute[DistributionSpecHash]
-------------------hashJoin[LEFT_OUTER_JOIN] hashCondition=((t1.c1 = alias2.c2)) otherCondition=()
---------------------PhysicalProject
-----------------------PhysicalOlapScan[t1]
---------------------PhysicalDistribute[DistributionSpecHash]
+------------------PhysicalProject
+--------------------hashJoin[LEFT_OUTER_JOIN] hashCondition=((t1.c1 = alias2.c2)) otherCondition=()
----------------------PhysicalProject
-------------------------PhysicalOlapScan[t2]
+------------------------PhysicalOlapScan[t1]
+----------------------PhysicalDistribute[DistributionSpecHash]
+------------------------PhysicalProject
+--------------------------PhysicalOlapScan[t2]
----------------PhysicalDistribute[DistributionSpecHash]
------------------PhysicalProject
--------------------PhysicalOlapScan[t3]
------------PhysicalDistribute[DistributionSpecReplicated]
---------------PhysicalLimit[GLOBAL]
-----------------PhysicalDistribute[DistributionSpecGather]
-------------------PhysicalLimit[LOCAL]
+--------------PhysicalProject
+----------------PhysicalLimit[GLOBAL]
+------------------PhysicalDistribute[DistributionSpecGather]
--------------------PhysicalProject
-----------------------hashJoin[INNER_JOIN] hashCondition=((t3.c3 = t4.c4)) otherCondition=()
+----------------------PhysicalLimit[LOCAL]
------------------------PhysicalProject
---------------------------PhysicalOlapScan[t3]
-------------------------PhysicalDistribute[DistributionSpecHash]
---------------------------PhysicalProject
-----------------------------PhysicalOlapScan[t4]
+--------------------------hashJoin[INNER_JOIN] hashCondition=((t3.c3 = t4.c4)) otherCondition=()
+----------------------------PhysicalProject
+------------------------------PhysicalOlapScan[t3]
+----------------------------PhysicalDistribute[DistributionSpecHash]
+------------------------------PhysicalProject
+--------------------------------PhysicalOlapScan[t4]
Hint log:
Used:
@@ -6849,16 +6989,18 @@ PhysicalResultSink
------------------------PhysicalProject
--------------------------PhysicalOlapScan[t2]
------------PhysicalDistribute[DistributionSpecReplicated]
---------------PhysicalLimit[GLOBAL]
-----------------PhysicalDistribute[DistributionSpecGather]
-------------------PhysicalLimit[LOCAL]
+--------------PhysicalProject
+----------------PhysicalLimit[GLOBAL]
+------------------PhysicalDistribute[DistributionSpecGather]
--------------------PhysicalProject
-----------------------hashJoin[INNER_JOIN] hashCondition=((t3.c3 = t4.c4)) otherCondition=()
+----------------------PhysicalLimit[LOCAL]
------------------------PhysicalProject
---------------------------PhysicalOlapScan[t3]
-------------------------PhysicalDistribute[DistributionSpecReplicated]
---------------------------PhysicalProject
-----------------------------PhysicalOlapScan[t4]
+--------------------------hashJoin[INNER_JOIN] hashCondition=((t3.c3 = t4.c4)) otherCondition=()
+----------------------------PhysicalProject
+------------------------------PhysicalOlapScan[t3]
+----------------------------PhysicalDistribute[DistributionSpecReplicated]
+------------------------------PhysicalProject
+--------------------------------PhysicalOlapScan[t4]
Hint log:
Used: [broadcast]_2
@@ -6875,26 +7017,29 @@ PhysicalResultSink
------------PhysicalProject
--------------hashJoin[RIGHT_OUTER_JOIN] hashCondition=((alias2.c2 = t3.c3)) otherCondition=()
----------------PhysicalDistribute[DistributionSpecHash]
-------------------hashJoin[LEFT_OUTER_JOIN] hashCondition=((t1.c1 = alias2.c2)) otherCondition=()
---------------------PhysicalProject
-----------------------PhysicalOlapScan[t1]
---------------------PhysicalDistribute[DistributionSpecReplicated]
+------------------PhysicalProject
+--------------------hashJoin[LEFT_OUTER_JOIN] hashCondition=((t1.c1 = alias2.c2)) otherCondition=()
----------------------PhysicalProject
-------------------------PhysicalOlapScan[t2]
+------------------------PhysicalOlapScan[t1]
+----------------------PhysicalDistribute[DistributionSpecReplicated]
+------------------------PhysicalProject
+--------------------------PhysicalOlapScan[t2]
----------------PhysicalDistribute[DistributionSpecHash]
------------------PhysicalProject
--------------------PhysicalOlapScan[t3]
------------PhysicalDistribute[DistributionSpecReplicated]
---------------PhysicalLimit[GLOBAL]
-----------------PhysicalDistribute[DistributionSpecGather]
-------------------PhysicalLimit[LOCAL]
+--------------PhysicalProject
+----------------PhysicalLimit[GLOBAL]
+------------------PhysicalDistribute[DistributionSpecGather]
--------------------PhysicalProject
-----------------------hashJoin[INNER_JOIN] hashCondition=((t3.c3 = t4.c4)) otherCondition=()
+----------------------PhysicalLimit[LOCAL]
------------------------PhysicalProject
---------------------------PhysicalOlapScan[t3]
-------------------------PhysicalDistribute[DistributionSpecHash]
---------------------------PhysicalProject
-----------------------------PhysicalOlapScan[t4]
+--------------------------hashJoin[INNER_JOIN] hashCondition=((t3.c3 = t4.c4)) otherCondition=()
+----------------------------PhysicalProject
+------------------------------PhysicalOlapScan[t3]
+----------------------------PhysicalDistribute[DistributionSpecHash]
+------------------------------PhysicalProject
+--------------------------------PhysicalOlapScan[t4]
Hint log:
Used: [broadcast]_2
@@ -6911,26 +7056,29 @@ PhysicalResultSink
------------PhysicalProject
--------------hashJoin[RIGHT_OUTER_JOIN] hashCondition=((alias2.c2 = t3.c3)) otherCondition=()
----------------PhysicalDistribute[DistributionSpecHash]
-------------------hashJoin[LEFT_OUTER_JOIN] hashCondition=((t1.c1 = alias2.c2)) otherCondition=()
---------------------PhysicalProject
-----------------------PhysicalOlapScan[t1]
---------------------PhysicalDistribute[DistributionSpecHash]
+------------------PhysicalProject
+--------------------hashJoin[LEFT_OUTER_JOIN] hashCondition=((t1.c1 = alias2.c2)) otherCondition=()
----------------------PhysicalProject
-------------------------PhysicalOlapScan[t2]
+------------------------PhysicalOlapScan[t1]
+----------------------PhysicalDistribute[DistributionSpecHash]
+------------------------PhysicalProject
+--------------------------PhysicalOlapScan[t2]
----------------PhysicalDistribute[DistributionSpecHash]
------------------PhysicalProject
--------------------PhysicalOlapScan[t3]
------------PhysicalDistribute[DistributionSpecReplicated]
---------------PhysicalLimit[GLOBAL]
-----------------PhysicalDistribute[DistributionSpecGather]
-------------------PhysicalLimit[LOCAL]
+--------------PhysicalProject
+----------------PhysicalLimit[GLOBAL]
+------------------PhysicalDistribute[DistributionSpecGather]
--------------------PhysicalProject
-----------------------hashJoin[INNER_JOIN] hashCondition=((t3.c3 = t4.c4)) otherCondition=()
+----------------------PhysicalLimit[LOCAL]
------------------------PhysicalProject
---------------------------PhysicalOlapScan[t3]
-------------------------PhysicalDistribute[DistributionSpecReplicated]
---------------------------PhysicalProject
-----------------------------PhysicalOlapScan[t4]
+--------------------------hashJoin[INNER_JOIN] hashCondition=((t3.c3 = t4.c4)) otherCondition=()
+----------------------------PhysicalProject
+------------------------------PhysicalOlapScan[t3]
+----------------------------PhysicalDistribute[DistributionSpecReplicated]
+------------------------------PhysicalProject
+--------------------------------PhysicalOlapScan[t4]
Hint log:
Used:
@@ -6947,26 +7095,29 @@ PhysicalResultSink
------------PhysicalProject
--------------hashJoin[RIGHT_OUTER_JOIN] hashCondition=((alias2.c2 = t3.c3)) otherCondition=()
----------------PhysicalDistribute[DistributionSpecHash]
-------------------hashJoin[LEFT_OUTER_JOIN] hashCondition=((t1.c1 = alias2.c2)) otherCondition=()
---------------------PhysicalProject
-----------------------PhysicalOlapScan[t1]
---------------------PhysicalDistribute[DistributionSpecReplicated]
+------------------PhysicalProject
+--------------------hashJoin[LEFT_OUTER_JOIN] hashCondition=((t1.c1 = alias2.c2)) otherCondition=()
----------------------PhysicalProject
-------------------------PhysicalOlapScan[t2]
+------------------------PhysicalOlapScan[t1]
+----------------------PhysicalDistribute[DistributionSpecReplicated]
+------------------------PhysicalProject
+--------------------------PhysicalOlapScan[t2]
----------------PhysicalDistribute[DistributionSpecHash]
------------------PhysicalProject
--------------------PhysicalOlapScan[t3]
------------PhysicalDistribute[DistributionSpecReplicated]
---------------PhysicalLimit[GLOBAL]
-----------------PhysicalDistribute[DistributionSpecGather]
-------------------PhysicalLimit[LOCAL]
+--------------PhysicalProject
+----------------PhysicalLimit[GLOBAL]
+------------------PhysicalDistribute[DistributionSpecGather]
--------------------PhysicalProject
-----------------------hashJoin[INNER_JOIN] hashCondition=((t3.c3 = t4.c4)) otherCondition=()
+----------------------PhysicalLimit[LOCAL]
------------------------PhysicalProject
---------------------------PhysicalOlapScan[t3]
-------------------------PhysicalDistribute[DistributionSpecReplicated]
---------------------------PhysicalProject
-----------------------------PhysicalOlapScan[t4]
+--------------------------hashJoin[INNER_JOIN] hashCondition=((t3.c3 = t4.c4)) otherCondition=()
+----------------------------PhysicalProject
+------------------------------PhysicalOlapScan[t3]
+----------------------------PhysicalDistribute[DistributionSpecReplicated]
+------------------------------PhysicalProject
+--------------------------------PhysicalOlapScan[t4]
Hint log:
Used: [broadcast]_2
@@ -6993,16 +7144,18 @@ PhysicalResultSink
------------------------PhysicalProject
--------------------------PhysicalOlapScan[t2]
------------PhysicalDistribute[DistributionSpecReplicated]
---------------PhysicalLimit[GLOBAL]
-----------------PhysicalDistribute[DistributionSpecGather]
-------------------PhysicalLimit[LOCAL]
+--------------PhysicalProject
+----------------PhysicalLimit[GLOBAL]
+------------------PhysicalDistribute[DistributionSpecGather]
--------------------PhysicalProject
-----------------------hashJoin[INNER_JOIN] hashCondition=((t3.c3 = t4.c4)) otherCondition=()
+----------------------PhysicalLimit[LOCAL]
------------------------PhysicalProject
---------------------------PhysicalOlapScan[t3]
-------------------------PhysicalDistribute[DistributionSpecHash]
---------------------------PhysicalProject
-----------------------------PhysicalOlapScan[t4]
+--------------------------hashJoin[INNER_JOIN] hashCondition=((t3.c3 = t4.c4)) otherCondition=()
+----------------------------PhysicalProject
+------------------------------PhysicalOlapScan[t3]
+----------------------------PhysicalDistribute[DistributionSpecHash]
+------------------------------PhysicalProject
+--------------------------------PhysicalOlapScan[t4]
Hint log:
Used: [shuffle]_2
@@ -7019,26 +7172,29 @@ PhysicalResultSink
------------PhysicalProject
--------------hashJoin[RIGHT_OUTER_JOIN] hashCondition=((alias2.c2 = t3.c3)) otherCondition=()
----------------PhysicalDistribute[DistributionSpecHash]
-------------------hashJoin[LEFT_OUTER_JOIN] hashCondition=((t1.c1 = alias2.c2)) otherCondition=()
---------------------PhysicalProject
-----------------------PhysicalOlapScan[t1]
---------------------PhysicalDistribute[DistributionSpecHash]
+------------------PhysicalProject
+--------------------hashJoin[LEFT_OUTER_JOIN] hashCondition=((t1.c1 = alias2.c2)) otherCondition=()
----------------------PhysicalProject
-------------------------PhysicalOlapScan[t2]
+------------------------PhysicalOlapScan[t1]
+----------------------PhysicalDistribute[DistributionSpecHash]
+------------------------PhysicalProject
+--------------------------PhysicalOlapScan[t2]
----------------PhysicalDistribute[DistributionSpecHash]
------------------PhysicalProject
--------------------PhysicalOlapScan[t3]
------------PhysicalDistribute[DistributionSpecReplicated]
---------------PhysicalLimit[GLOBAL]
-----------------PhysicalDistribute[DistributionSpecGather]
-------------------PhysicalLimit[LOCAL]
+--------------PhysicalProject
+----------------PhysicalLimit[GLOBAL]
+------------------PhysicalDistribute[DistributionSpecGather]
--------------------PhysicalProject
-----------------------hashJoin[INNER_JOIN] hashCondition=((t3.c3 = t4.c4)) otherCondition=()
+----------------------PhysicalLimit[LOCAL]
------------------------PhysicalProject
---------------------------PhysicalOlapScan[t3]
-------------------------PhysicalDistribute[DistributionSpecHash]
---------------------------PhysicalProject
-----------------------------PhysicalOlapScan[t4]
+--------------------------hashJoin[INNER_JOIN] hashCondition=((t3.c3 = t4.c4)) otherCondition=()
+----------------------------PhysicalProject
+------------------------------PhysicalOlapScan[t3]
+----------------------------PhysicalDistribute[DistributionSpecHash]
+------------------------------PhysicalProject
+--------------------------------PhysicalOlapScan[t4]
Hint log:
Used: [shuffle]_2
@@ -7065,16 +7221,18 @@ PhysicalResultSink
------------------------PhysicalProject
--------------------------PhysicalOlapScan[t2]
------------PhysicalDistribute[DistributionSpecReplicated]
---------------PhysicalLimit[GLOBAL]
-----------------PhysicalDistribute[DistributionSpecGather]
-------------------PhysicalLimit[LOCAL]
+--------------PhysicalProject
+----------------PhysicalLimit[GLOBAL]
+------------------PhysicalDistribute[DistributionSpecGather]
--------------------PhysicalProject
-----------------------hashJoin[INNER_JOIN] hashCondition=((t3.c3 = t4.c4)) otherCondition=()
+----------------------PhysicalLimit[LOCAL]
------------------------PhysicalProject
---------------------------PhysicalOlapScan[t3]
-------------------------PhysicalDistribute[DistributionSpecHash]
---------------------------PhysicalProject
-----------------------------PhysicalOlapScan[t4]
+--------------------------hashJoin[INNER_JOIN] hashCondition=((t3.c3 = t4.c4)) otherCondition=()
+----------------------------PhysicalProject
+------------------------------PhysicalOlapScan[t3]
+----------------------------PhysicalDistribute[DistributionSpecHash]
+------------------------------PhysicalProject
+--------------------------------PhysicalOlapScan[t4]
Hint log:
Used: [shuffle]_2
@@ -7091,26 +7249,29 @@ PhysicalResultSink
------------PhysicalProject
--------------hashJoin[RIGHT_OUTER_JOIN] hashCondition=((alias2.c2 = t3.c3)) otherCondition=()
----------------PhysicalDistribute[DistributionSpecHash]
-------------------hashJoin[LEFT_OUTER_JOIN] hashCondition=((t1.c1 = alias2.c2)) otherCondition=()
---------------------PhysicalProject
-----------------------PhysicalOlapScan[t1]
---------------------PhysicalDistribute[DistributionSpecHash]
+------------------PhysicalProject
+--------------------hashJoin[LEFT_OUTER_JOIN] hashCondition=((t1.c1 = alias2.c2)) otherCondition=()
----------------------PhysicalProject
-------------------------PhysicalOlapScan[t2]
+------------------------PhysicalOlapScan[t1]
+----------------------PhysicalDistribute[DistributionSpecHash]
+------------------------PhysicalProject
+--------------------------PhysicalOlapScan[t2]
----------------PhysicalDistribute[DistributionSpecHash]
------------------PhysicalProject
--------------------PhysicalOlapScan[t3]
------------PhysicalDistribute[DistributionSpecReplicated]
---------------PhysicalLimit[GLOBAL]
-----------------PhysicalDistribute[DistributionSpecGather]
-------------------PhysicalLimit[LOCAL]
+--------------PhysicalProject
+----------------PhysicalLimit[GLOBAL]
+------------------PhysicalDistribute[DistributionSpecGather]
--------------------PhysicalProject
-----------------------hashJoin[INNER_JOIN] hashCondition=((t3.c3 = t4.c4)) otherCondition=()
+----------------------PhysicalLimit[LOCAL]
------------------------PhysicalProject
---------------------------PhysicalOlapScan[t3]
-------------------------PhysicalDistribute[DistributionSpecHash]
---------------------------PhysicalProject
-----------------------------PhysicalOlapScan[t4]
+--------------------------hashJoin[INNER_JOIN] hashCondition=((t3.c3 = t4.c4)) otherCondition=()
+----------------------------PhysicalProject
+------------------------------PhysicalOlapScan[t3]
+----------------------------PhysicalDistribute[DistributionSpecHash]
+------------------------------PhysicalProject
+--------------------------------PhysicalOlapScan[t4]
Hint log:
Used: [shuffle]_2
@@ -7137,16 +7298,18 @@ PhysicalResultSink
------------------------PhysicalProject
--------------------------PhysicalOlapScan[t2]
------------PhysicalDistribute[DistributionSpecReplicated]
---------------PhysicalLimit[GLOBAL]
-----------------PhysicalDistribute[DistributionSpecGather]
-------------------PhysicalLimit[LOCAL]
+--------------PhysicalProject
+----------------PhysicalLimit[GLOBAL]
+------------------PhysicalDistribute[DistributionSpecGather]
--------------------PhysicalProject
-----------------------hashJoin[INNER_JOIN] hashCondition=((t3.c3 = t4.c4)) otherCondition=()
+----------------------PhysicalLimit[LOCAL]
------------------------PhysicalProject
---------------------------PhysicalOlapScan[t3]
-------------------------PhysicalDistribute[DistributionSpecHash]
---------------------------PhysicalProject
-----------------------------PhysicalOlapScan[t4]
+--------------------------hashJoin[INNER_JOIN] hashCondition=((t3.c3 = t4.c4)) otherCondition=()
+----------------------------PhysicalProject
+------------------------------PhysicalOlapScan[t3]
+----------------------------PhysicalDistribute[DistributionSpecHash]
+------------------------------PhysicalProject
+--------------------------------PhysicalOlapScan[t4]
Hint log:
Used: [shuffle]_2
@@ -7163,26 +7326,29 @@ PhysicalResultSink
------------PhysicalProject
--------------hashJoin[RIGHT_OUTER_JOIN] hashCondition=((alias2.c2 = t3.c3)) otherCondition=()
----------------PhysicalDistribute[DistributionSpecHash]
-------------------hashJoin[LEFT_OUTER_JOIN] hashCondition=((t1.c1 = alias2.c2)) otherCondition=()
---------------------PhysicalProject
-----------------------PhysicalOlapScan[t1]
---------------------PhysicalDistribute[DistributionSpecHash]
+------------------PhysicalProject
+--------------------hashJoin[LEFT_OUTER_JOIN] hashCondition=((t1.c1 = alias2.c2)) otherCondition=()
----------------------PhysicalProject
-------------------------PhysicalOlapScan[t2]
+------------------------PhysicalOlapScan[t1]
+----------------------PhysicalDistribute[DistributionSpecHash]
+------------------------PhysicalProject
+--------------------------PhysicalOlapScan[t2]
----------------PhysicalDistribute[DistributionSpecHash]
------------------PhysicalProject
--------------------PhysicalOlapScan[t3]
------------PhysicalDistribute[DistributionSpecReplicated]
---------------PhysicalLimit[GLOBAL]
-----------------PhysicalDistribute[DistributionSpecGather]
-------------------PhysicalLimit[LOCAL]
+--------------PhysicalProject
+----------------PhysicalLimit[GLOBAL]
+------------------PhysicalDistribute[DistributionSpecGather]
--------------------PhysicalProject
-----------------------hashJoin[INNER_JOIN] hashCondition=((t3.c3 = t4.c4)) otherCondition=()
+----------------------PhysicalLimit[LOCAL]
------------------------PhysicalProject
---------------------------PhysicalOlapScan[t3]
-------------------------PhysicalDistribute[DistributionSpecHash]
---------------------------PhysicalProject
-----------------------------PhysicalOlapScan[t4]
+--------------------------hashJoin[INNER_JOIN] hashCondition=((t3.c3 = t4.c4)) otherCondition=()
+----------------------------PhysicalProject
+------------------------------PhysicalOlapScan[t3]
+----------------------------PhysicalDistribute[DistributionSpecHash]
+------------------------------PhysicalProject
+--------------------------------PhysicalOlapScan[t4]
Hint log:
Used: [shuffle]_2
@@ -7208,16 +7374,18 @@ PhysicalResultSink
----------------------PhysicalProject
------------------------PhysicalOlapScan[t3]
------------PhysicalDistribute[DistributionSpecReplicated]
---------------PhysicalLimit[GLOBAL]
-----------------PhysicalDistribute[DistributionSpecGather]
-------------------PhysicalLimit[LOCAL]
+--------------PhysicalProject
+----------------PhysicalLimit[GLOBAL]
+------------------PhysicalDistribute[DistributionSpecGather]
--------------------PhysicalProject
-----------------------hashJoin[INNER_JOIN] hashCondition=((t3.c3 = t4.c4)) otherCondition=()
+----------------------PhysicalLimit[LOCAL]
------------------------PhysicalProject
---------------------------PhysicalOlapScan[t3]
-------------------------PhysicalDistribute[DistributionSpecHash]
---------------------------PhysicalProject
-----------------------------PhysicalOlapScan[t4]
+--------------------------hashJoin[INNER_JOIN] hashCondition=((t3.c3 = t4.c4)) otherCondition=()
+----------------------------PhysicalProject
+------------------------------PhysicalOlapScan[t3]
+----------------------------PhysicalDistribute[DistributionSpecHash]
+------------------------------PhysicalProject
+--------------------------------PhysicalOlapScan[t4]
-- !select44_2 --
PhysicalResultSink
@@ -7228,26 +7396,29 @@ PhysicalResultSink
----------NestedLoopJoin[CROSS_JOIN]
------------PhysicalProject
--------------hashJoin[LEFT_SEMI_JOIN] hashCondition=((alias2.c2 = t3.c3)) otherCondition=()
-----------------hashJoin[INNER_JOIN] hashCondition=((t1.c1 = alias2.c2)) otherCondition=()
-------------------PhysicalProject
---------------------PhysicalOlapScan[t1]
-------------------PhysicalDistribute[DistributionSpecReplicated]
+----------------PhysicalProject
+------------------hashJoin[INNER_JOIN] hashCondition=((t1.c1 = alias2.c2)) otherCondition=()
--------------------PhysicalProject
-----------------------PhysicalOlapScan[t2]
+----------------------PhysicalOlapScan[t1]
+--------------------PhysicalDistribute[DistributionSpecReplicated]
+----------------------PhysicalProject
+------------------------PhysicalOlapScan[t2]
----------------PhysicalDistribute[DistributionSpecHash]
------------------PhysicalProject
--------------------PhysicalOlapScan[t3]
------------PhysicalDistribute[DistributionSpecReplicated]
---------------PhysicalLimit[GLOBAL]
-----------------PhysicalDistribute[DistributionSpecGather]
-------------------PhysicalLimit[LOCAL]
+--------------PhysicalProject
+----------------PhysicalLimit[GLOBAL]
+------------------PhysicalDistribute[DistributionSpecGather]
--------------------PhysicalProject
-----------------------hashJoin[INNER_JOIN] hashCondition=((t3.c3 = t4.c4)) otherCondition=()
+----------------------PhysicalLimit[LOCAL]
------------------------PhysicalProject
---------------------------PhysicalOlapScan[t3]
-------------------------PhysicalDistribute[DistributionSpecHash]
---------------------------PhysicalProject
-----------------------------PhysicalOlapScan[t4]
+--------------------------hashJoin[INNER_JOIN] hashCondition=((t3.c3 = t4.c4)) otherCondition=()
+----------------------------PhysicalProject
+------------------------------PhysicalOlapScan[t3]
+----------------------------PhysicalDistribute[DistributionSpecHash]
+------------------------------PhysicalProject
+--------------------------------PhysicalOlapScan[t4]
Hint log:
Used: [broadcast]_2
@@ -7263,26 +7434,29 @@ PhysicalResultSink
----------NestedLoopJoin[CROSS_JOIN]
------------PhysicalProject
--------------hashJoin[LEFT_SEMI_JOIN] hashCondition=((alias2.c2 = t3.c3)) otherCondition=()
-----------------hashJoin[INNER_JOIN] hashCondition=((t1.c1 = alias2.c2)) otherCondition=()
-------------------PhysicalProject
---------------------PhysicalOlapScan[t1]
-------------------PhysicalDistribute[DistributionSpecHash]
+----------------PhysicalProject
+------------------hashJoin[INNER_JOIN] hashCondition=((t1.c1 = alias2.c2)) otherCondition=()
--------------------PhysicalProject
-----------------------PhysicalOlapScan[t2]
+----------------------PhysicalOlapScan[t1]
+--------------------PhysicalDistribute[DistributionSpecHash]
+----------------------PhysicalProject
+------------------------PhysicalOlapScan[t2]
----------------PhysicalDistribute[DistributionSpecReplicated]
------------------PhysicalProject
--------------------PhysicalOlapScan[t3]
------------PhysicalDistribute[DistributionSpecReplicated]
---------------PhysicalLimit[GLOBAL]
-----------------PhysicalDistribute[DistributionSpecGather]
-------------------PhysicalLimit[LOCAL]
+--------------PhysicalProject
+----------------PhysicalLimit[GLOBAL]
+------------------PhysicalDistribute[DistributionSpecGather]
--------------------PhysicalProject
-----------------------hashJoin[INNER_JOIN] hashCondition=((t3.c3 = t4.c4)) otherCondition=()
+----------------------PhysicalLimit[LOCAL]
------------------------PhysicalProject
---------------------------PhysicalOlapScan[t3]
-------------------------PhysicalDistribute[DistributionSpecHash]
---------------------------PhysicalProject
-----------------------------PhysicalOlapScan[t4]
+--------------------------hashJoin[INNER_JOIN] hashCondition=((t3.c3 = t4.c4)) otherCondition=()
+----------------------------PhysicalProject
+------------------------------PhysicalOlapScan[t3]
+----------------------------PhysicalDistribute[DistributionSpecHash]
+------------------------------PhysicalProject
+--------------------------------PhysicalOlapScan[t4]
Hint log:
Used: [broadcast]_2
@@ -7308,16 +7482,18 @@ PhysicalResultSink
----------------------PhysicalProject
------------------------PhysicalOlapScan[t3]
------------PhysicalDistribute[DistributionSpecReplicated]
---------------PhysicalLimit[GLOBAL]
-----------------PhysicalDistribute[DistributionSpecGather]
-------------------PhysicalLimit[LOCAL]
+--------------PhysicalProject
+----------------PhysicalLimit[GLOBAL]
+------------------PhysicalDistribute[DistributionSpecGather]
--------------------PhysicalProject
-----------------------hashJoin[INNER_JOIN] hashCondition=((t3.c3 = t4.c4)) otherCondition=()
+----------------------PhysicalLimit[LOCAL]
------------------------PhysicalProject
---------------------------PhysicalOlapScan[t3]
-------------------------PhysicalDistribute[DistributionSpecReplicated]
---------------------------PhysicalProject
-----------------------------PhysicalOlapScan[t4]
+--------------------------hashJoin[INNER_JOIN] hashCondition=((t3.c3 = t4.c4)) otherCondition=()
+----------------------------PhysicalProject
+------------------------------PhysicalOlapScan[t3]
+----------------------------PhysicalDistribute[DistributionSpecReplicated]
+------------------------------PhysicalProject
+--------------------------------PhysicalOlapScan[t4]
Hint log:
Used: [broadcast]_2
@@ -7333,26 +7509,29 @@ PhysicalResultSink
----------NestedLoopJoin[CROSS_JOIN]
------------PhysicalProject
--------------hashJoin[LEFT_SEMI_JOIN] hashCondition=((alias2.c2 = t3.c3)) otherCondition=()
-----------------hashJoin[INNER_JOIN] hashCondition=((t1.c1 = alias2.c2)) otherCondition=()
-------------------PhysicalProject
---------------------PhysicalOlapScan[t1]
-------------------PhysicalDistribute[DistributionSpecReplicated]
+----------------PhysicalProject
+------------------hashJoin[INNER_JOIN] hashCondition=((t1.c1 = alias2.c2)) otherCondition=()
--------------------PhysicalProject
-----------------------PhysicalOlapScan[t2]
+----------------------PhysicalOlapScan[t1]
+--------------------PhysicalDistribute[DistributionSpecReplicated]
+----------------------PhysicalProject
+------------------------PhysicalOlapScan[t2]
----------------PhysicalDistribute[DistributionSpecReplicated]
------------------PhysicalProject
--------------------PhysicalOlapScan[t3]
------------PhysicalDistribute[DistributionSpecReplicated]
---------------PhysicalLimit[GLOBAL]
-----------------PhysicalDistribute[DistributionSpecGather]
-------------------PhysicalLimit[LOCAL]
+--------------PhysicalProject
+----------------PhysicalLimit[GLOBAL]
+------------------PhysicalDistribute[DistributionSpecGather]
--------------------PhysicalProject
-----------------------hashJoin[INNER_JOIN] hashCondition=((t3.c3 = t4.c4)) otherCondition=()
+----------------------PhysicalLimit[LOCAL]
------------------------PhysicalProject
---------------------------PhysicalOlapScan[t3]
-------------------------PhysicalDistribute[DistributionSpecHash]
---------------------------PhysicalProject
-----------------------------PhysicalOlapScan[t4]
+--------------------------hashJoin[INNER_JOIN] hashCondition=((t3.c3 = t4.c4)) otherCondition=()
+----------------------------PhysicalProject
+------------------------------PhysicalOlapScan[t3]
+----------------------------PhysicalDistribute[DistributionSpecHash]
+------------------------------PhysicalProject
+--------------------------------PhysicalOlapScan[t4]
Hint log:
Used: [broadcast]_2
@@ -7368,26 +7547,29 @@ PhysicalResultSink
----------NestedLoopJoin[CROSS_JOIN]
------------PhysicalProject
--------------hashJoin[LEFT_SEMI_JOIN] hashCondition=((alias2.c2 = t3.c3)) otherCondition=()
-----------------hashJoin[INNER_JOIN] hashCondition=((t1.c1 = alias2.c2)) otherCondition=()
-------------------PhysicalProject
---------------------PhysicalOlapScan[t1]
-------------------PhysicalDistribute[DistributionSpecHash]
+----------------PhysicalProject
+------------------hashJoin[INNER_JOIN] hashCondition=((t1.c1 = alias2.c2)) otherCondition=()
--------------------PhysicalProject
-----------------------PhysicalOlapScan[t2]
+----------------------PhysicalOlapScan[t1]
+--------------------PhysicalDistribute[DistributionSpecHash]
+----------------------PhysicalProject
+------------------------PhysicalOlapScan[t2]
----------------PhysicalDistribute[DistributionSpecReplicated]
------------------PhysicalProject
--------------------PhysicalOlapScan[t3]
------------PhysicalDistribute[DistributionSpecReplicated]
---------------PhysicalLimit[GLOBAL]
-----------------PhysicalDistribute[DistributionSpecGather]
-------------------PhysicalLimit[LOCAL]
+--------------PhysicalProject
+----------------PhysicalLimit[GLOBAL]
+------------------PhysicalDistribute[DistributionSpecGather]
--------------------PhysicalProject
-----------------------hashJoin[INNER_JOIN] hashCondition=((t3.c3 = t4.c4)) otherCondition=()
+----------------------PhysicalLimit[LOCAL]
------------------------PhysicalProject
---------------------------PhysicalOlapScan[t3]
-------------------------PhysicalDistribute[DistributionSpecReplicated]
---------------------------PhysicalProject
-----------------------------PhysicalOlapScan[t4]
+--------------------------hashJoin[INNER_JOIN] hashCondition=((t3.c3 = t4.c4)) otherCondition=()
+----------------------------PhysicalProject
+------------------------------PhysicalOlapScan[t3]
+----------------------------PhysicalDistribute[DistributionSpecReplicated]
+------------------------------PhysicalProject
+--------------------------------PhysicalOlapScan[t4]
Hint log:
Used: [broadcast]_2
@@ -7403,26 +7585,29 @@ PhysicalResultSink
----------NestedLoopJoin[CROSS_JOIN]
------------PhysicalProject
--------------hashJoin[LEFT_SEMI_JOIN] hashCondition=((alias2.c2 = t3.c3)) otherCondition=()
-----------------hashJoin[INNER_JOIN] hashCondition=((t1.c1 = alias2.c2)) otherCondition=()
-------------------PhysicalProject
---------------------PhysicalOlapScan[t1]
-------------------PhysicalDistribute[DistributionSpecReplicated]
+----------------PhysicalProject
+------------------hashJoin[INNER_JOIN] hashCondition=((t1.c1 = alias2.c2)) otherCondition=()
--------------------PhysicalProject
-----------------------PhysicalOlapScan[t2]
+----------------------PhysicalOlapScan[t1]
+--------------------PhysicalDistribute[DistributionSpecReplicated]
+----------------------PhysicalProject
+------------------------PhysicalOlapScan[t2]
----------------PhysicalDistribute[DistributionSpecReplicated]
------------------PhysicalProject
--------------------PhysicalOlapScan[t3]
------------PhysicalDistribute[DistributionSpecReplicated]
---------------PhysicalLimit[GLOBAL]
-----------------PhysicalDistribute[DistributionSpecGather]
-------------------PhysicalLimit[LOCAL]
+--------------PhysicalProject
+----------------PhysicalLimit[GLOBAL]
+------------------PhysicalDistribute[DistributionSpecGather]
--------------------PhysicalProject
-----------------------hashJoin[INNER_JOIN] hashCondition=((t3.c3 = t4.c4)) otherCondition=()
+----------------------PhysicalLimit[LOCAL]
------------------------PhysicalProject
---------------------------PhysicalOlapScan[t3]
-------------------------PhysicalDistribute[DistributionSpecReplicated]
---------------------------PhysicalProject
-----------------------------PhysicalOlapScan[t4]
+--------------------------hashJoin[INNER_JOIN] hashCondition=((t3.c3 = t4.c4)) otherCondition=()
+----------------------------PhysicalProject
+------------------------------PhysicalOlapScan[t3]
+----------------------------PhysicalDistribute[DistributionSpecReplicated]
+------------------------------PhysicalProject
+--------------------------------PhysicalOlapScan[t4]
Hint log:
Used: [broadcast]_2
@@ -7438,26 +7623,29 @@ PhysicalResultSink
----------NestedLoopJoin[CROSS_JOIN]
------------PhysicalProject
--------------hashJoin[LEFT_SEMI_JOIN] hashCondition=((alias2.c2 = t3.c3)) otherCondition=()
-----------------hashJoin[INNER_JOIN] hashCondition=((t1.c1 = alias2.c2)) otherCondition=()
-------------------PhysicalProject
---------------------PhysicalOlapScan[t1]
-------------------PhysicalDistribute[DistributionSpecHash]
+----------------PhysicalProject
+------------------hashJoin[INNER_JOIN] hashCondition=((t1.c1 = alias2.c2)) otherCondition=()
--------------------PhysicalProject
-----------------------PhysicalOlapScan[t2]
+----------------------PhysicalOlapScan[t1]
+--------------------PhysicalDistribute[DistributionSpecHash]
+----------------------PhysicalProject
+------------------------PhysicalOlapScan[t2]
----------------PhysicalDistribute[DistributionSpecHash]
------------------PhysicalProject
--------------------PhysicalOlapScan[t3]
------------PhysicalDistribute[DistributionSpecReplicated]
---------------PhysicalLimit[GLOBAL]
-----------------PhysicalDistribute[DistributionSpecGather]
-------------------PhysicalLimit[LOCAL]
+--------------PhysicalProject
+----------------PhysicalLimit[GLOBAL]
+------------------PhysicalDistribute[DistributionSpecGather]
--------------------PhysicalProject
-----------------------hashJoin[INNER_JOIN] hashCondition=((t3.c3 = t4.c4)) otherCondition=()
+----------------------PhysicalLimit[LOCAL]
------------------------PhysicalProject
---------------------------PhysicalOlapScan[t3]
-------------------------PhysicalDistribute[DistributionSpecHash]
---------------------------PhysicalProject
-----------------------------PhysicalOlapScan[t4]
+--------------------------hashJoin[INNER_JOIN] hashCondition=((t3.c3 = t4.c4)) otherCondition=()
+----------------------------PhysicalProject
+------------------------------PhysicalOlapScan[t3]
+----------------------------PhysicalDistribute[DistributionSpecHash]
+------------------------------PhysicalProject
+--------------------------------PhysicalOlapScan[t4]
Hint log:
Used: [shuffle]_2
@@ -7473,26 +7661,29 @@ PhysicalResultSink
----------NestedLoopJoin[CROSS_JOIN]
------------PhysicalProject
--------------hashJoin[LEFT_SEMI_JOIN] hashCondition=((alias2.c2 = t3.c3)) otherCondition=()
-----------------hashJoin[INNER_JOIN] hashCondition=((t1.c1 = alias2.c2)) otherCondition=()
-------------------PhysicalProject
---------------------PhysicalOlapScan[t1]
-------------------PhysicalDistribute[DistributionSpecHash]
+----------------PhysicalProject
+------------------hashJoin[INNER_JOIN] hashCondition=((t1.c1 = alias2.c2)) otherCondition=()
--------------------PhysicalProject
-----------------------PhysicalOlapScan[t2]
+----------------------PhysicalOlapScan[t1]
+--------------------PhysicalDistribute[DistributionSpecHash]
+----------------------PhysicalProject
+------------------------PhysicalOlapScan[t2]
----------------PhysicalDistribute[DistributionSpecHash]
------------------PhysicalProject
--------------------PhysicalOlapScan[t3]
------------PhysicalDistribute[DistributionSpecReplicated]
---------------PhysicalLimit[GLOBAL]
-----------------PhysicalDistribute[DistributionSpecGather]
-------------------PhysicalLimit[LOCAL]
+--------------PhysicalProject
+----------------PhysicalLimit[GLOBAL]
+------------------PhysicalDistribute[DistributionSpecGather]
--------------------PhysicalProject
-----------------------hashJoin[INNER_JOIN] hashCondition=((t3.c3 = t4.c4)) otherCondition=()
+----------------------PhysicalLimit[LOCAL]
------------------------PhysicalProject
---------------------------PhysicalOlapScan[t3]
-------------------------PhysicalDistribute[DistributionSpecHash]
---------------------------PhysicalProject
-----------------------------PhysicalOlapScan[t4]
+--------------------------hashJoin[INNER_JOIN] hashCondition=((t3.c3 = t4.c4)) otherCondition=()
+----------------------------PhysicalProject
+------------------------------PhysicalOlapScan[t3]
+----------------------------PhysicalDistribute[DistributionSpecHash]
+------------------------------PhysicalProject
+--------------------------------PhysicalOlapScan[t4]
Hint log:
Used: [shuffle]_2
@@ -7518,16 +7709,18 @@ PhysicalResultSink
----------------------PhysicalProject
------------------------PhysicalOlapScan[t3]
------------PhysicalDistribute[DistributionSpecReplicated]
---------------PhysicalLimit[GLOBAL]
-----------------PhysicalDistribute[DistributionSpecGather]
-------------------PhysicalLimit[LOCAL]
+--------------PhysicalProject
+----------------PhysicalLimit[GLOBAL]
+------------------PhysicalDistribute[DistributionSpecGather]
--------------------PhysicalProject
-----------------------hashJoin[INNER_JOIN] hashCondition=((t3.c3 = t4.c4)) otherCondition=()
+----------------------PhysicalLimit[LOCAL]
------------------------PhysicalProject
---------------------------PhysicalOlapScan[t3]
-------------------------PhysicalDistribute[DistributionSpecHash]
---------------------------PhysicalProject
-----------------------------PhysicalOlapScan[t4]
+--------------------------hashJoin[INNER_JOIN] hashCondition=((t3.c3 = t4.c4)) otherCondition=()
+----------------------------PhysicalProject
+------------------------------PhysicalOlapScan[t3]
+----------------------------PhysicalDistribute[DistributionSpecHash]
+------------------------------PhysicalProject
+--------------------------------PhysicalOlapScan[t4]
Hint log:
Used: [shuffle]_2
@@ -7543,26 +7736,29 @@ PhysicalResultSink
----------NestedLoopJoin[CROSS_JOIN]
------------PhysicalProject
--------------hashJoin[LEFT_SEMI_JOIN] hashCondition=((alias2.c2 = t3.c3)) otherCondition=()
-----------------hashJoin[INNER_JOIN] hashCondition=((t1.c1 = alias2.c2)) otherCondition=()
-------------------PhysicalProject
---------------------PhysicalOlapScan[t1]
-------------------PhysicalDistribute[DistributionSpecHash]
+----------------PhysicalProject
+------------------hashJoin[INNER_JOIN] hashCondition=((t1.c1 = alias2.c2)) otherCondition=()
--------------------PhysicalProject
-----------------------PhysicalOlapScan[t2]
+----------------------PhysicalOlapScan[t1]
+--------------------PhysicalDistribute[DistributionSpecHash]
+----------------------PhysicalProject
+------------------------PhysicalOlapScan[t2]
----------------PhysicalDistribute[DistributionSpecHash]
------------------PhysicalProject
--------------------PhysicalOlapScan[t3]
------------PhysicalDistribute[DistributionSpecReplicated]
---------------PhysicalLimit[GLOBAL]
-----------------PhysicalDistribute[DistributionSpecGather]
-------------------PhysicalLimit[LOCAL]
+--------------PhysicalProject
+----------------PhysicalLimit[GLOBAL]
+------------------PhysicalDistribute[DistributionSpecGather]
--------------------PhysicalProject
-----------------------hashJoin[INNER_JOIN] hashCondition=((t3.c3 = t4.c4)) otherCondition=()
+----------------------PhysicalLimit[LOCAL]
------------------------PhysicalProject
---------------------------PhysicalOlapScan[t3]
-------------------------PhysicalDistribute[DistributionSpecHash]
---------------------------PhysicalProject
-----------------------------PhysicalOlapScan[t4]
+--------------------------hashJoin[INNER_JOIN] hashCondition=((t3.c3 = t4.c4)) otherCondition=()
+----------------------------PhysicalProject
+------------------------------PhysicalOlapScan[t3]
+----------------------------PhysicalDistribute[DistributionSpecHash]
+------------------------------PhysicalProject
+--------------------------------PhysicalOlapScan[t4]
Hint log:
Used: [shuffle]_2
@@ -7578,26 +7774,29 @@ PhysicalResultSink
----------NestedLoopJoin[CROSS_JOIN]
------------PhysicalProject
--------------hashJoin[LEFT_SEMI_JOIN] hashCondition=((alias2.c2 = t3.c3)) otherCondition=()
-----------------hashJoin[INNER_JOIN] hashCondition=((t1.c1 = alias2.c2)) otherCondition=()
-------------------PhysicalProject
---------------------PhysicalOlapScan[t1]
-------------------PhysicalDistribute[DistributionSpecHash]
+----------------PhysicalProject
+------------------hashJoin[INNER_JOIN] hashCondition=((t1.c1 = alias2.c2)) otherCondition=()
--------------------PhysicalProject
-----------------------PhysicalOlapScan[t2]
+----------------------PhysicalOlapScan[t1]
+--------------------PhysicalDistribute[DistributionSpecHash]
+----------------------PhysicalProject
+------------------------PhysicalOlapScan[t2]
----------------PhysicalDistribute[DistributionSpecHash]
------------------PhysicalProject
--------------------PhysicalOlapScan[t3]
------------PhysicalDistribute[DistributionSpecReplicated]
---------------PhysicalLimit[GLOBAL]
-----------------PhysicalDistribute[DistributionSpecGather]
-------------------PhysicalLimit[LOCAL]
+--------------PhysicalProject
+----------------PhysicalLimit[GLOBAL]
+------------------PhysicalDistribute[DistributionSpecGather]
--------------------PhysicalProject
-----------------------hashJoin[INNER_JOIN] hashCondition=((t3.c3 = t4.c4)) otherCondition=()
+----------------------PhysicalLimit[LOCAL]
------------------------PhysicalProject
---------------------------PhysicalOlapScan[t3]
-------------------------PhysicalDistribute[DistributionSpecHash]
---------------------------PhysicalProject
-----------------------------PhysicalOlapScan[t4]
+--------------------------hashJoin[INNER_JOIN] hashCondition=((t3.c3 = t4.c4)) otherCondition=()
+----------------------------PhysicalProject
+------------------------------PhysicalOlapScan[t3]
+----------------------------PhysicalDistribute[DistributionSpecHash]
+------------------------------PhysicalProject
+--------------------------------PhysicalOlapScan[t4]
Hint log:
Used: [shuffle]_2
@@ -7613,26 +7812,29 @@ PhysicalResultSink
----------NestedLoopJoin[CROSS_JOIN]
------------PhysicalProject
--------------hashJoin[LEFT_SEMI_JOIN] hashCondition=((alias2.c2 = t3.c3)) otherCondition=()
-----------------hashJoin[INNER_JOIN] hashCondition=((t1.c1 = alias2.c2)) otherCondition=()
-------------------PhysicalProject
---------------------PhysicalOlapScan[t1]
-------------------PhysicalDistribute[DistributionSpecHash]
+----------------PhysicalProject
+------------------hashJoin[INNER_JOIN] hashCondition=((t1.c1 = alias2.c2)) otherCondition=()
--------------------PhysicalProject
-----------------------PhysicalOlapScan[t2]
+----------------------PhysicalOlapScan[t1]
+--------------------PhysicalDistribute[DistributionSpecHash]
+----------------------PhysicalProject
+------------------------PhysicalOlapScan[t2]
----------------PhysicalDistribute[DistributionSpecHash]
------------------PhysicalProject
--------------------PhysicalOlapScan[t3]
------------PhysicalDistribute[DistributionSpecReplicated]
---------------PhysicalLimit[GLOBAL]
-----------------PhysicalDistribute[DistributionSpecGather]
-------------------PhysicalLimit[LOCAL]
+--------------PhysicalProject
+----------------PhysicalLimit[GLOBAL]
+------------------PhysicalDistribute[DistributionSpecGather]
--------------------PhysicalProject
-----------------------hashJoin[INNER_JOIN] hashCondition=((t3.c3 = t4.c4)) otherCondition=()
+----------------------PhysicalLimit[LOCAL]
------------------------PhysicalProject
---------------------------PhysicalOlapScan[t3]
-------------------------PhysicalDistribute[DistributionSpecHash]
---------------------------PhysicalProject
-----------------------------PhysicalOlapScan[t4]
+--------------------------hashJoin[INNER_JOIN] hashCondition=((t3.c3 = t4.c4)) otherCondition=()
+----------------------------PhysicalProject
+------------------------------PhysicalOlapScan[t3]
+----------------------------PhysicalDistribute[DistributionSpecHash]
+------------------------------PhysicalProject
+--------------------------------PhysicalOlapScan[t4]
Hint log:
Used: [shuffle]_2
@@ -7648,26 +7850,29 @@ PhysicalResultSink
----------NestedLoopJoin[CROSS_JOIN]
------------PhysicalProject
--------------hashJoin[LEFT_ANTI_JOIN] hashCondition=((alias2.c2 = t3.c3)) otherCondition=()
-----------------hashJoin[LEFT_OUTER_JOIN] hashCondition=((t1.c1 = alias2.c2)) otherCondition=()
-------------------PhysicalProject
---------------------PhysicalOlapScan[t1]
-------------------PhysicalDistribute[DistributionSpecHash]
+----------------PhysicalProject
+------------------hashJoin[LEFT_OUTER_JOIN] hashCondition=((t1.c1 = alias2.c2)) otherCondition=()
--------------------PhysicalProject
-----------------------PhysicalOlapScan[t2]
+----------------------PhysicalOlapScan[t1]
+--------------------PhysicalDistribute[DistributionSpecHash]
+----------------------PhysicalProject
+------------------------PhysicalOlapScan[t2]
----------------PhysicalDistribute[DistributionSpecReplicated]
------------------PhysicalProject
--------------------PhysicalOlapScan[t3]
------------PhysicalDistribute[DistributionSpecReplicated]
---------------PhysicalLimit[GLOBAL]
-----------------PhysicalDistribute[DistributionSpecGather]
-------------------PhysicalLimit[LOCAL]
+--------------PhysicalProject
+----------------PhysicalLimit[GLOBAL]
+------------------PhysicalDistribute[DistributionSpecGather]
--------------------PhysicalProject
-----------------------hashJoin[INNER_JOIN] hashCondition=((t3.c3 = t4.c4)) otherCondition=()
+----------------------PhysicalLimit[LOCAL]
------------------------PhysicalProject
---------------------------PhysicalOlapScan[t3]
-------------------------PhysicalDistribute[DistributionSpecHash]
---------------------------PhysicalProject
-----------------------------PhysicalOlapScan[t4]
+--------------------------hashJoin[INNER_JOIN] hashCondition=((t3.c3 = t4.c4)) otherCondition=()
+----------------------------PhysicalProject
+------------------------------PhysicalOlapScan[t3]
+----------------------------PhysicalDistribute[DistributionSpecHash]
+------------------------------PhysicalProject
+--------------------------------PhysicalOlapScan[t4]
-- !select45_2 --
PhysicalResultSink
@@ -7678,26 +7883,29 @@ PhysicalResultSink
----------NestedLoopJoin[CROSS_JOIN]
------------PhysicalProject
--------------hashJoin[LEFT_ANTI_JOIN] hashCondition=((alias2.c2 = t3.c3)) otherCondition=()
-----------------hashJoin[LEFT_OUTER_JOIN] hashCondition=((t1.c1 = alias2.c2)) otherCondition=()
-------------------PhysicalProject
---------------------PhysicalOlapScan[t1]
-------------------PhysicalDistribute[DistributionSpecReplicated]
+----------------PhysicalProject
+------------------hashJoin[LEFT_OUTER_JOIN] hashCondition=((t1.c1 = alias2.c2)) otherCondition=()
--------------------PhysicalProject
-----------------------PhysicalOlapScan[t2]
+----------------------PhysicalOlapScan[t1]
+--------------------PhysicalDistribute[DistributionSpecReplicated]
+----------------------PhysicalProject
+------------------------PhysicalOlapScan[t2]
----------------PhysicalDistribute[DistributionSpecReplicated]
------------------PhysicalProject
--------------------PhysicalOlapScan[t3]
------------PhysicalDistribute[DistributionSpecReplicated]
---------------PhysicalLimit[GLOBAL]
-----------------PhysicalDistribute[DistributionSpecGather]
-------------------PhysicalLimit[LOCAL]
+--------------PhysicalProject
+----------------PhysicalLimit[GLOBAL]
+------------------PhysicalDistribute[DistributionSpecGather]
--------------------PhysicalProject
-----------------------hashJoin[INNER_JOIN] hashCondition=((t3.c3 = t4.c4)) otherCondition=()
+----------------------PhysicalLimit[LOCAL]
------------------------PhysicalProject
---------------------------PhysicalOlapScan[t3]
-------------------------PhysicalDistribute[DistributionSpecHash]
---------------------------PhysicalProject
-----------------------------PhysicalOlapScan[t4]
+--------------------------hashJoin[INNER_JOIN] hashCondition=((t3.c3 = t4.c4)) otherCondition=()
+----------------------------PhysicalProject
+------------------------------PhysicalOlapScan[t3]
+----------------------------PhysicalDistribute[DistributionSpecHash]
+------------------------------PhysicalProject
+--------------------------------PhysicalOlapScan[t4]
Hint log:
Used: [broadcast]_2
@@ -7713,26 +7921,29 @@ PhysicalResultSink
----------NestedLoopJoin[CROSS_JOIN]
------------PhysicalProject
--------------hashJoin[LEFT_ANTI_JOIN] hashCondition=((alias2.c2 = t3.c3)) otherCondition=()
-----------------hashJoin[LEFT_OUTER_JOIN] hashCondition=((t1.c1 = alias2.c2)) otherCondition=()
-------------------PhysicalProject
---------------------PhysicalOlapScan[t1]
-------------------PhysicalDistribute[DistributionSpecHash]
+----------------PhysicalProject
+------------------hashJoin[LEFT_OUTER_JOIN] hashCondition=((t1.c1 = alias2.c2)) otherCondition=()
--------------------PhysicalProject
-----------------------PhysicalOlapScan[t2]
+----------------------PhysicalOlapScan[t1]
+--------------------PhysicalDistribute[DistributionSpecHash]
+----------------------PhysicalProject
+------------------------PhysicalOlapScan[t2]
----------------PhysicalDistribute[DistributionSpecReplicated]
------------------PhysicalProject
--------------------PhysicalOlapScan[t3]
------------PhysicalDistribute[DistributionSpecReplicated]
---------------PhysicalLimit[GLOBAL]
-----------------PhysicalDistribute[DistributionSpecGather]
-------------------PhysicalLimit[LOCAL]
+--------------PhysicalProject
+----------------PhysicalLimit[GLOBAL]
+------------------PhysicalDistribute[DistributionSpecGather]
--------------------PhysicalProject
-----------------------hashJoin[INNER_JOIN] hashCondition=((t3.c3 = t4.c4)) otherCondition=()
+----------------------PhysicalLimit[LOCAL]
------------------------PhysicalProject
---------------------------PhysicalOlapScan[t3]
-------------------------PhysicalDistribute[DistributionSpecHash]
---------------------------PhysicalProject
-----------------------------PhysicalOlapScan[t4]
+--------------------------hashJoin[INNER_JOIN] hashCondition=((t3.c3 = t4.c4)) otherCondition=()
+----------------------------PhysicalProject
+------------------------------PhysicalOlapScan[t3]
+----------------------------PhysicalDistribute[DistributionSpecHash]
+------------------------------PhysicalProject
+--------------------------------PhysicalOlapScan[t4]
Hint log:
Used: [broadcast]_2
@@ -7748,26 +7959,29 @@ PhysicalResultSink
----------NestedLoopJoin[CROSS_JOIN]
------------PhysicalProject
--------------hashJoin[LEFT_ANTI_JOIN] hashCondition=((alias2.c2 = t3.c3)) otherCondition=()
-----------------hashJoin[LEFT_OUTER_JOIN] hashCondition=((t1.c1 = alias2.c2)) otherCondition=()
-------------------PhysicalProject
---------------------PhysicalOlapScan[t1]
-------------------PhysicalDistribute[DistributionSpecHash]
+----------------PhysicalProject
+------------------hashJoin[LEFT_OUTER_JOIN] hashCondition=((t1.c1 = alias2.c2)) otherCondition=()
--------------------PhysicalProject
-----------------------PhysicalOlapScan[t2]
+----------------------PhysicalOlapScan[t1]
+--------------------PhysicalDistribute[DistributionSpecHash]
+----------------------PhysicalProject
+------------------------PhysicalOlapScan[t2]
----------------PhysicalDistribute[DistributionSpecReplicated]
------------------PhysicalProject
--------------------PhysicalOlapScan[t3]
------------PhysicalDistribute[DistributionSpecReplicated]
---------------PhysicalLimit[GLOBAL]
-----------------PhysicalDistribute[DistributionSpecGather]
-------------------PhysicalLimit[LOCAL]
+--------------PhysicalProject
+----------------PhysicalLimit[GLOBAL]
+------------------PhysicalDistribute[DistributionSpecGather]
--------------------PhysicalProject
-----------------------hashJoin[INNER_JOIN] hashCondition=((t3.c3 = t4.c4)) otherCondition=()
+----------------------PhysicalLimit[LOCAL]
------------------------PhysicalProject
---------------------------PhysicalOlapScan[t3]
-------------------------PhysicalDistribute[DistributionSpecReplicated]
---------------------------PhysicalProject
-----------------------------PhysicalOlapScan[t4]
+--------------------------hashJoin[INNER_JOIN] hashCondition=((t3.c3 = t4.c4)) otherCondition=()
+----------------------------PhysicalProject
+------------------------------PhysicalOlapScan[t3]
+----------------------------PhysicalDistribute[DistributionSpecReplicated]
+------------------------------PhysicalProject
+--------------------------------PhysicalOlapScan[t4]
Hint log:
Used: [broadcast]_2
@@ -7783,26 +7997,29 @@ PhysicalResultSink
----------NestedLoopJoin[CROSS_JOIN]
------------PhysicalProject
--------------hashJoin[LEFT_ANTI_JOIN] hashCondition=((alias2.c2 = t3.c3)) otherCondition=()
-----------------hashJoin[LEFT_OUTER_JOIN] hashCondition=((t1.c1 = alias2.c2)) otherCondition=()
-------------------PhysicalProject
---------------------PhysicalOlapScan[t1]
-------------------PhysicalDistribute[DistributionSpecReplicated]
+----------------PhysicalProject
+------------------hashJoin[LEFT_OUTER_JOIN] hashCondition=((t1.c1 = alias2.c2)) otherCondition=()
--------------------PhysicalProject
-----------------------PhysicalOlapScan[t2]
+----------------------PhysicalOlapScan[t1]
+--------------------PhysicalDistribute[DistributionSpecReplicated]
+----------------------PhysicalProject
+------------------------PhysicalOlapScan[t2]
----------------PhysicalDistribute[DistributionSpecReplicated]
------------------PhysicalProject
--------------------PhysicalOlapScan[t3]
------------PhysicalDistribute[DistributionSpecReplicated]
---------------PhysicalLimit[GLOBAL]
-----------------PhysicalDistribute[DistributionSpecGather]
-------------------PhysicalLimit[LOCAL]
+--------------PhysicalProject
+----------------PhysicalLimit[GLOBAL]
+------------------PhysicalDistribute[DistributionSpecGather]
--------------------PhysicalProject
-----------------------hashJoin[INNER_JOIN] hashCondition=((t3.c3 = t4.c4)) otherCondition=()
+----------------------PhysicalLimit[LOCAL]
------------------------PhysicalProject
---------------------------PhysicalOlapScan[t3]
-------------------------PhysicalDistribute[DistributionSpecHash]
---------------------------PhysicalProject
-----------------------------PhysicalOlapScan[t4]
+--------------------------hashJoin[INNER_JOIN] hashCondition=((t3.c3 = t4.c4)) otherCondition=()
+----------------------------PhysicalProject
+------------------------------PhysicalOlapScan[t3]
+----------------------------PhysicalDistribute[DistributionSpecHash]
+------------------------------PhysicalProject
+--------------------------------PhysicalOlapScan[t4]
Hint log:
Used: [broadcast]_2
@@ -7818,26 +8035,29 @@ PhysicalResultSink
----------NestedLoopJoin[CROSS_JOIN]
------------PhysicalProject
--------------hashJoin[LEFT_ANTI_JOIN] hashCondition=((alias2.c2 = t3.c3)) otherCondition=()
-----------------hashJoin[LEFT_OUTER_JOIN] hashCondition=((t1.c1 = alias2.c2)) otherCondition=()
-------------------PhysicalProject
---------------------PhysicalOlapScan[t1]
-------------------PhysicalDistribute[DistributionSpecHash]
+----------------PhysicalProject
+------------------hashJoin[LEFT_OUTER_JOIN] hashCondition=((t1.c1 = alias2.c2)) otherCondition=()
--------------------PhysicalProject
-----------------------PhysicalOlapScan[t2]
+----------------------PhysicalOlapScan[t1]
+--------------------PhysicalDistribute[DistributionSpecHash]
+----------------------PhysicalProject
+------------------------PhysicalOlapScan[t2]
----------------PhysicalDistribute[DistributionSpecReplicated]
------------------PhysicalProject
--------------------PhysicalOlapScan[t3]
------------PhysicalDistribute[DistributionSpecReplicated]
---------------PhysicalLimit[GLOBAL]
-----------------PhysicalDistribute[DistributionSpecGather]
-------------------PhysicalLimit[LOCAL]
+--------------PhysicalProject
+----------------PhysicalLimit[GLOBAL]
+------------------PhysicalDistribute[DistributionSpecGather]
--------------------PhysicalProject
-----------------------hashJoin[INNER_JOIN] hashCondition=((t3.c3 = t4.c4)) otherCondition=()
+----------------------PhysicalLimit[LOCAL]
------------------------PhysicalProject
---------------------------PhysicalOlapScan[t3]
-------------------------PhysicalDistribute[DistributionSpecReplicated]
---------------------------PhysicalProject
-----------------------------PhysicalOlapScan[t4]
+--------------------------hashJoin[INNER_JOIN] hashCondition=((t3.c3 = t4.c4)) otherCondition=()
+----------------------------PhysicalProject
+------------------------------PhysicalOlapScan[t3]
+----------------------------PhysicalDistribute[DistributionSpecReplicated]
+------------------------------PhysicalProject
+--------------------------------PhysicalOlapScan[t4]
Hint log:
Used: [broadcast]_2
@@ -7853,26 +8073,29 @@ PhysicalResultSink
----------NestedLoopJoin[CROSS_JOIN]
------------PhysicalProject
--------------hashJoin[LEFT_ANTI_JOIN] hashCondition=((alias2.c2 = t3.c3)) otherCondition=()
-----------------hashJoin[LEFT_OUTER_JOIN] hashCondition=((t1.c1 = alias2.c2)) otherCondition=()
-------------------PhysicalProject
---------------------PhysicalOlapScan[t1]
-------------------PhysicalDistribute[DistributionSpecReplicated]
+----------------PhysicalProject
+------------------hashJoin[LEFT_OUTER_JOIN] hashCondition=((t1.c1 = alias2.c2)) otherCondition=()
--------------------PhysicalProject
-----------------------PhysicalOlapScan[t2]
+----------------------PhysicalOlapScan[t1]
+--------------------PhysicalDistribute[DistributionSpecReplicated]
+----------------------PhysicalProject
+------------------------PhysicalOlapScan[t2]
----------------PhysicalDistribute[DistributionSpecReplicated]
------------------PhysicalProject
--------------------PhysicalOlapScan[t3]
------------PhysicalDistribute[DistributionSpecReplicated]
---------------PhysicalLimit[GLOBAL]
-----------------PhysicalDistribute[DistributionSpecGather]
-------------------PhysicalLimit[LOCAL]
+--------------PhysicalProject
+----------------PhysicalLimit[GLOBAL]
+------------------PhysicalDistribute[DistributionSpecGather]
--------------------PhysicalProject
-----------------------hashJoin[INNER_JOIN] hashCondition=((t3.c3 = t4.c4)) otherCondition=()
+----------------------PhysicalLimit[LOCAL]
------------------------PhysicalProject
---------------------------PhysicalOlapScan[t3]
-------------------------PhysicalDistribute[DistributionSpecReplicated]
---------------------------PhysicalProject
-----------------------------PhysicalOlapScan[t4]
+--------------------------hashJoin[INNER_JOIN] hashCondition=((t3.c3 = t4.c4)) otherCondition=()
+----------------------------PhysicalProject
+------------------------------PhysicalOlapScan[t3]
+----------------------------PhysicalDistribute[DistributionSpecReplicated]
+------------------------------PhysicalProject
+--------------------------------PhysicalOlapScan[t4]
Hint log:
Used: [broadcast]_2
@@ -7888,26 +8111,29 @@ PhysicalResultSink
----------NestedLoopJoin[CROSS_JOIN]
------------PhysicalProject
--------------hashJoin[LEFT_ANTI_JOIN] hashCondition=((alias2.c2 = t3.c3)) otherCondition=()
-----------------hashJoin[LEFT_OUTER_JOIN] hashCondition=((t1.c1 = alias2.c2)) otherCondition=()
-------------------PhysicalProject
---------------------PhysicalOlapScan[t1]
-------------------PhysicalDistribute[DistributionSpecHash]
+----------------PhysicalProject
+------------------hashJoin[LEFT_OUTER_JOIN] hashCondition=((t1.c1 = alias2.c2)) otherCondition=()
--------------------PhysicalProject
-----------------------PhysicalOlapScan[t2]
+----------------------PhysicalOlapScan[t1]
+--------------------PhysicalDistribute[DistributionSpecHash]
+----------------------PhysicalProject
+------------------------PhysicalOlapScan[t2]
----------------PhysicalDistribute[DistributionSpecReplicated]
------------------PhysicalProject
--------------------PhysicalOlapScan[t3]
------------PhysicalDistribute[DistributionSpecReplicated]
---------------PhysicalLimit[GLOBAL]
-----------------PhysicalDistribute[DistributionSpecGather]
-------------------PhysicalLimit[LOCAL]
+--------------PhysicalProject
+----------------PhysicalLimit[GLOBAL]
+------------------PhysicalDistribute[DistributionSpecGather]
--------------------PhysicalProject
-----------------------hashJoin[INNER_JOIN] hashCondition=((t3.c3 = t4.c4)) otherCondition=()
+----------------------PhysicalLimit[LOCAL]
------------------------PhysicalProject
---------------------------PhysicalOlapScan[t3]
-------------------------PhysicalDistribute[DistributionSpecHash]
---------------------------PhysicalProject
-----------------------------PhysicalOlapScan[t4]
+--------------------------hashJoin[INNER_JOIN] hashCondition=((t3.c3 = t4.c4)) otherCondition=()
+----------------------------PhysicalProject
+------------------------------PhysicalOlapScan[t3]
+----------------------------PhysicalDistribute[DistributionSpecHash]
+------------------------------PhysicalProject
+--------------------------------PhysicalOlapScan[t4]
Hint log:
Used: [shuffle]_2
@@ -7924,26 +8150,29 @@ PhysicalResultSink
------------PhysicalProject
--------------hashJoin[LEFT_ANTI_JOIN] hashCondition=((alias2.c2 = t3.c3)) otherCondition=()
----------------PhysicalDistribute[DistributionSpecHash]
-------------------hashJoin[LEFT_OUTER_JOIN] hashCondition=((t1.c1 = alias2.c2)) otherCondition=()
---------------------PhysicalProject
-----------------------PhysicalOlapScan[t1]
---------------------PhysicalDistribute[DistributionSpecHash]
+------------------PhysicalProject
+--------------------hashJoin[LEFT_OUTER_JOIN] hashCondition=((t1.c1 = alias2.c2)) otherCondition=()
----------------------PhysicalProject
-------------------------PhysicalOlapScan[t2]
+------------------------PhysicalOlapScan[t1]
+----------------------PhysicalDistribute[DistributionSpecHash]
+------------------------PhysicalProject
+--------------------------PhysicalOlapScan[t2]
----------------PhysicalDistribute[DistributionSpecHash]
------------------PhysicalProject
--------------------PhysicalOlapScan[t3]
------------PhysicalDistribute[DistributionSpecReplicated]
---------------PhysicalLimit[GLOBAL]
-----------------PhysicalDistribute[DistributionSpecGather]
-------------------PhysicalLimit[LOCAL]
+--------------PhysicalProject
+----------------PhysicalLimit[GLOBAL]
+------------------PhysicalDistribute[DistributionSpecGather]
--------------------PhysicalProject
-----------------------hashJoin[INNER_JOIN] hashCondition=((t3.c3 = t4.c4)) otherCondition=()
+----------------------PhysicalLimit[LOCAL]
------------------------PhysicalProject
---------------------------PhysicalOlapScan[t3]
-------------------------PhysicalDistribute[DistributionSpecHash]
---------------------------PhysicalProject
-----------------------------PhysicalOlapScan[t4]
+--------------------------hashJoin[INNER_JOIN] hashCondition=((t3.c3 = t4.c4)) otherCondition=()
+----------------------------PhysicalProject
+------------------------------PhysicalOlapScan[t3]
+----------------------------PhysicalDistribute[DistributionSpecHash]
+------------------------------PhysicalProject
+--------------------------------PhysicalOlapScan[t4]
Hint log:
Used: [shuffle]_2
@@ -7959,26 +8188,29 @@ PhysicalResultSink
----------NestedLoopJoin[CROSS_JOIN]
------------PhysicalProject
--------------hashJoin[LEFT_ANTI_JOIN] hashCondition=((alias2.c2 = t3.c3)) otherCondition=()
-----------------hashJoin[LEFT_OUTER_JOIN] hashCondition=((t1.c1 = alias2.c2)) otherCondition=()
-------------------PhysicalProject
---------------------PhysicalOlapScan[t1]
-------------------PhysicalDistribute[DistributionSpecHash]
+----------------PhysicalProject
+------------------hashJoin[LEFT_OUTER_JOIN] hashCondition=((t1.c1 = alias2.c2)) otherCondition=()
--------------------PhysicalProject
-----------------------PhysicalOlapScan[t2]
+----------------------PhysicalOlapScan[t1]
+--------------------PhysicalDistribute[DistributionSpecHash]
+----------------------PhysicalProject
+------------------------PhysicalOlapScan[t2]
----------------PhysicalDistribute[DistributionSpecReplicated]
------------------PhysicalProject
--------------------PhysicalOlapScan[t3]
------------PhysicalDistribute[DistributionSpecReplicated]
---------------PhysicalLimit[GLOBAL]
-----------------PhysicalDistribute[DistributionSpecGather]
-------------------PhysicalLimit[LOCAL]
+--------------PhysicalProject
+----------------PhysicalLimit[GLOBAL]
+------------------PhysicalDistribute[DistributionSpecGather]
--------------------PhysicalProject
-----------------------hashJoin[INNER_JOIN] hashCondition=((t3.c3 = t4.c4)) otherCondition=()
+----------------------PhysicalLimit[LOCAL]
------------------------PhysicalProject
---------------------------PhysicalOlapScan[t3]
-------------------------PhysicalDistribute[DistributionSpecHash]
---------------------------PhysicalProject
-----------------------------PhysicalOlapScan[t4]
+--------------------------hashJoin[INNER_JOIN] hashCondition=((t3.c3 = t4.c4)) otherCondition=()
+----------------------------PhysicalProject
+------------------------------PhysicalOlapScan[t3]
+----------------------------PhysicalDistribute[DistributionSpecHash]
+------------------------------PhysicalProject
+--------------------------------PhysicalOlapScan[t4]
Hint log:
Used: [shuffle]_2
@@ -7995,26 +8227,29 @@ PhysicalResultSink
------------PhysicalProject
--------------hashJoin[LEFT_ANTI_JOIN] hashCondition=((alias2.c2 = t3.c3)) otherCondition=()
----------------PhysicalDistribute[DistributionSpecHash]
-------------------hashJoin[LEFT_OUTER_JOIN] hashCondition=((t1.c1 = alias2.c2)) otherCondition=()
---------------------PhysicalProject
-----------------------PhysicalOlapScan[t1]
---------------------PhysicalDistribute[DistributionSpecHash]
+------------------PhysicalProject
+--------------------hashJoin[LEFT_OUTER_JOIN] hashCondition=((t1.c1 = alias2.c2)) otherCondition=()
----------------------PhysicalProject
-------------------------PhysicalOlapScan[t2]
+------------------------PhysicalOlapScan[t1]
+----------------------PhysicalDistribute[DistributionSpecHash]
+------------------------PhysicalProject
+--------------------------PhysicalOlapScan[t2]
----------------PhysicalDistribute[DistributionSpecHash]
------------------PhysicalProject
--------------------PhysicalOlapScan[t3]
------------PhysicalDistribute[DistributionSpecReplicated]
---------------PhysicalLimit[GLOBAL]
-----------------PhysicalDistribute[DistributionSpecGather]
-------------------PhysicalLimit[LOCAL]
+--------------PhysicalProject
+----------------PhysicalLimit[GLOBAL]
+------------------PhysicalDistribute[DistributionSpecGather]
--------------------PhysicalProject
-----------------------hashJoin[INNER_JOIN] hashCondition=((t3.c3 = t4.c4)) otherCondition=()
+----------------------PhysicalLimit[LOCAL]
------------------------PhysicalProject
---------------------------PhysicalOlapScan[t3]
-------------------------PhysicalDistribute[DistributionSpecHash]
---------------------------PhysicalProject
-----------------------------PhysicalOlapScan[t4]
+--------------------------hashJoin[INNER_JOIN] hashCondition=((t3.c3 = t4.c4)) otherCondition=()
+----------------------------PhysicalProject
+------------------------------PhysicalOlapScan[t3]
+----------------------------PhysicalDistribute[DistributionSpecHash]
+------------------------------PhysicalProject
+--------------------------------PhysicalOlapScan[t4]
Hint log:
Used: [shuffle]_2
@@ -8030,26 +8265,29 @@ PhysicalResultSink
----------NestedLoopJoin[CROSS_JOIN]
------------PhysicalProject
--------------hashJoin[LEFT_ANTI_JOIN] hashCondition=((alias2.c2 = t3.c3)) otherCondition=()
-----------------hashJoin[LEFT_OUTER_JOIN] hashCondition=((t1.c1 = alias2.c2)) otherCondition=()
-------------------PhysicalProject
---------------------PhysicalOlapScan[t1]
-------------------PhysicalDistribute[DistributionSpecHash]
+----------------PhysicalProject
+------------------hashJoin[LEFT_OUTER_JOIN] hashCondition=((t1.c1 = alias2.c2)) otherCondition=()
--------------------PhysicalProject
-----------------------PhysicalOlapScan[t2]
+----------------------PhysicalOlapScan[t1]
+--------------------PhysicalDistribute[DistributionSpecHash]
+----------------------PhysicalProject
+------------------------PhysicalOlapScan[t2]
----------------PhysicalDistribute[DistributionSpecReplicated]
------------------PhysicalProject
--------------------PhysicalOlapScan[t3]
------------PhysicalDistribute[DistributionSpecReplicated]
---------------PhysicalLimit[GLOBAL]
-----------------PhysicalDistribute[DistributionSpecGather]
-------------------PhysicalLimit[LOCAL]
+--------------PhysicalProject
+----------------PhysicalLimit[GLOBAL]
+------------------PhysicalDistribute[DistributionSpecGather]
--------------------PhysicalProject
-----------------------hashJoin[INNER_JOIN] hashCondition=((t3.c3 = t4.c4)) otherCondition=()
+----------------------PhysicalLimit[LOCAL]
------------------------PhysicalProject
---------------------------PhysicalOlapScan[t3]
-------------------------PhysicalDistribute[DistributionSpecHash]
---------------------------PhysicalProject
-----------------------------PhysicalOlapScan[t4]
+--------------------------hashJoin[INNER_JOIN] hashCondition=((t3.c3 = t4.c4)) otherCondition=()
+----------------------------PhysicalProject
+------------------------------PhysicalOlapScan[t3]
+----------------------------PhysicalDistribute[DistributionSpecHash]
+------------------------------PhysicalProject
+--------------------------------PhysicalOlapScan[t4]
Hint log:
Used: [shuffle]_2
@@ -8066,26 +8304,29 @@ PhysicalResultSink
------------PhysicalProject
--------------hashJoin[LEFT_ANTI_JOIN] hashCondition=((alias2.c2 = t3.c3)) otherCondition=()
----------------PhysicalDistribute[DistributionSpecHash]
-------------------hashJoin[LEFT_OUTER_JOIN] hashCondition=((t1.c1 = alias2.c2)) otherCondition=()
---------------------PhysicalProject
-----------------------PhysicalOlapScan[t1]
---------------------PhysicalDistribute[DistributionSpecHash]
+------------------PhysicalProject
+--------------------hashJoin[LEFT_OUTER_JOIN] hashCondition=((t1.c1 = alias2.c2)) otherCondition=()
----------------------PhysicalProject
-------------------------PhysicalOlapScan[t2]
+------------------------PhysicalOlapScan[t1]
+----------------------PhysicalDistribute[DistributionSpecHash]
+------------------------PhysicalProject
+--------------------------PhysicalOlapScan[t2]
----------------PhysicalDistribute[DistributionSpecHash]
------------------PhysicalProject
--------------------PhysicalOlapScan[t3]
------------PhysicalDistribute[DistributionSpecReplicated]
---------------PhysicalLimit[GLOBAL]
-----------------PhysicalDistribute[DistributionSpecGather]
-------------------PhysicalLimit[LOCAL]
+--------------PhysicalProject
+----------------PhysicalLimit[GLOBAL]
+------------------PhysicalDistribute[DistributionSpecGather]
--------------------PhysicalProject
-----------------------hashJoin[INNER_JOIN] hashCondition=((t3.c3 = t4.c4)) otherCondition=()
+----------------------PhysicalLimit[LOCAL]
------------------------PhysicalProject
---------------------------PhysicalOlapScan[t3]
-------------------------PhysicalDistribute[DistributionSpecHash]
---------------------------PhysicalProject
-----------------------------PhysicalOlapScan[t4]
+--------------------------hashJoin[INNER_JOIN] hashCondition=((t3.c3 = t4.c4)) otherCondition=()
+----------------------------PhysicalProject
+------------------------------PhysicalOlapScan[t3]
+----------------------------PhysicalDistribute[DistributionSpecHash]
+------------------------------PhysicalProject
+--------------------------------PhysicalOlapScan[t4]
Hint log:
Used: [shuffle]_2
@@ -8111,16 +8352,18 @@ PhysicalResultSink
------------------PhysicalProject
--------------------PhysicalOlapScan[t1]
------------PhysicalDistribute[DistributionSpecReplicated]
---------------PhysicalLimit[GLOBAL]
-----------------PhysicalDistribute[DistributionSpecGather]
-------------------PhysicalLimit[LOCAL]
+--------------PhysicalProject
+----------------PhysicalLimit[GLOBAL]
+------------------PhysicalDistribute[DistributionSpecGather]
--------------------PhysicalProject
-----------------------hashJoin[INNER_JOIN] hashCondition=((t3.c3 = t4.c4)) otherCondition=()
+----------------------PhysicalLimit[LOCAL]
------------------------PhysicalProject
---------------------------PhysicalOlapScan[t3]
-------------------------PhysicalDistribute[DistributionSpecHash]
---------------------------PhysicalProject
-----------------------------PhysicalOlapScan[t4]
+--------------------------hashJoin[INNER_JOIN] hashCondition=((t3.c3 = t4.c4)) otherCondition=()
+----------------------------PhysicalProject
+------------------------------PhysicalOlapScan[t3]
+----------------------------PhysicalDistribute[DistributionSpecHash]
+------------------------------PhysicalProject
+--------------------------------PhysicalOlapScan[t4]
-- !select46_2 --
PhysicalResultSink
@@ -8131,27 +8374,30 @@ PhysicalResultSink
----------NestedLoopJoin[CROSS_JOIN]
------------PhysicalProject
--------------hashJoin[LEFT_SEMI_JOIN] hashCondition=((alias2.c2 = t3.c3)) otherCondition=()
-----------------hashJoin[RIGHT_OUTER_JOIN] hashCondition=((t1.c1 = alias2.c2)) otherCondition=()
-------------------PhysicalDistribute[DistributionSpecHash]
---------------------PhysicalProject
-----------------------PhysicalOlapScan[t1]
-------------------PhysicalDistribute[DistributionSpecHash]
---------------------PhysicalProject
-----------------------PhysicalOlapScan[t2]
+----------------PhysicalProject
+------------------hashJoin[RIGHT_OUTER_JOIN] hashCondition=((t1.c1 = alias2.c2)) otherCondition=()
+--------------------PhysicalDistribute[DistributionSpecHash]
+----------------------PhysicalProject
+------------------------PhysicalOlapScan[t1]
+--------------------PhysicalDistribute[DistributionSpecHash]
+----------------------PhysicalProject
+------------------------PhysicalOlapScan[t2]
----------------PhysicalDistribute[DistributionSpecHash]
------------------PhysicalProject
--------------------PhysicalOlapScan[t3]
------------PhysicalDistribute[DistributionSpecReplicated]
---------------PhysicalLimit[GLOBAL]
-----------------PhysicalDistribute[DistributionSpecGather]
-------------------PhysicalLimit[LOCAL]
+--------------PhysicalProject
+----------------PhysicalLimit[GLOBAL]
+------------------PhysicalDistribute[DistributionSpecGather]
--------------------PhysicalProject
-----------------------hashJoin[INNER_JOIN] hashCondition=((t3.c3 = t4.c4)) otherCondition=()
+----------------------PhysicalLimit[LOCAL]
------------------------PhysicalProject
---------------------------PhysicalOlapScan[t3]
-------------------------PhysicalDistribute[DistributionSpecHash]
---------------------------PhysicalProject
-----------------------------PhysicalOlapScan[t4]
+--------------------------hashJoin[INNER_JOIN] hashCondition=((t3.c3 = t4.c4)) otherCondition=()
+----------------------------PhysicalProject
+------------------------------PhysicalOlapScan[t3]
+----------------------------PhysicalDistribute[DistributionSpecHash]
+------------------------------PhysicalProject
+--------------------------------PhysicalOlapScan[t4]
Hint log:
Used:
@@ -8165,28 +8411,31 @@ PhysicalResultSink
------hashAgg[LOCAL]
--------PhysicalProject
----------NestedLoopJoin[CROSS_JOIN]
-------------hashJoin[LEFT_SEMI_JOIN] hashCondition=((alias2.c2 = t3.c3)) otherCondition=()
---------------PhysicalProject
-----------------hashJoin[LEFT_OUTER_JOIN] hashCondition=((t1.c1 = alias2.c2)) otherCondition=()
-------------------PhysicalProject
---------------------PhysicalOlapScan[t2]
-------------------PhysicalDistribute[DistributionSpecHash]
---------------------PhysicalProject
-----------------------PhysicalOlapScan[t1]
---------------PhysicalDistribute[DistributionSpecReplicated]
+------------PhysicalProject
+--------------hashJoin[LEFT_SEMI_JOIN] hashCondition=((alias2.c2 = t3.c3)) otherCondition=()
----------------PhysicalProject
-------------------PhysicalOlapScan[t3]
+------------------hashJoin[LEFT_OUTER_JOIN] hashCondition=((t1.c1 = alias2.c2)) otherCondition=()
+--------------------PhysicalProject
+----------------------PhysicalOlapScan[t2]
+--------------------PhysicalDistribute[DistributionSpecHash]
+----------------------PhysicalProject
+------------------------PhysicalOlapScan[t1]
+----------------PhysicalDistribute[DistributionSpecReplicated]
+------------------PhysicalProject
+--------------------PhysicalOlapScan[t3]
------------PhysicalDistribute[DistributionSpecReplicated]
---------------PhysicalLimit[GLOBAL]
-----------------PhysicalDistribute[DistributionSpecGather]
-------------------PhysicalLimit[LOCAL]
+--------------PhysicalProject
+----------------PhysicalLimit[GLOBAL]
+------------------PhysicalDistribute[DistributionSpecGather]
--------------------PhysicalProject
-----------------------hashJoin[INNER_JOIN] hashCondition=((t3.c3 = t4.c4)) otherCondition=()
+----------------------PhysicalLimit[LOCAL]
------------------------PhysicalProject
---------------------------PhysicalOlapScan[t3]
-------------------------PhysicalDistribute[DistributionSpecHash]
---------------------------PhysicalProject
-----------------------------PhysicalOlapScan[t4]
+--------------------------hashJoin[INNER_JOIN] hashCondition=((t3.c3 = t4.c4)) otherCondition=()
+----------------------------PhysicalProject
+------------------------------PhysicalOlapScan[t3]
+----------------------------PhysicalDistribute[DistributionSpecHash]
+------------------------------PhysicalProject
+--------------------------------PhysicalOlapScan[t4]
Hint log:
Used: [broadcast]_2
@@ -8212,16 +8461,18 @@ PhysicalResultSink
------------------PhysicalProject
--------------------PhysicalOlapScan[t1]
------------PhysicalDistribute[DistributionSpecReplicated]
---------------PhysicalLimit[GLOBAL]
-----------------PhysicalDistribute[DistributionSpecGather]
-------------------PhysicalLimit[LOCAL]
+--------------PhysicalProject
+----------------PhysicalLimit[GLOBAL]
+------------------PhysicalDistribute[DistributionSpecGather]
--------------------PhysicalProject
-----------------------hashJoin[INNER_JOIN] hashCondition=((t3.c3 = t4.c4)) otherCondition=()
+----------------------PhysicalLimit[LOCAL]
------------------------PhysicalProject
---------------------------PhysicalOlapScan[t3]
-------------------------PhysicalDistribute[DistributionSpecReplicated]
---------------------------PhysicalProject
-----------------------------PhysicalOlapScan[t4]
+--------------------------hashJoin[INNER_JOIN] hashCondition=((t3.c3 = t4.c4)) otherCondition=()
+----------------------------PhysicalProject
+------------------------------PhysicalOlapScan[t3]
+----------------------------PhysicalDistribute[DistributionSpecReplicated]
+------------------------------PhysicalProject
+--------------------------------PhysicalOlapScan[t4]
Hint log:
Used: [broadcast]_2
@@ -8237,27 +8488,30 @@ PhysicalResultSink
----------NestedLoopJoin[CROSS_JOIN]
------------PhysicalProject
--------------hashJoin[LEFT_SEMI_JOIN] hashCondition=((alias2.c2 = t3.c3)) otherCondition=()
-----------------hashJoin[RIGHT_OUTER_JOIN] hashCondition=((t1.c1 = alias2.c2)) otherCondition=()
-------------------PhysicalDistribute[DistributionSpecHash]
---------------------PhysicalProject
-----------------------PhysicalOlapScan[t1]
-------------------PhysicalDistribute[DistributionSpecHash]
---------------------PhysicalProject
-----------------------PhysicalOlapScan[t2]
+----------------PhysicalProject
+------------------hashJoin[RIGHT_OUTER_JOIN] hashCondition=((t1.c1 = alias2.c2)) otherCondition=()
+--------------------PhysicalDistribute[DistributionSpecHash]
+----------------------PhysicalProject
+------------------------PhysicalOlapScan[t1]
+--------------------PhysicalDistribute[DistributionSpecHash]
+----------------------PhysicalProject
+------------------------PhysicalOlapScan[t2]
----------------PhysicalDistribute[DistributionSpecReplicated]
------------------PhysicalProject
--------------------PhysicalOlapScan[t3]
------------PhysicalDistribute[DistributionSpecReplicated]
---------------PhysicalLimit[GLOBAL]
-----------------PhysicalDistribute[DistributionSpecGather]
-------------------PhysicalLimit[LOCAL]
+--------------PhysicalProject
+----------------PhysicalLimit[GLOBAL]
+------------------PhysicalDistribute[DistributionSpecGather]
--------------------PhysicalProject
-----------------------hashJoin[INNER_JOIN] hashCondition=((t3.c3 = t4.c4)) otherCondition=()
+----------------------PhysicalLimit[LOCAL]
------------------------PhysicalProject
---------------------------PhysicalOlapScan[t3]
-------------------------PhysicalDistribute[DistributionSpecHash]
---------------------------PhysicalProject
-----------------------------PhysicalOlapScan[t4]
+--------------------------hashJoin[INNER_JOIN] hashCondition=((t3.c3 = t4.c4)) otherCondition=()
+----------------------------PhysicalProject
+------------------------------PhysicalOlapScan[t3]
+----------------------------PhysicalDistribute[DistributionSpecHash]
+------------------------------PhysicalProject
+--------------------------------PhysicalOlapScan[t4]
Hint log:
Used:
@@ -8271,28 +8525,31 @@ PhysicalResultSink
------hashAgg[LOCAL]
--------PhysicalProject
----------NestedLoopJoin[CROSS_JOIN]
-------------hashJoin[LEFT_SEMI_JOIN] hashCondition=((alias2.c2 = t3.c3)) otherCondition=()
---------------PhysicalProject
-----------------hashJoin[LEFT_OUTER_JOIN] hashCondition=((t1.c1 = alias2.c2)) otherCondition=()
-------------------PhysicalProject
---------------------PhysicalOlapScan[t2]
-------------------PhysicalDistribute[DistributionSpecHash]
---------------------PhysicalProject
-----------------------PhysicalOlapScan[t1]
---------------PhysicalDistribute[DistributionSpecReplicated]
+------------PhysicalProject
+--------------hashJoin[LEFT_SEMI_JOIN] hashCondition=((alias2.c2 = t3.c3)) otherCondition=()
----------------PhysicalProject
-------------------PhysicalOlapScan[t3]
+------------------hashJoin[LEFT_OUTER_JOIN] hashCondition=((t1.c1 = alias2.c2)) otherCondition=()
+--------------------PhysicalProject
+----------------------PhysicalOlapScan[t2]
+--------------------PhysicalDistribute[DistributionSpecHash]
+----------------------PhysicalProject
+------------------------PhysicalOlapScan[t1]
+----------------PhysicalDistribute[DistributionSpecReplicated]
+------------------PhysicalProject
+--------------------PhysicalOlapScan[t3]
------------PhysicalDistribute[DistributionSpecReplicated]
---------------PhysicalLimit[GLOBAL]
-----------------PhysicalDistribute[DistributionSpecGather]
-------------------PhysicalLimit[LOCAL]
+--------------PhysicalProject
+----------------PhysicalLimit[GLOBAL]
+------------------PhysicalDistribute[DistributionSpecGather]
--------------------PhysicalProject
-----------------------hashJoin[INNER_JOIN] hashCondition=((t3.c3 = t4.c4)) otherCondition=()
+----------------------PhysicalLimit[LOCAL]
------------------------PhysicalProject
---------------------------PhysicalOlapScan[t3]
-------------------------PhysicalDistribute[DistributionSpecReplicated]
---------------------------PhysicalProject
-----------------------------PhysicalOlapScan[t4]
+--------------------------hashJoin[INNER_JOIN] hashCondition=((t3.c3 = t4.c4)) otherCondition=()
+----------------------------PhysicalProject
+------------------------------PhysicalOlapScan[t3]
+----------------------------PhysicalDistribute[DistributionSpecReplicated]
+------------------------------PhysicalProject
+--------------------------------PhysicalOlapScan[t4]
Hint log:
Used: [broadcast]_2
@@ -8308,27 +8565,30 @@ PhysicalResultSink
----------NestedLoopJoin[CROSS_JOIN]
------------PhysicalProject
--------------hashJoin[LEFT_SEMI_JOIN] hashCondition=((alias2.c2 = t3.c3)) otherCondition=()
-----------------hashJoin[RIGHT_OUTER_JOIN] hashCondition=((t1.c1 = alias2.c2)) otherCondition=()
-------------------PhysicalDistribute[DistributionSpecHash]
---------------------PhysicalProject
-----------------------PhysicalOlapScan[t1]
-------------------PhysicalDistribute[DistributionSpecHash]
---------------------PhysicalProject
-----------------------PhysicalOlapScan[t2]
+----------------PhysicalProject
+------------------hashJoin[RIGHT_OUTER_JOIN] hashCondition=((t1.c1 = alias2.c2)) otherCondition=()
+--------------------PhysicalDistribute[DistributionSpecHash]
+----------------------PhysicalProject
+------------------------PhysicalOlapScan[t1]
+--------------------PhysicalDistribute[DistributionSpecHash]
+----------------------PhysicalProject
+------------------------PhysicalOlapScan[t2]
----------------PhysicalDistribute[DistributionSpecReplicated]
------------------PhysicalProject
--------------------PhysicalOlapScan[t3]
------------PhysicalDistribute[DistributionSpecReplicated]
---------------PhysicalLimit[GLOBAL]
-----------------PhysicalDistribute[DistributionSpecGather]
-------------------PhysicalLimit[LOCAL]
+--------------PhysicalProject
+----------------PhysicalLimit[GLOBAL]
+------------------PhysicalDistribute[DistributionSpecGather]
--------------------PhysicalProject
-----------------------hashJoin[INNER_JOIN] hashCondition=((t3.c3 = t4.c4)) otherCondition=()
+----------------------PhysicalLimit[LOCAL]
------------------------PhysicalProject
---------------------------PhysicalOlapScan[t3]
-------------------------PhysicalDistribute[DistributionSpecReplicated]
---------------------------PhysicalProject
-----------------------------PhysicalOlapScan[t4]
+--------------------------hashJoin[INNER_JOIN] hashCondition=((t3.c3 = t4.c4)) otherCondition=()
+----------------------------PhysicalProject
+------------------------------PhysicalOlapScan[t3]
+----------------------------PhysicalDistribute[DistributionSpecReplicated]
+------------------------------PhysicalProject
+--------------------------------PhysicalOlapScan[t4]
Hint log:
Used:
@@ -8344,27 +8604,30 @@ PhysicalResultSink
----------NestedLoopJoin[CROSS_JOIN]
------------PhysicalProject
--------------hashJoin[LEFT_SEMI_JOIN] hashCondition=((alias2.c2 = t3.c3)) otherCondition=()
-----------------hashJoin[RIGHT_OUTER_JOIN] hashCondition=((t1.c1 = alias2.c2)) otherCondition=()
-------------------PhysicalDistribute[DistributionSpecHash]
---------------------PhysicalProject
-----------------------PhysicalOlapScan[t1]
-------------------PhysicalDistribute[DistributionSpecHash]
---------------------PhysicalProject
-----------------------PhysicalOlapScan[t2]
+----------------PhysicalProject
+------------------hashJoin[RIGHT_OUTER_JOIN] hashCondition=((t1.c1 = alias2.c2)) otherCondition=()
+--------------------PhysicalDistribute[DistributionSpecHash]
+----------------------PhysicalProject
+------------------------PhysicalOlapScan[t1]
+--------------------PhysicalDistribute[DistributionSpecHash]
+----------------------PhysicalProject
+------------------------PhysicalOlapScan[t2]
----------------PhysicalDistribute[DistributionSpecHash]
------------------PhysicalProject
--------------------PhysicalOlapScan[t3]
------------PhysicalDistribute[DistributionSpecReplicated]
---------------PhysicalLimit[GLOBAL]
-----------------PhysicalDistribute[DistributionSpecGather]
-------------------PhysicalLimit[LOCAL]
+--------------PhysicalProject
+----------------PhysicalLimit[GLOBAL]
+------------------PhysicalDistribute[DistributionSpecGather]
--------------------PhysicalProject
-----------------------hashJoin[INNER_JOIN] hashCondition=((t3.c3 = t4.c4)) otherCondition=()
+----------------------PhysicalLimit[LOCAL]
------------------------PhysicalProject
---------------------------PhysicalOlapScan[t3]
-------------------------PhysicalDistribute[DistributionSpecHash]
---------------------------PhysicalProject
-----------------------------PhysicalOlapScan[t4]
+--------------------------hashJoin[INNER_JOIN] hashCondition=((t3.c3 = t4.c4)) otherCondition=()
+----------------------------PhysicalProject
+------------------------------PhysicalOlapScan[t3]
+----------------------------PhysicalDistribute[DistributionSpecHash]
+------------------------------PhysicalProject
+--------------------------------PhysicalOlapScan[t4]
Hint log:
Used: [shuffle]_2
@@ -8378,28 +8641,31 @@ PhysicalResultSink
------hashAgg[LOCAL]
--------PhysicalProject
----------NestedLoopJoin[CROSS_JOIN]
-------------hashJoin[LEFT_SEMI_JOIN] hashCondition=((alias2.c2 = t3.c3)) otherCondition=()
---------------PhysicalProject
-----------------hashJoin[LEFT_OUTER_JOIN] hashCondition=((t1.c1 = alias2.c2)) otherCondition=()
-------------------PhysicalProject
---------------------PhysicalOlapScan[t2]
-------------------PhysicalDistribute[DistributionSpecHash]
---------------------PhysicalProject
-----------------------PhysicalOlapScan[t1]
---------------PhysicalDistribute[DistributionSpecHash]
+------------PhysicalProject
+--------------hashJoin[LEFT_SEMI_JOIN] hashCondition=((alias2.c2 = t3.c3)) otherCondition=()
----------------PhysicalProject
-------------------PhysicalOlapScan[t3]
+------------------hashJoin[LEFT_OUTER_JOIN] hashCondition=((t1.c1 = alias2.c2)) otherCondition=()
+--------------------PhysicalProject
+----------------------PhysicalOlapScan[t2]
+--------------------PhysicalDistribute[DistributionSpecHash]
+----------------------PhysicalProject
+------------------------PhysicalOlapScan[t1]
+----------------PhysicalDistribute[DistributionSpecHash]
+------------------PhysicalProject
+--------------------PhysicalOlapScan[t3]
------------PhysicalDistribute[DistributionSpecReplicated]
---------------PhysicalLimit[GLOBAL]
-----------------PhysicalDistribute[DistributionSpecGather]
-------------------PhysicalLimit[LOCAL]
+--------------PhysicalProject
+----------------PhysicalLimit[GLOBAL]
+------------------PhysicalDistribute[DistributionSpecGather]
--------------------PhysicalProject
-----------------------hashJoin[INNER_JOIN] hashCondition=((t3.c3 = t4.c4)) otherCondition=()
+----------------------PhysicalLimit[LOCAL]
------------------------PhysicalProject
---------------------------PhysicalOlapScan[t3]
-------------------------PhysicalDistribute[DistributionSpecHash]
---------------------------PhysicalProject
-----------------------------PhysicalOlapScan[t4]
+--------------------------hashJoin[INNER_JOIN] hashCondition=((t3.c3 = t4.c4)) otherCondition=()
+----------------------------PhysicalProject
+------------------------------PhysicalOlapScan[t3]
+----------------------------PhysicalDistribute[DistributionSpecHash]
+------------------------------PhysicalProject
+--------------------------------PhysicalOlapScan[t4]
Hint log:
Used: [shuffle]_2
@@ -8425,16 +8691,18 @@ PhysicalResultSink
------------------PhysicalProject
--------------------PhysicalOlapScan[t1]
------------PhysicalDistribute[DistributionSpecReplicated]
---------------PhysicalLimit[GLOBAL]
-----------------PhysicalDistribute[DistributionSpecGather]
-------------------PhysicalLimit[LOCAL]
+--------------PhysicalProject
+----------------PhysicalLimit[GLOBAL]
+------------------PhysicalDistribute[DistributionSpecGather]
--------------------PhysicalProject
-----------------------hashJoin[INNER_JOIN] hashCondition=((t3.c3 = t4.c4)) otherCondition=()
+----------------------PhysicalLimit[LOCAL]
------------------------PhysicalProject
---------------------------PhysicalOlapScan[t3]
-------------------------PhysicalDistribute[DistributionSpecHash]
---------------------------PhysicalProject
-----------------------------PhysicalOlapScan[t4]
+--------------------------hashJoin[INNER_JOIN] hashCondition=((t3.c3 = t4.c4)) otherCondition=()
+----------------------------PhysicalProject
+------------------------------PhysicalOlapScan[t3]
+----------------------------PhysicalDistribute[DistributionSpecHash]
+------------------------------PhysicalProject
+--------------------------------PhysicalOlapScan[t4]
Hint log:
Used: [shuffle]_2
@@ -8450,27 +8718,30 @@ PhysicalResultSink
----------NestedLoopJoin[CROSS_JOIN]
------------PhysicalProject
--------------hashJoin[LEFT_SEMI_JOIN] hashCondition=((alias2.c2 = t3.c3)) otherCondition=()
-----------------hashJoin[RIGHT_OUTER_JOIN] hashCondition=((t1.c1 = alias2.c2)) otherCondition=()
-------------------PhysicalDistribute[DistributionSpecHash]
---------------------PhysicalProject
-----------------------PhysicalOlapScan[t1]
-------------------PhysicalDistribute[DistributionSpecHash]
---------------------PhysicalProject
-----------------------PhysicalOlapScan[t2]
+----------------PhysicalProject
+------------------hashJoin[RIGHT_OUTER_JOIN] hashCondition=((t1.c1 = alias2.c2)) otherCondition=()
+--------------------PhysicalDistribute[DistributionSpecHash]
+----------------------PhysicalProject
+------------------------PhysicalOlapScan[t1]
+--------------------PhysicalDistribute[DistributionSpecHash]
+----------------------PhysicalProject
+------------------------PhysicalOlapScan[t2]
----------------PhysicalDistribute[DistributionSpecHash]
------------------PhysicalProject
--------------------PhysicalOlapScan[t3]
------------PhysicalDistribute[DistributionSpecReplicated]
---------------PhysicalLimit[GLOBAL]
-----------------PhysicalDistribute[DistributionSpecGather]
-------------------PhysicalLimit[LOCAL]
+--------------PhysicalProject
+----------------PhysicalLimit[GLOBAL]
+------------------PhysicalDistribute[DistributionSpecGather]
--------------------PhysicalProject
-----------------------hashJoin[INNER_JOIN] hashCondition=((t3.c3 = t4.c4)) otherCondition=()
+----------------------PhysicalLimit[LOCAL]
------------------------PhysicalProject
---------------------------PhysicalOlapScan[t3]
-------------------------PhysicalDistribute[DistributionSpecHash]
---------------------------PhysicalProject
-----------------------------PhysicalOlapScan[t4]
+--------------------------hashJoin[INNER_JOIN] hashCondition=((t3.c3 = t4.c4)) otherCondition=()
+----------------------------PhysicalProject
+------------------------------PhysicalOlapScan[t3]
+----------------------------PhysicalDistribute[DistributionSpecHash]
+------------------------------PhysicalProject
+--------------------------------PhysicalOlapScan[t4]
Hint log:
Used: [shuffle]_2
@@ -8486,27 +8757,30 @@ PhysicalResultSink
----------NestedLoopJoin[CROSS_JOIN]
------------PhysicalProject
--------------hashJoin[LEFT_SEMI_JOIN] hashCondition=((alias2.c2 = t3.c3)) otherCondition=()
-----------------hashJoin[RIGHT_OUTER_JOIN] hashCondition=((t1.c1 = alias2.c2)) otherCondition=()
-------------------PhysicalDistribute[DistributionSpecHash]
---------------------PhysicalProject
-----------------------PhysicalOlapScan[t1]
-------------------PhysicalDistribute[DistributionSpecHash]
---------------------PhysicalProject
-----------------------PhysicalOlapScan[t2]
+----------------PhysicalProject
+------------------hashJoin[RIGHT_OUTER_JOIN] hashCondition=((t1.c1 = alias2.c2)) otherCondition=()
+--------------------PhysicalDistribute[DistributionSpecHash]
+----------------------PhysicalProject
+------------------------PhysicalOlapScan[t1]
+--------------------PhysicalDistribute[DistributionSpecHash]
+----------------------PhysicalProject
+------------------------PhysicalOlapScan[t2]
----------------PhysicalDistribute[DistributionSpecHash]
------------------PhysicalProject
--------------------PhysicalOlapScan[t3]
------------PhysicalDistribute[DistributionSpecReplicated]
---------------PhysicalLimit[GLOBAL]
-----------------PhysicalDistribute[DistributionSpecGather]
-------------------PhysicalLimit[LOCAL]
+--------------PhysicalProject
+----------------PhysicalLimit[GLOBAL]
+------------------PhysicalDistribute[DistributionSpecGather]
--------------------PhysicalProject
-----------------------hashJoin[INNER_JOIN] hashCondition=((t3.c3 = t4.c4)) otherCondition=()
+----------------------PhysicalLimit[LOCAL]
------------------------PhysicalProject
---------------------------PhysicalOlapScan[t3]
-------------------------PhysicalDistribute[DistributionSpecHash]
---------------------------PhysicalProject
-----------------------------PhysicalOlapScan[t4]
+--------------------------hashJoin[INNER_JOIN] hashCondition=((t3.c3 = t4.c4)) otherCondition=()
+----------------------------PhysicalProject
+------------------------------PhysicalOlapScan[t3]
+----------------------------PhysicalDistribute[DistributionSpecHash]
+------------------------------PhysicalProject
+--------------------------------PhysicalOlapScan[t4]
Hint log:
Used: [shuffle]_2
@@ -8522,27 +8796,30 @@ PhysicalResultSink
----------NestedLoopJoin[CROSS_JOIN]
------------PhysicalProject
--------------hashJoin[LEFT_SEMI_JOIN] hashCondition=((alias2.c2 = t3.c3)) otherCondition=()
-----------------hashJoin[RIGHT_OUTER_JOIN] hashCondition=((t1.c1 = alias2.c2)) otherCondition=()
-------------------PhysicalDistribute[DistributionSpecHash]
---------------------PhysicalProject
-----------------------PhysicalOlapScan[t1]
-------------------PhysicalDistribute[DistributionSpecHash]
---------------------PhysicalProject
-----------------------PhysicalOlapScan[t2]
+----------------PhysicalProject
+------------------hashJoin[RIGHT_OUTER_JOIN] hashCondition=((t1.c1 = alias2.c2)) otherCondition=()
+--------------------PhysicalDistribute[DistributionSpecHash]
+----------------------PhysicalProject
+------------------------PhysicalOlapScan[t1]
+--------------------PhysicalDistribute[DistributionSpecHash]
+----------------------PhysicalProject
+------------------------PhysicalOlapScan[t2]
----------------PhysicalDistribute[DistributionSpecHash]
------------------PhysicalProject
--------------------PhysicalOlapScan[t3]
------------PhysicalDistribute[DistributionSpecReplicated]
---------------PhysicalLimit[GLOBAL]
-----------------PhysicalDistribute[DistributionSpecGather]
-------------------PhysicalLimit[LOCAL]
+--------------PhysicalProject
+----------------PhysicalLimit[GLOBAL]
+------------------PhysicalDistribute[DistributionSpecGather]
--------------------PhysicalProject
-----------------------hashJoin[INNER_JOIN] hashCondition=((t3.c3 = t4.c4)) otherCondition=()
+----------------------PhysicalLimit[LOCAL]
------------------------PhysicalProject
---------------------------PhysicalOlapScan[t3]
-------------------------PhysicalDistribute[DistributionSpecHash]
---------------------------PhysicalProject
-----------------------------PhysicalOlapScan[t4]
+--------------------------hashJoin[INNER_JOIN] hashCondition=((t3.c3 = t4.c4)) otherCondition=()
+----------------------------PhysicalProject
+------------------------------PhysicalOlapScan[t3]
+----------------------------PhysicalDistribute[DistributionSpecHash]
+------------------------------PhysicalProject
+--------------------------------PhysicalOlapScan[t4]
Hint log:
Used: [shuffle]_2
@@ -8558,26 +8835,29 @@ PhysicalResultSink
----------NestedLoopJoin[CROSS_JOIN]
------------PhysicalProject
--------------hashJoin[LEFT_ANTI_JOIN] hashCondition=((t1.c1 = t3.c3)) otherCondition=()
-----------------hashJoin[LEFT_OUTER_JOIN] hashCondition=((t1.c1 = alias2.c2)) otherCondition=()
-------------------PhysicalProject
---------------------PhysicalOlapScan[t2]
-------------------PhysicalDistribute[DistributionSpecHash]
+----------------PhysicalProject
+------------------hashJoin[LEFT_OUTER_JOIN] hashCondition=((t1.c1 = alias2.c2)) otherCondition=()
--------------------PhysicalProject
-----------------------PhysicalOlapScan[t1]
+----------------------PhysicalOlapScan[t2]
+--------------------PhysicalDistribute[DistributionSpecHash]
+----------------------PhysicalProject
+------------------------PhysicalOlapScan[t1]
----------------PhysicalDistribute[DistributionSpecReplicated]
------------------PhysicalProject
--------------------PhysicalOlapScan[t3]
------------PhysicalDistribute[DistributionSpecReplicated]
---------------PhysicalLimit[GLOBAL]
-----------------PhysicalDistribute[DistributionSpecGather]
-------------------PhysicalLimit[LOCAL]
+--------------PhysicalProject
+----------------PhysicalLimit[GLOBAL]
+------------------PhysicalDistribute[DistributionSpecGather]
--------------------PhysicalProject
-----------------------hashJoin[INNER_JOIN] hashCondition=((t3.c3 = t4.c4)) otherCondition=()
+----------------------PhysicalLimit[LOCAL]
------------------------PhysicalProject
---------------------------PhysicalOlapScan[t3]
-------------------------PhysicalDistribute[DistributionSpecHash]
---------------------------PhysicalProject
-----------------------------PhysicalOlapScan[t4]
+--------------------------hashJoin[INNER_JOIN] hashCondition=((t3.c3 = t4.c4)) otherCondition=()
+----------------------------PhysicalProject
+------------------------------PhysicalOlapScan[t3]
+----------------------------PhysicalDistribute[DistributionSpecHash]
+------------------------------PhysicalProject
+--------------------------------PhysicalOlapScan[t4]
-- !select47_2 --
PhysicalResultSink
@@ -8586,29 +8866,32 @@ PhysicalResultSink
------hashAgg[LOCAL]
--------PhysicalProject
----------NestedLoopJoin[CROSS_JOIN]
-------------hashJoin[LEFT_ANTI_JOIN] hashCondition=((t1.c1 = t3.c3)) otherCondition=()
---------------PhysicalProject
-----------------hashJoin[RIGHT_OUTER_JOIN] hashCondition=((t1.c1 = alias2.c2)) otherCondition=()
-------------------PhysicalDistribute[DistributionSpecHash]
---------------------PhysicalProject
-----------------------PhysicalOlapScan[t1]
-------------------PhysicalDistribute[DistributionSpecHash]
---------------------PhysicalProject
-----------------------PhysicalOlapScan[t2]
---------------PhysicalDistribute[DistributionSpecReplicated]
+------------PhysicalProject
+--------------hashJoin[LEFT_ANTI_JOIN] hashCondition=((t1.c1 = t3.c3)) otherCondition=()
----------------PhysicalProject
-------------------PhysicalOlapScan[t3]
+------------------hashJoin[RIGHT_OUTER_JOIN] hashCondition=((t1.c1 = alias2.c2)) otherCondition=()
+--------------------PhysicalDistribute[DistributionSpecHash]
+----------------------PhysicalProject
+------------------------PhysicalOlapScan[t1]
+--------------------PhysicalDistribute[DistributionSpecHash]
+----------------------PhysicalProject
+------------------------PhysicalOlapScan[t2]
+----------------PhysicalDistribute[DistributionSpecReplicated]
+------------------PhysicalProject
+--------------------PhysicalOlapScan[t3]
------------PhysicalDistribute[DistributionSpecReplicated]
---------------PhysicalLimit[GLOBAL]
-----------------PhysicalDistribute[DistributionSpecGather]
-------------------PhysicalLimit[LOCAL]
+--------------PhysicalProject
+----------------PhysicalLimit[GLOBAL]
+------------------PhysicalDistribute[DistributionSpecGather]
--------------------PhysicalProject
-----------------------hashJoin[INNER_JOIN] hashCondition=((t3.c3 = t4.c4)) otherCondition=()
+----------------------PhysicalLimit[LOCAL]
------------------------PhysicalProject
---------------------------PhysicalOlapScan[t3]
-------------------------PhysicalDistribute[DistributionSpecHash]
---------------------------PhysicalProject
-----------------------------PhysicalOlapScan[t4]
+--------------------------hashJoin[INNER_JOIN] hashCondition=((t3.c3 = t4.c4)) otherCondition=()
+----------------------------PhysicalProject
+------------------------------PhysicalOlapScan[t3]
+----------------------------PhysicalDistribute[DistributionSpecHash]
+------------------------------PhysicalProject
+--------------------------------PhysicalOlapScan[t4]
Hint log:
Used:
@@ -8624,26 +8907,29 @@ PhysicalResultSink
----------NestedLoopJoin[CROSS_JOIN]
------------PhysicalProject
--------------hashJoin[LEFT_ANTI_JOIN] hashCondition=((t1.c1 = t3.c3)) otherCondition=()
-----------------hashJoin[LEFT_OUTER_JOIN] hashCondition=((t1.c1 = alias2.c2)) otherCondition=()
-------------------PhysicalProject
---------------------PhysicalOlapScan[t2]
-------------------PhysicalDistribute[DistributionSpecHash]
+----------------PhysicalProject
+------------------hashJoin[LEFT_OUTER_JOIN] hashCondition=((t1.c1 = alias2.c2)) otherCondition=()
--------------------PhysicalProject
-----------------------PhysicalOlapScan[t1]
+----------------------PhysicalOlapScan[t2]
+--------------------PhysicalDistribute[DistributionSpecHash]
+----------------------PhysicalProject
+------------------------PhysicalOlapScan[t1]
----------------PhysicalDistribute[DistributionSpecReplicated]
------------------PhysicalProject
--------------------PhysicalOlapScan[t3]
------------PhysicalDistribute[DistributionSpecReplicated]
---------------PhysicalLimit[GLOBAL]
-----------------PhysicalDistribute[DistributionSpecGather]
-------------------PhysicalLimit[LOCAL]
+--------------PhysicalProject
+----------------PhysicalLimit[GLOBAL]
+------------------PhysicalDistribute[DistributionSpecGather]
--------------------PhysicalProject
-----------------------hashJoin[INNER_JOIN] hashCondition=((t3.c3 = t4.c4)) otherCondition=()
+----------------------PhysicalLimit[LOCAL]
------------------------PhysicalProject
---------------------------PhysicalOlapScan[t3]
-------------------------PhysicalDistribute[DistributionSpecHash]
---------------------------PhysicalProject
-----------------------------PhysicalOlapScan[t4]
+--------------------------hashJoin[INNER_JOIN] hashCondition=((t3.c3 = t4.c4)) otherCondition=()
+----------------------------PhysicalProject
+------------------------------PhysicalOlapScan[t3]
+----------------------------PhysicalDistribute[DistributionSpecHash]
+------------------------------PhysicalProject
+--------------------------------PhysicalOlapScan[t4]
Hint log:
Used: [broadcast]_2
@@ -8659,26 +8945,29 @@ PhysicalResultSink
----------NestedLoopJoin[CROSS_JOIN]
------------PhysicalProject
--------------hashJoin[LEFT_ANTI_JOIN] hashCondition=((t1.c1 = t3.c3)) otherCondition=()
-----------------hashJoin[LEFT_OUTER_JOIN] hashCondition=((t1.c1 = alias2.c2)) otherCondition=()
-------------------PhysicalProject
---------------------PhysicalOlapScan[t2]
-------------------PhysicalDistribute[DistributionSpecHash]
+----------------PhysicalProject
+------------------hashJoin[LEFT_OUTER_JOIN] hashCondition=((t1.c1 = alias2.c2)) otherCondition=()
--------------------PhysicalProject
-----------------------PhysicalOlapScan[t1]
+----------------------PhysicalOlapScan[t2]
+--------------------PhysicalDistribute[DistributionSpecHash]
+----------------------PhysicalProject
+------------------------PhysicalOlapScan[t1]
----------------PhysicalDistribute[DistributionSpecReplicated]
------------------PhysicalProject
--------------------PhysicalOlapScan[t3]
------------PhysicalDistribute[DistributionSpecReplicated]
---------------PhysicalLimit[GLOBAL]
-----------------PhysicalDistribute[DistributionSpecGather]
-------------------PhysicalLimit[LOCAL]
+--------------PhysicalProject
+----------------PhysicalLimit[GLOBAL]
+------------------PhysicalDistribute[DistributionSpecGather]
--------------------PhysicalProject
-----------------------hashJoin[INNER_JOIN] hashCondition=((t3.c3 = t4.c4)) otherCondition=()
+----------------------PhysicalLimit[LOCAL]
------------------------PhysicalProject
---------------------------PhysicalOlapScan[t3]
-------------------------PhysicalDistribute[DistributionSpecReplicated]
---------------------------PhysicalProject
-----------------------------PhysicalOlapScan[t4]
+--------------------------hashJoin[INNER_JOIN] hashCondition=((t3.c3 = t4.c4)) otherCondition=()
+----------------------------PhysicalProject
+------------------------------PhysicalOlapScan[t3]
+----------------------------PhysicalDistribute[DistributionSpecReplicated]
+------------------------------PhysicalProject
+--------------------------------PhysicalOlapScan[t4]
Hint log:
Used: [broadcast]_2
@@ -8692,29 +8981,32 @@ PhysicalResultSink
------hashAgg[LOCAL]
--------PhysicalProject
----------NestedLoopJoin[CROSS_JOIN]
-------------hashJoin[LEFT_ANTI_JOIN] hashCondition=((t1.c1 = t3.c3)) otherCondition=()
---------------PhysicalProject
-----------------hashJoin[RIGHT_OUTER_JOIN] hashCondition=((t1.c1 = alias2.c2)) otherCondition=()
-------------------PhysicalDistribute[DistributionSpecHash]
---------------------PhysicalProject
-----------------------PhysicalOlapScan[t1]
-------------------PhysicalDistribute[DistributionSpecHash]
---------------------PhysicalProject
-----------------------PhysicalOlapScan[t2]
---------------PhysicalDistribute[DistributionSpecReplicated]
+------------PhysicalProject
+--------------hashJoin[LEFT_ANTI_JOIN] hashCondition=((t1.c1 = t3.c3)) otherCondition=()
----------------PhysicalProject
-------------------PhysicalOlapScan[t3]
+------------------hashJoin[RIGHT_OUTER_JOIN] hashCondition=((t1.c1 = alias2.c2)) otherCondition=()
+--------------------PhysicalDistribute[DistributionSpecHash]
+----------------------PhysicalProject
+------------------------PhysicalOlapScan[t1]
+--------------------PhysicalDistribute[DistributionSpecHash]
+----------------------PhysicalProject
+------------------------PhysicalOlapScan[t2]
+----------------PhysicalDistribute[DistributionSpecReplicated]
+------------------PhysicalProject
+--------------------PhysicalOlapScan[t3]
------------PhysicalDistribute[DistributionSpecReplicated]
---------------PhysicalLimit[GLOBAL]
-----------------PhysicalDistribute[DistributionSpecGather]
-------------------PhysicalLimit[LOCAL]
+--------------PhysicalProject
+----------------PhysicalLimit[GLOBAL]
+------------------PhysicalDistribute[DistributionSpecGather]
--------------------PhysicalProject
-----------------------hashJoin[INNER_JOIN] hashCondition=((t3.c3 = t4.c4)) otherCondition=()
+----------------------PhysicalLimit[LOCAL]
------------------------PhysicalProject
---------------------------PhysicalOlapScan[t3]
-------------------------PhysicalDistribute[DistributionSpecHash]
---------------------------PhysicalProject
-----------------------------PhysicalOlapScan[t4]
+--------------------------hashJoin[INNER_JOIN] hashCondition=((t3.c3 = t4.c4)) otherCondition=()
+----------------------------PhysicalProject
+------------------------------PhysicalOlapScan[t3]
+----------------------------PhysicalDistribute[DistributionSpecHash]
+------------------------------PhysicalProject
+--------------------------------PhysicalOlapScan[t4]
Hint log:
Used:
@@ -8730,26 +9022,29 @@ PhysicalResultSink
----------NestedLoopJoin[CROSS_JOIN]
------------PhysicalProject
--------------hashJoin[LEFT_ANTI_JOIN] hashCondition=((t1.c1 = t3.c3)) otherCondition=()
-----------------hashJoin[LEFT_OUTER_JOIN] hashCondition=((t1.c1 = alias2.c2)) otherCondition=()
-------------------PhysicalProject
---------------------PhysicalOlapScan[t2]
-------------------PhysicalDistribute[DistributionSpecHash]
+----------------PhysicalProject
+------------------hashJoin[LEFT_OUTER_JOIN] hashCondition=((t1.c1 = alias2.c2)) otherCondition=()
--------------------PhysicalProject
-----------------------PhysicalOlapScan[t1]
+----------------------PhysicalOlapScan[t2]
+--------------------PhysicalDistribute[DistributionSpecHash]
+----------------------PhysicalProject
+------------------------PhysicalOlapScan[t1]
----------------PhysicalDistribute[DistributionSpecReplicated]
------------------PhysicalProject
--------------------PhysicalOlapScan[t3]
------------PhysicalDistribute[DistributionSpecReplicated]
---------------PhysicalLimit[GLOBAL]
-----------------PhysicalDistribute[DistributionSpecGather]
-------------------PhysicalLimit[LOCAL]
+--------------PhysicalProject
+----------------PhysicalLimit[GLOBAL]
+------------------PhysicalDistribute[DistributionSpecGather]
--------------------PhysicalProject
-----------------------hashJoin[INNER_JOIN] hashCondition=((t3.c3 = t4.c4)) otherCondition=()
+----------------------PhysicalLimit[LOCAL]
------------------------PhysicalProject
---------------------------PhysicalOlapScan[t3]
-------------------------PhysicalDistribute[DistributionSpecReplicated]
---------------------------PhysicalProject
-----------------------------PhysicalOlapScan[t4]
+--------------------------hashJoin[INNER_JOIN] hashCondition=((t3.c3 = t4.c4)) otherCondition=()
+----------------------------PhysicalProject
+------------------------------PhysicalOlapScan[t3]
+----------------------------PhysicalDistribute[DistributionSpecReplicated]
+------------------------------PhysicalProject
+--------------------------------PhysicalOlapScan[t4]
Hint log:
Used: [broadcast]_2
@@ -8763,29 +9058,32 @@ PhysicalResultSink
------hashAgg[LOCAL]
--------PhysicalProject
----------NestedLoopJoin[CROSS_JOIN]
-------------hashJoin[LEFT_ANTI_JOIN] hashCondition=((t1.c1 = t3.c3)) otherCondition=()
---------------PhysicalProject
-----------------hashJoin[RIGHT_OUTER_JOIN] hashCondition=((t1.c1 = alias2.c2)) otherCondition=()
-------------------PhysicalDistribute[DistributionSpecHash]
---------------------PhysicalProject
-----------------------PhysicalOlapScan[t1]
-------------------PhysicalDistribute[DistributionSpecHash]
---------------------PhysicalProject
-----------------------PhysicalOlapScan[t2]
---------------PhysicalDistribute[DistributionSpecReplicated]
+------------PhysicalProject
+--------------hashJoin[LEFT_ANTI_JOIN] hashCondition=((t1.c1 = t3.c3)) otherCondition=()
----------------PhysicalProject
-------------------PhysicalOlapScan[t3]
+------------------hashJoin[RIGHT_OUTER_JOIN] hashCondition=((t1.c1 = alias2.c2)) otherCondition=()
+--------------------PhysicalDistribute[DistributionSpecHash]
+----------------------PhysicalProject
+------------------------PhysicalOlapScan[t1]
+--------------------PhysicalDistribute[DistributionSpecHash]
+----------------------PhysicalProject
+------------------------PhysicalOlapScan[t2]
+----------------PhysicalDistribute[DistributionSpecReplicated]
+------------------PhysicalProject
+--------------------PhysicalOlapScan[t3]
------------PhysicalDistribute[DistributionSpecReplicated]
---------------PhysicalLimit[GLOBAL]
-----------------PhysicalDistribute[DistributionSpecGather]
-------------------PhysicalLimit[LOCAL]
+--------------PhysicalProject
+----------------PhysicalLimit[GLOBAL]
+------------------PhysicalDistribute[DistributionSpecGather]
--------------------PhysicalProject
-----------------------hashJoin[INNER_JOIN] hashCondition=((t3.c3 = t4.c4)) otherCondition=()
+----------------------PhysicalLimit[LOCAL]
------------------------PhysicalProject
---------------------------PhysicalOlapScan[t3]
-------------------------PhysicalDistribute[DistributionSpecReplicated]
---------------------------PhysicalProject
-----------------------------PhysicalOlapScan[t4]
+--------------------------hashJoin[INNER_JOIN] hashCondition=((t3.c3 = t4.c4)) otherCondition=()
+----------------------------PhysicalProject
+------------------------------PhysicalOlapScan[t3]
+----------------------------PhysicalDistribute[DistributionSpecReplicated]
+------------------------------PhysicalProject
+--------------------------------PhysicalOlapScan[t4]
Hint log:
Used:
@@ -8799,29 +9097,32 @@ PhysicalResultSink
------hashAgg[LOCAL]
--------PhysicalProject
----------NestedLoopJoin[CROSS_JOIN]
-------------hashJoin[LEFT_ANTI_JOIN] hashCondition=((t1.c1 = t3.c3)) otherCondition=()
---------------PhysicalProject
-----------------hashJoin[RIGHT_OUTER_JOIN] hashCondition=((t1.c1 = alias2.c2)) otherCondition=()
-------------------PhysicalDistribute[DistributionSpecHash]
---------------------PhysicalProject
-----------------------PhysicalOlapScan[t1]
-------------------PhysicalDistribute[DistributionSpecHash]
---------------------PhysicalProject
-----------------------PhysicalOlapScan[t2]
---------------PhysicalDistribute[DistributionSpecReplicated]
+------------PhysicalProject
+--------------hashJoin[LEFT_ANTI_JOIN] hashCondition=((t1.c1 = t3.c3)) otherCondition=()
----------------PhysicalProject
-------------------PhysicalOlapScan[t3]
+------------------hashJoin[RIGHT_OUTER_JOIN] hashCondition=((t1.c1 = alias2.c2)) otherCondition=()
+--------------------PhysicalDistribute[DistributionSpecHash]
+----------------------PhysicalProject
+------------------------PhysicalOlapScan[t1]
+--------------------PhysicalDistribute[DistributionSpecHash]
+----------------------PhysicalProject
+------------------------PhysicalOlapScan[t2]
+----------------PhysicalDistribute[DistributionSpecReplicated]
+------------------PhysicalProject
+--------------------PhysicalOlapScan[t3]
------------PhysicalDistribute[DistributionSpecReplicated]
---------------PhysicalLimit[GLOBAL]
-----------------PhysicalDistribute[DistributionSpecGather]
-------------------PhysicalLimit[LOCAL]
+--------------PhysicalProject
+----------------PhysicalLimit[GLOBAL]
+------------------PhysicalDistribute[DistributionSpecGather]
--------------------PhysicalProject
-----------------------hashJoin[INNER_JOIN] hashCondition=((t3.c3 = t4.c4)) otherCondition=()
+----------------------PhysicalLimit[LOCAL]
------------------------PhysicalProject
---------------------------PhysicalOlapScan[t3]
-------------------------PhysicalDistribute[DistributionSpecHash]
---------------------------PhysicalProject
-----------------------------PhysicalOlapScan[t4]
+--------------------------hashJoin[INNER_JOIN] hashCondition=((t3.c3 = t4.c4)) otherCondition=()
+----------------------------PhysicalProject
+------------------------------PhysicalOlapScan[t3]
+----------------------------PhysicalDistribute[DistributionSpecHash]
+------------------------------PhysicalProject
+--------------------------------PhysicalOlapScan[t4]
Hint log:
Used: [shuffle]_2
@@ -8838,26 +9139,29 @@ PhysicalResultSink
------------PhysicalProject
--------------hashJoin[LEFT_ANTI_JOIN] hashCondition=((t1.c1 = t3.c3)) otherCondition=()
----------------PhysicalDistribute[DistributionSpecHash]
-------------------hashJoin[LEFT_OUTER_JOIN] hashCondition=((t1.c1 = alias2.c2)) otherCondition=()
---------------------PhysicalProject
-----------------------PhysicalOlapScan[t2]
---------------------PhysicalDistribute[DistributionSpecHash]
+------------------PhysicalProject
+--------------------hashJoin[LEFT_OUTER_JOIN] hashCondition=((t1.c1 = alias2.c2)) otherCondition=()
----------------------PhysicalProject
-------------------------PhysicalOlapScan[t1]
+------------------------PhysicalOlapScan[t2]
+----------------------PhysicalDistribute[DistributionSpecHash]
+------------------------PhysicalProject
+--------------------------PhysicalOlapScan[t1]
----------------PhysicalDistribute[DistributionSpecHash]
------------------PhysicalProject
--------------------PhysicalOlapScan[t3]
------------PhysicalDistribute[DistributionSpecReplicated]
---------------PhysicalLimit[GLOBAL]
-----------------PhysicalDistribute[DistributionSpecGather]
-------------------PhysicalLimit[LOCAL]
+--------------PhysicalProject
+----------------PhysicalLimit[GLOBAL]
+------------------PhysicalDistribute[DistributionSpecGather]
--------------------PhysicalProject
-----------------------hashJoin[INNER_JOIN] hashCondition=((t3.c3 = t4.c4)) otherCondition=()
+----------------------PhysicalLimit[LOCAL]
------------------------PhysicalProject
---------------------------PhysicalOlapScan[t3]
-------------------------PhysicalDistribute[DistributionSpecHash]
---------------------------PhysicalProject
-----------------------------PhysicalOlapScan[t4]
+--------------------------hashJoin[INNER_JOIN] hashCondition=((t3.c3 = t4.c4)) otherCondition=()
+----------------------------PhysicalProject
+------------------------------PhysicalOlapScan[t3]
+----------------------------PhysicalDistribute[DistributionSpecHash]
+------------------------------PhysicalProject
+--------------------------------PhysicalOlapScan[t4]
Hint log:
Used: [shuffle]_2
@@ -8873,26 +9177,29 @@ PhysicalResultSink
----------NestedLoopJoin[CROSS_JOIN]
------------PhysicalProject
--------------hashJoin[LEFT_ANTI_JOIN] hashCondition=((t1.c1 = t3.c3)) otherCondition=()
-----------------hashJoin[LEFT_OUTER_JOIN] hashCondition=((t1.c1 = alias2.c2)) otherCondition=()
-------------------PhysicalProject
---------------------PhysicalOlapScan[t2]
-------------------PhysicalDistribute[DistributionSpecHash]
+----------------PhysicalProject
+------------------hashJoin[LEFT_OUTER_JOIN] hashCondition=((t1.c1 = alias2.c2)) otherCondition=()
--------------------PhysicalProject
-----------------------PhysicalOlapScan[t1]
+----------------------PhysicalOlapScan[t2]
+--------------------PhysicalDistribute[DistributionSpecHash]
+----------------------PhysicalProject
+------------------------PhysicalOlapScan[t1]
----------------PhysicalDistribute[DistributionSpecReplicated]
------------------PhysicalProject
--------------------PhysicalOlapScan[t3]
------------PhysicalDistribute[DistributionSpecReplicated]
---------------PhysicalLimit[GLOBAL]
-----------------PhysicalDistribute[DistributionSpecGather]
-------------------PhysicalLimit[LOCAL]
+--------------PhysicalProject
+----------------PhysicalLimit[GLOBAL]
+------------------PhysicalDistribute[DistributionSpecGather]
--------------------PhysicalProject
-----------------------hashJoin[INNER_JOIN] hashCondition=((t3.c3 = t4.c4)) otherCondition=()
+----------------------PhysicalLimit[LOCAL]
------------------------PhysicalProject
---------------------------PhysicalOlapScan[t3]
-------------------------PhysicalDistribute[DistributionSpecHash]
---------------------------PhysicalProject
-----------------------------PhysicalOlapScan[t4]
+--------------------------hashJoin[INNER_JOIN] hashCondition=((t3.c3 = t4.c4)) otherCondition=()
+----------------------------PhysicalProject
+------------------------------PhysicalOlapScan[t3]
+----------------------------PhysicalDistribute[DistributionSpecHash]
+------------------------------PhysicalProject
+--------------------------------PhysicalOlapScan[t4]
Hint log:
Used: [shuffle]_2
@@ -8906,81 +9213,48 @@ PhysicalResultSink
------hashAgg[LOCAL]
--------PhysicalProject
----------NestedLoopJoin[CROSS_JOIN]
-------------hashJoin[LEFT_ANTI_JOIN] hashCondition=((t1.c1 = t3.c3)) otherCondition=()
---------------PhysicalDistribute[DistributionSpecHash]
-----------------PhysicalProject
-------------------hashJoin[RIGHT_OUTER_JOIN] hashCondition=((t1.c1 = alias2.c2)) otherCondition=()
---------------------PhysicalDistribute[DistributionSpecHash]
-----------------------PhysicalProject
-------------------------PhysicalOlapScan[t1]
---------------------PhysicalDistribute[DistributionSpecHash]
-----------------------PhysicalProject
-------------------------PhysicalOlapScan[t2]
---------------PhysicalDistribute[DistributionSpecHash]
-----------------PhysicalProject
-------------------PhysicalOlapScan[t3]
-------------PhysicalDistribute[DistributionSpecReplicated]
---------------PhysicalLimit[GLOBAL]
-----------------PhysicalDistribute[DistributionSpecGather]
-------------------PhysicalLimit[LOCAL]
---------------------PhysicalProject
-----------------------hashJoin[INNER_JOIN] hashCondition=((t3.c3 = t4.c4)) otherCondition=()
+------------PhysicalProject
+--------------hashJoin[LEFT_ANTI_JOIN] hashCondition=((t1.c1 = t3.c3)) otherCondition=()
+----------------PhysicalDistribute[DistributionSpecHash]
+------------------PhysicalProject
+--------------------hashJoin[RIGHT_OUTER_JOIN] hashCondition=((t1.c1 = alias2.c2)) otherCondition=()
+----------------------PhysicalDistribute[DistributionSpecHash]
------------------------PhysicalProject
---------------------------PhysicalOlapScan[t3]
-------------------------PhysicalDistribute[DistributionSpecHash]
---------------------------PhysicalProject
-----------------------------PhysicalOlapScan[t4]
-
-Hint log:
-Used: [shuffle]_2
-UnUsed:
-SyntaxError:
-
--- !select47_12 --
-PhysicalResultSink
---hashAgg[GLOBAL]
-----PhysicalDistribute[DistributionSpecGather]
-------hashAgg[LOCAL]
---------PhysicalProject
-----------NestedLoopJoin[CROSS_JOIN]
-------------hashJoin[LEFT_ANTI_JOIN] hashCondition=((t1.c1 = t3.c3)) otherCondition=()
---------------PhysicalProject
-----------------hashJoin[RIGHT_OUTER_JOIN] hashCondition=((t1.c1 = alias2.c2)) otherCondition=()
-------------------PhysicalDistribute[DistributionSpecHash]
---------------------PhysicalProject
-----------------------PhysicalOlapScan[t1]
-------------------PhysicalDistribute[DistributionSpecHash]
---------------------PhysicalProject
-----------------------PhysicalOlapScan[t2]
---------------PhysicalDistribute[DistributionSpecReplicated]
-----------------PhysicalProject
-------------------PhysicalOlapScan[t3]
+--------------------------PhysicalOlapScan[t1]
+----------------------PhysicalDistribute[DistributionSpecHash]
+------------------------PhysicalProject
+--------------------------PhysicalOlapScan[t2]
+----------------PhysicalDistribute[DistributionSpecHash]
+------------------PhysicalProject
+--------------------PhysicalOlapScan[t3]
------------PhysicalDistribute[DistributionSpecReplicated]
---------------PhysicalLimit[GLOBAL]
-----------------PhysicalDistribute[DistributionSpecGather]
-------------------PhysicalLimit[LOCAL]
+--------------PhysicalProject
+----------------PhysicalLimit[GLOBAL]
+------------------PhysicalDistribute[DistributionSpecGather]
--------------------PhysicalProject
-----------------------hashJoin[INNER_JOIN] hashCondition=((t3.c3 = t4.c4)) otherCondition=()
+----------------------PhysicalLimit[LOCAL]
------------------------PhysicalProject
---------------------------PhysicalOlapScan[t3]
-------------------------PhysicalDistribute[DistributionSpecHash]
---------------------------PhysicalProject
-----------------------------PhysicalOlapScan[t4]
+--------------------------hashJoin[INNER_JOIN] hashCondition=((t3.c3 = t4.c4)) otherCondition=()
+----------------------------PhysicalProject
+------------------------------PhysicalOlapScan[t3]
+----------------------------PhysicalDistribute[DistributionSpecHash]
+------------------------------PhysicalProject
+--------------------------------PhysicalOlapScan[t4]
Hint log:
Used: [shuffle]_2
UnUsed:
SyntaxError:
--- !select47_13 --
+-- !select47_12 --
PhysicalResultSink
--hashAgg[GLOBAL]
----PhysicalDistribute[DistributionSpecGather]
------hashAgg[LOCAL]
--------PhysicalProject
----------NestedLoopJoin[CROSS_JOIN]
-------------hashJoin[LEFT_ANTI_JOIN] hashCondition=((t1.c1 = t3.c3)) otherCondition=()
---------------PhysicalDistribute[DistributionSpecHash]
+------------PhysicalProject
+--------------hashJoin[LEFT_ANTI_JOIN] hashCondition=((t1.c1 = t3.c3)) otherCondition=()
----------------PhysicalProject
------------------hashJoin[RIGHT_OUTER_JOIN] hashCondition=((t1.c1 = alias2.c2)) otherCondition=()
--------------------PhysicalDistribute[DistributionSpecHash]
@@ -8989,20 +9263,62 @@ PhysicalResultSink
--------------------PhysicalDistribute[DistributionSpecHash]
----------------------PhysicalProject
------------------------PhysicalOlapScan[t2]
---------------PhysicalDistribute[DistributionSpecHash]
-----------------PhysicalProject
-------------------PhysicalOlapScan[t3]
+----------------PhysicalDistribute[DistributionSpecReplicated]
+------------------PhysicalProject
+--------------------PhysicalOlapScan[t3]
+------------PhysicalDistribute[DistributionSpecReplicated]
+--------------PhysicalProject
+----------------PhysicalLimit[GLOBAL]
+------------------PhysicalDistribute[DistributionSpecGather]
+--------------------PhysicalProject
+----------------------PhysicalLimit[LOCAL]
+------------------------PhysicalProject
+--------------------------hashJoin[INNER_JOIN] hashCondition=((t3.c3 = t4.c4)) otherCondition=()
+----------------------------PhysicalProject
+------------------------------PhysicalOlapScan[t3]
+----------------------------PhysicalDistribute[DistributionSpecHash]
+------------------------------PhysicalProject
+--------------------------------PhysicalOlapScan[t4]
+
+Hint log:
+Used: [shuffle]_2
+UnUsed:
+SyntaxError:
+
+-- !select47_13 --
+PhysicalResultSink
+--hashAgg[GLOBAL]
+----PhysicalDistribute[DistributionSpecGather]
+------hashAgg[LOCAL]
+--------PhysicalProject
+----------NestedLoopJoin[CROSS_JOIN]
+------------PhysicalProject
+--------------hashJoin[LEFT_ANTI_JOIN] hashCondition=((t1.c1 = t3.c3)) otherCondition=()
+----------------PhysicalDistribute[DistributionSpecHash]
+------------------PhysicalProject
+--------------------hashJoin[RIGHT_OUTER_JOIN] hashCondition=((t1.c1 = alias2.c2)) otherCondition=()
+----------------------PhysicalDistribute[DistributionSpecHash]
+------------------------PhysicalProject
+--------------------------PhysicalOlapScan[t1]
+----------------------PhysicalDistribute[DistributionSpecHash]
+------------------------PhysicalProject
+--------------------------PhysicalOlapScan[t2]
+----------------PhysicalDistribute[DistributionSpecHash]
+------------------PhysicalProject
+--------------------PhysicalOlapScan[t3]
------------PhysicalDistribute[DistributionSpecReplicated]
---------------PhysicalLimit[GLOBAL]
-----------------PhysicalDistribute[DistributionSpecGather]
-------------------PhysicalLimit[LOCAL]
+--------------PhysicalProject
+----------------PhysicalLimit[GLOBAL]
+------------------PhysicalDistribute[DistributionSpecGather]
--------------------PhysicalProject
-----------------------hashJoin[INNER_JOIN] hashCondition=((t3.c3 = t4.c4)) otherCondition=()
+----------------------PhysicalLimit[LOCAL]
------------------------PhysicalProject
---------------------------PhysicalOlapScan[t3]
-------------------------PhysicalDistribute[DistributionSpecHash]
---------------------------PhysicalProject
-----------------------------PhysicalOlapScan[t4]
+--------------------------hashJoin[INNER_JOIN] hashCondition=((t3.c3 = t4.c4)) otherCondition=()
+----------------------------PhysicalProject
+------------------------------PhysicalOlapScan[t3]
+----------------------------PhysicalDistribute[DistributionSpecHash]
+------------------------------PhysicalProject
+--------------------------------PhysicalOlapScan[t4]
Hint log:
Used: [shuffle]_2
@@ -9016,27 +9332,30 @@ PhysicalResultSink
------hashAgg[LOCAL]
--------PhysicalProject
----------NestedLoopJoin[CROSS_JOIN]
-------------hashJoin[LEFT_ANTI_JOIN] hashCondition=((t1.c1 = t3.c3)) otherCondition=()
---------------hashJoin[LEFT_SEMI_JOIN] hashCondition=((t1.c1 = alias2.c2)) otherCondition=()
-----------------PhysicalProject
-------------------PhysicalOlapScan[t1]
+------------PhysicalProject
+--------------hashJoin[LEFT_ANTI_JOIN] hashCondition=((t1.c1 = t3.c3)) otherCondition=()
+----------------hashJoin[LEFT_SEMI_JOIN] hashCondition=((t1.c1 = alias2.c2)) otherCondition=()
+------------------PhysicalProject
+--------------------PhysicalOlapScan[t1]
+------------------PhysicalDistribute[DistributionSpecHash]
+--------------------PhysicalProject
+----------------------PhysicalOlapScan[t2]
----------------PhysicalDistribute[DistributionSpecHash]
------------------PhysicalProject
---------------------PhysicalOlapScan[t2]
---------------PhysicalDistribute[DistributionSpecHash]
-----------------PhysicalProject
-------------------PhysicalOlapScan[t3]
+--------------------PhysicalOlapScan[t3]
------------PhysicalDistribute[DistributionSpecReplicated]
---------------PhysicalLimit[GLOBAL]
-----------------PhysicalDistribute[DistributionSpecGather]
-------------------PhysicalLimit[LOCAL]
+--------------PhysicalProject
+----------------PhysicalLimit[GLOBAL]
+------------------PhysicalDistribute[DistributionSpecGather]
--------------------PhysicalProject
-----------------------hashJoin[INNER_JOIN] hashCondition=((t3.c3 = t4.c4)) otherCondition=()
+----------------------PhysicalLimit[LOCAL]
------------------------PhysicalProject
---------------------------PhysicalOlapScan[t3]
-------------------------PhysicalDistribute[DistributionSpecHash]
---------------------------PhysicalProject
-----------------------------PhysicalOlapScan[t4]
+--------------------------hashJoin[INNER_JOIN] hashCondition=((t3.c3 = t4.c4)) otherCondition=()
+----------------------------PhysicalProject
+------------------------------PhysicalOlapScan[t3]
+----------------------------PhysicalDistribute[DistributionSpecHash]
+------------------------------PhysicalProject
+--------------------------------PhysicalOlapScan[t4]
-- !select48_2 --
PhysicalResultSink
@@ -9045,27 +9364,30 @@ PhysicalResultSink
------hashAgg[LOCAL]
--------PhysicalProject
----------NestedLoopJoin[CROSS_JOIN]
-------------hashJoin[LEFT_ANTI_JOIN] hashCondition=((t1.c1 = t3.c3)) otherCondition=()
---------------hashJoin[LEFT_SEMI_JOIN] hashCondition=((t1.c1 = alias2.c2)) otherCondition=()
-----------------PhysicalProject
-------------------PhysicalOlapScan[t1]
-----------------PhysicalDistribute[DistributionSpecReplicated]
+------------PhysicalProject
+--------------hashJoin[LEFT_ANTI_JOIN] hashCondition=((t1.c1 = t3.c3)) otherCondition=()
+----------------hashJoin[LEFT_SEMI_JOIN] hashCondition=((t1.c1 = alias2.c2)) otherCondition=()
------------------PhysicalProject
---------------------PhysicalOlapScan[t2]
---------------PhysicalDistribute[DistributionSpecHash]
-----------------PhysicalProject
-------------------PhysicalOlapScan[t3]
+--------------------PhysicalOlapScan[t1]
+------------------PhysicalDistribute[DistributionSpecReplicated]
+--------------------PhysicalProject
+----------------------PhysicalOlapScan[t2]
+----------------PhysicalDistribute[DistributionSpecHash]
+------------------PhysicalProject
+--------------------PhysicalOlapScan[t3]
------------PhysicalDistribute[DistributionSpecReplicated]
---------------PhysicalLimit[GLOBAL]
-----------------PhysicalDistribute[DistributionSpecGather]
-------------------PhysicalLimit[LOCAL]
+--------------PhysicalProject
+----------------PhysicalLimit[GLOBAL]
+------------------PhysicalDistribute[DistributionSpecGather]
--------------------PhysicalProject
-----------------------hashJoin[INNER_JOIN] hashCondition=((t3.c3 = t4.c4)) otherCondition=()
+----------------------PhysicalLimit[LOCAL]
------------------------PhysicalProject
---------------------------PhysicalOlapScan[t3]
-------------------------PhysicalDistribute[DistributionSpecHash]
---------------------------PhysicalProject
-----------------------------PhysicalOlapScan[t4]
+--------------------------hashJoin[INNER_JOIN] hashCondition=((t3.c3 = t4.c4)) otherCondition=()
+----------------------------PhysicalProject
+------------------------------PhysicalOlapScan[t3]
+----------------------------PhysicalDistribute[DistributionSpecHash]
+------------------------------PhysicalProject
+--------------------------------PhysicalOlapScan[t4]
Hint log:
Used: [broadcast]_2
@@ -9079,27 +9401,30 @@ PhysicalResultSink
------hashAgg[LOCAL]
--------PhysicalProject
----------NestedLoopJoin[CROSS_JOIN]
-------------hashJoin[LEFT_ANTI_JOIN] hashCondition=((t1.c1 = t3.c3)) otherCondition=()
---------------hashJoin[LEFT_SEMI_JOIN] hashCondition=((t1.c1 = alias2.c2)) otherCondition=()
-----------------PhysicalProject
-------------------PhysicalOlapScan[t1]
-----------------PhysicalDistribute[DistributionSpecHash]
+------------PhysicalProject
+--------------hashJoin[LEFT_ANTI_JOIN] hashCondition=((t1.c1 = t3.c3)) otherCondition=()
+----------------hashJoin[LEFT_SEMI_JOIN] hashCondition=((t1.c1 = alias2.c2)) otherCondition=()
------------------PhysicalProject
---------------------PhysicalOlapScan[t2]
---------------PhysicalDistribute[DistributionSpecReplicated]
-----------------PhysicalProject
-------------------PhysicalOlapScan[t3]
+--------------------PhysicalOlapScan[t1]
+------------------PhysicalDistribute[DistributionSpecHash]
+--------------------PhysicalProject
+----------------------PhysicalOlapScan[t2]
+----------------PhysicalDistribute[DistributionSpecReplicated]
+------------------PhysicalProject
+--------------------PhysicalOlapScan[t3]
------------PhysicalDistribute[DistributionSpecReplicated]
---------------PhysicalLimit[GLOBAL]
-----------------PhysicalDistribute[DistributionSpecGather]
-------------------PhysicalLimit[LOCAL]
+--------------PhysicalProject
+----------------PhysicalLimit[GLOBAL]
+------------------PhysicalDistribute[DistributionSpecGather]
--------------------PhysicalProject
-----------------------hashJoin[INNER_JOIN] hashCondition=((t3.c3 = t4.c4)) otherCondition=()
+----------------------PhysicalLimit[LOCAL]
------------------------PhysicalProject
---------------------------PhysicalOlapScan[t3]
-------------------------PhysicalDistribute[DistributionSpecHash]
---------------------------PhysicalProject
-----------------------------PhysicalOlapScan[t4]
+--------------------------hashJoin[INNER_JOIN] hashCondition=((t3.c3 = t4.c4)) otherCondition=()
+----------------------------PhysicalProject
+------------------------------PhysicalOlapScan[t3]
+----------------------------PhysicalDistribute[DistributionSpecHash]
+------------------------------PhysicalProject
+--------------------------------PhysicalOlapScan[t4]
Hint log:
Used: [broadcast]_2
@@ -9113,27 +9438,30 @@ PhysicalResultSink
------hashAgg[LOCAL]
--------PhysicalProject
----------NestedLoopJoin[CROSS_JOIN]
-------------hashJoin[LEFT_ANTI_JOIN] hashCondition=((t1.c1 = t3.c3)) otherCondition=()
---------------hashJoin[LEFT_SEMI_JOIN] hashCondition=((t1.c1 = alias2.c2)) otherCondition=()
-----------------PhysicalProject
-------------------PhysicalOlapScan[t1]
+------------PhysicalProject
+--------------hashJoin[LEFT_ANTI_JOIN] hashCondition=((t1.c1 = t3.c3)) otherCondition=()
+----------------hashJoin[LEFT_SEMI_JOIN] hashCondition=((t1.c1 = alias2.c2)) otherCondition=()
+------------------PhysicalProject
+--------------------PhysicalOlapScan[t1]
+------------------PhysicalDistribute[DistributionSpecHash]
+--------------------PhysicalProject
+----------------------PhysicalOlapScan[t2]
----------------PhysicalDistribute[DistributionSpecHash]
------------------PhysicalProject
---------------------PhysicalOlapScan[t2]
---------------PhysicalDistribute[DistributionSpecHash]
-----------------PhysicalProject
-------------------PhysicalOlapScan[t3]
+--------------------PhysicalOlapScan[t3]
------------PhysicalDistribute[DistributionSpecReplicated]
---------------PhysicalLimit[GLOBAL]
-----------------PhysicalDistribute[DistributionSpecGather]
-------------------PhysicalLimit[LOCAL]
+--------------PhysicalProject
+----------------PhysicalLimit[GLOBAL]
+------------------PhysicalDistribute[DistributionSpecGather]
--------------------PhysicalProject
-----------------------hashJoin[INNER_JOIN] hashCondition=((t3.c3 = t4.c4)) otherCondition=()
+----------------------PhysicalLimit[LOCAL]
------------------------PhysicalProject
---------------------------PhysicalOlapScan[t3]
-------------------------PhysicalDistribute[DistributionSpecReplicated]
---------------------------PhysicalProject
-----------------------------PhysicalOlapScan[t4]
+--------------------------hashJoin[INNER_JOIN] hashCondition=((t3.c3 = t4.c4)) otherCondition=()
+----------------------------PhysicalProject
+------------------------------PhysicalOlapScan[t3]
+----------------------------PhysicalDistribute[DistributionSpecReplicated]
+------------------------------PhysicalProject
+--------------------------------PhysicalOlapScan[t4]
Hint log:
Used: [broadcast]_2
@@ -9147,27 +9475,30 @@ PhysicalResultSink
------hashAgg[LOCAL]
--------PhysicalProject
----------NestedLoopJoin[CROSS_JOIN]
-------------hashJoin[LEFT_ANTI_JOIN] hashCondition=((t1.c1 = t3.c3)) otherCondition=()
---------------hashJoin[LEFT_SEMI_JOIN] hashCondition=((t1.c1 = alias2.c2)) otherCondition=()
-----------------PhysicalProject
-------------------PhysicalOlapScan[t1]
+------------PhysicalProject
+--------------hashJoin[LEFT_ANTI_JOIN] hashCondition=((t1.c1 = t3.c3)) otherCondition=()
+----------------hashJoin[LEFT_SEMI_JOIN] hashCondition=((t1.c1 = alias2.c2)) otherCondition=()
+------------------PhysicalProject
+--------------------PhysicalOlapScan[t1]
+------------------PhysicalDistribute[DistributionSpecReplicated]
+--------------------PhysicalProject
+----------------------PhysicalOlapScan[t2]
----------------PhysicalDistribute[DistributionSpecReplicated]
------------------PhysicalProject
---------------------PhysicalOlapScan[t2]
---------------PhysicalDistribute[DistributionSpecReplicated]
-----------------PhysicalProject
-------------------PhysicalOlapScan[t3]
+--------------------PhysicalOlapScan[t3]
------------PhysicalDistribute[DistributionSpecReplicated]
---------------PhysicalLimit[GLOBAL]
-----------------PhysicalDistribute[DistributionSpecGather]
-------------------PhysicalLimit[LOCAL]
+--------------PhysicalProject
+----------------PhysicalLimit[GLOBAL]
+------------------PhysicalDistribute[DistributionSpecGather]
--------------------PhysicalProject
-----------------------hashJoin[INNER_JOIN] hashCondition=((t3.c3 = t4.c4)) otherCondition=()
+----------------------PhysicalLimit[LOCAL]
------------------------PhysicalProject
---------------------------PhysicalOlapScan[t3]
-------------------------PhysicalDistribute[DistributionSpecHash]
---------------------------PhysicalProject
-----------------------------PhysicalOlapScan[t4]
+--------------------------hashJoin[INNER_JOIN] hashCondition=((t3.c3 = t4.c4)) otherCondition=()
+----------------------------PhysicalProject
+------------------------------PhysicalOlapScan[t3]
+----------------------------PhysicalDistribute[DistributionSpecHash]
+------------------------------PhysicalProject
+--------------------------------PhysicalOlapScan[t4]
Hint log:
Used: [broadcast]_2
@@ -9181,27 +9512,30 @@ PhysicalResultSink
------hashAgg[LOCAL]
--------PhysicalProject
----------NestedLoopJoin[CROSS_JOIN]
-------------hashJoin[LEFT_ANTI_JOIN] hashCondition=((t1.c1 = t3.c3)) otherCondition=()
---------------hashJoin[LEFT_SEMI_JOIN] hashCondition=((t1.c1 = alias2.c2)) otherCondition=()
-----------------PhysicalProject
-------------------PhysicalOlapScan[t1]
-----------------PhysicalDistribute[DistributionSpecHash]
+------------PhysicalProject
+--------------hashJoin[LEFT_ANTI_JOIN] hashCondition=((t1.c1 = t3.c3)) otherCondition=()
+----------------hashJoin[LEFT_SEMI_JOIN] hashCondition=((t1.c1 = alias2.c2)) otherCondition=()
------------------PhysicalProject
---------------------PhysicalOlapScan[t2]
---------------PhysicalDistribute[DistributionSpecReplicated]
-----------------PhysicalProject
-------------------PhysicalOlapScan[t3]
+--------------------PhysicalOlapScan[t1]
+------------------PhysicalDistribute[DistributionSpecHash]
+--------------------PhysicalProject
+----------------------PhysicalOlapScan[t2]
+----------------PhysicalDistribute[DistributionSpecReplicated]
+------------------PhysicalProject
+--------------------PhysicalOlapScan[t3]
------------PhysicalDistribute[DistributionSpecReplicated]
---------------PhysicalLimit[GLOBAL]
-----------------PhysicalDistribute[DistributionSpecGather]
-------------------PhysicalLimit[LOCAL]
+--------------PhysicalProject
+----------------PhysicalLimit[GLOBAL]
+------------------PhysicalDistribute[DistributionSpecGather]
--------------------PhysicalProject
-----------------------hashJoin[INNER_JOIN] hashCondition=((t3.c3 = t4.c4)) otherCondition=()
+----------------------PhysicalLimit[LOCAL]
------------------------PhysicalProject
---------------------------PhysicalOlapScan[t3]
-------------------------PhysicalDistribute[DistributionSpecReplicated]
---------------------------PhysicalProject
-----------------------------PhysicalOlapScan[t4]
+--------------------------hashJoin[INNER_JOIN] hashCondition=((t3.c3 = t4.c4)) otherCondition=()
+----------------------------PhysicalProject
+------------------------------PhysicalOlapScan[t3]
+----------------------------PhysicalDistribute[DistributionSpecReplicated]
+------------------------------PhysicalProject
+--------------------------------PhysicalOlapScan[t4]
Hint log:
Used: [broadcast]_2
@@ -9215,27 +9549,30 @@ PhysicalResultSink
------hashAgg[LOCAL]
--------PhysicalProject
----------NestedLoopJoin[CROSS_JOIN]
-------------hashJoin[LEFT_ANTI_JOIN] hashCondition=((t1.c1 = t3.c3)) otherCondition=()
---------------hashJoin[LEFT_SEMI_JOIN] hashCondition=((t1.c1 = alias2.c2)) otherCondition=()
-----------------PhysicalProject
-------------------PhysicalOlapScan[t1]
+------------PhysicalProject
+--------------hashJoin[LEFT_ANTI_JOIN] hashCondition=((t1.c1 = t3.c3)) otherCondition=()
+----------------hashJoin[LEFT_SEMI_JOIN] hashCondition=((t1.c1 = alias2.c2)) otherCondition=()
+------------------PhysicalProject
+--------------------PhysicalOlapScan[t1]
+------------------PhysicalDistribute[DistributionSpecReplicated]
+--------------------PhysicalProject
+----------------------PhysicalOlapScan[t2]
----------------PhysicalDistribute[DistributionSpecReplicated]
------------------PhysicalProject
---------------------PhysicalOlapScan[t2]
---------------PhysicalDistribute[DistributionSpecReplicated]
-----------------PhysicalProject
-------------------PhysicalOlapScan[t3]
+--------------------PhysicalOlapScan[t3]
------------PhysicalDistribute[DistributionSpecReplicated]
---------------PhysicalLimit[GLOBAL]
-----------------PhysicalDistribute[DistributionSpecGather]
-------------------PhysicalLimit[LOCAL]
+--------------PhysicalProject
+----------------PhysicalLimit[GLOBAL]
+------------------PhysicalDistribute[DistributionSpecGather]
--------------------PhysicalProject
-----------------------hashJoin[INNER_JOIN] hashCondition=((t3.c3 = t4.c4)) otherCondition=()
+----------------------PhysicalLimit[LOCAL]
------------------------PhysicalProject
---------------------------PhysicalOlapScan[t3]
-------------------------PhysicalDistribute[DistributionSpecReplicated]
---------------------------PhysicalProject
-----------------------------PhysicalOlapScan[t4]
+--------------------------hashJoin[INNER_JOIN] hashCondition=((t3.c3 = t4.c4)) otherCondition=()
+----------------------------PhysicalProject
+------------------------------PhysicalOlapScan[t3]
+----------------------------PhysicalDistribute[DistributionSpecReplicated]
+------------------------------PhysicalProject
+--------------------------------PhysicalOlapScan[t4]
Hint log:
Used: [broadcast]_2
@@ -9249,27 +9586,30 @@ PhysicalResultSink
------hashAgg[LOCAL]
--------PhysicalProject
----------NestedLoopJoin[CROSS_JOIN]
-------------hashJoin[LEFT_ANTI_JOIN] hashCondition=((t1.c1 = t3.c3)) otherCondition=()
---------------hashJoin[LEFT_SEMI_JOIN] hashCondition=((t1.c1 = alias2.c2)) otherCondition=()
-----------------PhysicalProject
-------------------PhysicalOlapScan[t1]
+------------PhysicalProject
+--------------hashJoin[LEFT_ANTI_JOIN] hashCondition=((t1.c1 = t3.c3)) otherCondition=()
+----------------hashJoin[LEFT_SEMI_JOIN] hashCondition=((t1.c1 = alias2.c2)) otherCondition=()
+------------------PhysicalProject
+--------------------PhysicalOlapScan[t1]
+------------------PhysicalDistribute[DistributionSpecHash]
+--------------------PhysicalProject
+----------------------PhysicalOlapScan[t2]
----------------PhysicalDistribute[DistributionSpecHash]
------------------PhysicalProject
---------------------PhysicalOlapScan[t2]
---------------PhysicalDistribute[DistributionSpecHash]
-----------------PhysicalProject
-------------------PhysicalOlapScan[t3]
+--------------------PhysicalOlapScan[t3]
------------PhysicalDistribute[DistributionSpecReplicated]
---------------PhysicalLimit[GLOBAL]
-----------------PhysicalDistribute[DistributionSpecGather]
-------------------PhysicalLimit[LOCAL]
+--------------PhysicalProject
+----------------PhysicalLimit[GLOBAL]
+------------------PhysicalDistribute[DistributionSpecGather]
--------------------PhysicalProject
-----------------------hashJoin[INNER_JOIN] hashCondition=((t3.c3 = t4.c4)) otherCondition=()
+----------------------PhysicalLimit[LOCAL]
------------------------PhysicalProject
---------------------------PhysicalOlapScan[t3]
-------------------------PhysicalDistribute[DistributionSpecHash]
---------------------------PhysicalProject
-----------------------------PhysicalOlapScan[t4]
+--------------------------hashJoin[INNER_JOIN] hashCondition=((t3.c3 = t4.c4)) otherCondition=()
+----------------------------PhysicalProject
+------------------------------PhysicalOlapScan[t3]
+----------------------------PhysicalDistribute[DistributionSpecHash]
+------------------------------PhysicalProject
+--------------------------------PhysicalOlapScan[t4]
Hint log:
Used: [shuffle]_2
@@ -9283,27 +9623,30 @@ PhysicalResultSink
------hashAgg[LOCAL]
--------PhysicalProject
----------NestedLoopJoin[CROSS_JOIN]
-------------hashJoin[LEFT_ANTI_JOIN] hashCondition=((t1.c1 = t3.c3)) otherCondition=()
---------------hashJoin[LEFT_SEMI_JOIN] hashCondition=((t1.c1 = alias2.c2)) otherCondition=()
-----------------PhysicalProject
-------------------PhysicalOlapScan[t1]
+------------PhysicalProject
+--------------hashJoin[LEFT_ANTI_JOIN] hashCondition=((t1.c1 = t3.c3)) otherCondition=()
+----------------hashJoin[LEFT_SEMI_JOIN] hashCondition=((t1.c1 = alias2.c2)) otherCondition=()
+------------------PhysicalProject
+--------------------PhysicalOlapScan[t1]
+------------------PhysicalDistribute[DistributionSpecHash]
+--------------------PhysicalProject
+----------------------PhysicalOlapScan[t2]
----------------PhysicalDistribute[DistributionSpecHash]
------------------PhysicalProject
---------------------PhysicalOlapScan[t2]
---------------PhysicalDistribute[DistributionSpecHash]
-----------------PhysicalProject
-------------------PhysicalOlapScan[t3]
+--------------------PhysicalOlapScan[t3]
------------PhysicalDistribute[DistributionSpecReplicated]
---------------PhysicalLimit[GLOBAL]
-----------------PhysicalDistribute[DistributionSpecGather]
-------------------PhysicalLimit[LOCAL]
+--------------PhysicalProject
+----------------PhysicalLimit[GLOBAL]
+------------------PhysicalDistribute[DistributionSpecGather]
--------------------PhysicalProject
-----------------------hashJoin[INNER_JOIN] hashCondition=((t3.c3 = t4.c4)) otherCondition=()
+----------------------PhysicalLimit[LOCAL]
------------------------PhysicalProject
---------------------------PhysicalOlapScan[t3]
-------------------------PhysicalDistribute[DistributionSpecHash]
---------------------------PhysicalProject
-----------------------------PhysicalOlapScan[t4]
+--------------------------hashJoin[INNER_JOIN] hashCondition=((t3.c3 = t4.c4)) otherCondition=()
+----------------------------PhysicalProject
+------------------------------PhysicalOlapScan[t3]
+----------------------------PhysicalDistribute[DistributionSpecHash]
+------------------------------PhysicalProject
+--------------------------------PhysicalOlapScan[t4]
Hint log:
Used: [shuffle]_2
@@ -9317,27 +9660,30 @@ PhysicalResultSink
------hashAgg[LOCAL]
--------PhysicalProject
----------NestedLoopJoin[CROSS_JOIN]
-------------hashJoin[LEFT_ANTI_JOIN] hashCondition=((t1.c1 = t3.c3)) otherCondition=()
---------------hashJoin[LEFT_SEMI_JOIN] hashCondition=((t1.c1 = alias2.c2)) otherCondition=()
-----------------PhysicalProject
-------------------PhysicalOlapScan[t1]
+------------PhysicalProject
+--------------hashJoin[LEFT_ANTI_JOIN] hashCondition=((t1.c1 = t3.c3)) otherCondition=()
+----------------hashJoin[LEFT_SEMI_JOIN] hashCondition=((t1.c1 = alias2.c2)) otherCondition=()
+------------------PhysicalProject
+--------------------PhysicalOlapScan[t1]
+------------------PhysicalDistribute[DistributionSpecHash]
+--------------------PhysicalProject
+----------------------PhysicalOlapScan[t2]
----------------PhysicalDistribute[DistributionSpecHash]
------------------PhysicalProject
---------------------PhysicalOlapScan[t2]
---------------PhysicalDistribute[DistributionSpecHash]
-----------------PhysicalProject
-------------------PhysicalOlapScan[t3]
+--------------------PhysicalOlapScan[t3]
------------PhysicalDistribute[DistributionSpecReplicated]
---------------PhysicalLimit[GLOBAL]
-----------------PhysicalDistribute[DistributionSpecGather]
-------------------PhysicalLimit[LOCAL]
+--------------PhysicalProject
+----------------PhysicalLimit[GLOBAL]
+------------------PhysicalDistribute[DistributionSpecGather]
--------------------PhysicalProject
-----------------------hashJoin[INNER_JOIN] hashCondition=((t3.c3 = t4.c4)) otherCondition=()
+----------------------PhysicalLimit[LOCAL]
------------------------PhysicalProject
---------------------------PhysicalOlapScan[t3]
-------------------------PhysicalDistribute[DistributionSpecHash]
---------------------------PhysicalProject
-----------------------------PhysicalOlapScan[t4]
+--------------------------hashJoin[INNER_JOIN] hashCondition=((t3.c3 = t4.c4)) otherCondition=()
+----------------------------PhysicalProject
+------------------------------PhysicalOlapScan[t3]
+----------------------------PhysicalDistribute[DistributionSpecHash]
+------------------------------PhysicalProject
+--------------------------------PhysicalOlapScan[t4]
Hint log:
Used: [shuffle]_2
@@ -9351,27 +9697,30 @@ PhysicalResultSink
------hashAgg[LOCAL]
--------PhysicalProject
----------NestedLoopJoin[CROSS_JOIN]
-------------hashJoin[LEFT_ANTI_JOIN] hashCondition=((t1.c1 = t3.c3)) otherCondition=()
---------------hashJoin[LEFT_SEMI_JOIN] hashCondition=((t1.c1 = alias2.c2)) otherCondition=()
-----------------PhysicalProject
-------------------PhysicalOlapScan[t1]
+------------PhysicalProject
+--------------hashJoin[LEFT_ANTI_JOIN] hashCondition=((t1.c1 = t3.c3)) otherCondition=()
+----------------hashJoin[LEFT_SEMI_JOIN] hashCondition=((t1.c1 = alias2.c2)) otherCondition=()
+------------------PhysicalProject
+--------------------PhysicalOlapScan[t1]
+------------------PhysicalDistribute[DistributionSpecHash]
+--------------------PhysicalProject
+----------------------PhysicalOlapScan[t2]
----------------PhysicalDistribute[DistributionSpecHash]
------------------PhysicalProject
---------------------PhysicalOlapScan[t2]
---------------PhysicalDistribute[DistributionSpecHash]
-----------------PhysicalProject
-------------------PhysicalOlapScan[t3]
+--------------------PhysicalOlapScan[t3]
------------PhysicalDistribute[DistributionSpecReplicated]
---------------PhysicalLimit[GLOBAL]
-----------------PhysicalDistribute[DistributionSpecGather]
-------------------PhysicalLimit[LOCAL]
+--------------PhysicalProject
+----------------PhysicalLimit[GLOBAL]
+------------------PhysicalDistribute[DistributionSpecGather]
--------------------PhysicalProject
-----------------------hashJoin[INNER_JOIN] hashCondition=((t3.c3 = t4.c4)) otherCondition=()
+----------------------PhysicalLimit[LOCAL]
------------------------PhysicalProject
---------------------------PhysicalOlapScan[t3]
-------------------------PhysicalDistribute[DistributionSpecHash]
---------------------------PhysicalProject
-----------------------------PhysicalOlapScan[t4]
+--------------------------hashJoin[INNER_JOIN] hashCondition=((t3.c3 = t4.c4)) otherCondition=()
+----------------------------PhysicalProject
+------------------------------PhysicalOlapScan[t3]
+----------------------------PhysicalDistribute[DistributionSpecHash]
+------------------------------PhysicalProject
+--------------------------------PhysicalOlapScan[t4]
Hint log:
Used: [shuffle]_2
@@ -9385,27 +9734,30 @@ PhysicalResultSink
------hashAgg[LOCAL]
--------PhysicalProject
----------NestedLoopJoin[CROSS_JOIN]
-------------hashJoin[LEFT_ANTI_JOIN] hashCondition=((t1.c1 = t3.c3)) otherCondition=()
---------------hashJoin[LEFT_SEMI_JOIN] hashCondition=((t1.c1 = alias2.c2)) otherCondition=()
-----------------PhysicalProject
-------------------PhysicalOlapScan[t1]
+------------PhysicalProject
+--------------hashJoin[LEFT_ANTI_JOIN] hashCondition=((t1.c1 = t3.c3)) otherCondition=()
+----------------hashJoin[LEFT_SEMI_JOIN] hashCondition=((t1.c1 = alias2.c2)) otherCondition=()
+------------------PhysicalProject
+--------------------PhysicalOlapScan[t1]
+------------------PhysicalDistribute[DistributionSpecHash]
+--------------------PhysicalProject
+----------------------PhysicalOlapScan[t2]
----------------PhysicalDistribute[DistributionSpecHash]
------------------PhysicalProject
---------------------PhysicalOlapScan[t2]
---------------PhysicalDistribute[DistributionSpecHash]
-----------------PhysicalProject
-------------------PhysicalOlapScan[t3]
+--------------------PhysicalOlapScan[t3]
------------PhysicalDistribute[DistributionSpecReplicated]
---------------PhysicalLimit[GLOBAL]
-----------------PhysicalDistribute[DistributionSpecGather]
-------------------PhysicalLimit[LOCAL]
+--------------PhysicalProject
+----------------PhysicalLimit[GLOBAL]
+------------------PhysicalDistribute[DistributionSpecGather]
--------------------PhysicalProject
-----------------------hashJoin[INNER_JOIN] hashCondition=((t3.c3 = t4.c4)) otherCondition=()
+----------------------PhysicalLimit[LOCAL]
------------------------PhysicalProject
---------------------------PhysicalOlapScan[t3]
-------------------------PhysicalDistribute[DistributionSpecHash]
---------------------------PhysicalProject
-----------------------------PhysicalOlapScan[t4]
+--------------------------hashJoin[INNER_JOIN] hashCondition=((t3.c3 = t4.c4)) otherCondition=()
+----------------------------PhysicalProject
+------------------------------PhysicalOlapScan[t3]
+----------------------------PhysicalDistribute[DistributionSpecHash]
+------------------------------PhysicalProject
+--------------------------------PhysicalOlapScan[t4]
Hint log:
Used: [shuffle]_2
@@ -9419,27 +9771,30 @@ PhysicalResultSink
------hashAgg[LOCAL]
--------PhysicalProject
----------NestedLoopJoin[CROSS_JOIN]
-------------hashJoin[LEFT_ANTI_JOIN] hashCondition=((t1.c1 = t3.c3)) otherCondition=()
---------------hashJoin[LEFT_SEMI_JOIN] hashCondition=((t1.c1 = alias2.c2)) otherCondition=()
-----------------PhysicalProject
-------------------PhysicalOlapScan[t1]
+------------PhysicalProject
+--------------hashJoin[LEFT_ANTI_JOIN] hashCondition=((t1.c1 = t3.c3)) otherCondition=()
+----------------hashJoin[LEFT_SEMI_JOIN] hashCondition=((t1.c1 = alias2.c2)) otherCondition=()
+------------------PhysicalProject
+--------------------PhysicalOlapScan[t1]
+------------------PhysicalDistribute[DistributionSpecHash]
+--------------------PhysicalProject
+----------------------PhysicalOlapScan[t2]
----------------PhysicalDistribute[DistributionSpecHash]
------------------PhysicalProject
---------------------PhysicalOlapScan[t2]
---------------PhysicalDistribute[DistributionSpecHash]
-----------------PhysicalProject
-------------------PhysicalOlapScan[t3]
+--------------------PhysicalOlapScan[t3]
------------PhysicalDistribute[DistributionSpecReplicated]
---------------PhysicalLimit[GLOBAL]
-----------------PhysicalDistribute[DistributionSpecGather]
-------------------PhysicalLimit[LOCAL]
+--------------PhysicalProject
+----------------PhysicalLimit[GLOBAL]
+------------------PhysicalDistribute[DistributionSpecGather]
--------------------PhysicalProject
-----------------------hashJoin[INNER_JOIN] hashCondition=((t3.c3 = t4.c4)) otherCondition=()
+----------------------PhysicalLimit[LOCAL]
------------------------PhysicalProject
---------------------------PhysicalOlapScan[t3]
-------------------------PhysicalDistribute[DistributionSpecHash]
---------------------------PhysicalProject
-----------------------------PhysicalOlapScan[t4]
+--------------------------hashJoin[INNER_JOIN] hashCondition=((t3.c3 = t4.c4)) otherCondition=()
+----------------------------PhysicalProject
+------------------------------PhysicalOlapScan[t3]
+----------------------------PhysicalDistribute[DistributionSpecHash]
+------------------------------PhysicalProject
+--------------------------------PhysicalOlapScan[t4]
Hint log:
Used: [shuffle]_2
diff --git a/regression-test/data/nereids_p0/hint/test_leading.out b/regression-test/data/nereids_p0/hint/test_leading.out
index 07cc7c16284..e7bca5b4023 100644
--- a/regression-test/data/nereids_p0/hint/test_leading.out
+++ b/regression-test/data/nereids_p0/hint/test_leading.out
@@ -2162,44 +2162,6 @@ Used: [broadcast]_2
UnUsed:
SyntaxError:
--- !select90_3 --
-PhysicalResultSink
---hashAgg[GLOBAL]
-----PhysicalDistribute[DistributionSpecGather]
-------hashAgg[LOCAL]
---------hashJoin[INNER_JOIN] hashCondition=((t2.c2 = t3.c3)) otherCondition=()
-----------PhysicalDistribute[DistributionSpecHash]
-------------hashJoin[INNER_JOIN] hashCondition=((t1.c1 = t2.c2)) otherCondition=()
---------------PhysicalOlapScan[t1]
---------------PhysicalDistribute[DistributionSpecReplicated]
-----------------PhysicalOlapScan[t2]
-----------PhysicalDistribute[DistributionSpecHash]
-------------PhysicalOlapScan[t3]
-
-Hint log:
-Used: [broadcast]_2 [shuffle]_3
-UnUsed:
-SyntaxError:
-
--- !select90_5 --
-PhysicalResultSink
---hashAgg[GLOBAL]
-----PhysicalDistribute[DistributionSpecGather]
-------hashAgg[LOCAL]
---------hashJoin[RIGHT_OUTER_JOIN] hashCondition=((t2.c2 = t3.c3)) otherCondition=()
-----------PhysicalDistribute[DistributionSpecHash]
-------------hashJoin[INNER_JOIN] hashCondition=((t1.c1 = t2.c2)) otherCondition=()
---------------PhysicalOlapScan[t1]
---------------PhysicalDistribute[DistributionSpecReplicated]
-----------------PhysicalOlapScan[t2]
-----------PhysicalDistribute[DistributionSpecHash]
-------------PhysicalOlapScan[t3]
-
-Hint log:
-Used: [broadcast]_2 [shuffle]_3
-UnUsed:
-SyntaxError:
-
-- !select92_1 --
PhysicalResultSink
--hashAgg[GLOBAL]
@@ -2674,11 +2636,10 @@ PhysicalResultSink
----PhysicalDistribute[DistributionSpecGather]
------hashAgg[LOCAL]
--------hashJoin[INNER_JOIN] hashCondition=((t2.c2 = t3.c3)) otherCondition=()
-----------PhysicalDistribute[DistributionSpecHash]
-------------hashJoin[INNER_JOIN] hashCondition=((t1.c1 = t2.c2)) otherCondition=()
---------------PhysicalOlapScan[t1]
---------------PhysicalDistribute[DistributionSpecReplicated]
-----------------PhysicalOlapScan[t2]
+----------hashJoin[INNER_JOIN] hashCondition=((t1.c1 = t2.c2)) otherCondition=()
+------------PhysicalOlapScan[t1]
+------------PhysicalDistribute[DistributionSpecReplicated]
+--------------PhysicalOlapScan[t2]
----------PhysicalDistribute[DistributionSpecHash]
------------PhysicalOlapScan[t3]
diff --git a/regression-test/data/nereids_rules_p0/eager_aggregate/basic.out b/regression-test/data/nereids_rules_p0/eager_aggregate/basic.out
index 0f52d9c808e..3e3986c75fc 100644
--- a/regression-test/data/nereids_rules_p0/eager_aggregate/basic.out
+++ b/regression-test/data/nereids_rules_p0/eager_aggregate/basic.out
@@ -4,23 +4,19 @@ PhysicalResultSink
--hashAgg[GLOBAL]
----hashAgg[LOCAL]
------hashJoin[INNER_JOIN] hashCondition=((a.device_id = b.device_id)) otherCondition=()
---------hashAgg[LOCAL]
-----------filter((cast(experiment_id as DOUBLE) = 37.0))
-------------PhysicalOlapScan[shunt_log_com_dd_library]
---------hashAgg[LOCAL]
-----------filter((a.event_id = 'ad_click'))
-------------PhysicalOlapScan[com_dd_library]
+--------filter((a.event_id = 'ad_click'))
+----------PhysicalOlapScan[com_dd_library]
+--------filter((cast(experiment_id as DOUBLE) = 37.0))
+----------PhysicalOlapScan[shunt_log_com_dd_library]
-- !2 --
PhysicalResultSink
--hashAgg[GLOBAL]
----hashAgg[LOCAL]
------hashJoin[INNER_JOIN] hashCondition=((a.device_id = b.device_id)) otherCondition=()
---------hashAgg[LOCAL]
-----------PhysicalOlapScan[com_dd_library]
---------hashAgg[LOCAL]
-----------filter((cast(experiment_id as DOUBLE) = 73.0))
-------------PhysicalOlapScan[shunt_log_com_dd_library]
+--------PhysicalOlapScan[com_dd_library]
+--------filter((cast(experiment_id as DOUBLE) = 73.0))
+----------PhysicalOlapScan[shunt_log_com_dd_library]
-- !3 --
PhysicalResultSink
@@ -36,8 +32,62 @@ PhysicalResultSink
--hashAgg[GLOBAL]
----hashAgg[LOCAL]
------hashJoin[INNER_JOIN] hashCondition=((a.device_id = b.device_id)) otherCondition=()
---------hashAgg[LOCAL]
-----------PhysicalOlapScan[shunt_log_com_dd_library]
---------hashAgg[LOCAL]
+--------PhysicalOlapScan[shunt_log_com_dd_library]
+--------PhysicalOlapScan[com_dd_library]
+
+-- !with_hint_1 --
+PhysicalResultSink
+--hashAgg[GLOBAL]
+----hashAgg[LOCAL]
+------hashJoin[INNER_JOIN] hashCondition=((a.device_id = b.device_id)) otherCondition=()
+--------filter((a.event_id = 'ad_click'))
----------PhysicalOlapScan[com_dd_library]
+--------filter((cast(experiment_id as DOUBLE) = 37.0))
+----------PhysicalOlapScan[shunt_log_com_dd_library]
+
+Hint log:
+Used:
+UnUsed: use_push_down_agg_through_join use_push_down_agg_through_join_one_side
+SyntaxError:
+
+-- !with_hint_2 --
+PhysicalResultSink
+--hashAgg[GLOBAL]
+----hashAgg[LOCAL]
+------hashJoin[INNER_JOIN] hashCondition=((a.device_id = b.device_id)) otherCondition=()
+--------PhysicalOlapScan[com_dd_library]
+--------filter((cast(experiment_id as DOUBLE) = 73.0))
+----------PhysicalOlapScan[shunt_log_com_dd_library]
+
+Hint log:
+Used:
+UnUsed: use_push_down_agg_through_join use_push_down_agg_through_join_one_side
+SyntaxError:
+
+-- !with_hint_3 --
+PhysicalResultSink
+--hashAgg[GLOBAL]
+----hashAgg[LOCAL]
+------hashJoin[INNER_JOIN] hashCondition=((a.device_id = b.device_id)) otherCondition=()
+--------PhysicalOlapScan[com_dd_library]
+--------filter((cast(experiment_id as DOUBLE) = 73.0))
+----------PhysicalOlapScan[shunt_log_com_dd_library]
+
+Hint log:
+Used:
+UnUsed: use_push_down_agg_through_join use_push_down_agg_through_join_one_side
+SyntaxError:
+
+-- !with_hint_4 --
+PhysicalResultSink
+--hashAgg[GLOBAL]
+----hashAgg[LOCAL]
+------hashJoin[INNER_JOIN] hashCondition=((a.device_id = b.device_id)) otherCondition=()
+--------PhysicalOlapScan[shunt_log_com_dd_library]
+--------PhysicalOlapScan[com_dd_library]
+
+Hint log:
+Used:
+UnUsed: use_push_down_agg_through_join use_push_down_agg_through_join_one_side
+SyntaxError:
diff --git a/regression-test/data/nereids_rules_p0/eager_aggregate/basic_one_side.out b/regression-test/data/nereids_rules_p0/eager_aggregate/basic_one_side.out
index 087b10ea4af..49f1cc9617a 100644
--- a/regression-test/data/nereids_rules_p0/eager_aggregate/basic_one_side.out
+++ b/regression-test/data/nereids_rules_p0/eager_aggregate/basic_one_side.out
@@ -4,9 +4,8 @@ PhysicalResultSink
--hashAgg[GLOBAL]
----hashAgg[LOCAL]
------hashJoin[INNER_JOIN] hashCondition=((a.device_id = b.device_id)) otherCondition=()
---------hashAgg[LOCAL]
-----------filter((a.event_id = 'ad_click'))
-------------PhysicalOlapScan[com_dd_library_one_side]
+--------filter((a.event_id = 'ad_click'))
+----------PhysicalOlapScan[com_dd_library_one_side]
--------filter((cast(experiment_id as DOUBLE) = 37.0))
----------PhysicalOlapScan[shunt_log_com_dd_library_one_side]
@@ -15,8 +14,7 @@ PhysicalResultSink
--hashAgg[GLOBAL]
----hashAgg[LOCAL]
------hashJoin[INNER_JOIN] hashCondition=((a.device_id = b.device_id)) otherCondition=()
---------hashAgg[LOCAL]
-----------PhysicalOlapScan[com_dd_library_one_side]
+--------PhysicalOlapScan[com_dd_library_one_side]
--------filter((cast(experiment_id as DOUBLE) = 73.0))
----------PhysicalOlapScan[shunt_log_com_dd_library_one_side]
@@ -34,7 +32,62 @@ PhysicalResultSink
--hashAgg[GLOBAL]
----hashAgg[LOCAL]
------hashJoin[INNER_JOIN] hashCondition=((a.device_id = b.device_id)) otherCondition=()
---------hashAgg[LOCAL]
+--------PhysicalOlapScan[shunt_log_com_dd_library_one_side]
+--------PhysicalOlapScan[com_dd_library_one_side]
+
+-- !with_hint_1 --
+PhysicalResultSink
+--hashAgg[GLOBAL]
+----hashAgg[LOCAL]
+------hashJoin[INNER_JOIN] hashCondition=((a.device_id = b.device_id)) otherCondition=()
+--------filter((a.event_id = 'ad_click'))
----------PhysicalOlapScan[com_dd_library_one_side]
+--------filter((cast(experiment_id as DOUBLE) = 37.0))
+----------PhysicalOlapScan[shunt_log_com_dd_library_one_side]
+
+Hint log:
+Used:
+UnUsed: use_push_down_agg_through_join_one_side
+SyntaxError:
+
+-- !with_hint_2 --
+PhysicalResultSink
+--hashAgg[GLOBAL]
+----hashAgg[LOCAL]
+------hashJoin[INNER_JOIN] hashCondition=((a.device_id = b.device_id)) otherCondition=()
+--------PhysicalOlapScan[com_dd_library_one_side]
+--------filter((cast(experiment_id as DOUBLE) = 73.0))
+----------PhysicalOlapScan[shunt_log_com_dd_library_one_side]
+
+Hint log:
+Used:
+UnUsed: use_push_down_agg_through_join_one_side
+SyntaxError:
+
+-- !with_hint_3 --
+PhysicalResultSink
+--hashAgg[GLOBAL]
+----hashAgg[LOCAL]
+------hashJoin[INNER_JOIN] hashCondition=((a.device_id = b.device_id)) otherCondition=()
+--------PhysicalOlapScan[com_dd_library_one_side]
+--------filter((cast(experiment_id as DOUBLE) = 73.0))
+----------PhysicalOlapScan[shunt_log_com_dd_library_one_side]
+
+Hint log:
+Used:
+UnUsed: use_push_down_agg_through_join_one_side
+SyntaxError:
+
+-- !with_hint_4 --
+PhysicalResultSink
+--hashAgg[GLOBAL]
+----hashAgg[LOCAL]
+------hashJoin[INNER_JOIN] hashCondition=((a.device_id = b.device_id)) otherCondition=()
--------PhysicalOlapScan[shunt_log_com_dd_library_one_side]
+--------PhysicalOlapScan[com_dd_library_one_side]
+
+Hint log:
+Used:
+UnUsed: use_push_down_agg_through_join_one_side
+SyntaxError:
diff --git a/regression-test/data/nereids_rules_p0/eager_aggregate/push_down_count_through_join.out b/regression-test/data/nereids_rules_p0/eager_aggregate/push_down_count_through_join.out
index 8c822ef4a6d..4a12c8d638a 100644
--- a/regression-test/data/nereids_rules_p0/eager_aggregate/push_down_count_through_join.out
+++ b/regression-test/data/nereids_rules_p0/eager_aggregate/push_down_count_through_join.out
@@ -4,10 +4,8 @@ PhysicalResultSink
--hashAgg[GLOBAL]
----hashAgg[LOCAL]
------hashJoin[INNER_JOIN] hashCondition=((t1.id = t2.id)) otherCondition=()
---------hashAgg[LOCAL]
-----------PhysicalOlapScan[count_t]
---------hashAgg[LOCAL]
-----------PhysicalOlapScan[count_t]
+--------PhysicalOlapScan[count_t]
+--------PhysicalOlapScan[count_t]
-- !groupby_pushdown_left_join --
PhysicalResultSink
@@ -38,10 +36,8 @@ PhysicalResultSink
--hashAgg[GLOBAL]
----hashAgg[LOCAL]
------hashJoin[INNER_JOIN] hashCondition=((t1.id = t2.id)) otherCondition=()
---------hashAgg[LOCAL]
-----------PhysicalOlapScan[count_t]
---------hashAgg[LOCAL]
-----------PhysicalOlapScan[count_t]
+--------PhysicalOlapScan[count_t]
+--------PhysicalOlapScan[count_t]
-- !groupby_pushdown_left_anti_join --
PhysicalResultSink
@@ -72,11 +68,9 @@ PhysicalResultSink
--hashAgg[GLOBAL]
----hashAgg[LOCAL]
------hashJoin[INNER_JOIN] hashCondition=((t1.id = t2.id)) otherCondition=()
---------hashAgg[LOCAL]
+--------PhysicalOlapScan[count_t]
+--------filter((count_t.score > 10))
----------PhysicalOlapScan[count_t]
---------hashAgg[LOCAL]
-----------filter((count_t.score > 10))
-------------PhysicalOlapScan[count_t]
-- !groupby_pushdown_outer_join --
PhysicalResultSink
@@ -91,11 +85,9 @@ PhysicalResultSink
--hashAgg[GLOBAL]
----hashAgg[LOCAL]
------hashJoin[INNER_JOIN] hashCondition=((t1.id = t2.id)) otherCondition=()
---------hashAgg[LOCAL]
+--------PhysicalOlapScan[count_t]
+--------filter((count_t.score > 10))
----------PhysicalOlapScan[count_t]
---------hashAgg[LOCAL]
-----------filter((count_t.score > 10))
-------------PhysicalOlapScan[count_t]
-- !groupby_pushdown_having --
PhysicalResultSink
@@ -103,10 +95,8 @@ PhysicalResultSink
----hashAgg[GLOBAL]
------hashAgg[LOCAL]
--------hashJoin[INNER_JOIN] hashCondition=((t1.id = t2.id)) otherCondition=()
-----------hashAgg[LOCAL]
-------------PhysicalOlapScan[count_t]
-----------hashAgg[LOCAL]
-------------PhysicalOlapScan[count_t]
+----------PhysicalOlapScan[count_t]
+----------PhysicalOlapScan[count_t]
-- !groupby_pushdown_mixed_aggregates --
PhysicalResultSink
@@ -118,18 +108,13 @@ PhysicalResultSink
-- !groupby_pushdown_multi_table_join --
PhysicalResultSink
---hashAgg[LOCAL]
-----hashJoin[INNER_JOIN] hashCondition=((t1.name = t3.name)) otherCondition=()
-------hashAgg[GLOBAL]
---------hashAgg[LOCAL]
-----------hashJoin[INNER_JOIN] hashCondition=((t1.id = t2.id)) otherCondition=()
-------------hashAgg[LOCAL]
---------------PhysicalOlapScan[count_t]
-------------hashAgg[LOCAL]
---------------PhysicalOlapScan[count_t]
-------hashAgg[GLOBAL]
---------hashAgg[LOCAL]
+--hashAgg[GLOBAL]
+----hashAgg[LOCAL]
+------hashJoin[INNER_JOIN] hashCondition=((t1.name = t3.name)) otherCondition=()
+--------hashJoin[INNER_JOIN] hashCondition=((t1.id = t2.id)) otherCondition=()
----------PhysicalOlapScan[count_t]
+----------PhysicalOlapScan[count_t]
+--------PhysicalOlapScan[count_t]
-- !groupby_pushdown_with_order_by --
PhysicalResultSink
@@ -138,20 +123,16 @@ PhysicalResultSink
------hashAgg[GLOBAL]
--------hashAgg[LOCAL]
----------hashJoin[INNER_JOIN] hashCondition=((t1.id = t2.id)) otherCondition=()
-------------hashAgg[LOCAL]
---------------PhysicalOlapScan[count_t]
-------------hashAgg[LOCAL]
---------------PhysicalOlapScan[count_t]
+------------PhysicalOlapScan[count_t]
+------------PhysicalOlapScan[count_t]
-- !groupby_pushdown_multiple_equal_conditions --
PhysicalResultSink
--hashAgg[GLOBAL]
----hashAgg[LOCAL]
------hashJoin[INNER_JOIN] hashCondition=((t1.id = t2.id) and (t1.name = t2.name)) otherCondition=()
---------hashAgg[LOCAL]
-----------PhysicalOlapScan[count_t]
---------hashAgg[LOCAL]
-----------PhysicalOlapScan[count_t]
+--------PhysicalOlapScan[count_t]
+--------PhysicalOlapScan[count_t]
-- !groupby_pushdown_equal_conditions_with_aggregate --
PhysicalResultSink
@@ -166,31 +147,25 @@ PhysicalResultSink
--hashAgg[GLOBAL]
----hashAgg[LOCAL]
------hashJoin[INNER_JOIN] hashCondition=((t1.id = t2.id) and (t1.name = t2.name)) otherCondition=()
---------hashAgg[LOCAL]
-----------PhysicalOlapScan[count_t]
---------hashAgg[LOCAL]
-----------PhysicalOlapScan[count_t]
+--------PhysicalOlapScan[count_t]
+--------PhysicalOlapScan[count_t]
-- !groupby_pushdown_equal_conditions_non_aggregate_selection_with_aggregate --
PhysicalResultSink
--hashAgg[GLOBAL]
----hashAgg[LOCAL]
------hashJoin[INNER_JOIN] hashCondition=((t1.id = t2.id) and (t1.name = t2.name)) otherCondition=()
---------hashAgg[LOCAL]
-----------PhysicalOlapScan[count_t]
---------hashAgg[LOCAL]
-----------PhysicalOlapScan[count_t]
+--------PhysicalOlapScan[count_t]
+--------PhysicalOlapScan[count_t]
-- !groupby_pushdown_with_where_clause --
PhysicalResultSink
--hashAgg[GLOBAL]
----hashAgg[LOCAL]
------hashJoin[INNER_JOIN] hashCondition=((t1.id = t2.id)) otherCondition=()
---------hashAgg[LOCAL]
+--------PhysicalOlapScan[count_t]
+--------filter((t1.score > 50))
----------PhysicalOlapScan[count_t]
---------hashAgg[LOCAL]
-----------filter((t1.score > 50))
-------------PhysicalOlapScan[count_t]
-- !groupby_pushdown_varied_aggregates --
PhysicalResultSink
@@ -207,20 +182,16 @@ PhysicalResultSink
------hashAgg[GLOBAL]
--------hashAgg[LOCAL]
----------hashJoin[INNER_JOIN] hashCondition=((t1.id = t2.id)) otherCondition=()
-------------hashAgg[LOCAL]
---------------PhysicalOlapScan[count_t]
-------------hashAgg[LOCAL]
---------------PhysicalOlapScan[count_t]
+------------PhysicalOlapScan[count_t]
+------------PhysicalOlapScan[count_t]
-- !groupby_pushdown_alias_multiple_equal_conditions --
PhysicalResultSink
--hashAgg[GLOBAL]
----hashAgg[LOCAL]
------hashJoin[INNER_JOIN] hashCondition=((t1_alias.id = t2_alias.id) and (t1_alias.name = t2_alias.name)) otherCondition=()
---------hashAgg[LOCAL]
-----------PhysicalOlapScan[count_t]
---------hashAgg[LOCAL]
-----------PhysicalOlapScan[count_t]
+--------PhysicalOlapScan[count_t]
+--------PhysicalOlapScan[count_t]
-- !groupby_pushdown_complex_join_condition --
PhysicalResultSink
@@ -243,22 +214,18 @@ PhysicalResultSink
--hashAgg[GLOBAL]
----hashAgg[LOCAL]
------hashJoin[INNER_JOIN] hashCondition=((t1.id = t2.id)) otherCondition=()
---------hashAgg[LOCAL]
-----------filter((count_t.id < 100))
-------------PhysicalOlapScan[count_t]
---------hashAgg[LOCAL]
-----------filter((count_t.score > 20) and (t1.id < 100))
-------------PhysicalOlapScan[count_t]
+--------filter((count_t.id < 100))
+----------PhysicalOlapScan[count_t]
+--------filter((count_t.score > 20) and (t1.id < 100))
+----------PhysicalOlapScan[count_t]
-- !groupby_pushdown_basic --
PhysicalResultSink
--hashAgg[GLOBAL]
----hashAgg[LOCAL]
------hashJoin[INNER_JOIN] hashCondition=((t1.id = t2.id)) otherCondition=()
---------hashAgg[LOCAL]
-----------PhysicalOlapScan[count_t]
---------hashAgg[LOCAL]
-----------PhysicalOlapScan[count_t]
+--------PhysicalOlapScan[count_t]
+--------PhysicalOlapScan[count_t]
-- !groupby_pushdown_left_join --
PhysicalResultSink
@@ -289,10 +256,8 @@ PhysicalResultSink
--hashAgg[GLOBAL]
----hashAgg[LOCAL]
------hashJoin[INNER_JOIN] hashCondition=((t1.id = t2.id)) otherCondition=()
---------hashAgg[LOCAL]
-----------PhysicalOlapScan[count_t]
---------hashAgg[LOCAL]
-----------PhysicalOlapScan[count_t]
+--------PhysicalOlapScan[count_t]
+--------PhysicalOlapScan[count_t]
-- !groupby_pushdown_left_anti_join --
PhysicalResultSink
@@ -315,21 +280,17 @@ PhysicalResultSink
--hashAgg[GLOBAL]
----hashAgg[LOCAL]
------hashJoin[INNER_JOIN] hashCondition=((t1.id = t2.id)) otherCondition=()
---------hashAgg[LOCAL]
-----------PhysicalOlapScan[count_t]
---------hashAgg[LOCAL]
-----------PhysicalOlapScan[count_t]
+--------PhysicalOlapScan[count_t]
+--------PhysicalOlapScan[count_t]
-- !groupby_pushdown_subquery --
PhysicalResultSink
--hashAgg[GLOBAL]
----hashAgg[LOCAL]
------hashJoin[INNER_JOIN] hashCondition=((t1.id = t2.id)) otherCondition=()
---------hashAgg[LOCAL]
+--------PhysicalOlapScan[count_t]
+--------filter((count_t.score > 10))
----------PhysicalOlapScan[count_t]
---------hashAgg[LOCAL]
-----------filter((count_t.score > 10))
-------------PhysicalOlapScan[count_t]
-- !groupby_pushdown_outer_join --
PhysicalResultSink
@@ -344,11 +305,9 @@ PhysicalResultSink
--hashAgg[GLOBAL]
----hashAgg[LOCAL]
------hashJoin[INNER_JOIN] hashCondition=((t1.id = t2.id)) otherCondition=()
---------hashAgg[LOCAL]
+--------PhysicalOlapScan[count_t]
+--------filter((count_t.score > 10))
----------PhysicalOlapScan[count_t]
---------hashAgg[LOCAL]
-----------filter((count_t.score > 10))
-------------PhysicalOlapScan[count_t]
-- !groupby_pushdown_having --
PhysicalResultSink
@@ -356,25 +315,18 @@ PhysicalResultSink
----hashAgg[GLOBAL]
------hashAgg[LOCAL]
--------hashJoin[INNER_JOIN] hashCondition=((t1.id = t2.id)) otherCondition=()
-----------hashAgg[LOCAL]
-------------PhysicalOlapScan[count_t]
-----------hashAgg[LOCAL]
-------------PhysicalOlapScan[count_t]
+----------PhysicalOlapScan[count_t]
+----------PhysicalOlapScan[count_t]
-- !groupby_pushdown_multi_table_join --
PhysicalResultSink
---hashAgg[LOCAL]
-----hashJoin[INNER_JOIN] hashCondition=((t1.name = t3.name)) otherCondition=()
-------hashAgg[GLOBAL]
---------hashAgg[LOCAL]
-----------hashJoin[INNER_JOIN] hashCondition=((t1.id = t2.id)) otherCondition=()
-------------hashAgg[LOCAL]
---------------PhysicalOlapScan[count_t]
-------------hashAgg[LOCAL]
---------------PhysicalOlapScan[count_t]
-------hashAgg[GLOBAL]
---------hashAgg[LOCAL]
+--hashAgg[GLOBAL]
+----hashAgg[LOCAL]
+------hashJoin[INNER_JOIN] hashCondition=((t1.name = t3.name)) otherCondition=()
+--------hashJoin[INNER_JOIN] hashCondition=((t1.id = t2.id)) otherCondition=()
----------PhysicalOlapScan[count_t]
+----------PhysicalOlapScan[count_t]
+--------PhysicalOlapScan[count_t]
-- !groupby_pushdown_with_order_by --
PhysicalResultSink
@@ -383,41 +335,33 @@ PhysicalResultSink
------hashAgg[GLOBAL]
--------hashAgg[LOCAL]
----------hashJoin[INNER_JOIN] hashCondition=((t1.id = t2.id)) otherCondition=()
-------------hashAgg[LOCAL]
---------------PhysicalOlapScan[count_t]
-------------hashAgg[LOCAL]
---------------PhysicalOlapScan[count_t]
+------------PhysicalOlapScan[count_t]
+------------PhysicalOlapScan[count_t]
-- !groupby_pushdown_multiple_equal_conditions --
PhysicalResultSink
--hashAgg[GLOBAL]
----hashAgg[LOCAL]
------hashJoin[INNER_JOIN] hashCondition=((t1.id = t2.id) and (t1.name = t2.name)) otherCondition=()
---------hashAgg[LOCAL]
-----------PhysicalOlapScan[count_t]
---------hashAgg[LOCAL]
-----------PhysicalOlapScan[count_t]
+--------PhysicalOlapScan[count_t]
+--------PhysicalOlapScan[count_t]
-- !groupby_pushdown_equal_conditions_non_aggregate_selection --
PhysicalResultSink
--hashAgg[GLOBAL]
----hashAgg[LOCAL]
------hashJoin[INNER_JOIN] hashCondition=((t1.id = t2.id) and (t1.name = t2.name)) otherCondition=()
---------hashAgg[LOCAL]
-----------PhysicalOlapScan[count_t]
---------hashAgg[LOCAL]
-----------PhysicalOlapScan[count_t]
+--------PhysicalOlapScan[count_t]
+--------PhysicalOlapScan[count_t]
-- !groupby_pushdown_with_where_clause --
PhysicalResultSink
--hashAgg[GLOBAL]
----hashAgg[LOCAL]
------hashJoin[INNER_JOIN] hashCondition=((t1.id = t2.id)) otherCondition=()
---------hashAgg[LOCAL]
+--------PhysicalOlapScan[count_t]
+--------filter((t1.score > 50))
----------PhysicalOlapScan[count_t]
---------hashAgg[LOCAL]
-----------filter((t1.score > 50))
-------------PhysicalOlapScan[count_t]
-- !groupby_pushdown_varied_aggregates --
PhysicalResultSink
@@ -434,10 +378,8 @@ PhysicalResultSink
------hashAgg[GLOBAL]
--------hashAgg[LOCAL]
----------hashJoin[INNER_JOIN] hashCondition=((t1.id = t2.id)) otherCondition=()
-------------hashAgg[LOCAL]
---------------PhysicalOlapScan[count_t]
-------------hashAgg[LOCAL]
---------------PhysicalOlapScan[count_t]
+------------PhysicalOlapScan[count_t]
+------------PhysicalOlapScan[count_t]
-- !groupby_pushdown_complex_join_condition --
PhysicalResultSink
@@ -452,10 +394,643 @@ PhysicalResultSink
--hashAgg[GLOBAL]
----hashAgg[LOCAL]
------hashJoin[INNER_JOIN] hashCondition=((t1.id = t2.id)) otherCondition=()
+--------filter((count_t.id < 100))
+----------PhysicalOlapScan[count_t]
+--------filter((count_t.score > 20) and (t1.id < 100))
+----------PhysicalOlapScan[count_t]
+
+-- !with_hint_groupby_pushdown_basic --
+PhysicalResultSink
+--hashAgg[GLOBAL]
+----hashAgg[LOCAL]
+------hashJoin[INNER_JOIN] hashCondition=((t1.id = t2.id)) otherCondition=()
+--------PhysicalOlapScan[count_t]
+--------PhysicalOlapScan[count_t]
+
+Hint log:
+Used:
+UnUsed: use_push_down_agg_through_join
+SyntaxError:
+
+-- !with_hint_groupby_pushdown_left_join --
+PhysicalResultSink
+--hashAgg[GLOBAL]
+----hashAgg[LOCAL]
+------hashJoin[LEFT_OUTER_JOIN] hashCondition=((t1.id = t2.id)) otherCondition=()
+--------PhysicalOlapScan[count_t]
+--------PhysicalOlapScan[count_t]
+
+Hint log:
+Used:
+UnUsed: use_push_down_agg_through_join
+SyntaxError:
+
+-- !with_hint_groupby_pushdown_right_join --
+PhysicalResultSink
+--hashAgg[GLOBAL]
+----hashAgg[LOCAL]
+------hashJoin[RIGHT_OUTER_JOIN] hashCondition=((t1.id = t2.id)) otherCondition=()
+--------PhysicalOlapScan[count_t]
+--------PhysicalOlapScan[count_t]
+
+Hint log:
+Used:
+UnUsed: use_push_down_agg_through_join
+SyntaxError:
+
+-- !with_hint_groupby_pushdown_full_join --
+PhysicalResultSink
+--hashAgg[GLOBAL]
+----hashAgg[LOCAL]
+------hashJoin[FULL_OUTER_JOIN] hashCondition=((t1.id = t2.id)) otherCondition=()
+--------PhysicalOlapScan[count_t]
+--------PhysicalOlapScan[count_t]
+
+Hint log:
+Used:
+UnUsed: use_push_down_agg_through_join
+SyntaxError:
+
+-- !with_hint_groupby_pushdown_left_semi_join --
+PhysicalResultSink
+--hashAgg[GLOBAL]
+----hashAgg[LOCAL]
+------hashJoin[INNER_JOIN] hashCondition=((t1.id = t2.id)) otherCondition=()
+--------PhysicalOlapScan[count_t]
+--------PhysicalOlapScan[count_t]
+
+Hint log:
+Used:
+UnUsed: use_push_down_agg_through_join
+SyntaxError:
+
+-- !with_hint_groupby_pushdown_left_anti_join --
+PhysicalResultSink
+--hashAgg[GLOBAL]
+----hashAgg[LOCAL]
+------hashJoin[LEFT_ANTI_JOIN] hashCondition=((t1.id = t2.id)) otherCondition=()
+--------PhysicalOlapScan[count_t]
+--------PhysicalOlapScan[count_t]
+
+Hint log:
+Used:
+UnUsed: use_push_down_agg_through_join
+SyntaxError:
+
+-- !with_hint_groupby_pushdown_complex_conditions --
+PhysicalResultSink
+--hashAgg[GLOBAL]
+----hashAgg[LOCAL]
+------hashJoin[INNER_JOIN] hashCondition=((t1.id = t2.id)) otherCondition=((t1.name < t2.name))
+--------PhysicalOlapScan[count_t]
+--------PhysicalOlapScan[count_t]
+
+Hint log:
+Used:
+UnUsed: use_push_down_agg_through_join
+SyntaxError:
+
+-- !with_hint_groupby_pushdown_with_aggregate --
+PhysicalResultSink
+--hashAgg[GLOBAL]
+----hashAgg[LOCAL]
+------hashJoin[INNER_JOIN] hashCondition=((t1.id = t2.id)) otherCondition=()
+--------PhysicalOlapScan[count_t]
+--------PhysicalOlapScan[count_t]
+
+Hint log:
+Used:
+UnUsed: use_push_down_agg_through_join
+SyntaxError:
+
+-- !with_hint_groupby_pushdown_subquery --
+PhysicalResultSink
+--hashAgg[GLOBAL]
+----hashAgg[LOCAL]
+------hashJoin[INNER_JOIN] hashCondition=((t1.id = t2.id)) otherCondition=()
+--------PhysicalOlapScan[count_t]
+--------filter((count_t.score > 10))
+----------PhysicalOlapScan[count_t]
+
+Hint log:
+Used:
+UnUsed: use_push_down_agg_through_join
+SyntaxError:
+
+-- !with_hint_groupby_pushdown_outer_join --
+PhysicalResultSink
+--hashAgg[GLOBAL]
+----hashAgg[LOCAL]
+------hashJoin[LEFT_OUTER_JOIN] hashCondition=((t1.id = t2.id)) otherCondition=()
+--------PhysicalOlapScan[count_t]
+--------PhysicalOlapScan[count_t]
+
+Hint log:
+Used:
+UnUsed: use_push_down_agg_through_join
+SyntaxError:
+
+-- !with_hint_groupby_pushdown_deep_subquery --
+PhysicalResultSink
+--hashAgg[GLOBAL]
+----hashAgg[LOCAL]
+------hashJoin[INNER_JOIN] hashCondition=((t1.id = t2.id)) otherCondition=()
+--------PhysicalOlapScan[count_t]
+--------filter((count_t.score > 10))
+----------PhysicalOlapScan[count_t]
+
+Hint log:
+Used:
+UnUsed: use_push_down_agg_through_join
+SyntaxError:
+
+-- !with_hint_groupby_pushdown_having --
+PhysicalResultSink
+--filter((count(score) > 100))
+----hashAgg[GLOBAL]
+------hashAgg[LOCAL]
+--------hashJoin[INNER_JOIN] hashCondition=((t1.id = t2.id)) otherCondition=()
+----------PhysicalOlapScan[count_t]
+----------PhysicalOlapScan[count_t]
+
+Hint log:
+Used:
+UnUsed: use_push_down_agg_through_join
+SyntaxError:
+
+-- !with_hint_groupby_pushdown_mixed_aggregates --
+PhysicalResultSink
+--hashAgg[GLOBAL]
+----hashAgg[LOCAL]
+------hashJoin[INNER_JOIN] hashCondition=((t1.id = t2.id)) otherCondition=()
+--------PhysicalOlapScan[count_t]
+--------PhysicalOlapScan[count_t]
+
+Hint log:
+Used:
+UnUsed: use_push_down_agg_through_join
+SyntaxError:
+
+-- !with_hint_groupby_pushdown_multi_table_join --
+PhysicalResultSink
+--hashAgg[GLOBAL]
+----hashAgg[LOCAL]
+------hashJoin[INNER_JOIN] hashCondition=((t1.name = t3.name)) otherCondition=()
+--------hashJoin[INNER_JOIN] hashCondition=((t1.id = t2.id)) otherCondition=()
+----------PhysicalOlapScan[count_t]
+----------PhysicalOlapScan[count_t]
+--------PhysicalOlapScan[count_t]
+
+Hint log:
+Used:
+UnUsed: use_push_down_agg_through_join
+SyntaxError:
+
+-- !with_hint_groupby_pushdown_with_order_by --
+PhysicalResultSink
+--PhysicalQuickSort[MERGE_SORT]
+----PhysicalQuickSort[LOCAL_SORT]
+------hashAgg[GLOBAL]
--------hashAgg[LOCAL]
-----------filter((count_t.id < 100))
+----------hashJoin[INNER_JOIN] hashCondition=((t1.id = t2.id)) otherCondition=()
------------PhysicalOlapScan[count_t]
---------hashAgg[LOCAL]
-----------filter((count_t.score > 20) and (t1.id < 100))
------------PhysicalOlapScan[count_t]
+Hint log:
+Used:
+UnUsed: use_push_down_agg_through_join
+SyntaxError:
+
+-- !with_hint_groupby_pushdown_multiple_equal_conditions --
+PhysicalResultSink
+--hashAgg[GLOBAL]
+----hashAgg[LOCAL]
+------hashJoin[INNER_JOIN] hashCondition=((t1.id = t2.id) and (t1.name = t2.name)) otherCondition=()
+--------PhysicalOlapScan[count_t]
+--------PhysicalOlapScan[count_t]
+
+Hint log:
+Used:
+UnUsed: use_push_down_agg_through_join
+SyntaxError:
+
+-- !with_hint_groupby_pushdown_equal_conditions_with_aggregate --
+PhysicalResultSink
+--hashAgg[GLOBAL]
+----hashAgg[LOCAL]
+------hashJoin[INNER_JOIN] hashCondition=((t1.id = t2.id) and (t1.name = t2.name)) otherCondition=()
+--------PhysicalOlapScan[count_t]
+--------PhysicalOlapScan[count_t]
+
+Hint log:
+Used:
+UnUsed: use_push_down_agg_through_join
+SyntaxError:
+
+-- !with_hint_groupby_pushdown_equal_conditions_non_aggregate_selection --
+PhysicalResultSink
+--hashAgg[GLOBAL]
+----hashAgg[LOCAL]
+------hashJoin[INNER_JOIN] hashCondition=((t1.id = t2.id) and (t1.name = t2.name)) otherCondition=()
+--------PhysicalOlapScan[count_t]
+--------PhysicalOlapScan[count_t]
+
+Hint log:
+Used:
+UnUsed: use_push_down_agg_through_join
+SyntaxError:
+
+-- !with_hint_groupby_pushdown_equal_conditions_non_aggregate_selection_with_aggregate --
+PhysicalResultSink
+--hashAgg[GLOBAL]
+----hashAgg[LOCAL]
+------hashJoin[INNER_JOIN] hashCondition=((t1.id = t2.id) and (t1.name = t2.name)) otherCondition=()
+--------PhysicalOlapScan[count_t]
+--------PhysicalOlapScan[count_t]
+
+Hint log:
+Used:
+UnUsed: use_push_down_agg_through_join
+SyntaxError:
+
+-- !with_hint_groupby_pushdown_with_where_clause --
+PhysicalResultSink
+--hashAgg[GLOBAL]
+----hashAgg[LOCAL]
+------hashJoin[INNER_JOIN] hashCondition=((t1.id = t2.id)) otherCondition=()
+--------PhysicalOlapScan[count_t]
+--------filter((t1.score > 50))
+----------PhysicalOlapScan[count_t]
+
+Hint log:
+Used:
+UnUsed: use_push_down_agg_through_join
+SyntaxError:
+
+-- !with_hint_groupby_pushdown_varied_aggregates --
+PhysicalResultSink
+--hashAgg[GLOBAL]
+----hashAgg[LOCAL]
+------hashJoin[INNER_JOIN] hashCondition=((t1.id = t2.id)) otherCondition=()
+--------PhysicalOlapScan[count_t]
+--------PhysicalOlapScan[count_t]
+
+Hint log:
+Used:
+UnUsed: use_push_down_agg_through_join
+SyntaxError:
+
+-- !with_hint_groupby_pushdown_with_order_by_limit --
+PhysicalResultSink
+--PhysicalTopN[MERGE_SORT]
+----PhysicalTopN[LOCAL_SORT]
+------hashAgg[GLOBAL]
+--------hashAgg[LOCAL]
+----------hashJoin[INNER_JOIN] hashCondition=((t1.id = t2.id)) otherCondition=()
+------------PhysicalOlapScan[count_t]
+------------PhysicalOlapScan[count_t]
+
+Hint log:
+Used:
+UnUsed: use_push_down_agg_through_join
+SyntaxError:
+
+-- !with_hint_groupby_pushdown_alias_multiple_equal_conditions --
+PhysicalResultSink
+--hashAgg[GLOBAL]
+----hashAgg[LOCAL]
+------hashJoin[INNER_JOIN] hashCondition=((t1_alias.id = t2_alias.id) and (t1_alias.name = t2_alias.name)) otherCondition=()
+--------PhysicalOlapScan[count_t]
+--------PhysicalOlapScan[count_t]
+
+Hint log:
+Used:
+UnUsed: use_push_down_agg_through_join
+SyntaxError:
+
+-- !with_hint_groupby_pushdown_complex_join_condition --
+PhysicalResultSink
+--hashAgg[GLOBAL]
+----hashAgg[LOCAL]
+------hashJoin[INNER_JOIN] hashCondition=((t1.id = t2.id) and (t1.score = t2.score)) otherCondition=(( not (name = name)))
+--------PhysicalOlapScan[count_t]
+--------PhysicalOlapScan[count_t]
+
+Hint log:
+Used:
+UnUsed: use_push_down_agg_through_join
+SyntaxError:
+
+-- !with_hint_groupby_pushdown_function_processed_columns --
+PhysicalResultSink
+--hashAgg[GLOBAL]
+----hashAgg[LOCAL]
+------hashJoin[INNER_JOIN] hashCondition=((t1.id = t2.id)) otherCondition=()
+--------PhysicalOlapScan[count_t]
+--------PhysicalOlapScan[count_t]
+
+Hint log:
+Used:
+UnUsed: use_push_down_agg_through_join
+SyntaxError:
+
+-- !with_hint_groupby_pushdown_nested_queries --
+PhysicalResultSink
+--hashAgg[GLOBAL]
+----hashAgg[LOCAL]
+------hashJoin[INNER_JOIN] hashCondition=((t1.id = t2.id)) otherCondition=()
+--------filter((count_t.id < 100))
+----------PhysicalOlapScan[count_t]
+--------filter((count_t.score > 20) and (t1.id < 100))
+----------PhysicalOlapScan[count_t]
+
+Hint log:
+Used:
+UnUsed: use_push_down_agg_through_join
+SyntaxError:
+
+-- !with_hint_groupby_pushdown_basic --
+PhysicalResultSink
+--hashAgg[GLOBAL]
+----hashAgg[LOCAL]
+------hashJoin[INNER_JOIN] hashCondition=((t1.id = t2.id)) otherCondition=()
+--------PhysicalOlapScan[count_t]
+--------PhysicalOlapScan[count_t]
+
+Hint log:
+Used:
+UnUsed: use_push_down_agg_through_join
+SyntaxError:
+
+-- !with_hint_groupby_pushdown_left_join --
+PhysicalResultSink
+--hashAgg[GLOBAL]
+----hashAgg[LOCAL]
+------hashJoin[LEFT_OUTER_JOIN] hashCondition=((t1.id = t2.id)) otherCondition=()
+--------PhysicalOlapScan[count_t]
+--------PhysicalOlapScan[count_t]
+
+Hint log:
+Used:
+UnUsed: use_push_down_agg_through_join
+SyntaxError:
+
+-- !with_hint_groupby_pushdown_right_join --
+PhysicalResultSink
+--hashAgg[GLOBAL]
+----hashAgg[LOCAL]
+------hashJoin[RIGHT_OUTER_JOIN] hashCondition=((t1.id = t2.id)) otherCondition=()
+--------PhysicalOlapScan[count_t]
+--------PhysicalOlapScan[count_t]
+
+Hint log:
+Used:
+UnUsed: use_push_down_agg_through_join
+SyntaxError:
+
+-- !with_hint_groupby_pushdown_full_join --
+PhysicalResultSink
+--hashAgg[GLOBAL]
+----hashAgg[LOCAL]
+------hashJoin[FULL_OUTER_JOIN] hashCondition=((t1.id = t2.id)) otherCondition=()
+--------PhysicalOlapScan[count_t]
+--------PhysicalOlapScan[count_t]
+
+Hint log:
+Used:
+UnUsed: use_push_down_agg_through_join
+SyntaxError:
+
+-- !with_hint_groupby_pushdown_left_semi_join --
+PhysicalResultSink
+--hashAgg[GLOBAL]
+----hashAgg[LOCAL]
+------hashJoin[INNER_JOIN] hashCondition=((t1.id = t2.id)) otherCondition=()
+--------PhysicalOlapScan[count_t]
+--------PhysicalOlapScan[count_t]
+
+Hint log:
+Used:
+UnUsed: use_push_down_agg_through_join
+SyntaxError:
+
+-- !with_hint_groupby_pushdown_left_anti_join --
+PhysicalResultSink
+--hashAgg[GLOBAL]
+----hashAgg[LOCAL]
+------hashJoin[LEFT_ANTI_JOIN] hashCondition=((t1.id = t2.id)) otherCondition=()
+--------PhysicalOlapScan[count_t]
+--------PhysicalOlapScan[count_t]
+
+Hint log:
+Used:
+UnUsed: use_push_down_agg_through_join
+SyntaxError:
+
+-- !with_hint_groupby_pushdown_complex_conditions --
+PhysicalResultSink
+--hashAgg[GLOBAL]
+----hashAgg[LOCAL]
+------hashJoin[INNER_JOIN] hashCondition=((t1.id = t2.id)) otherCondition=((t1.name < t2.name))
+--------PhysicalOlapScan[count_t]
+--------PhysicalOlapScan[count_t]
+
+Hint log:
+Used:
+UnUsed: use_push_down_agg_through_join
+SyntaxError:
+
+-- !with_hint_groupby_pushdown_with_aggregate --
+PhysicalResultSink
+--hashAgg[GLOBAL]
+----hashAgg[LOCAL]
+------hashJoin[INNER_JOIN] hashCondition=((t1.id = t2.id)) otherCondition=()
+--------PhysicalOlapScan[count_t]
+--------PhysicalOlapScan[count_t]
+
+Hint log:
+Used:
+UnUsed: use_push_down_agg_through_join
+SyntaxError:
+
+-- !with_hint_groupby_pushdown_subquery --
+PhysicalResultSink
+--hashAgg[GLOBAL]
+----hashAgg[LOCAL]
+------hashJoin[INNER_JOIN] hashCondition=((t1.id = t2.id)) otherCondition=()
+--------PhysicalOlapScan[count_t]
+--------filter((count_t.score > 10))
+----------PhysicalOlapScan[count_t]
+
+Hint log:
+Used:
+UnUsed: use_push_down_agg_through_join
+SyntaxError:
+
+-- !with_hint_groupby_pushdown_outer_join --
+PhysicalResultSink
+--hashAgg[GLOBAL]
+----hashAgg[LOCAL]
+------hashJoin[LEFT_OUTER_JOIN] hashCondition=((t1.id = t2.id)) otherCondition=()
+--------PhysicalOlapScan[count_t]
+--------PhysicalOlapScan[count_t]
+
+Hint log:
+Used:
+UnUsed: use_push_down_agg_through_join
+SyntaxError:
+
+-- !with_hint_groupby_pushdown_deep_subquery --
+PhysicalResultSink
+--hashAgg[GLOBAL]
+----hashAgg[LOCAL]
+------hashJoin[INNER_JOIN] hashCondition=((t1.id = t2.id)) otherCondition=()
+--------PhysicalOlapScan[count_t]
+--------filter((count_t.score > 10))
+----------PhysicalOlapScan[count_t]
+
+Hint log:
+Used:
+UnUsed: use_push_down_agg_through_join
+SyntaxError:
+
+-- !with_hint_groupby_pushdown_having --
+PhysicalResultSink
+--filter((count(*) > 100))
+----hashAgg[GLOBAL]
+------hashAgg[LOCAL]
+--------hashJoin[INNER_JOIN] hashCondition=((t1.id = t2.id)) otherCondition=()
+----------PhysicalOlapScan[count_t]
+----------PhysicalOlapScan[count_t]
+
+Hint log:
+Used:
+UnUsed: use_push_down_agg_through_join
+SyntaxError:
+
+-- !with_hint_groupby_pushdown_multi_table_join --
+PhysicalResultSink
+--hashAgg[GLOBAL]
+----hashAgg[LOCAL]
+------hashJoin[INNER_JOIN] hashCondition=((t1.name = t3.name)) otherCondition=()
+--------hashJoin[INNER_JOIN] hashCondition=((t1.id = t2.id)) otherCondition=()
+----------PhysicalOlapScan[count_t]
+----------PhysicalOlapScan[count_t]
+--------PhysicalOlapScan[count_t]
+
+Hint log:
+Used:
+UnUsed: use_push_down_agg_through_join
+SyntaxError:
+
+-- !with_hint_groupby_pushdown_with_order_by --
+PhysicalResultSink
+--PhysicalQuickSort[MERGE_SORT]
+----PhysicalQuickSort[LOCAL_SORT]
+------hashAgg[GLOBAL]
+--------hashAgg[LOCAL]
+----------hashJoin[INNER_JOIN] hashCondition=((t1.id = t2.id)) otherCondition=()
+------------PhysicalOlapScan[count_t]
+------------PhysicalOlapScan[count_t]
+
+Hint log:
+Used:
+UnUsed: use_push_down_agg_through_join
+SyntaxError:
+
+-- !with_hint_groupby_pushdown_multiple_equal_conditions --
+PhysicalResultSink
+--hashAgg[GLOBAL]
+----hashAgg[LOCAL]
+------hashJoin[INNER_JOIN] hashCondition=((t1.id = t2.id) and (t1.name = t2.name)) otherCondition=()
+--------PhysicalOlapScan[count_t]
+--------PhysicalOlapScan[count_t]
+
+Hint log:
+Used:
+UnUsed: use_push_down_agg_through_join
+SyntaxError:
+
+-- !with_hint_groupby_pushdown_equal_conditions_non_aggregate_selection --
+PhysicalResultSink
+--hashAgg[GLOBAL]
+----hashAgg[LOCAL]
+------hashJoin[INNER_JOIN] hashCondition=((t1.id = t2.id) and (t1.name = t2.name)) otherCondition=()
+--------PhysicalOlapScan[count_t]
+--------PhysicalOlapScan[count_t]
+
+Hint log:
+Used:
+UnUsed: use_push_down_agg_through_join
+SyntaxError:
+
+-- !with_hint_groupby_pushdown_with_where_clause --
+PhysicalResultSink
+--hashAgg[GLOBAL]
+----hashAgg[LOCAL]
+------hashJoin[INNER_JOIN] hashCondition=((t1.id = t2.id)) otherCondition=()
+--------PhysicalOlapScan[count_t]
+--------filter((t1.score > 50))
+----------PhysicalOlapScan[count_t]
+
+Hint log:
+Used:
+UnUsed: use_push_down_agg_through_join
+SyntaxError:
+
+-- !with_hint_groupby_pushdown_varied_aggregates --
+PhysicalResultSink
+--hashAgg[GLOBAL]
+----hashAgg[LOCAL]
+------hashJoin[INNER_JOIN] hashCondition=((t1.id = t2.id)) otherCondition=()
+--------PhysicalOlapScan[count_t]
+--------PhysicalOlapScan[count_t]
+
+Hint log:
+Used:
+UnUsed: use_push_down_agg_through_join
+SyntaxError:
+
+-- !with_hint_groupby_pushdown_with_order_by_limit --
+PhysicalResultSink
+--PhysicalTopN[MERGE_SORT]
+----PhysicalTopN[LOCAL_SORT]
+------hashAgg[GLOBAL]
+--------hashAgg[LOCAL]
+----------hashJoin[INNER_JOIN] hashCondition=((t1.id = t2.id)) otherCondition=()
+------------PhysicalOlapScan[count_t]
+------------PhysicalOlapScan[count_t]
+
+Hint log:
+Used:
+UnUsed: use_push_down_agg_through_join
+SyntaxError:
+
+-- !with_hint_groupby_pushdown_complex_join_condition --
+PhysicalResultSink
+--hashAgg[GLOBAL]
+----hashAgg[LOCAL]
+------hashJoin[INNER_JOIN] hashCondition=((t1.id = t2.id) and (t1.score = t2.score)) otherCondition=(( not (name = name)))
+--------PhysicalOlapScan[count_t]
+--------PhysicalOlapScan[count_t]
+
+Hint log:
+Used:
+UnUsed: use_push_down_agg_through_join
+SyntaxError:
+
+-- !with_hint_groupby_pushdown_nested_queries --
+PhysicalResultSink
+--hashAgg[GLOBAL]
+----hashAgg[LOCAL]
+------hashJoin[INNER_JOIN] hashCondition=((t1.id = t2.id)) otherCondition=()
+--------filter((count_t.id < 100))
+----------PhysicalOlapScan[count_t]
+--------filter((count_t.score > 20) and (t1.id < 100))
+----------PhysicalOlapScan[count_t]
+
+Hint log:
+Used:
+UnUsed: use_push_down_agg_through_join
+SyntaxError:
+
diff --git a/regression-test/data/nereids_rules_p0/eager_aggregate/push_down_count_through_join_one_side.out b/regression-test/data/nereids_rules_p0/eager_aggregate/push_down_count_through_join_one_side.out
index c3132e18112..a2a716e6e6e 100644
--- a/regression-test/data/nereids_rules_p0/eager_aggregate/push_down_count_through_join_one_side.out
+++ b/regression-test/data/nereids_rules_p0/eager_aggregate/push_down_count_through_join_one_side.out
@@ -4,8 +4,7 @@ PhysicalResultSink
--hashAgg[GLOBAL]
----hashAgg[LOCAL]
------hashJoin[INNER_JOIN] hashCondition=((t1.id = t2.id)) otherCondition=()
---------hashAgg[LOCAL]
-----------PhysicalOlapScan[count_t_one_side]
+--------PhysicalOlapScan[count_t_one_side]
--------PhysicalOlapScan[count_t_one_side]
-- !groupby_pushdown_left_join --
@@ -37,8 +36,7 @@ PhysicalResultSink
--hashAgg[GLOBAL]
----hashAgg[LOCAL]
------hashJoin[INNER_JOIN] hashCondition=((t1.id = t2.id)) otherCondition=()
---------hashAgg[LOCAL]
-----------PhysicalOlapScan[count_t_one_side]
+--------PhysicalOlapScan[count_t_one_side]
--------PhysicalOlapScan[count_t_one_side]
-- !groupby_pushdown_left_anti_join --
@@ -71,9 +69,8 @@ PhysicalResultSink
----hashAgg[LOCAL]
------hashJoin[INNER_JOIN] hashCondition=((t1.id = t2.id)) otherCondition=()
--------PhysicalOlapScan[count_t_one_side]
---------hashAgg[LOCAL]
-----------filter((count_t_one_side.score > 10))
-------------PhysicalOlapScan[count_t_one_side]
+--------filter((count_t_one_side.score > 10))
+----------PhysicalOlapScan[count_t_one_side]
-- !groupby_pushdown_outer_join --
PhysicalResultSink
@@ -89,9 +86,8 @@ PhysicalResultSink
----hashAgg[LOCAL]
------hashJoin[INNER_JOIN] hashCondition=((t1.id = t2.id)) otherCondition=()
--------PhysicalOlapScan[count_t_one_side]
---------hashAgg[LOCAL]
-----------filter((count_t_one_side.score > 10))
-------------PhysicalOlapScan[count_t_one_side]
+--------filter((count_t_one_side.score > 10))
+----------PhysicalOlapScan[count_t_one_side]
-- !groupby_pushdown_having --
PhysicalResultSink
@@ -99,8 +95,7 @@ PhysicalResultSink
----hashAgg[GLOBAL]
------hashAgg[LOCAL]
--------hashJoin[INNER_JOIN] hashCondition=((t1.id = t2.id)) otherCondition=()
-----------hashAgg[LOCAL]
-------------PhysicalOlapScan[count_t_one_side]
+----------PhysicalOlapScan[count_t_one_side]
----------PhysicalOlapScan[count_t_one_side]
-- !groupby_pushdown_mixed_aggregates --
@@ -115,12 +110,9 @@ PhysicalResultSink
PhysicalResultSink
--hashAgg[LOCAL]
----hashJoin[INNER_JOIN] hashCondition=((t1.name = t3.name)) otherCondition=()
-------hashAgg[GLOBAL]
---------hashAgg[LOCAL]
-----------hashJoin[INNER_JOIN] hashCondition=((t1.id = t2.id)) otherCondition=()
-------------hashAgg[LOCAL]
---------------PhysicalOlapScan[count_t_one_side]
-------------PhysicalOlapScan[count_t_one_side]
+------hashJoin[INNER_JOIN] hashCondition=((t1.id = t2.id)) otherCondition=()
+--------PhysicalOlapScan[count_t_one_side]
+--------PhysicalOlapScan[count_t_one_side]
------PhysicalOlapScan[count_t_one_side]
-- !groupby_pushdown_with_order_by --
@@ -130,8 +122,7 @@ PhysicalResultSink
------hashAgg[GLOBAL]
--------hashAgg[LOCAL]
----------hashJoin[INNER_JOIN] hashCondition=((t1.id = t2.id)) otherCondition=()
-------------hashAgg[LOCAL]
---------------PhysicalOlapScan[count_t_one_side]
+------------PhysicalOlapScan[count_t_one_side]
------------PhysicalOlapScan[count_t_one_side]
-- !groupby_pushdown_multiple_equal_conditions --
@@ -139,8 +130,7 @@ PhysicalResultSink
--hashAgg[GLOBAL]
----hashAgg[LOCAL]
------hashJoin[INNER_JOIN] hashCondition=((t1.id = t2.id) and (t1.name = t2.name)) otherCondition=()
---------hashAgg[LOCAL]
-----------PhysicalOlapScan[count_t_one_side]
+--------PhysicalOlapScan[count_t_one_side]
--------PhysicalOlapScan[count_t_one_side]
-- !groupby_pushdown_equal_conditions_with_aggregate --
@@ -148,18 +138,15 @@ PhysicalResultSink
--hashAgg[GLOBAL]
----hashAgg[LOCAL]
------hashJoin[INNER_JOIN] hashCondition=((t1.id = t2.id) and (t1.name = t2.name)) otherCondition=()
---------hashAgg[LOCAL]
-----------PhysicalOlapScan[count_t_one_side]
---------hashAgg[LOCAL]
-----------PhysicalOlapScan[count_t_one_side]
+--------PhysicalOlapScan[count_t_one_side]
+--------PhysicalOlapScan[count_t_one_side]
-- !groupby_pushdown_equal_conditions_non_aggregate_selection --
PhysicalResultSink
--hashAgg[GLOBAL]
----hashAgg[LOCAL]
------hashJoin[INNER_JOIN] hashCondition=((t1.id = t2.id) and (t1.name = t2.name)) otherCondition=()
---------hashAgg[LOCAL]
-----------PhysicalOlapScan[count_t_one_side]
+--------PhysicalOlapScan[count_t_one_side]
--------PhysicalOlapScan[count_t_one_side]
-- !groupby_pushdown_equal_conditions_non_aggregate_selection_with_aggregate --
@@ -167,10 +154,8 @@ PhysicalResultSink
--hashAgg[GLOBAL]
----hashAgg[LOCAL]
------hashJoin[INNER_JOIN] hashCondition=((t1.id = t2.id) and (t1.name = t2.name)) otherCondition=()
---------hashAgg[LOCAL]
-----------PhysicalOlapScan[count_t_one_side]
---------hashAgg[LOCAL]
-----------PhysicalOlapScan[count_t_one_side]
+--------PhysicalOlapScan[count_t_one_side]
+--------PhysicalOlapScan[count_t_one_side]
-- !groupby_pushdown_with_where_clause --
PhysicalResultSink
@@ -178,9 +163,8 @@ PhysicalResultSink
----hashAgg[LOCAL]
------hashJoin[INNER_JOIN] hashCondition=((t1.id = t2.id)) otherCondition=()
--------PhysicalOlapScan[count_t_one_side]
---------hashAgg[LOCAL]
-----------filter((t1.score > 50))
-------------PhysicalOlapScan[count_t_one_side]
+--------filter((t1.score > 50))
+----------PhysicalOlapScan[count_t_one_side]
-- !groupby_pushdown_varied_aggregates --
PhysicalResultSink
@@ -197,8 +181,7 @@ PhysicalResultSink
------hashAgg[GLOBAL]
--------hashAgg[LOCAL]
----------hashJoin[INNER_JOIN] hashCondition=((t1.id = t2.id)) otherCondition=()
-------------hashAgg[LOCAL]
---------------PhysicalOlapScan[count_t_one_side]
+------------PhysicalOlapScan[count_t_one_side]
------------PhysicalOlapScan[count_t_one_side]
-- !groupby_pushdown_alias_multiple_equal_conditions --
@@ -206,8 +189,7 @@ PhysicalResultSink
--hashAgg[GLOBAL]
----hashAgg[LOCAL]
------hashJoin[INNER_JOIN] hashCondition=((t1_alias.id = t2_alias.id) and (t1_alias.name = t2_alias.name)) otherCondition=()
---------hashAgg[LOCAL]
-----------PhysicalOlapScan[count_t_one_side]
+--------PhysicalOlapScan[count_t_one_side]
--------PhysicalOlapScan[count_t_one_side]
-- !groupby_pushdown_complex_join_condition --
@@ -233,9 +215,8 @@ PhysicalResultSink
------hashJoin[INNER_JOIN] hashCondition=((t1.id = t2.id)) otherCondition=()
--------filter((count_t_one_side.id < 100))
----------PhysicalOlapScan[count_t_one_side]
---------hashAgg[LOCAL]
-----------filter((count_t_one_side.score > 20) and (t1.id < 100))
-------------PhysicalOlapScan[count_t_one_side]
+--------filter((count_t_one_side.score > 20) and (t1.id < 100))
+----------PhysicalOlapScan[count_t_one_side]
-- !groupby_pushdown_basic --
PhysicalResultSink
@@ -416,3 +397,636 @@ PhysicalResultSink
--------filter((count_t_one_side.score > 20) and (t1.id < 100))
----------PhysicalOlapScan[count_t_one_side]
+-- !with_hint_groupby_pushdown_basic --
+PhysicalResultSink
+--hashAgg[GLOBAL]
+----hashAgg[LOCAL]
+------hashJoin[INNER_JOIN] hashCondition=((t1.id = t2.id)) otherCondition=()
+--------PhysicalOlapScan[count_t_one_side]
+--------PhysicalOlapScan[count_t_one_side]
+
+Hint log:
+Used:
+UnUsed: use_push_down_agg_through_join_one_side
+SyntaxError:
+
+-- !with_hint_groupby_pushdown_left_join --
+PhysicalResultSink
+--hashAgg[GLOBAL]
+----hashAgg[LOCAL]
+------hashJoin[LEFT_OUTER_JOIN] hashCondition=((t1.id = t2.id)) otherCondition=()
+--------PhysicalOlapScan[count_t_one_side]
+--------PhysicalOlapScan[count_t_one_side]
+
+Hint log:
+Used:
+UnUsed: use_push_down_agg_through_join_one_side
+SyntaxError:
+
+-- !with_hint_groupby_pushdown_right_join --
+PhysicalResultSink
+--hashAgg[GLOBAL]
+----hashAgg[LOCAL]
+------hashJoin[RIGHT_OUTER_JOIN] hashCondition=((t1.id = t2.id)) otherCondition=()
+--------PhysicalOlapScan[count_t_one_side]
+--------PhysicalOlapScan[count_t_one_side]
+
+Hint log:
+Used:
+UnUsed: use_push_down_agg_through_join_one_side
+SyntaxError:
+
+-- !with_hint_groupby_pushdown_full_join --
+PhysicalResultSink
+--hashAgg[GLOBAL]
+----hashAgg[LOCAL]
+------hashJoin[FULL_OUTER_JOIN] hashCondition=((t1.id = t2.id)) otherCondition=()
+--------PhysicalOlapScan[count_t_one_side]
+--------PhysicalOlapScan[count_t_one_side]
+
+Hint log:
+Used:
+UnUsed: use_push_down_agg_through_join_one_side
+SyntaxError:
+
+-- !with_hint_groupby_pushdown_left_semi_join --
+PhysicalResultSink
+--hashAgg[GLOBAL]
+----hashAgg[LOCAL]
+------hashJoin[INNER_JOIN] hashCondition=((t1.id = t2.id)) otherCondition=()
+--------PhysicalOlapScan[count_t_one_side]
+--------PhysicalOlapScan[count_t_one_side]
+
+Hint log:
+Used:
+UnUsed: use_push_down_agg_through_join_one_side
+SyntaxError:
+
+-- !with_hint_groupby_pushdown_left_anti_join --
+PhysicalResultSink
+--hashAgg[GLOBAL]
+----hashAgg[LOCAL]
+------hashJoin[LEFT_ANTI_JOIN] hashCondition=((t1.id = t2.id)) otherCondition=()
+--------PhysicalOlapScan[count_t_one_side]
+--------PhysicalOlapScan[count_t_one_side]
+
+Hint log:
+Used:
+UnUsed: use_push_down_agg_through_join_one_side
+SyntaxError:
+
+-- !with_hint_groupby_pushdown_complex_conditions --
+PhysicalResultSink
+--hashAgg[GLOBAL]
+----hashAgg[LOCAL]
+------hashJoin[INNER_JOIN] hashCondition=((t1.id = t2.id)) otherCondition=((t1.name < t2.name))
+--------PhysicalOlapScan[count_t_one_side]
+--------PhysicalOlapScan[count_t_one_side]
+
+Hint log:
+Used:
+UnUsed: use_push_down_agg_through_join_one_side
+SyntaxError:
+
+-- !with_hint_groupby_pushdown_with_aggregate --
+PhysicalResultSink
+--hashAgg[GLOBAL]
+----hashAgg[LOCAL]
+------hashJoin[INNER_JOIN] hashCondition=((t1.id = t2.id)) otherCondition=()
+--------PhysicalOlapScan[count_t_one_side]
+--------PhysicalOlapScan[count_t_one_side]
+
+Hint log:
+Used:
+UnUsed: use_push_down_agg_through_join_one_side
+SyntaxError:
+
+-- !with_hint_groupby_pushdown_subquery --
+PhysicalResultSink
+--hashAgg[GLOBAL]
+----hashAgg[LOCAL]
+------hashJoin[INNER_JOIN] hashCondition=((t1.id = t2.id)) otherCondition=()
+--------PhysicalOlapScan[count_t_one_side]
+--------filter((count_t_one_side.score > 10))
+----------PhysicalOlapScan[count_t_one_side]
+
+Hint log:
+Used:
+UnUsed: use_push_down_agg_through_join_one_side
+SyntaxError:
+
+-- !with_hint_groupby_pushdown_outer_join --
+PhysicalResultSink
+--hashAgg[GLOBAL]
+----hashAgg[LOCAL]
+------hashJoin[LEFT_OUTER_JOIN] hashCondition=((t1.id = t2.id)) otherCondition=()
+--------PhysicalOlapScan[count_t_one_side]
+--------PhysicalOlapScan[count_t_one_side]
+
+Hint log:
+Used:
+UnUsed: use_push_down_agg_through_join_one_side
+SyntaxError:
+
+-- !with_hint_groupby_pushdown_deep_subquery --
+PhysicalResultSink
+--hashAgg[GLOBAL]
+----hashAgg[LOCAL]
+------hashJoin[INNER_JOIN] hashCondition=((t1.id = t2.id)) otherCondition=()
+--------PhysicalOlapScan[count_t_one_side]
+--------filter((count_t_one_side.score > 10))
+----------PhysicalOlapScan[count_t_one_side]
+
+Hint log:
+Used:
+UnUsed: use_push_down_agg_through_join_one_side
+SyntaxError:
+
+-- !with_hint_groupby_pushdown_having --
+PhysicalResultSink
+--filter((count(score) > 100))
+----hashAgg[GLOBAL]
+------hashAgg[LOCAL]
+--------hashJoin[INNER_JOIN] hashCondition=((t1.id = t2.id)) otherCondition=()
+----------PhysicalOlapScan[count_t_one_side]
+----------PhysicalOlapScan[count_t_one_side]
+
+Hint log:
+Used:
+UnUsed: use_push_down_agg_through_join_one_side
+SyntaxError:
+
+-- !with_hint_groupby_pushdown_mixed_aggregates --
+PhysicalResultSink
+--hashAgg[GLOBAL]
+----hashAgg[LOCAL]
+------hashJoin[INNER_JOIN] hashCondition=((t1.id = t2.id)) otherCondition=()
+--------PhysicalOlapScan[count_t_one_side]
+--------PhysicalOlapScan[count_t_one_side]
+
+Hint log:
+Used:
+UnUsed: use_push_down_agg_through_join_one_side
+SyntaxError:
+
+-- !with_hint_groupby_pushdown_multi_table_join --
+PhysicalResultSink
+--hashAgg[LOCAL]
+----hashJoin[INNER_JOIN] hashCondition=((t1.name = t3.name)) otherCondition=()
+------hashJoin[INNER_JOIN] hashCondition=((t1.id = t2.id)) otherCondition=()
+--------PhysicalOlapScan[count_t_one_side]
+--------PhysicalOlapScan[count_t_one_side]
+------PhysicalOlapScan[count_t_one_side]
+
+Hint log:
+Used:
+UnUsed: use_push_down_agg_through_join_one_side
+SyntaxError:
+
+-- !with_hint_groupby_pushdown_with_order_by --
+PhysicalResultSink
+--PhysicalQuickSort[MERGE_SORT]
+----PhysicalQuickSort[LOCAL_SORT]
+------hashAgg[GLOBAL]
+--------hashAgg[LOCAL]
+----------hashJoin[INNER_JOIN] hashCondition=((t1.id = t2.id)) otherCondition=()
+------------PhysicalOlapScan[count_t_one_side]
+------------PhysicalOlapScan[count_t_one_side]
+
+Hint log:
+Used:
+UnUsed: use_push_down_agg_through_join_one_side
+SyntaxError:
+
+-- !with_hint_groupby_pushdown_multiple_equal_conditions --
+PhysicalResultSink
+--hashAgg[GLOBAL]
+----hashAgg[LOCAL]
+------hashJoin[INNER_JOIN] hashCondition=((t1.id = t2.id) and (t1.name = t2.name)) otherCondition=()
+--------PhysicalOlapScan[count_t_one_side]
+--------PhysicalOlapScan[count_t_one_side]
+
+Hint log:
+Used:
+UnUsed: use_push_down_agg_through_join_one_side
+SyntaxError:
+
+-- !with_hint_groupby_pushdown_equal_conditions_with_aggregate --
+PhysicalResultSink
+--hashAgg[GLOBAL]
+----hashAgg[LOCAL]
+------hashJoin[INNER_JOIN] hashCondition=((t1.id = t2.id) and (t1.name = t2.name)) otherCondition=()
+--------PhysicalOlapScan[count_t_one_side]
+--------PhysicalOlapScan[count_t_one_side]
+
+Hint log:
+Used:
+UnUsed: use_push_down_agg_through_join_one_side
+SyntaxError:
+
+-- !with_hint_groupby_pushdown_equal_conditions_non_aggregate_selection --
+PhysicalResultSink
+--hashAgg[GLOBAL]
+----hashAgg[LOCAL]
+------hashJoin[INNER_JOIN] hashCondition=((t1.id = t2.id) and (t1.name = t2.name)) otherCondition=()
+--------PhysicalOlapScan[count_t_one_side]
+--------PhysicalOlapScan[count_t_one_side]
+
+Hint log:
+Used:
+UnUsed: use_push_down_agg_through_join_one_side
+SyntaxError:
+
+-- !with_hint_groupby_pushdown_equal_conditions_non_aggregate_selection_with_aggregate --
+PhysicalResultSink
+--hashAgg[GLOBAL]
+----hashAgg[LOCAL]
+------hashJoin[INNER_JOIN] hashCondition=((t1.id = t2.id) and (t1.name = t2.name)) otherCondition=()
+--------PhysicalOlapScan[count_t_one_side]
+--------PhysicalOlapScan[count_t_one_side]
+
+Hint log:
+Used:
+UnUsed: use_push_down_agg_through_join_one_side
+SyntaxError:
+
+-- !with_hint_groupby_pushdown_with_where_clause --
+PhysicalResultSink
+--hashAgg[GLOBAL]
+----hashAgg[LOCAL]
+------hashJoin[INNER_JOIN] hashCondition=((t1.id = t2.id)) otherCondition=()
+--------PhysicalOlapScan[count_t_one_side]
+--------filter((t1.score > 50))
+----------PhysicalOlapScan[count_t_one_side]
+
+Hint log:
+Used:
+UnUsed: use_push_down_agg_through_join_one_side
+SyntaxError:
+
+-- !with_hint_groupby_pushdown_varied_aggregates --
+PhysicalResultSink
+--hashAgg[GLOBAL]
+----hashAgg[LOCAL]
+------hashJoin[INNER_JOIN] hashCondition=((t1.id = t2.id)) otherCondition=()
+--------PhysicalOlapScan[count_t_one_side]
+--------PhysicalOlapScan[count_t_one_side]
+
+Hint log:
+Used:
+UnUsed: use_push_down_agg_through_join_one_side
+SyntaxError:
+
+-- !with_hint_groupby_pushdown_with_order_by_limit --
+PhysicalResultSink
+--PhysicalTopN[MERGE_SORT]
+----PhysicalTopN[LOCAL_SORT]
+------hashAgg[GLOBAL]
+--------hashAgg[LOCAL]
+----------hashJoin[INNER_JOIN] hashCondition=((t1.id = t2.id)) otherCondition=()
+------------PhysicalOlapScan[count_t_one_side]
+------------PhysicalOlapScan[count_t_one_side]
+
+Hint log:
+Used:
+UnUsed: use_push_down_agg_through_join_one_side
+SyntaxError:
+
+-- !with_hint_groupby_pushdown_alias_multiple_equal_conditions --
+PhysicalResultSink
+--hashAgg[GLOBAL]
+----hashAgg[LOCAL]
+------hashJoin[INNER_JOIN] hashCondition=((t1_alias.id = t2_alias.id) and (t1_alias.name = t2_alias.name)) otherCondition=()
+--------PhysicalOlapScan[count_t_one_side]
+--------PhysicalOlapScan[count_t_one_side]
+
+Hint log:
+Used:
+UnUsed: use_push_down_agg_through_join_one_side
+SyntaxError:
+
+-- !with_hint_groupby_pushdown_complex_join_condition --
+PhysicalResultSink
+--hashAgg[GLOBAL]
+----hashAgg[LOCAL]
+------hashJoin[INNER_JOIN] hashCondition=((t1.id = t2.id) and (t1.score = t2.score)) otherCondition=(( not (name = name)))
+--------PhysicalOlapScan[count_t_one_side]
+--------PhysicalOlapScan[count_t_one_side]
+
+Hint log:
+Used:
+UnUsed: use_push_down_agg_through_join_one_side
+SyntaxError:
+
+-- !with_hint_groupby_pushdown_function_processed_columns --
+PhysicalResultSink
+--hashAgg[GLOBAL]
+----hashAgg[LOCAL]
+------hashJoin[INNER_JOIN] hashCondition=((t1.id = t2.id)) otherCondition=()
+--------PhysicalOlapScan[count_t_one_side]
+--------PhysicalOlapScan[count_t_one_side]
+
+Hint log:
+Used:
+UnUsed: use_push_down_agg_through_join_one_side
+SyntaxError:
+
+-- !with_hint_groupby_pushdown_nested_queries --
+PhysicalResultSink
+--hashAgg[GLOBAL]
+----hashAgg[LOCAL]
+------hashJoin[INNER_JOIN] hashCondition=((t1.id = t2.id)) otherCondition=()
+--------filter((count_t_one_side.id < 100))
+----------PhysicalOlapScan[count_t_one_side]
+--------filter((count_t_one_side.score > 20) and (t1.id < 100))
+----------PhysicalOlapScan[count_t_one_side]
+
+Hint log:
+Used:
+UnUsed: use_push_down_agg_through_join_one_side
+SyntaxError:
+
+-- !with_hint_groupby_pushdown_basic --
+PhysicalResultSink
+--hashAgg[GLOBAL]
+----hashAgg[LOCAL]
+------hashJoin[INNER_JOIN] hashCondition=((t1.id = t2.id)) otherCondition=()
+--------PhysicalOlapScan[count_t_one_side]
+--------PhysicalOlapScan[count_t_one_side]
+
+Hint log:
+Used:
+UnUsed: use_push_down_agg_through_join_one_side
+SyntaxError:
+
+-- !with_hint_groupby_pushdown_left_join --
+PhysicalResultSink
+--hashAgg[GLOBAL]
+----hashAgg[LOCAL]
+------hashJoin[LEFT_OUTER_JOIN] hashCondition=((t1.id = t2.id)) otherCondition=()
+--------PhysicalOlapScan[count_t_one_side]
+--------PhysicalOlapScan[count_t_one_side]
+
+Hint log:
+Used:
+UnUsed: use_push_down_agg_through_join_one_side
+SyntaxError:
+
+-- !with_hint_groupby_pushdown_right_join --
+PhysicalResultSink
+--hashAgg[GLOBAL]
+----hashAgg[LOCAL]
+------hashJoin[RIGHT_OUTER_JOIN] hashCondition=((t1.id = t2.id)) otherCondition=()
+--------PhysicalOlapScan[count_t_one_side]
+--------PhysicalOlapScan[count_t_one_side]
+
+Hint log:
+Used:
+UnUsed: use_push_down_agg_through_join_one_side
+SyntaxError:
+
+-- !with_hint_groupby_pushdown_full_join --
+PhysicalResultSink
+--hashAgg[GLOBAL]
+----hashAgg[LOCAL]
+------hashJoin[FULL_OUTER_JOIN] hashCondition=((t1.id = t2.id)) otherCondition=()
+--------PhysicalOlapScan[count_t_one_side]
+--------PhysicalOlapScan[count_t_one_side]
+
+Hint log:
+Used:
+UnUsed: use_push_down_agg_through_join_one_side
+SyntaxError:
+
+-- !with_hint_groupby_pushdown_left_semi_join --
+PhysicalResultSink
+--hashAgg[GLOBAL]
+----hashAgg[LOCAL]
+------hashJoin[INNER_JOIN] hashCondition=((t1.id = t2.id)) otherCondition=()
+--------PhysicalOlapScan[count_t_one_side]
+--------PhysicalOlapScan[count_t_one_side]
+
+Hint log:
+Used:
+UnUsed: use_push_down_agg_through_join_one_side
+SyntaxError:
+
+-- !with_hint_groupby_pushdown_left_anti_join --
+PhysicalResultSink
+--hashAgg[GLOBAL]
+----hashAgg[LOCAL]
+------hashJoin[LEFT_ANTI_JOIN] hashCondition=((t1.id = t2.id)) otherCondition=()
+--------PhysicalOlapScan[count_t_one_side]
+--------PhysicalOlapScan[count_t_one_side]
+
+Hint log:
+Used:
+UnUsed: use_push_down_agg_through_join_one_side
+SyntaxError:
+
+-- !with_hint_groupby_pushdown_complex_conditions --
+PhysicalResultSink
+--hashAgg[GLOBAL]
+----hashAgg[LOCAL]
+------hashJoin[INNER_JOIN] hashCondition=((t1.id = t2.id)) otherCondition=((t1.name < t2.name))
+--------PhysicalOlapScan[count_t_one_side]
+--------PhysicalOlapScan[count_t_one_side]
+
+Hint log:
+Used:
+UnUsed: use_push_down_agg_through_join_one_side
+SyntaxError:
+
+-- !with_hint_groupby_pushdown_with_aggregate --
+PhysicalResultSink
+--hashAgg[GLOBAL]
+----hashAgg[LOCAL]
+------hashJoin[INNER_JOIN] hashCondition=((t1.id = t2.id)) otherCondition=()
+--------PhysicalOlapScan[count_t_one_side]
+--------PhysicalOlapScan[count_t_one_side]
+
+Hint log:
+Used:
+UnUsed: use_push_down_agg_through_join_one_side
+SyntaxError:
+
+-- !with_hint_groupby_pushdown_subquery --
+PhysicalResultSink
+--hashAgg[GLOBAL]
+----hashAgg[LOCAL]
+------hashJoin[INNER_JOIN] hashCondition=((t1.id = t2.id)) otherCondition=()
+--------PhysicalOlapScan[count_t_one_side]
+--------filter((count_t_one_side.score > 10))
+----------PhysicalOlapScan[count_t_one_side]
+
+Hint log:
+Used:
+UnUsed: use_push_down_agg_through_join_one_side
+SyntaxError:
+
+-- !with_hint_groupby_pushdown_outer_join --
+PhysicalResultSink
+--hashAgg[GLOBAL]
+----hashAgg[LOCAL]
+------hashJoin[LEFT_OUTER_JOIN] hashCondition=((t1.id = t2.id)) otherCondition=()
+--------PhysicalOlapScan[count_t_one_side]
+--------PhysicalOlapScan[count_t_one_side]
+
+Hint log:
+Used:
+UnUsed: use_push_down_agg_through_join_one_side
+SyntaxError:
+
+-- !with_hint_groupby_pushdown_deep_subquery --
+PhysicalResultSink
+--hashAgg[GLOBAL]
+----hashAgg[LOCAL]
+------hashJoin[INNER_JOIN] hashCondition=((t1.id = t2.id)) otherCondition=()
+--------PhysicalOlapScan[count_t_one_side]
+--------filter((count_t_one_side.score > 10))
+----------PhysicalOlapScan[count_t_one_side]
+
+Hint log:
+Used:
+UnUsed: use_push_down_agg_through_join_one_side
+SyntaxError:
+
+-- !with_hint_groupby_pushdown_having --
+PhysicalResultSink
+--filter((count(*) > 100))
+----hashAgg[GLOBAL]
+------hashAgg[LOCAL]
+--------hashJoin[INNER_JOIN] hashCondition=((t1.id = t2.id)) otherCondition=()
+----------PhysicalOlapScan[count_t_one_side]
+----------PhysicalOlapScan[count_t_one_side]
+
+Hint log:
+Used:
+UnUsed: use_push_down_agg_through_join_one_side
+SyntaxError:
+
+-- !with_hint_groupby_pushdown_multi_table_join --
+PhysicalResultSink
+--hashAgg[LOCAL]
+----hashJoin[INNER_JOIN] hashCondition=((t1.name = t3.name)) otherCondition=()
+------hashJoin[INNER_JOIN] hashCondition=((t1.id = t2.id)) otherCondition=()
+--------PhysicalOlapScan[count_t_one_side]
+--------PhysicalOlapScan[count_t_one_side]
+------PhysicalOlapScan[count_t_one_side]
+
+Hint log:
+Used:
+UnUsed: use_push_down_agg_through_join_one_side
+SyntaxError:
+
+-- !with_hint_groupby_pushdown_with_order_by --
+PhysicalResultSink
+--PhysicalQuickSort[MERGE_SORT]
+----PhysicalQuickSort[LOCAL_SORT]
+------hashAgg[GLOBAL]
+--------hashAgg[LOCAL]
+----------hashJoin[INNER_JOIN] hashCondition=((t1.id = t2.id)) otherCondition=()
+------------PhysicalOlapScan[count_t_one_side]
+------------PhysicalOlapScan[count_t_one_side]
+
+Hint log:
+Used:
+UnUsed: use_push_down_agg_through_join_one_side
+SyntaxError:
+
+-- !with_hint_groupby_pushdown_multiple_equal_conditions --
+PhysicalResultSink
+--hashAgg[GLOBAL]
+----hashAgg[LOCAL]
+------hashJoin[INNER_JOIN] hashCondition=((t1.id = t2.id) and (t1.name = t2.name)) otherCondition=()
+--------PhysicalOlapScan[count_t_one_side]
+--------PhysicalOlapScan[count_t_one_side]
+
+Hint log:
+Used:
+UnUsed: use_push_down_agg_through_join_one_side
+SyntaxError:
+
+-- !with_hint_groupby_pushdown_equal_conditions_non_aggregate_selection --
+PhysicalResultSink
+--hashAgg[GLOBAL]
+----hashAgg[LOCAL]
+------hashJoin[INNER_JOIN] hashCondition=((t1.id = t2.id) and (t1.name = t2.name)) otherCondition=()
+--------PhysicalOlapScan[count_t_one_side]
+--------PhysicalOlapScan[count_t_one_side]
+
+Hint log:
+Used:
+UnUsed: use_push_down_agg_through_join_one_side
+SyntaxError:
+
+-- !with_hint_groupby_pushdown_with_where_clause --
+PhysicalResultSink
+--hashAgg[GLOBAL]
+----hashAgg[LOCAL]
+------hashJoin[INNER_JOIN] hashCondition=((t1.id = t2.id)) otherCondition=()
+--------PhysicalOlapScan[count_t_one_side]
+--------filter((t1.score > 50))
+----------PhysicalOlapScan[count_t_one_side]
+
+Hint log:
+Used:
+UnUsed: use_push_down_agg_through_join_one_side
+SyntaxError:
+
+-- !with_hint_groupby_pushdown_varied_aggregates --
+PhysicalResultSink
+--hashAgg[GLOBAL]
+----hashAgg[LOCAL]
+------hashJoin[INNER_JOIN] hashCondition=((t1.id = t2.id)) otherCondition=()
+--------PhysicalOlapScan[count_t_one_side]
+--------PhysicalOlapScan[count_t_one_side]
+
+Hint log:
+Used:
+UnUsed: use_push_down_agg_through_join_one_side
+SyntaxError:
+
+-- !with_hint_groupby_pushdown_with_order_by_limit --
+PhysicalResultSink
+--PhysicalTopN[MERGE_SORT]
+----PhysicalTopN[LOCAL_SORT]
+------hashAgg[GLOBAL]
+--------hashAgg[LOCAL]
+----------hashJoin[INNER_JOIN] hashCondition=((t1.id = t2.id)) otherCondition=()
+------------PhysicalOlapScan[count_t_one_side]
+------------PhysicalOlapScan[count_t_one_side]
+
+Hint log:
+Used:
+UnUsed: use_push_down_agg_through_join_one_side
+SyntaxError:
+
+-- !with_hint_groupby_pushdown_complex_join_condition --
+PhysicalResultSink
+--hashAgg[GLOBAL]
+----hashAgg[LOCAL]
+------hashJoin[INNER_JOIN] hashCondition=((t1.id = t2.id) and (t1.score = t2.score)) otherCondition=(( not (name = name)))
+--------PhysicalOlapScan[count_t_one_side]
+--------PhysicalOlapScan[count_t_one_side]
+
+Hint log:
+Used:
+UnUsed: use_push_down_agg_through_join_one_side
+SyntaxError:
+
+-- !with_hint_groupby_pushdown_nested_queries --
+PhysicalResultSink
+--hashAgg[GLOBAL]
+----hashAgg[LOCAL]
+------hashJoin[INNER_JOIN] hashCondition=((t1.id = t2.id)) otherCondition=()
+--------filter((count_t_one_side.id < 100))
+----------PhysicalOlapScan[count_t_one_side]
+--------filter((count_t_one_side.score > 20) and (t1.id < 100))
+----------PhysicalOlapScan[count_t_one_side]
+
+Hint log:
+Used:
+UnUsed: use_push_down_agg_through_join_one_side
+SyntaxError:
+
diff --git a/regression-test/data/nereids_rules_p0/eager_aggregate/push_down_max_through_join.out b/regression-test/data/nereids_rules_p0/eager_aggregate/push_down_max_through_join.out
index 7725ac6eee3..281de8ea61b 100644
--- a/regression-test/data/nereids_rules_p0/eager_aggregate/push_down_max_through_join.out
+++ b/regression-test/data/nereids_rules_p0/eager_aggregate/push_down_max_through_join.out
@@ -4,8 +4,7 @@ PhysicalResultSink
--hashAgg[GLOBAL]
----hashAgg[LOCAL]
------hashJoin[INNER_JOIN] hashCondition=((t1.id = t2.id)) otherCondition=()
---------hashAgg[LOCAL]
-----------PhysicalOlapScan[max_t]
+--------PhysicalOlapScan[max_t]
--------PhysicalOlapScan[max_t]
-- !groupby_pushdown_left_join --
@@ -37,8 +36,7 @@ PhysicalResultSink
--hashAgg[GLOBAL]
----hashAgg[LOCAL]
------hashJoin[INNER_JOIN] hashCondition=((t1.id = t2.id)) otherCondition=()
---------hashAgg[LOCAL]
-----------PhysicalOlapScan[max_t]
+--------PhysicalOlapScan[max_t]
--------PhysicalOlapScan[max_t]
-- !groupby_pushdown_left_anti_join --
@@ -71,9 +69,8 @@ PhysicalResultSink
----hashAgg[LOCAL]
------hashJoin[INNER_JOIN] hashCondition=((t1.id = t2.id)) otherCondition=()
--------PhysicalOlapScan[max_t]
---------hashAgg[LOCAL]
-----------filter((max_t.score > 10))
-------------PhysicalOlapScan[max_t]
+--------filter((max_t.score > 10))
+----------PhysicalOlapScan[max_t]
-- !groupby_pushdown_outer_join --
PhysicalResultSink
@@ -89,9 +86,8 @@ PhysicalResultSink
----hashAgg[LOCAL]
------hashJoin[INNER_JOIN] hashCondition=((t1.id = t2.id)) otherCondition=()
--------PhysicalOlapScan[max_t]
---------hashAgg[LOCAL]
-----------filter((max_t.score > 10))
-------------PhysicalOlapScan[max_t]
+--------filter((max_t.score > 10))
+----------PhysicalOlapScan[max_t]
-- !groupby_pushdown_having --
PhysicalResultSink
@@ -99,8 +95,7 @@ PhysicalResultSink
----hashAgg[GLOBAL]
------hashAgg[LOCAL]
--------hashJoin[INNER_JOIN] hashCondition=((t1.id = t2.id)) otherCondition=()
-----------hashAgg[LOCAL]
-------------PhysicalOlapScan[max_t]
+----------PhysicalOlapScan[max_t]
----------PhysicalOlapScan[max_t]
-- !groupby_pushdown_mixed_aggregates --
@@ -113,15 +108,13 @@ PhysicalResultSink
-- !groupby_pushdown_multi_table_join --
PhysicalResultSink
---hashAgg[LOCAL]
-----hashJoin[INNER_JOIN] hashCondition=((t1.name = t3.name)) otherCondition=()
-------hashAgg[GLOBAL]
---------hashAgg[LOCAL]
-----------hashJoin[INNER_JOIN] hashCondition=((t1.id = t2.id)) otherCondition=()
-------------hashAgg[LOCAL]
---------------PhysicalOlapScan[max_t]
-------------PhysicalOlapScan[max_t]
-------PhysicalOlapScan[max_t]
+--hashAgg[GLOBAL]
+----hashAgg[LOCAL]
+------hashJoin[INNER_JOIN] hashCondition=((t1.name = t3.name)) otherCondition=()
+--------hashJoin[INNER_JOIN] hashCondition=((t1.id = t2.id)) otherCondition=()
+----------PhysicalOlapScan[max_t]
+----------PhysicalOlapScan[max_t]
+--------PhysicalOlapScan[max_t]
-- !groupby_pushdown_with_order_by --
PhysicalResultSink
@@ -130,8 +123,7 @@ PhysicalResultSink
------hashAgg[GLOBAL]
--------hashAgg[LOCAL]
----------hashJoin[INNER_JOIN] hashCondition=((t1.id = t2.id)) otherCondition=()
-------------hashAgg[LOCAL]
---------------PhysicalOlapScan[max_t]
+------------PhysicalOlapScan[max_t]
------------PhysicalOlapScan[max_t]
-- !groupby_pushdown_multiple_equal_conditions --
@@ -139,8 +131,7 @@ PhysicalResultSink
--hashAgg[GLOBAL]
----hashAgg[LOCAL]
------hashJoin[INNER_JOIN] hashCondition=((t1.id = t2.id) and (t1.name = t2.name)) otherCondition=()
---------hashAgg[LOCAL]
-----------PhysicalOlapScan[max_t]
+--------PhysicalOlapScan[max_t]
--------PhysicalOlapScan[max_t]
-- !groupby_pushdown_equal_conditions_with_aggregate --
@@ -148,18 +139,15 @@ PhysicalResultSink
--hashAgg[GLOBAL]
----hashAgg[LOCAL]
------hashJoin[INNER_JOIN] hashCondition=((t1.id = t2.id) and (t1.name = t2.name)) otherCondition=()
---------hashAgg[LOCAL]
-----------PhysicalOlapScan[max_t]
---------hashAgg[LOCAL]
-----------PhysicalOlapScan[max_t]
+--------PhysicalOlapScan[max_t]
+--------PhysicalOlapScan[max_t]
-- !groupby_pushdown_equal_conditions_non_aggregate_selection --
PhysicalResultSink
--hashAgg[GLOBAL]
----hashAgg[LOCAL]
------hashJoin[INNER_JOIN] hashCondition=((t1.id = t2.id) and (t1.name = t2.name)) otherCondition=()
---------hashAgg[LOCAL]
-----------PhysicalOlapScan[max_t]
+--------PhysicalOlapScan[max_t]
--------PhysicalOlapScan[max_t]
-- !groupby_pushdown_equal_conditions_non_aggregate_selection_with_aggregate --
@@ -167,10 +155,8 @@ PhysicalResultSink
--hashAgg[GLOBAL]
----hashAgg[LOCAL]
------hashJoin[INNER_JOIN] hashCondition=((t1.id = t2.id) and (t1.name = t2.name)) otherCondition=()
---------hashAgg[LOCAL]
-----------PhysicalOlapScan[max_t]
---------hashAgg[LOCAL]
-----------PhysicalOlapScan[max_t]
+--------PhysicalOlapScan[max_t]
+--------PhysicalOlapScan[max_t]
-- !groupby_pushdown_with_where_clause --
PhysicalResultSink
@@ -178,9 +164,8 @@ PhysicalResultSink
----hashAgg[LOCAL]
------hashJoin[INNER_JOIN] hashCondition=((t1.id = t2.id)) otherCondition=()
--------PhysicalOlapScan[max_t]
---------hashAgg[LOCAL]
-----------filter((t1.score > 50))
-------------PhysicalOlapScan[max_t]
+--------filter((t1.score > 50))
+----------PhysicalOlapScan[max_t]
-- !groupby_pushdown_varied_aggregates --
PhysicalResultSink
@@ -197,8 +182,7 @@ PhysicalResultSink
------hashAgg[GLOBAL]
--------hashAgg[LOCAL]
----------hashJoin[INNER_JOIN] hashCondition=((t1.id = t2.id)) otherCondition=()
-------------hashAgg[LOCAL]
---------------PhysicalOlapScan[max_t]
+------------PhysicalOlapScan[max_t]
------------PhysicalOlapScan[max_t]
-- !groupby_pushdown_alias_multiple_equal_conditions --
@@ -206,8 +190,7 @@ PhysicalResultSink
--hashAgg[GLOBAL]
----hashAgg[LOCAL]
------hashJoin[INNER_JOIN] hashCondition=((t1_alias.id = t2_alias.id) and (t1_alias.name = t2_alias.name)) otherCondition=()
---------hashAgg[LOCAL]
-----------PhysicalOlapScan[max_t]
+--------PhysicalOlapScan[max_t]
--------PhysicalOlapScan[max_t]
-- !groupby_pushdown_complex_join_condition --
@@ -233,7 +216,356 @@ PhysicalResultSink
------hashJoin[INNER_JOIN] hashCondition=((t1.id = t2.id)) otherCondition=()
--------filter((max_t.id < 100))
----------PhysicalOlapScan[max_t]
+--------filter((max_t.score > 20) and (t1.id < 100))
+----------PhysicalOlapScan[max_t]
+
+-- !with_hint_groupby_pushdown_basic --
+PhysicalResultSink
+--hashAgg[GLOBAL]
+----hashAgg[LOCAL]
+------hashJoin[INNER_JOIN] hashCondition=((t1.id = t2.id)) otherCondition=()
+--------PhysicalOlapScan[max_t]
+--------PhysicalOlapScan[max_t]
+
+Hint log:
+Used:
+UnUsed: use_push_down_agg_through_join_one_side
+SyntaxError:
+
+-- !with_hint_groupby_pushdown_left_join --
+PhysicalResultSink
+--hashAgg[GLOBAL]
+----hashAgg[LOCAL]
+------hashJoin[LEFT_OUTER_JOIN] hashCondition=((t1.id = t2.id)) otherCondition=()
+--------PhysicalOlapScan[max_t]
+--------PhysicalOlapScan[max_t]
+
+Hint log:
+Used:
+UnUsed: use_push_down_agg_through_join_one_side
+SyntaxError:
... 3386 lines suppressed ...
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org
For additional commands, e-mail: commits-help@doris.apache.org