diff --git a/core/trino-main/src/main/java/io/trino/execution/QueryManagerConfig.java b/core/trino-main/src/main/java/io/trino/execution/QueryManagerConfig.java index 5fa0e7adcc9c..911310064dbe 100644 --- a/core/trino-main/src/main/java/io/trino/execution/QueryManagerConfig.java +++ b/core/trino-main/src/main/java/io/trino/execution/QueryManagerConfig.java @@ -155,7 +155,7 @@ public class QueryManagerConfig private boolean faultTolerantExecutionSmallStageRequireNoMorePartitions; private boolean faultTolerantExecutionStageEstimationForEagerParentEnabled = true; private boolean faultTolerantExecutionAdaptiveQueryPlanningEnabled = true; - private boolean faultTolerantExecutionAdaptiveJoinReorderingEnabled = true; + private boolean faultTolerantExecutionAdaptiveJoinReorderingEnabled; // Use a smaller threshold to change the order since the cost of changing the order is lower here. Additionally, // the data size stats are more accurate compared to static planning since they are collected at run time from the // stage execution. diff --git a/core/trino-main/src/test/java/io/trino/execution/TestQueryManagerConfig.java b/core/trino-main/src/test/java/io/trino/execution/TestQueryManagerConfig.java index eaa415fa9456..f6e428917b76 100644 --- a/core/trino-main/src/test/java/io/trino/execution/TestQueryManagerConfig.java +++ b/core/trino-main/src/test/java/io/trino/execution/TestQueryManagerConfig.java @@ -118,7 +118,7 @@ public void testDefaults() .setFaultTolerantExecutionSmallStageRequireNoMorePartitions(false) .setFaultTolerantExecutionStageEstimationForEagerParentEnabled(true) .setFaultTolerantExecutionAdaptiveQueryPlanningEnabled(true) - .setFaultTolerantExecutionAdaptiveJoinReorderingEnabled(true) + .setFaultTolerantExecutionAdaptiveJoinReorderingEnabled(false) .setFaultTolerantExecutionAdaptiveJoinReorderingMinSizeThreshold(DataSize.of(5, GIGABYTE)) .setFaultTolerantExecutionAdaptiveJoinReorderingSizeDifferenceRatio(1.5) .setMaxWriterTaskCount(100)); @@ -203,7 +203,7 @@ public void testExplicitPropertyMappings() .put("fault-tolerant-execution-small-stage-require-no-more-partitions", "true") .put("fault-tolerant-execution-stage-estimation-for-eager-parent-enabled", "false") .put("fault-tolerant-execution-adaptive-query-planning-enabled", "false") - .put("fault-tolerant-execution-adaptive-join-reordering-enabled", "false") + .put("fault-tolerant-execution-adaptive-join-reordering-enabled", "true") .put("fault-tolerant-execution-adaptive-join-reordering-min-size-threshold", "1GB") .put("fault-tolerant-execution-adaptive-join-reordering-size-difference-ratio", "2") .buildOrThrow(); @@ -283,7 +283,7 @@ public void testExplicitPropertyMappings() .setFaultTolerantExecutionSmallStageRequireNoMorePartitions(true) .setFaultTolerantExecutionStageEstimationForEagerParentEnabled(false) .setFaultTolerantExecutionAdaptiveQueryPlanningEnabled(false) - .setFaultTolerantExecutionAdaptiveJoinReorderingEnabled(false) + .setFaultTolerantExecutionAdaptiveJoinReorderingEnabled(true) .setFaultTolerantExecutionAdaptiveJoinReorderingMinSizeThreshold(DataSize.of(1, GIGABYTE)) .setFaultTolerantExecutionAdaptiveJoinReorderingSizeDifferenceRatio(2.0) .setMaxWriterTaskCount(101); diff --git a/core/trino-main/src/test/java/io/trino/sql/planner/iterative/rule/TestAdaptiveReorderPartitionedJoin.java b/core/trino-main/src/test/java/io/trino/sql/planner/iterative/rule/TestAdaptiveReorderPartitionedJoin.java index 1c5d3f230b4c..0063170d7861 100644 --- a/core/trino-main/src/test/java/io/trino/sql/planner/iterative/rule/TestAdaptiveReorderPartitionedJoin.java +++ b/core/trino-main/src/test/java/io/trino/sql/planner/iterative/rule/TestAdaptiveReorderPartitionedJoin.java @@ -16,6 +16,7 @@ import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; import com.google.common.collect.ImmutableSet; +import io.trino.Session; import io.trino.cost.PlanNodeStatsEstimate; import io.trino.sql.planner.Symbol; import io.trino.sql.planner.iterative.rule.test.BaseRuleTest; @@ -24,6 +25,7 @@ import io.trino.sql.planner.plan.JoinNode; import io.trino.sql.planner.plan.PlanFragmentId; import io.trino.sql.planner.plan.PlanNodeId; +import io.trino.testing.PlanTester; import org.junit.jupiter.api.Test; import java.util.Optional; @@ -42,6 +44,7 @@ import static io.trino.sql.planner.plan.ExchangeNode.Type.REPARTITION; import static io.trino.sql.planner.plan.JoinNode.DistributionType.PARTITIONED; import static io.trino.sql.planner.plan.JoinType.INNER; +import static io.trino.testing.TestingSession.testSessionBuilder; public class TestAdaptiveReorderPartitionedJoin extends BaseRuleTest @@ -483,4 +486,13 @@ private RuleAssert assertWithoutPartialAgg(double buildRowCount, double probeRow new JoinNode.EquiJoinClause(probeSymbol, buildSymbol)); }); } + + @Override + protected Optional createPlanTester() + { + Session session = testSessionBuilder() + .setSystemProperty("fault_tolerant_execution_adaptive_join_reordering_enabled", "true") + .build(); + return Optional.of(PlanTester.create(session)); + } }