This is an automated email from the ASF dual-hosted git repository.
mrhhsg pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/doris.git
The following commit(s) were added to refs/heads/master by this push:
new 4b02c79f43a [improvement](fe) Rewrite set operations to joins when
spill enabled (#64125)
4b02c79f43a is described below
commit 4b02c79f43a1e42222aa0ba31dca0646193edca4
Author: Jerry Hu <[email protected]>
AuthorDate: Fri Oct 30 10:57:23 2026 +0800
[improvement](fe) Rewrite set operations to joins when spill enabled
(#64125)
### What problem does this PR solve?
Issue Number: None
Related PR: None
Problem Summary: When query spill or force-spill mode is enabled,
DISTINCT INTERSECT/EXCEPT/MINUS still keep set-operation plans instead
of preferring spill-capable join operators. This PR rewrites supported
DISTINCT INTERSECT to distinct aggregate + left semi join, and DISTINCT
EXCEPT/MINUS to distinct aggregate + left anti join. The rewrite uses
null-safe equality to preserve set semantics for NULL values, and keeps
the original set-operation path when spill is disabled, force spill is
disabled, the qualifier is ALL, or the output type is not supported by
both aggregate grouping and hash join equality keys.
The rewrite is intentionally limited to primitive output types,
excluding JSON, object/variant, and VARBINARY, so unsupported
semi-structured outputs keep the original set-operation implementation.
### Release note
Rewrite spill-enabled DISTINCT INTERSECT/EXCEPT/MINUS plans to
spill-capable joins for supported output types.
### Check List (For Author)
- Test: Unit Test / Regression test
- `git diff --check HEAD^..HEAD`
- `./run-fe-ut.sh --run
org.apache.doris.nereids.rules.rewrite.RewriteSetOperationToJoinWhenSpillTest`
- `doris-local-regression --network 10.26.20.3/24 all -d
query_p0/set_operations -s except`
- Behavior changed: Yes. With `enable_spill = true` or
`enable_force_spill = true`, supported DISTINCT INTERSECT/EXCEPT/MINUS
plans are rewritten to spill-capable aggregate + join plans.
- Does this need documentation: No
---
.../doris/nereids/jobs/executor/Rewriter.java | 7 +-
.../org/apache/doris/nereids/rules/RuleType.java | 2 +
.../RewriteSetOperationToJoinWhenSpill.java | 136 +++++++++++++
.../RewriteSetOperationToJoinWhenSpillTest.java | 220 +++++++++++++++++++++
.../suites/empty_relation/eliminate_empty.groovy | 2 +
.../constant_propagation.groovy | 2 +
.../filter_push_down/push_filter_through.groovy | 2 +
.../extend_infer_equal_predicate.groovy | 2 +
.../infer_predicate/infer_intersect_except.groovy | 2 +
.../pull_up_predicate_set_op.groovy | 2 +
.../limit_push_down/limit_push_down.groovy | 2 +
.../limit_push_down/order_push_down.groovy | 2 +
.../predicate_infer/infer_predicate.groovy | 2 +
.../add_project_for_unique_function.groovy | 2 +
...r_predicates_set_op_with_unique_function.groovy | 4 +
...rough_set_operation_with_unique_function.groovy | 2 +
.../suites/query_p0/runtimefilterV2/rfv2.groovy | 2 +
.../suites/query_p0/set_operations/except.groovy | 2 +
.../tpcds_sf100/noStatsRfPrune/query14.groovy | 2 +
.../tpcds_sf100/noStatsRfPrune/query38.groovy | 2 +
.../tpcds_sf100/noStatsRfPrune/query8.groovy | 2 +
.../tpcds_sf100/noStatsRfPrune/query87.groovy | 2 +
.../tpcds_sf100/no_stats_shape/query14.groovy | 2 +
.../tpcds_sf100/no_stats_shape/query38.groovy | 2 +
.../tpcds_sf100/no_stats_shape/query8.groovy | 2 +
.../tpcds_sf100/no_stats_shape/query87.groovy | 2 +
.../tpcds_sf100/rf_prune/query14.groovy | 2 +
.../tpcds_sf100/rf_prune/query38.groovy | 2 +
.../shape_check/tpcds_sf100/rf_prune/query8.groovy | 2 +
.../tpcds_sf100/rf_prune/query87.groovy | 2 +
.../shape_check/tpcds_sf100/shape/query14.groovy | 2 +
.../shape_check/tpcds_sf100/shape/query38.groovy | 2 +
.../shape_check/tpcds_sf100/shape/query8.groovy | 2 +
.../shape_check/tpcds_sf100/shape/query87.groovy | 2 +
.../tpcds_sf1000/bs_downgrade_shape/query8.groovy | 2 +
.../tpcds_sf1000/dphyper/query14.groovy | 2 +
.../tpcds_sf1000/dphyper/query38.groovy | 2 +
.../shape_check/tpcds_sf1000/dphyper/query8.groovy | 2 +
.../tpcds_sf1000/dphyper/query87.groovy | 2 +
.../shape_check/tpcds_sf1000/hint/query14.groovy | 2 +
.../shape_check/tpcds_sf1000/hint/query38.groovy | 2 +
.../shape_check/tpcds_sf1000/hint/query8.groovy | 2 +
.../shape_check/tpcds_sf1000/hint/query87.groovy | 2 +
.../shape_check/tpcds_sf1000/shape/query14.groovy | 2 +
.../shape_check/tpcds_sf1000/shape/query38.groovy | 2 +
.../shape_check/tpcds_sf1000/shape/query8.groovy | 2 +
.../shape_check/tpcds_sf1000/shape/query87.groovy | 2 +
.../tpcds_sf1000_constraints/shape/query14.groovy | 2 +
.../tpcds_sf1000_constraints/shape/query38.groovy | 2 +
.../tpcds_sf1000_constraints/shape/query8.groovy | 2 +
.../tpcds_sf1000_constraints/shape/query87.groovy | 2 +
.../tpcds_sf1000_nopkfk/shape/query14.groovy | 2 +
.../tpcds_sf1000_nopkfk/shape/query38.groovy | 2 +
.../tpcds_sf1000_nopkfk/shape/query8.groovy | 2 +
.../tpcds_sf1000_nopkfk/shape/query87.groovy | 2 +
.../tpcds_sf10t_orc/shape/query14.groovy | 2 +
.../tpcds_sf10t_orc/shape/query38.groovy | 2 +
.../tpcds_sf10t_orc/shape/query8.groovy | 2 +
.../tpcds_sf10t_orc/shape/query87.groovy | 2 +
.../runtime_filter/test_pushdown_setop.groovy | 2 +
60 files changed, 477 insertions(+), 2 deletions(-)
diff --git
a/fe/fe-core/src/main/java/org/apache/doris/nereids/jobs/executor/Rewriter.java
b/fe/fe-core/src/main/java/org/apache/doris/nereids/jobs/executor/Rewriter.java
index ef3d22892a8..0be60ca1413 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
@@ -154,6 +154,7 @@ import
org.apache.doris.nereids.rules.rewrite.ReduceAggregateChildOutputRows;
import org.apache.doris.nereids.rules.rewrite.ReorderJoin;
import org.apache.doris.nereids.rules.rewrite.RewriteCteChildren;
import org.apache.doris.nereids.rules.rewrite.RewriteSearchToSlots;
+import
org.apache.doris.nereids.rules.rewrite.RewriteSetOperationToJoinWhenSpill;
import org.apache.doris.nereids.rules.rewrite.RewriteSimpleAggToConstantRule;
import org.apache.doris.nereids.rules.rewrite.SaltJoin;
import org.apache.doris.nereids.rules.rewrite.SemiJoinCommute;
@@ -356,7 +357,8 @@ public class Rewriter extends AbstractBatchJobExecutor {
bottomUp(new EliminateEmptyRelation()),
// when union has empty relation child and
constantExprsList is not empty,
// after EliminateEmptyRelation, project
can be pushed into union
- topDown(new PushProjectIntoUnion())
+ topDown(new PushProjectIntoUnion()),
+ topDown(new
RewriteSetOperationToJoinWhenSpill())
),
topic("infer In-predicate from Or-predicate",
topDown(new InferInPredicateFromOr())
@@ -611,7 +613,8 @@ public class Rewriter extends AbstractBatchJobExecutor {
bottomUp(new EliminateEmptyRelation()),
// when union has empty relation child and
constantExprsList is not empty,
// after EliminateEmptyRelation, project can
be pushed into union
- topDown(new PushProjectIntoUnion())
+ topDown(new PushProjectIntoUnion()),
+ topDown(new
RewriteSetOperationToJoinWhenSpill())
)
),
topic("infer In-predicate from Or-predicate",
diff --git
a/fe/fe-core/src/main/java/org/apache/doris/nereids/rules/RuleType.java
b/fe/fe-core/src/main/java/org/apache/doris/nereids/rules/RuleType.java
index e06d4e10cd1..e79bee43661 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/nereids/rules/RuleType.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/nereids/rules/RuleType.java
@@ -356,6 +356,8 @@ public enum RuleType {
PUSH_PROJECT_INTO_UNION(RuleTypeClass.REWRITE),
MERGE_SET_OPERATION(RuleTypeClass.REWRITE),
MERGE_SET_OPERATION_EXCEPT(RuleTypeClass.REWRITE),
+ REWRITE_INTERSECT_TO_JOIN_WHEN_SPILL(RuleTypeClass.REWRITE),
+ REWRITE_EXCEPT_TO_JOIN_WHEN_SPILL(RuleTypeClass.REWRITE),
MERGE_TOP_N(RuleTypeClass.REWRITE),
BUILD_AGG_FOR_UNION(RuleTypeClass.REWRITE),
COUNT_DISTINCT_REWRITE(RuleTypeClass.REWRITE),
diff --git
a/fe/fe-core/src/main/java/org/apache/doris/nereids/rules/rewrite/RewriteSetOperationToJoinWhenSpill.java
b/fe/fe-core/src/main/java/org/apache/doris/nereids/rules/rewrite/RewriteSetOperationToJoinWhenSpill.java
new file mode 100644
index 00000000000..af77002652c
--- /dev/null
+++
b/fe/fe-core/src/main/java/org/apache/doris/nereids/rules/rewrite/RewriteSetOperationToJoinWhenSpill.java
@@ -0,0 +1,136 @@
+// 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.rules.rewrite;
+
+import org.apache.doris.nereids.hint.DistributeHint;
+import org.apache.doris.nereids.rules.Rule;
+import org.apache.doris.nereids.rules.RuleType;
+import org.apache.doris.nereids.trees.expressions.Alias;
+import org.apache.doris.nereids.trees.expressions.Expression;
+import org.apache.doris.nereids.trees.expressions.NamedExpression;
+import org.apache.doris.nereids.trees.expressions.NullSafeEqual;
+import org.apache.doris.nereids.trees.expressions.Slot;
+import org.apache.doris.nereids.trees.expressions.SlotReference;
+import org.apache.doris.nereids.trees.expressions.functions.scalar.Nullable;
+import org.apache.doris.nereids.trees.plans.DistributeType;
+import org.apache.doris.nereids.trees.plans.JoinType;
+import org.apache.doris.nereids.trees.plans.Plan;
+import org.apache.doris.nereids.trees.plans.algebra.SetOperation.Qualifier;
+import org.apache.doris.nereids.trees.plans.logical.LogicalAggregate;
+import org.apache.doris.nereids.trees.plans.logical.LogicalJoin;
+import org.apache.doris.nereids.trees.plans.logical.LogicalProject;
+import org.apache.doris.nereids.trees.plans.logical.LogicalSetOperation;
+import org.apache.doris.nereids.types.DataType;
+import org.apache.doris.nereids.util.ExpressionUtils;
+import org.apache.doris.qe.ConnectContext;
+
+import com.google.common.base.Preconditions;
+import com.google.common.collect.ImmutableList;
+
+import java.util.List;
+
+/**
+ * Rewrite DISTINCT intersect/except to spillable aggregate and join when
spill is enabled.
+ */
+public class RewriteSetOperationToJoinWhenSpill implements RewriteRuleFactory {
+
+ @Override
+ public List<Rule> buildRules() {
+ return ImmutableList.of(
+ logicalIntersect()
+ .thenApply(ctx -> rewrite(ctx.root,
JoinType.LEFT_SEMI_JOIN, ctx.connectContext))
+ .toRule(RuleType.REWRITE_INTERSECT_TO_JOIN_WHEN_SPILL),
+ logicalExcept()
+ .thenApply(ctx -> rewrite(ctx.root,
JoinType.LEFT_ANTI_JOIN, ctx.connectContext))
+ .toRule(RuleType.REWRITE_EXCEPT_TO_JOIN_WHEN_SPILL)
+ );
+ }
+
+ private static Plan rewrite(LogicalSetOperation setOperation, JoinType
joinType, ConnectContext connectContext) {
+ if (!shouldRewrite(setOperation, connectContext)) {
+ return null;
+ }
+
+ Plan result = distinct(setOperation.child(0),
setOperation.getRegularChildOutput(0));
+ for (int i = 1; i < setOperation.arity(); i++) {
+ Plan right = distinct(setOperation.child(i),
setOperation.getRegularChildOutput(i));
+ result = new LogicalJoin<>(joinType,
buildNullSafeEqual(result.getOutput(), right.getOutput()),
+ ExpressionUtils.EMPTY_CONDITION, new
DistributeHint(DistributeType.SHUFFLE_RIGHT),
+ result, right, null);
+ }
+
+ return new LogicalProject<>(buildOutputs(setOperation.getOutputs(),
result.getOutput()), result);
+ }
+
+ private static boolean shouldRewrite(LogicalSetOperation setOperation,
ConnectContext connectContext) {
+ if (connectContext == null ||
!(connectContext.getSessionVariable().enableSpill
+ || connectContext.getSessionVariable().enableForceSpill)) {
+ return false;
+ }
+ if (setOperation.getQualifier() != Qualifier.DISTINCT ||
setOperation.arity() < 2) {
+ return false;
+ }
+ if (setOperation.getRegularChildrenOutputs().size() !=
setOperation.arity()) {
+ return false;
+ }
+ return setOperation.getOutputs().stream()
+ .allMatch(output ->
supportSetOperationToJoinRewrite(output.getDataType()));
+ }
+
+ private static boolean supportSetOperationToJoinRewrite(DataType dataType)
{
+ // Rewriting INTERSECT/EXCEPT uses aggregate grouping plus null-safe
equal hash join keys.
+ // Keep the original set operation unless the output type can be used
by both operators.
+ return dataType.isPrimitive()
+ && !dataType.isJsonType()
+ && !dataType.isObjectOrVariantType()
+ && !dataType.isVarBinaryType();
+ }
+
+ private static LogicalAggregate<Plan> distinct(Plan child,
List<SlotReference> childOutput) {
+ return new LogicalAggregate<>(childOutput.stream()
+ .map(NamedExpression.class::cast)
+ .collect(ImmutableList.toImmutableList()), true, child);
+ }
+
+ private static List<Expression> buildNullSafeEqual(List<Slot> leftOutput,
List<Slot> rightOutput) {
+ Preconditions.checkArgument(leftOutput.size() == rightOutput.size(),
+ "left output size should be equal to right output size");
+ ImmutableList.Builder<Expression> hashConjuncts =
ImmutableList.builderWithExpectedSize(leftOutput.size());
+ for (int i = 0; i < leftOutput.size(); i++) {
+ hashConjuncts.add(new NullSafeEqual(leftOutput.get(i),
rightOutput.get(i)));
+ }
+ return hashConjuncts.build();
+ }
+
+ private static List<NamedExpression> buildOutputs(List<NamedExpression>
setOutputs, List<Slot> joinOutputs) {
+ Preconditions.checkArgument(setOutputs.size() == joinOutputs.size(),
+ "set operation output size should be equal to rewritten join
output size");
+ ImmutableList.Builder<NamedExpression> projects =
ImmutableList.builderWithExpectedSize(setOutputs.size());
+ for (int i = 0; i < setOutputs.size(); i++) {
+ NamedExpression setOutput = setOutputs.get(i);
+ Slot joinOutput = joinOutputs.get(i);
+
Preconditions.checkArgument(setOutput.getDataType().equals(joinOutput.getDataType()),
+ "set operation output type should be equal to rewritten
join output type");
+ Preconditions.checkArgument(setOutput.nullable() ||
!joinOutput.nullable(),
+ "rewritten join output should not be nullable when set
operation output is not nullable");
+ Expression child = !joinOutput.nullable() && setOutput.nullable()
? new Nullable(joinOutput) : joinOutput;
+ projects.add(new Alias(setOutput.getExprId(), child,
setOutput.getName()));
+ }
+ return projects.build();
+ }
+}
diff --git
a/fe/fe-core/src/test/java/org/apache/doris/nereids/rules/rewrite/RewriteSetOperationToJoinWhenSpillTest.java
b/fe/fe-core/src/test/java/org/apache/doris/nereids/rules/rewrite/RewriteSetOperationToJoinWhenSpillTest.java
new file mode 100644
index 00000000000..83537880dbd
--- /dev/null
+++
b/fe/fe-core/src/test/java/org/apache/doris/nereids/rules/rewrite/RewriteSetOperationToJoinWhenSpillTest.java
@@ -0,0 +1,220 @@
+// 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.rules.rewrite;
+
+import org.apache.doris.nereids.trees.expressions.NullSafeEqual;
+import org.apache.doris.nereids.trees.plans.DistributeType;
+import org.apache.doris.nereids.trees.plans.JoinType;
+import org.apache.doris.nereids.trees.plans.logical.LogicalJoin;
+import org.apache.doris.nereids.util.MemoPatternMatchSupported;
+import org.apache.doris.nereids.util.PlanChecker;
+import org.apache.doris.utframe.TestWithFeService;
+
+import org.junit.jupiter.api.Test;
+
+class RewriteSetOperationToJoinWhenSpillTest extends TestWithFeService
implements MemoPatternMatchSupported {
+
+ @Override
+ protected void runBeforeAll() throws Exception {
+ createDatabase("test");
+ connectContext.setDatabase("test");
+
+ createTable("CREATE TABLE set_operation_spill_rewrite_t ("
+ + "k1 int null,"
+ + "k2 varchar(20) null"
+ + ")\n"
+ + "DISTRIBUTED BY HASH(k1)\n"
+ + "BUCKETS 1\n"
+ + "PROPERTIES(\n"
+ + " \"replication_num\"=\"1\"\n"
+ + ");");
+ createTable("CREATE TABLE set_operation_spill_rewrite_complex_t ("
+ + "k1 int null,"
+ + "j jsonb null,"
+ + "a array<int> null,"
+ + "m map<string, int> null,"
+ + "s struct<a:int> null"
+ + ")\n"
+ + "DUPLICATE KEY(k1)\n"
+ + "DISTRIBUTED BY HASH(k1)\n"
+ + "BUCKETS 1\n"
+ + "PROPERTIES(\n"
+ + " \"replication_num\"=\"1\"\n"
+ + ");");
+ }
+
+ @Test
+ void testRewriteIntersectWhenSpillEnabled() {
+ connectContext.getSessionVariable().enableSpill = true;
+ String sql = "select k1, k2 from set_operation_spill_rewrite_t "
+ + "intersect select k1, k2 from set_operation_spill_rewrite_t";
+
+ PlanChecker.from(connectContext)
+ .analyze(sql)
+ .applyBottomUp(new RewriteSetOperationToJoinWhenSpill())
+ .matches(logicalJoin().when(join -> isSpillHashJoin(join,
JoinType.LEFT_SEMI_JOIN)));
+ }
+
+ @Test
+ void testRewriteMixedPrimitiveOutputTypeAfterSetCoercionWhenSpillEnabled()
{
+ connectContext.getSessionVariable().enableSpill = true;
+ String sql = "select cast(k1 as smallint) from
set_operation_spill_rewrite_t "
+ + "intersect select cast(k1 as bigint) from
set_operation_spill_rewrite_t";
+
+ PlanChecker.from(connectContext)
+ .analyze(sql)
+ .applyBottomUp(new RewriteSetOperationToJoinWhenSpill())
+ .matches(logicalJoin().when(join -> isSpillHashJoin(join,
JoinType.LEFT_SEMI_JOIN, 1)));
+ }
+
+ @Test
+ void testRewriteIntersectWhenForceSpillEnabled() {
+ connectContext.getSessionVariable().enableSpill = false;
+ connectContext.getSessionVariable().enableForceSpill = true;
+ try {
+ String sql = "select k1, k2 from set_operation_spill_rewrite_t "
+ + "intersect select k1, k2 from
set_operation_spill_rewrite_t";
+
+ PlanChecker.from(connectContext)
+ .analyze(sql)
+ .applyBottomUp(new RewriteSetOperationToJoinWhenSpill())
+ .matches(logicalJoin().when(join -> isSpillHashJoin(join,
JoinType.LEFT_SEMI_JOIN)));
+ } finally {
+ connectContext.getSessionVariable().enableForceSpill = false;
+ }
+ }
+
+ @Test
+ void testRewriteExceptWhenSpillEnabled() {
+ connectContext.getSessionVariable().enableSpill = true;
+ String sql = "select k1, k2 from set_operation_spill_rewrite_t "
+ + "except select k1, k2 from set_operation_spill_rewrite_t";
+
+ PlanChecker.from(connectContext)
+ .analyze(sql)
+ .applyBottomUp(new RewriteSetOperationToJoinWhenSpill())
+ .matches(logicalJoin().when(join -> isSpillHashJoin(join,
JoinType.LEFT_ANTI_JOIN)));
+ }
+
+ @Test
+ void testRewriteThreeClauseIntersectWhenSpillEnabled() {
+ connectContext.getSessionVariable().enableSpill = true;
+ String sql = "select k1, k2 from set_operation_spill_rewrite_t "
+ + "intersect select k1, k2 from set_operation_spill_rewrite_t "
+ + "intersect select k1, k2 from set_operation_spill_rewrite_t";
+
+ PlanChecker.from(connectContext)
+ .analyze(sql)
+ .applyBottomUp(new MergeSetOperations())
+ .applyBottomUp(new RewriteSetOperationToJoinWhenSpill())
+ .matches(logicalJoin(
+ logicalJoin().when(join -> isSpillHashJoin(join,
JoinType.LEFT_SEMI_JOIN)),
+ any()).when(join -> isSpillHashJoin(join,
JoinType.LEFT_SEMI_JOIN)));
+ }
+
+ @Test
+ void testRewriteThreeClauseExceptWhenSpillEnabled() {
+ connectContext.getSessionVariable().enableSpill = true;
+ String sql = "select k1, k2 from set_operation_spill_rewrite_t "
+ + "except select k1, k2 from set_operation_spill_rewrite_t "
+ + "except select k1, k2 from set_operation_spill_rewrite_t";
+
+ PlanChecker.from(connectContext)
+ .analyze(sql)
+ .applyBottomUp(new MergeSetOperationsExcept())
+ .applyBottomUp(new RewriteSetOperationToJoinWhenSpill())
+ .matches(logicalJoin(
+ logicalJoin().when(join -> isSpillHashJoin(join,
JoinType.LEFT_ANTI_JOIN)),
+ any()).when(join -> isSpillHashJoin(join,
JoinType.LEFT_ANTI_JOIN)));
+ }
+
+ @Test
+ void testRewriteThreeClauseMinusWhenSpillEnabled() {
+ connectContext.getSessionVariable().enableSpill = true;
+ String sql = "select k1, k2 from set_operation_spill_rewrite_t "
+ + "minus select k1, k2 from set_operation_spill_rewrite_t "
+ + "minus select k1, k2 from set_operation_spill_rewrite_t";
+
+ PlanChecker.from(connectContext)
+ .analyze(sql)
+ .applyBottomUp(new MergeSetOperationsExcept())
+ .applyBottomUp(new RewriteSetOperationToJoinWhenSpill())
+ .matches(logicalJoin(
+ logicalJoin().when(join -> isSpillHashJoin(join,
JoinType.LEFT_ANTI_JOIN)),
+ any()).when(join -> isSpillHashJoin(join,
JoinType.LEFT_ANTI_JOIN)));
+ }
+
+ @Test
+ void testKeepSetOperatorWhenSpillDisabled() {
+ connectContext.getSessionVariable().enableSpill = false;
+ String sql = "select k1, k2 from set_operation_spill_rewrite_t "
+ + "intersect select k1, k2 from set_operation_spill_rewrite_t";
+
+ PlanChecker.from(connectContext)
+ .analyze(sql)
+ .applyBottomUp(new RewriteSetOperationToJoinWhenSpill())
+ .matches(logicalIntersect());
+ }
+
+ @Test
+ void testKeepSetOperatorWhenOutputTypeCannotBeBothAggAndJoinKey() {
+ assertKeepSetOperatorWhenSpillEnabled("select j from
set_operation_spill_rewrite_complex_t "
+ + "intersect select j from
set_operation_spill_rewrite_complex_t");
+ assertKeepSetOperatorWhenSpillEnabled("select a from
set_operation_spill_rewrite_complex_t "
+ + "intersect select a from
set_operation_spill_rewrite_complex_t");
+ assertKeepSetOperatorWhenSpillEnabled("select m from
set_operation_spill_rewrite_complex_t "
+ + "intersect select m from
set_operation_spill_rewrite_complex_t");
+ assertKeepSetOperatorWhenSpillEnabled("select s from
set_operation_spill_rewrite_complex_t "
+ + "intersect select s from
set_operation_spill_rewrite_complex_t");
+ assertKeepExceptWhenSpillEnabled("select j from
set_operation_spill_rewrite_complex_t "
+ + "except select j from
set_operation_spill_rewrite_complex_t");
+ }
+
+ @Test
+ void testKeepSetOperatorForUnsupportedOutputTypeAfterSetCoercion() {
+ assertKeepSetOperatorWhenSpillEnabled("select cast(a as array<int>)
from set_operation_spill_rewrite_complex_t "
+ + "intersect select cast(a as array<bigint>) from
set_operation_spill_rewrite_complex_t");
+ }
+
+ private void assertKeepSetOperatorWhenSpillEnabled(String sql) {
+ connectContext.getSessionVariable().enableSpill = true;
+ PlanChecker.from(connectContext)
+ .analyze(sql)
+ .applyBottomUp(new RewriteSetOperationToJoinWhenSpill())
+ .matches(logicalIntersect());
+ }
+
+ private void assertKeepExceptWhenSpillEnabled(String sql) {
+ connectContext.getSessionVariable().enableSpill = true;
+ PlanChecker.from(connectContext)
+ .analyze(sql)
+ .applyBottomUp(new RewriteSetOperationToJoinWhenSpill())
+ .matches(logicalExcept());
+ }
+
+ private boolean isSpillHashJoin(LogicalJoin<?, ?> join, JoinType joinType)
{
+ return isSpillHashJoin(join, joinType, 2);
+ }
+
+ private boolean isSpillHashJoin(LogicalJoin<?, ?> join, JoinType joinType,
int hashJoinConjunctSize) {
+ return join.getJoinType() == joinType
+ && join.getHashJoinConjuncts().size() == hashJoinConjunctSize
+ &&
join.getHashJoinConjuncts().stream().allMatch(NullSafeEqual.class::isInstance)
+ && join.getDistributeHint().distributeType ==
DistributeType.SHUFFLE_RIGHT;
+ }
+}
diff --git a/regression-test/suites/empty_relation/eliminate_empty.groovy
b/regression-test/suites/empty_relation/eliminate_empty.groovy
index d728fbf988a..86fb48d80a0 100644
--- a/regression-test/suites/empty_relation/eliminate_empty.groovy
+++ b/regression-test/suites/empty_relation/eliminate_empty.groovy
@@ -23,6 +23,8 @@ suite("eliminate_empty") {
multi_sql """
SET enable_nereids_planner=true;
SET enable_fallback_to_original_planner=false;
+ set enable_spill = false;
+ set enable_force_spill = false;
set disable_nereids_rules='PRUNE_EMPTY_PARTITION';
set forbid_unknown_col_stats=false;
set enable_parallel_result_sink=false;
diff --git
a/regression-test/suites/nereids_rules_p0/constant_propagation/constant_propagation.groovy
b/regression-test/suites/nereids_rules_p0/constant_propagation/constant_propagation.groovy
index b6c154b4820..2b07d9ca555 100644
---
a/regression-test/suites/nereids_rules_p0/constant_propagation/constant_propagation.groovy
+++
b/regression-test/suites/nereids_rules_p0/constant_propagation/constant_propagation.groovy
@@ -30,6 +30,8 @@ suite('constant_propagation') {
multi_sql """
SET enable_nereids_planner=true;
SET enable_fallback_to_original_planner=false;
+ set enable_spill = false;
+ set enable_force_spill = false;
SET disable_nereids_rules='PRUNE_EMPTY_PARTITION';
SET
detail_shape_nodes='PhysicalProject,PhysicalHashAggregate,PhysicalQuickSort';
SET ignore_shape_nodes='PhysicalDistribute';
diff --git
a/regression-test/suites/nereids_rules_p0/filter_push_down/push_filter_through.groovy
b/regression-test/suites/nereids_rules_p0/filter_push_down/push_filter_through.groovy
index 3f1824c7ada..e0575d5c44d 100644
---
a/regression-test/suites/nereids_rules_p0/filter_push_down/push_filter_through.groovy
+++
b/regression-test/suites/nereids_rules_p0/filter_push_down/push_filter_through.groovy
@@ -19,6 +19,8 @@ suite("push_filter_through") {
sql "SET enable_nereids_planner=true"
sql "set runtime_filter_mode=OFF"
sql "SET enable_fallback_to_original_planner=false"
+ sql "set enable_spill = false"
+ sql "set enable_force_spill = false"
sql "use regression_test_nereids_rules_p0"
sql "set disable_join_reorder=true"
sql 'set be_number_for_test=3'
diff --git
a/regression-test/suites/nereids_rules_p0/infer_predicate/extend_infer_equal_predicate.groovy
b/regression-test/suites/nereids_rules_p0/infer_predicate/extend_infer_equal_predicate.groovy
index de730c5b574..9fbf16d8c26 100644
---
a/regression-test/suites/nereids_rules_p0/infer_predicate/extend_infer_equal_predicate.groovy
+++
b/regression-test/suites/nereids_rules_p0/infer_predicate/extend_infer_equal_predicate.groovy
@@ -16,6 +16,8 @@
// under the License.
suite("extend_infer_equal_predicate") {
sql "set enable_fallback_to_original_planner=false"
+ sql "set enable_spill = false"
+ sql "set enable_force_spill = false"
sql """SET ignore_shape_nodes='PhysicalDistribute,PhysicalProject'"""
sql 'set runtime_filter_mode=off'
sql 'set disable_join_reorder=true'
diff --git
a/regression-test/suites/nereids_rules_p0/infer_predicate/infer_intersect_except.groovy
b/regression-test/suites/nereids_rules_p0/infer_predicate/infer_intersect_except.groovy
index cd18ade2b04..24eae7be141 100644
---
a/regression-test/suites/nereids_rules_p0/infer_predicate/infer_intersect_except.groovy
+++
b/regression-test/suites/nereids_rules_p0/infer_predicate/infer_intersect_except.groovy
@@ -19,6 +19,8 @@ suite("infer_intersect_except") {
sql "set parallel_pipeline_task_num=2"
sql "set enable_nereids_planner=true"
sql "set enable_fallback_to_original_planner=false"
+ sql "set enable_spill = false"
+ sql "set enable_force_spill = false"
sql """SET ignore_shape_nodes='PhysicalDistribute,PhysicalProject'"""
sql 'set runtime_filter_mode=off'
sql 'set enable_fold_constant_by_be=true'
diff --git
a/regression-test/suites/nereids_rules_p0/infer_predicate/pull_up_predicate_set_op.groovy
b/regression-test/suites/nereids_rules_p0/infer_predicate/pull_up_predicate_set_op.groovy
index 50b7cf75df3..2478d904f0a 100644
---
a/regression-test/suites/nereids_rules_p0/infer_predicate/pull_up_predicate_set_op.groovy
+++
b/regression-test/suites/nereids_rules_p0/infer_predicate/pull_up_predicate_set_op.groovy
@@ -19,6 +19,8 @@ suite("pull_up_predicate_set_op") {
sql "set parallel_pipeline_task_num=2"
sql "set enable_nereids_planner=true"
sql "set enable_fallback_to_original_planner=false"
+ sql "set enable_spill = false"
+ sql "set enable_force_spill = false"
sql """SET ignore_shape_nodes='PhysicalDistribute,PhysicalProject'"""
sql 'set runtime_filter_mode=off'
sql 'set enable_fold_constant_by_be=true'
diff --git
a/regression-test/suites/nereids_rules_p0/limit_push_down/limit_push_down.groovy
b/regression-test/suites/nereids_rules_p0/limit_push_down/limit_push_down.groovy
index b7704ce691d..2ff18f6fa45 100644
---
a/regression-test/suites/nereids_rules_p0/limit_push_down/limit_push_down.groovy
+++
b/regression-test/suites/nereids_rules_p0/limit_push_down/limit_push_down.groovy
@@ -19,6 +19,8 @@ suite("limit_push_down") {
sql "SET enable_nereids_planner=true"
sql "set runtime_filter_mode=OFF"
sql "SET enable_fallback_to_original_planner=false"
+ sql "set enable_spill = false"
+ sql "set enable_force_spill = false"
sql "use regression_test_nereids_rules_p0"
sql """ SET inline_cte_referenced_threshold=0 """
sql "SET ignore_shape_nodes='PhysicalDistribute,PhysicalProject'"
diff --git
a/regression-test/suites/nereids_rules_p0/limit_push_down/order_push_down.groovy
b/regression-test/suites/nereids_rules_p0/limit_push_down/order_push_down.groovy
index 5bb235496ec..b4b9b591410 100644
---
a/regression-test/suites/nereids_rules_p0/limit_push_down/order_push_down.groovy
+++
b/regression-test/suites/nereids_rules_p0/limit_push_down/order_push_down.groovy
@@ -19,6 +19,8 @@ suite("order_push_down") {
sql "SET enable_nereids_planner=true"
sql "set runtime_filter_mode=OFF"
sql "SET enable_fallback_to_original_planner=false"
+ sql "set enable_spill = false"
+ sql "set enable_force_spill = false"
sql "use regression_test_nereids_rules_p0"
sql """ SET inline_cte_referenced_threshold=0 """
sql "SET ignore_shape_nodes='PhysicalDistribute,PhysicalProject'"
diff --git
a/regression-test/suites/nereids_rules_p0/predicate_infer/infer_predicate.groovy
b/regression-test/suites/nereids_rules_p0/predicate_infer/infer_predicate.groovy
index 81c9517a2a0..2108db448fd 100644
---
a/regression-test/suites/nereids_rules_p0/predicate_infer/infer_predicate.groovy
+++
b/regression-test/suites/nereids_rules_p0/predicate_infer/infer_predicate.groovy
@@ -20,6 +20,8 @@ suite("infer_predicate") {
sql "SET enable_nereids_planner=true"
sql "set runtime_filter_mode=OFF"
sql "SET enable_fallback_to_original_planner=false"
+ sql "set enable_spill = false"
+ sql "set enable_force_spill = false"
sql "SET disable_join_reorder=true"
sql "SET ignore_shape_nodes='PhysicalDistribute,PhysicalProject'"
sql "set
disable_nereids_rules='PRUNE_EMPTY_PARTITION,ELIMINATE_CONST_JOIN_CONDITION'"
diff --git
a/regression-test/suites/nereids_rules_p0/unique_function/add_project_for_unique_function.groovy
b/regression-test/suites/nereids_rules_p0/unique_function/add_project_for_unique_function.groovy
index 24351dd4bdb..4a7290eba20 100644
---
a/regression-test/suites/nereids_rules_p0/unique_function/add_project_for_unique_function.groovy
+++
b/regression-test/suites/nereids_rules_p0/unique_function/add_project_for_unique_function.groovy
@@ -21,6 +21,8 @@ suite('add_project_for_unique_function') {
sql 'SET runtime_filter_mode=OFF'
sql 'SET disable_join_reorder=true'
sql 'SET enable_fallback_to_original_planner=false'
+ sql "set enable_spill = false"
+ sql "set enable_force_spill = false"
sql "SET ignore_shape_nodes='PhysicalDistribute'"
sql "SET
detail_shape_nodes='PhysicalProject,PhysicalOneRowRelation,PhysicalUnion,PhysicalQuickSort,PhysicalHashAggregate'"
sql 'SET disable_nereids_rules=PRUNE_EMPTY_PARTITION'
diff --git
a/regression-test/suites/nereids_rules_p0/unique_function/infer_predicates_set_op_with_unique_function.groovy
b/regression-test/suites/nereids_rules_p0/unique_function/infer_predicates_set_op_with_unique_function.groovy
index 9fdda2d0a82..5c3f6d26630 100644
---
a/regression-test/suites/nereids_rules_p0/unique_function/infer_predicates_set_op_with_unique_function.groovy
+++
b/regression-test/suites/nereids_rules_p0/unique_function/infer_predicates_set_op_with_unique_function.groovy
@@ -23,6 +23,10 @@ suite('infer_predicates_set_op_with_unique_function') {
sql "SET detail_shape_nodes='PhysicalProject'"
sql 'SET disable_nereids_rules=PRUNE_EMPTY_PARTITION'
+ // The intersect/except will be rewritten to distinct aggregate + semi
join when spill is enabled.
+ sql 'SET enable_spill = false'
+ sql 'SET enable_force_spill = false'
+
// InferPredicates must NOT clone a predicate containing rand()/uuid()
// from the left branch of EXCEPT/INTERSECT onto the right branch through
// slot substitution, because it would re-evaluate the unique function on
diff --git
a/regression-test/suites/nereids_rules_p0/unique_function/push_down_filter_through_set_operation_with_unique_function.groovy
b/regression-test/suites/nereids_rules_p0/unique_function/push_down_filter_through_set_operation_with_unique_function.groovy
index d3fc9cf40fe..12f93f1d072 100644
---
a/regression-test/suites/nereids_rules_p0/unique_function/push_down_filter_through_set_operation_with_unique_function.groovy
+++
b/regression-test/suites/nereids_rules_p0/unique_function/push_down_filter_through_set_operation_with_unique_function.groovy
@@ -19,6 +19,8 @@
suite('push_down_filter_through_set_operation_with_unique_function') {
sql 'SET enable_nereids_planner=true'
sql 'SET runtime_filter_mode=OFF'
sql 'SET enable_fallback_to_original_planner=false'
+ sql 'SET enable_spill = false'
+ sql 'SET enable_force_spill = false'
sql 'SET parallel_pipeline_task_num=2'
sql "SET ignore_shape_nodes='PhysicalDistribute'"
sql "SET detail_shape_nodes='PhysicalProject'"
diff --git a/regression-test/suites/query_p0/runtimefilterV2/rfv2.groovy
b/regression-test/suites/query_p0/runtimefilterV2/rfv2.groovy
index b6f44d2c441..5dbcb2ac3b9 100644
--- a/regression-test/suites/query_p0/runtimefilterV2/rfv2.groovy
+++ b/regression-test/suites/query_p0/runtimefilterV2/rfv2.groovy
@@ -16,6 +16,8 @@
// under the License.
suite("rfv2") {
+ sql "set enable_spill = false"
+ sql "set enable_force_spill = false"
sql """
drop table if exists a;
create table a
diff --git a/regression-test/suites/query_p0/set_operations/except.groovy
b/regression-test/suites/query_p0/set_operations/except.groovy
index 4c159b1ad8e..0ba2dea16b4 100644
--- a/regression-test/suites/query_p0/set_operations/except.groovy
+++ b/regression-test/suites/query_p0/set_operations/except.groovy
@@ -16,6 +16,8 @@
// under the License.
suite("except", "query") {
+ sql "set enable_spill = false"
+ sql "set enable_force_spill = false"
sql "set parallel_pipeline_task_num=2"
sql """
set runtime_filter_type=2;
diff --git
a/regression-test/suites/shape_check/tpcds_sf100/noStatsRfPrune/query14.groovy
b/regression-test/suites/shape_check/tpcds_sf100/noStatsRfPrune/query14.groovy
index 57c7c9258be..612d9ccbd21 100644
---
a/regression-test/suites/shape_check/tpcds_sf100/noStatsRfPrune/query14.groovy
+++
b/regression-test/suites/shape_check/tpcds_sf100/noStatsRfPrune/query14.groovy
@@ -26,6 +26,8 @@ suite("query14") {
sql 'set enable_nereids_planner=true'
sql 'set enable_nereids_distribute_planner=false'
sql 'set enable_fallback_to_original_planner=false'
+ sql "set enable_spill = false"
+ sql "set enable_force_spill = false"
sql 'set exec_mem_limit=21G'
sql 'set be_number_for_test=3'
sql 'set enable_runtime_filter_prune=true'
diff --git
a/regression-test/suites/shape_check/tpcds_sf100/noStatsRfPrune/query38.groovy
b/regression-test/suites/shape_check/tpcds_sf100/noStatsRfPrune/query38.groovy
index 63147d97e95..78060bded51 100644
---
a/regression-test/suites/shape_check/tpcds_sf100/noStatsRfPrune/query38.groovy
+++
b/regression-test/suites/shape_check/tpcds_sf100/noStatsRfPrune/query38.groovy
@@ -24,6 +24,8 @@ suite("query38") {
set enable_nereids_planner=true;
set enable_nereids_distribute_planner=false;
set enable_fallback_to_original_planner=false;
+ set enable_spill = false;
+ set enable_force_spill = false;
set exec_mem_limit=21G;
set be_number_for_test=3;
set enable_runtime_filter_prune=true;
diff --git
a/regression-test/suites/shape_check/tpcds_sf100/noStatsRfPrune/query8.groovy
b/regression-test/suites/shape_check/tpcds_sf100/noStatsRfPrune/query8.groovy
index 06a6c966211..8eb9206184a 100644
---
a/regression-test/suites/shape_check/tpcds_sf100/noStatsRfPrune/query8.groovy
+++
b/regression-test/suites/shape_check/tpcds_sf100/noStatsRfPrune/query8.groovy
@@ -26,6 +26,8 @@ suite("query8") {
sql 'set enable_nereids_planner=true'
sql 'set enable_nereids_distribute_planner=false'
sql 'set enable_fallback_to_original_planner=false'
+ sql "set enable_spill = false"
+ sql "set enable_force_spill = false"
sql 'set exec_mem_limit=21G'
sql 'set be_number_for_test=3'
sql 'set enable_runtime_filter_prune=true'
diff --git
a/regression-test/suites/shape_check/tpcds_sf100/noStatsRfPrune/query87.groovy
b/regression-test/suites/shape_check/tpcds_sf100/noStatsRfPrune/query87.groovy
index 09c962f1eaf..3aba015c995 100644
---
a/regression-test/suites/shape_check/tpcds_sf100/noStatsRfPrune/query87.groovy
+++
b/regression-test/suites/shape_check/tpcds_sf100/noStatsRfPrune/query87.groovy
@@ -26,6 +26,8 @@ suite("query87") {
sql 'set enable_nereids_planner=true'
sql 'set enable_nereids_distribute_planner=false'
sql 'set enable_fallback_to_original_planner=false'
+ sql "set enable_spill = false"
+ sql "set enable_force_spill = false"
sql 'set exec_mem_limit=21G'
sql 'set be_number_for_test=3'
sql 'set enable_runtime_filter_prune=true'
diff --git
a/regression-test/suites/shape_check/tpcds_sf100/no_stats_shape/query14.groovy
b/regression-test/suites/shape_check/tpcds_sf100/no_stats_shape/query14.groovy
index bff8b557139..a02ed8bf069 100644
---
a/regression-test/suites/shape_check/tpcds_sf100/no_stats_shape/query14.groovy
+++
b/regression-test/suites/shape_check/tpcds_sf100/no_stats_shape/query14.groovy
@@ -26,6 +26,8 @@ suite("query14") {
sql 'set enable_nereids_planner=true'
sql 'set enable_nereids_distribute_planner=false'
sql 'set enable_fallback_to_original_planner=false'
+ sql "set enable_spill = false"
+ sql "set enable_force_spill = false"
sql 'set exec_mem_limit=21G'
sql 'set be_number_for_test=3'
sql 'set enable_runtime_filter_prune=false'
diff --git
a/regression-test/suites/shape_check/tpcds_sf100/no_stats_shape/query38.groovy
b/regression-test/suites/shape_check/tpcds_sf100/no_stats_shape/query38.groovy
index 42e32d870d7..1643860c022 100644
---
a/regression-test/suites/shape_check/tpcds_sf100/no_stats_shape/query38.groovy
+++
b/regression-test/suites/shape_check/tpcds_sf100/no_stats_shape/query38.groovy
@@ -24,6 +24,8 @@ suite("query38") {
set enable_nereids_planner=true;
set enable_nereids_distribute_planner=false;
set enable_fallback_to_original_planner=false;
+ set enable_spill = false;
+ set enable_force_spill = false;
set exec_mem_limit=21G;
set be_number_for_test=3;
set enable_runtime_filter_prune=false;
diff --git
a/regression-test/suites/shape_check/tpcds_sf100/no_stats_shape/query8.groovy
b/regression-test/suites/shape_check/tpcds_sf100/no_stats_shape/query8.groovy
index f014b4b4dcb..c3d93c24515 100644
---
a/regression-test/suites/shape_check/tpcds_sf100/no_stats_shape/query8.groovy
+++
b/regression-test/suites/shape_check/tpcds_sf100/no_stats_shape/query8.groovy
@@ -26,6 +26,8 @@ suite("query8") {
sql 'set enable_nereids_planner=true'
sql 'set enable_nereids_distribute_planner=false'
sql 'set enable_fallback_to_original_planner=false'
+ sql "set enable_spill = false"
+ sql "set enable_force_spill = false"
sql 'set exec_mem_limit=21G'
sql 'set be_number_for_test=3'
sql 'set enable_runtime_filter_prune=false'
diff --git
a/regression-test/suites/shape_check/tpcds_sf100/no_stats_shape/query87.groovy
b/regression-test/suites/shape_check/tpcds_sf100/no_stats_shape/query87.groovy
index f045dab158e..5de726cfac3 100644
---
a/regression-test/suites/shape_check/tpcds_sf100/no_stats_shape/query87.groovy
+++
b/regression-test/suites/shape_check/tpcds_sf100/no_stats_shape/query87.groovy
@@ -26,6 +26,8 @@ suite("query87") {
sql 'set enable_nereids_planner=true'
sql 'set enable_nereids_distribute_planner=false'
sql 'set enable_fallback_to_original_planner=false'
+ sql "set enable_spill = false"
+ sql "set enable_force_spill = false"
sql 'set exec_mem_limit=21G'
sql 'set be_number_for_test=3'
sql 'set enable_runtime_filter_prune=false'
diff --git
a/regression-test/suites/shape_check/tpcds_sf100/rf_prune/query14.groovy
b/regression-test/suites/shape_check/tpcds_sf100/rf_prune/query14.groovy
index a731a8c6bf1..4b4cbbd8154 100644
--- a/regression-test/suites/shape_check/tpcds_sf100/rf_prune/query14.groovy
+++ b/regression-test/suites/shape_check/tpcds_sf100/rf_prune/query14.groovy
@@ -26,6 +26,8 @@ suite("query14") {
sql 'set enable_nereids_planner=true'
sql 'set enable_nereids_distribute_planner=false'
sql 'set enable_fallback_to_original_planner=false'
+ sql 'set enable_spill = false'
+ sql 'set enable_force_spill = false'
sql 'set exec_mem_limit=21G'
sql 'set be_number_for_test=3'
sql 'set parallel_pipeline_task_num=8; '
diff --git
a/regression-test/suites/shape_check/tpcds_sf100/rf_prune/query38.groovy
b/regression-test/suites/shape_check/tpcds_sf100/rf_prune/query38.groovy
index 470529357f0..67b2153cd1a 100644
--- a/regression-test/suites/shape_check/tpcds_sf100/rf_prune/query38.groovy
+++ b/regression-test/suites/shape_check/tpcds_sf100/rf_prune/query38.groovy
@@ -24,6 +24,8 @@ suite("query38") {
set enable_nereids_planner=true;
set enable_nereids_distribute_planner=false;
set enable_fallback_to_original_planner=false;
+ set enable_spill = false;
+ set enable_force_spill = false;
set exec_mem_limit=21G;
set be_number_for_test=3;
set enable_runtime_filter_prune=true;
diff --git
a/regression-test/suites/shape_check/tpcds_sf100/rf_prune/query8.groovy
b/regression-test/suites/shape_check/tpcds_sf100/rf_prune/query8.groovy
index 75356abbb88..9e94c8f07ef 100644
--- a/regression-test/suites/shape_check/tpcds_sf100/rf_prune/query8.groovy
+++ b/regression-test/suites/shape_check/tpcds_sf100/rf_prune/query8.groovy
@@ -26,6 +26,8 @@ suite("query8") {
sql 'set enable_nereids_planner=true'
sql 'set enable_nereids_distribute_planner=false'
sql 'set enable_fallback_to_original_planner=false'
+ sql "set enable_spill = false"
+ sql "set enable_force_spill = false"
sql 'set exec_mem_limit=21G'
sql 'set be_number_for_test=3'
sql 'set parallel_pipeline_task_num=8; '
diff --git
a/regression-test/suites/shape_check/tpcds_sf100/rf_prune/query87.groovy
b/regression-test/suites/shape_check/tpcds_sf100/rf_prune/query87.groovy
index 64e6a8798bf..b39b833bc19 100644
--- a/regression-test/suites/shape_check/tpcds_sf100/rf_prune/query87.groovy
+++ b/regression-test/suites/shape_check/tpcds_sf100/rf_prune/query87.groovy
@@ -26,6 +26,8 @@ suite("query87") {
sql 'set enable_nereids_planner=true'
sql 'set enable_nereids_distribute_planner=false'
sql 'set enable_fallback_to_original_planner=false'
+ sql "set enable_spill = false"
+ sql "set enable_force_spill = false"
sql 'set exec_mem_limit=21G'
sql 'set be_number_for_test=3'
sql 'set parallel_pipeline_task_num=8; '
diff --git
a/regression-test/suites/shape_check/tpcds_sf100/shape/query14.groovy
b/regression-test/suites/shape_check/tpcds_sf100/shape/query14.groovy
index d7fce388f00..c749d071f8f 100644
--- a/regression-test/suites/shape_check/tpcds_sf100/shape/query14.groovy
+++ b/regression-test/suites/shape_check/tpcds_sf100/shape/query14.groovy
@@ -26,6 +26,8 @@ suite("query14") {
sql 'set enable_nereids_planner=true'
sql 'set enable_nereids_distribute_planner=false'
sql 'set enable_fallback_to_original_planner=false'
+ sql "set enable_spill = false"
+ sql "set enable_force_spill = false"
sql 'set exec_mem_limit=21G'
sql 'set be_number_for_test=3'
sql 'set parallel_pipeline_task_num=8; '
diff --git
a/regression-test/suites/shape_check/tpcds_sf100/shape/query38.groovy
b/regression-test/suites/shape_check/tpcds_sf100/shape/query38.groovy
index f205468ae91..46f7c052562 100644
--- a/regression-test/suites/shape_check/tpcds_sf100/shape/query38.groovy
+++ b/regression-test/suites/shape_check/tpcds_sf100/shape/query38.groovy
@@ -24,6 +24,8 @@ suite("query38") {
set enable_nereids_planner=true;
set enable_nereids_distribute_planner=false;
set enable_fallback_to_original_planner=false;
+ set enable_spill = false;
+ set enable_force_spill = false;
set exec_mem_limit=21G;
set be_number_for_test=3;
set enable_runtime_filter_prune=false;
diff --git a/regression-test/suites/shape_check/tpcds_sf100/shape/query8.groovy
b/regression-test/suites/shape_check/tpcds_sf100/shape/query8.groovy
index 0ef19569ab1..ae85b5bbb1f 100644
--- a/regression-test/suites/shape_check/tpcds_sf100/shape/query8.groovy
+++ b/regression-test/suites/shape_check/tpcds_sf100/shape/query8.groovy
@@ -26,6 +26,8 @@ suite("query8") {
sql 'set enable_nereids_planner=true'
sql 'set enable_nereids_distribute_planner=false'
sql 'set enable_fallback_to_original_planner=false'
+ sql "set enable_spill = false"
+ sql "set enable_force_spill = false"
sql 'set exec_mem_limit=21G'
sql 'set be_number_for_test=3'
sql 'set parallel_pipeline_task_num=8; '
diff --git
a/regression-test/suites/shape_check/tpcds_sf100/shape/query87.groovy
b/regression-test/suites/shape_check/tpcds_sf100/shape/query87.groovy
index 20db01a8967..4d492858214 100644
--- a/regression-test/suites/shape_check/tpcds_sf100/shape/query87.groovy
+++ b/regression-test/suites/shape_check/tpcds_sf100/shape/query87.groovy
@@ -26,6 +26,8 @@ suite("query87") {
sql 'set enable_nereids_planner=true'
sql 'set enable_nereids_distribute_planner=false'
sql 'set enable_fallback_to_original_planner=false'
+ sql "set enable_spill = false"
+ sql "set enable_force_spill = false"
sql 'set exec_mem_limit=21G'
sql 'set be_number_for_test=3'
sql 'set parallel_pipeline_task_num=8; '
diff --git
a/regression-test/suites/shape_check/tpcds_sf1000/bs_downgrade_shape/query8.groovy
b/regression-test/suites/shape_check/tpcds_sf1000/bs_downgrade_shape/query8.groovy
index 55d957bcc08..cdfef26c96c 100644
---
a/regression-test/suites/shape_check/tpcds_sf1000/bs_downgrade_shape/query8.groovy
+++
b/regression-test/suites/shape_check/tpcds_sf1000/bs_downgrade_shape/query8.groovy
@@ -26,6 +26,8 @@ suite("query8") {
sql 'set enable_nereids_planner=true'
sql 'set enable_nereids_distribute_planner=false'
sql 'set enable_fallback_to_original_planner=false'
+ sql "set enable_spill = false"
+ sql "set enable_force_spill = false"
sql 'set exec_mem_limit=21G'
sql 'set be_number_for_test=3'
sql 'set parallel_pipeline_task_num=8; '
diff --git
a/regression-test/suites/shape_check/tpcds_sf1000/dphyper/query14.groovy
b/regression-test/suites/shape_check/tpcds_sf1000/dphyper/query14.groovy
index 0ba2d790097..53ba7655da0 100644
--- a/regression-test/suites/shape_check/tpcds_sf1000/dphyper/query14.groovy
+++ b/regression-test/suites/shape_check/tpcds_sf1000/dphyper/query14.groovy
@@ -26,6 +26,8 @@ suite("query14") {
sql 'set enable_nereids_planner=true'
sql 'set enable_nereids_distribute_planner=false'
sql 'set enable_fallback_to_original_planner=false'
+ sql 'set enable_spill = false'
+ sql 'set enable_force_spill = false'
sql 'set exec_mem_limit=21G'
sql 'set be_number_for_test=3'
sql 'set parallel_pipeline_task_num=8; '
diff --git
a/regression-test/suites/shape_check/tpcds_sf1000/dphyper/query38.groovy
b/regression-test/suites/shape_check/tpcds_sf1000/dphyper/query38.groovy
index c63190c5e1f..92d61c065a1 100644
--- a/regression-test/suites/shape_check/tpcds_sf1000/dphyper/query38.groovy
+++ b/regression-test/suites/shape_check/tpcds_sf1000/dphyper/query38.groovy
@@ -24,6 +24,8 @@ suite("query38") {
set enable_nereids_planner=true;
set enable_nereids_distribute_planner=false;
set enable_fallback_to_original_planner=false;
+ set enable_spill = false;
+ set enable_force_spill = false;
set exec_mem_limit=21G;
set be_number_for_test=3;
set enable_runtime_filter_prune=false;
diff --git
a/regression-test/suites/shape_check/tpcds_sf1000/dphyper/query8.groovy
b/regression-test/suites/shape_check/tpcds_sf1000/dphyper/query8.groovy
index 80b616d8887..647f2a12699 100644
--- a/regression-test/suites/shape_check/tpcds_sf1000/dphyper/query8.groovy
+++ b/regression-test/suites/shape_check/tpcds_sf1000/dphyper/query8.groovy
@@ -26,6 +26,8 @@ suite("query8") {
sql 'set enable_nereids_planner=true'
sql 'set enable_nereids_distribute_planner=false'
sql 'set enable_fallback_to_original_planner=false'
+ sql 'set enable_spill = false'
+ sql 'set enable_force_spill = false'
sql 'set exec_mem_limit=21G'
sql 'set be_number_for_test=3'
sql 'set parallel_pipeline_task_num=8; '
diff --git
a/regression-test/suites/shape_check/tpcds_sf1000/dphyper/query87.groovy
b/regression-test/suites/shape_check/tpcds_sf1000/dphyper/query87.groovy
index 4abe1d51b52..9fd38a450ce 100644
--- a/regression-test/suites/shape_check/tpcds_sf1000/dphyper/query87.groovy
+++ b/regression-test/suites/shape_check/tpcds_sf1000/dphyper/query87.groovy
@@ -26,6 +26,8 @@ suite("query87") {
sql 'set enable_nereids_planner=true'
sql 'set enable_nereids_distribute_planner=false'
sql 'set enable_fallback_to_original_planner=false'
+ sql 'set enable_spill = false'
+ sql 'set enable_force_spill = false'
sql 'set exec_mem_limit=21G'
sql 'set be_number_for_test=3'
sql 'set parallel_pipeline_task_num=8; '
diff --git
a/regression-test/suites/shape_check/tpcds_sf1000/hint/query14.groovy
b/regression-test/suites/shape_check/tpcds_sf1000/hint/query14.groovy
index 519ca8dccf9..6daff255bd7 100644
--- a/regression-test/suites/shape_check/tpcds_sf1000/hint/query14.groovy
+++ b/regression-test/suites/shape_check/tpcds_sf1000/hint/query14.groovy
@@ -26,6 +26,8 @@ suite("query14") {
sql 'set enable_nereids_planner=true'
sql 'set enable_nereids_distribute_planner=false'
sql 'set enable_fallback_to_original_planner=false'
+ sql "set enable_spill = false"
+ sql "set enable_force_spill = false"
sql 'set exec_mem_limit=21G'
sql 'set be_number_for_test=3'
sql 'set parallel_pipeline_task_num=8; '
diff --git
a/regression-test/suites/shape_check/tpcds_sf1000/hint/query38.groovy
b/regression-test/suites/shape_check/tpcds_sf1000/hint/query38.groovy
index 06e3857fb30..38c812a0288 100644
--- a/regression-test/suites/shape_check/tpcds_sf1000/hint/query38.groovy
+++ b/regression-test/suites/shape_check/tpcds_sf1000/hint/query38.groovy
@@ -24,6 +24,8 @@ suite("query38") {
set enable_nereids_planner=true;
set enable_nereids_distribute_planner=false;
set enable_fallback_to_original_planner=false;
+ set enable_spill = false;
+ set enable_force_spill = false;
set exec_mem_limit=21G;
set be_number_for_test=3;
set enable_runtime_filter_prune=false;
diff --git a/regression-test/suites/shape_check/tpcds_sf1000/hint/query8.groovy
b/regression-test/suites/shape_check/tpcds_sf1000/hint/query8.groovy
index 8cf5420134f..78e5cc7754e 100644
--- a/regression-test/suites/shape_check/tpcds_sf1000/hint/query8.groovy
+++ b/regression-test/suites/shape_check/tpcds_sf1000/hint/query8.groovy
@@ -26,6 +26,8 @@ suite("query8") {
sql 'set enable_nereids_planner=true'
sql 'set enable_nereids_distribute_planner=false'
sql 'set enable_fallback_to_original_planner=false'
+ sql "set enable_spill = false"
+ sql "set enable_force_spill = false"
sql 'set exec_mem_limit=21G'
sql 'set be_number_for_test=3'
sql 'set parallel_pipeline_task_num=8; '
diff --git
a/regression-test/suites/shape_check/tpcds_sf1000/hint/query87.groovy
b/regression-test/suites/shape_check/tpcds_sf1000/hint/query87.groovy
index f7a38a963c5..a6eb9c60183 100644
--- a/regression-test/suites/shape_check/tpcds_sf1000/hint/query87.groovy
+++ b/regression-test/suites/shape_check/tpcds_sf1000/hint/query87.groovy
@@ -26,6 +26,8 @@ suite("query87") {
sql 'set enable_nereids_planner=true'
sql 'set enable_nereids_distribute_planner=false'
sql 'set enable_fallback_to_original_planner=false'
+ sql "set enable_spill = false"
+ sql "set enable_force_spill = false"
sql 'set exec_mem_limit=21G'
sql 'set be_number_for_test=3'
sql 'set parallel_pipeline_task_num=8; '
diff --git
a/regression-test/suites/shape_check/tpcds_sf1000/shape/query14.groovy
b/regression-test/suites/shape_check/tpcds_sf1000/shape/query14.groovy
index 753fec2e266..241bb6f3a99 100644
--- a/regression-test/suites/shape_check/tpcds_sf1000/shape/query14.groovy
+++ b/regression-test/suites/shape_check/tpcds_sf1000/shape/query14.groovy
@@ -26,6 +26,8 @@ suite("query14") {
sql 'set enable_nereids_planner=true'
sql 'set enable_nereids_distribute_planner=false'
sql 'set enable_fallback_to_original_planner=false'
+ sql "set enable_spill = false"
+ sql "set enable_force_spill = false"
sql 'set exec_mem_limit=21G'
sql 'set be_number_for_test=3'
sql 'set parallel_pipeline_task_num=8; '
diff --git
a/regression-test/suites/shape_check/tpcds_sf1000/shape/query38.groovy
b/regression-test/suites/shape_check/tpcds_sf1000/shape/query38.groovy
index 06e3857fb30..38c812a0288 100644
--- a/regression-test/suites/shape_check/tpcds_sf1000/shape/query38.groovy
+++ b/regression-test/suites/shape_check/tpcds_sf1000/shape/query38.groovy
@@ -24,6 +24,8 @@ suite("query38") {
set enable_nereids_planner=true;
set enable_nereids_distribute_planner=false;
set enable_fallback_to_original_planner=false;
+ set enable_spill = false;
+ set enable_force_spill = false;
set exec_mem_limit=21G;
set be_number_for_test=3;
set enable_runtime_filter_prune=false;
diff --git
a/regression-test/suites/shape_check/tpcds_sf1000/shape/query8.groovy
b/regression-test/suites/shape_check/tpcds_sf1000/shape/query8.groovy
index cbb6206e241..f75a86dfa58 100644
--- a/regression-test/suites/shape_check/tpcds_sf1000/shape/query8.groovy
+++ b/regression-test/suites/shape_check/tpcds_sf1000/shape/query8.groovy
@@ -26,6 +26,8 @@ suite("query8") {
sql 'set enable_nereids_planner=true'
sql 'set enable_nereids_distribute_planner=false'
sql 'set enable_fallback_to_original_planner=false'
+ sql "set enable_spill = false"
+ sql "set enable_force_spill = false"
sql 'set exec_mem_limit=21G'
sql 'set be_number_for_test=3'
sql 'set parallel_pipeline_task_num=8; '
diff --git
a/regression-test/suites/shape_check/tpcds_sf1000/shape/query87.groovy
b/regression-test/suites/shape_check/tpcds_sf1000/shape/query87.groovy
index f7a38a963c5..a6eb9c60183 100644
--- a/regression-test/suites/shape_check/tpcds_sf1000/shape/query87.groovy
+++ b/regression-test/suites/shape_check/tpcds_sf1000/shape/query87.groovy
@@ -26,6 +26,8 @@ suite("query87") {
sql 'set enable_nereids_planner=true'
sql 'set enable_nereids_distribute_planner=false'
sql 'set enable_fallback_to_original_planner=false'
+ sql "set enable_spill = false"
+ sql "set enable_force_spill = false"
sql 'set exec_mem_limit=21G'
sql 'set be_number_for_test=3'
sql 'set parallel_pipeline_task_num=8; '
diff --git
a/regression-test/suites/shape_check/tpcds_sf1000_constraints/shape/query14.groovy
b/regression-test/suites/shape_check/tpcds_sf1000_constraints/shape/query14.groovy
index 17fc07b6108..6156c3d3568 100644
---
a/regression-test/suites/shape_check/tpcds_sf1000_constraints/shape/query14.groovy
+++
b/regression-test/suites/shape_check/tpcds_sf1000_constraints/shape/query14.groovy
@@ -26,6 +26,8 @@ suite("query14_constraints") {
sql 'set enable_nereids_planner=true'
sql 'set enable_nereids_distribute_planner=false'
sql 'set enable_fallback_to_original_planner=false'
+ sql 'set enable_spill = false'
+ sql 'set enable_force_spill = false'
sql 'set exec_mem_limit=21G'
sql 'set be_number_for_test=3'
sql 'set parallel_pipeline_task_num=8; '
diff --git
a/regression-test/suites/shape_check/tpcds_sf1000_constraints/shape/query38.groovy
b/regression-test/suites/shape_check/tpcds_sf1000_constraints/shape/query38.groovy
index 3edfcf0f177..978f39f8cc1 100644
---
a/regression-test/suites/shape_check/tpcds_sf1000_constraints/shape/query38.groovy
+++
b/regression-test/suites/shape_check/tpcds_sf1000_constraints/shape/query38.groovy
@@ -24,6 +24,8 @@ suite("query38_constraints") {
set enable_nereids_planner=true;
set enable_nereids_distribute_planner=false;
set enable_fallback_to_original_planner=false;
+ set enable_spill = false;
+ set enable_force_spill = false;
set exec_mem_limit=21G;
set be_number_for_test=3;
set enable_runtime_filter_prune=false;
diff --git
a/regression-test/suites/shape_check/tpcds_sf1000_constraints/shape/query8.groovy
b/regression-test/suites/shape_check/tpcds_sf1000_constraints/shape/query8.groovy
index 5f647c3c1ab..c3779b87a82 100644
---
a/regression-test/suites/shape_check/tpcds_sf1000_constraints/shape/query8.groovy
+++
b/regression-test/suites/shape_check/tpcds_sf1000_constraints/shape/query8.groovy
@@ -26,6 +26,8 @@ suite("query8_constraints") {
sql 'set enable_nereids_planner=true'
sql 'set enable_nereids_distribute_planner=false'
sql 'set enable_fallback_to_original_planner=false'
+ sql 'set enable_spill = false'
+ sql 'set enable_force_spill = false'
sql 'set exec_mem_limit=21G'
sql 'set be_number_for_test=3'
sql 'set parallel_pipeline_task_num=8; '
diff --git
a/regression-test/suites/shape_check/tpcds_sf1000_constraints/shape/query87.groovy
b/regression-test/suites/shape_check/tpcds_sf1000_constraints/shape/query87.groovy
index 748c30f890a..f5cf974cc0f 100644
---
a/regression-test/suites/shape_check/tpcds_sf1000_constraints/shape/query87.groovy
+++
b/regression-test/suites/shape_check/tpcds_sf1000_constraints/shape/query87.groovy
@@ -26,6 +26,8 @@ suite("query87_constraints") {
sql 'set enable_nereids_planner=true'
sql 'set enable_nereids_distribute_planner=false'
sql 'set enable_fallback_to_original_planner=false'
+ sql 'set enable_spill = false'
+ sql 'set enable_force_spill = false'
sql 'set exec_mem_limit=21G'
sql 'set be_number_for_test=3'
sql 'set parallel_pipeline_task_num=8; '
diff --git
a/regression-test/suites/shape_check/tpcds_sf1000_nopkfk/shape/query14.groovy
b/regression-test/suites/shape_check/tpcds_sf1000_nopkfk/shape/query14.groovy
index 753fec2e266..241bb6f3a99 100644
---
a/regression-test/suites/shape_check/tpcds_sf1000_nopkfk/shape/query14.groovy
+++
b/regression-test/suites/shape_check/tpcds_sf1000_nopkfk/shape/query14.groovy
@@ -26,6 +26,8 @@ suite("query14") {
sql 'set enable_nereids_planner=true'
sql 'set enable_nereids_distribute_planner=false'
sql 'set enable_fallback_to_original_planner=false'
+ sql "set enable_spill = false"
+ sql "set enable_force_spill = false"
sql 'set exec_mem_limit=21G'
sql 'set be_number_for_test=3'
sql 'set parallel_pipeline_task_num=8; '
diff --git
a/regression-test/suites/shape_check/tpcds_sf1000_nopkfk/shape/query38.groovy
b/regression-test/suites/shape_check/tpcds_sf1000_nopkfk/shape/query38.groovy
index 06e3857fb30..38c812a0288 100644
---
a/regression-test/suites/shape_check/tpcds_sf1000_nopkfk/shape/query38.groovy
+++
b/regression-test/suites/shape_check/tpcds_sf1000_nopkfk/shape/query38.groovy
@@ -24,6 +24,8 @@ suite("query38") {
set enable_nereids_planner=true;
set enable_nereids_distribute_planner=false;
set enable_fallback_to_original_planner=false;
+ set enable_spill = false;
+ set enable_force_spill = false;
set exec_mem_limit=21G;
set be_number_for_test=3;
set enable_runtime_filter_prune=false;
diff --git
a/regression-test/suites/shape_check/tpcds_sf1000_nopkfk/shape/query8.groovy
b/regression-test/suites/shape_check/tpcds_sf1000_nopkfk/shape/query8.groovy
index cbb6206e241..f75a86dfa58 100644
--- a/regression-test/suites/shape_check/tpcds_sf1000_nopkfk/shape/query8.groovy
+++ b/regression-test/suites/shape_check/tpcds_sf1000_nopkfk/shape/query8.groovy
@@ -26,6 +26,8 @@ suite("query8") {
sql 'set enable_nereids_planner=true'
sql 'set enable_nereids_distribute_planner=false'
sql 'set enable_fallback_to_original_planner=false'
+ sql "set enable_spill = false"
+ sql "set enable_force_spill = false"
sql 'set exec_mem_limit=21G'
sql 'set be_number_for_test=3'
sql 'set parallel_pipeline_task_num=8; '
diff --git
a/regression-test/suites/shape_check/tpcds_sf1000_nopkfk/shape/query87.groovy
b/regression-test/suites/shape_check/tpcds_sf1000_nopkfk/shape/query87.groovy
index f7a38a963c5..a6eb9c60183 100644
---
a/regression-test/suites/shape_check/tpcds_sf1000_nopkfk/shape/query87.groovy
+++
b/regression-test/suites/shape_check/tpcds_sf1000_nopkfk/shape/query87.groovy
@@ -26,6 +26,8 @@ suite("query87") {
sql 'set enable_nereids_planner=true'
sql 'set enable_nereids_distribute_planner=false'
sql 'set enable_fallback_to_original_planner=false'
+ sql "set enable_spill = false"
+ sql "set enable_force_spill = false"
sql 'set exec_mem_limit=21G'
sql 'set be_number_for_test=3'
sql 'set parallel_pipeline_task_num=8; '
diff --git
a/regression-test/suites/shape_check/tpcds_sf10t_orc/shape/query14.groovy
b/regression-test/suites/shape_check/tpcds_sf10t_orc/shape/query14.groovy
index b24f8533583..2875df67e34 100644
--- a/regression-test/suites/shape_check/tpcds_sf10t_orc/shape/query14.groovy
+++ b/regression-test/suites/shape_check/tpcds_sf10t_orc/shape/query14.groovy
@@ -27,6 +27,8 @@ suite("query14") {
set enable_nereids_planner=true;
set enable_nereids_distribute_planner=false;
set enable_fallback_to_original_planner=false;
+ set enable_spill = false;
+ set enable_force_spill = false;
set exec_mem_limit=21G;
set be_number_for_test=3;
set parallel_pipeline_task_num=8;
diff --git
a/regression-test/suites/shape_check/tpcds_sf10t_orc/shape/query38.groovy
b/regression-test/suites/shape_check/tpcds_sf10t_orc/shape/query38.groovy
index 34cc84c20f6..140f8892211 100644
--- a/regression-test/suites/shape_check/tpcds_sf10t_orc/shape/query38.groovy
+++ b/regression-test/suites/shape_check/tpcds_sf10t_orc/shape/query38.groovy
@@ -27,6 +27,8 @@ suite("query38") {
set enable_nereids_planner=true;
set enable_nereids_distribute_planner=false;
set enable_fallback_to_original_planner=false;
+ set enable_spill = false;
+ set enable_force_spill = false;
set exec_mem_limit=21G;
set be_number_for_test=3;
set parallel_pipeline_task_num=8;
diff --git
a/regression-test/suites/shape_check/tpcds_sf10t_orc/shape/query8.groovy
b/regression-test/suites/shape_check/tpcds_sf10t_orc/shape/query8.groovy
index 4935ca00630..32556dea2ed 100644
--- a/regression-test/suites/shape_check/tpcds_sf10t_orc/shape/query8.groovy
+++ b/regression-test/suites/shape_check/tpcds_sf10t_orc/shape/query8.groovy
@@ -27,6 +27,8 @@ suite("query8") {
set enable_nereids_planner=true;
set enable_nereids_distribute_planner=false;
set enable_fallback_to_original_planner=false;
+ set enable_spill = false;
+ set enable_force_spill = false;
set exec_mem_limit=21G;
set be_number_for_test=3;
set parallel_pipeline_task_num=8;
diff --git
a/regression-test/suites/shape_check/tpcds_sf10t_orc/shape/query87.groovy
b/regression-test/suites/shape_check/tpcds_sf10t_orc/shape/query87.groovy
index 1a520db128a..f529ede7a39 100644
--- a/regression-test/suites/shape_check/tpcds_sf10t_orc/shape/query87.groovy
+++ b/regression-test/suites/shape_check/tpcds_sf10t_orc/shape/query87.groovy
@@ -27,6 +27,8 @@ suite("query87") {
set enable_nereids_planner=true;
set enable_nereids_distribute_planner=false;
set enable_fallback_to_original_planner=false;
+ set enable_spill = false;
+ set enable_force_spill = false;
set exec_mem_limit=21G;
set be_number_for_test=3;
set parallel_pipeline_task_num=8;
diff --git
a/regression-test/suites/shape_check/tpch_sf1000/runtime_filter/test_pushdown_setop.groovy
b/regression-test/suites/shape_check/tpch_sf1000/runtime_filter/test_pushdown_setop.groovy
index ebd96da5905..4fe7e09f8d7 100644
---
a/regression-test/suites/shape_check/tpch_sf1000/runtime_filter/test_pushdown_setop.groovy
+++
b/regression-test/suites/shape_check/tpch_sf1000/runtime_filter/test_pushdown_setop.groovy
@@ -26,6 +26,8 @@ suite("test_pushdown_setop") {
sql 'set enable_nereids_planner=true'
sql 'set enable_nereids_distribute_planner=false'
sql 'set enable_fallback_to_original_planner=false'
+ sql "set enable_spill = false"
+ sql "set enable_force_spill = false"
sql 'set exec_mem_limit=21G'
sql 'set be_number_for_test=3'
sql 'set parallel_pipeline_task_num=8; '
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]