diff --git a/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/optimizer/Optimizer.scala b/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/optimizer/Optimizer.scala index fedcb7632eba5..b1aa5c20e0b3c 100644 --- a/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/optimizer/Optimizer.scala +++ b/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/optimizer/Optimizer.scala @@ -49,10 +49,12 @@ abstract class Optimizer extends RuleExecutor[LogicalPlan] { PushPredicateThroughProject, PushPredicateThroughGenerate, PushPredicateThroughAggregate, + PushDownLimit, ColumnPruning, // Operator combine ProjectCollapsing, CombineFilters, + CombineLimits, // Constant folding NullPropagation, OptimizeIn, @@ -63,11 +65,6 @@ abstract class Optimizer extends RuleExecutor[LogicalPlan] { SimplifyFilters, SimplifyCasts, SimplifyCaseConversionExpressions) :: - Batch("Push Down Limits", FixedPoint(100), - PushDownLimit, - CombineLimits, - ConstantFolding, - BooleanSimplification) :: Batch("Decimal Optimizations", FixedPoint(100), DecimalAggregates) :: Batch("LocalRelation", FixedPoint(100), @@ -90,9 +87,6 @@ object DefaultOptimizer extends Optimizer * 2. Project is pushed through Limit in the rule ColumnPruning * * Any operator that a Limit can be pushed passed should override the maxRows function. - * - * Note: This rule has to be done when the logical plan is stable; - * Otherwise, it could impact the other rules. */ object PushDownLimit extends Rule[LogicalPlan] { diff --git a/sql/catalyst/src/test/scala/org/apache/spark/sql/catalyst/optimizer/SetOperationPushDownSuite.scala b/sql/catalyst/src/test/scala/org/apache/spark/sql/catalyst/optimizer/SetOperationPushDownSuite.scala index 0837f10736650..1595ad9327423 100644 --- a/sql/catalyst/src/test/scala/org/apache/spark/sql/catalyst/optimizer/SetOperationPushDownSuite.scala +++ b/sql/catalyst/src/test/scala/org/apache/spark/sql/catalyst/optimizer/SetOperationPushDownSuite.scala @@ -31,9 +31,6 @@ class SetOperationPushDownSuite extends PlanTest { EliminateSubQueries) :: Batch("Union Pushdown", Once, SetOperationPushDown, - CombineLimits, - ConstantFolding, - BooleanSimplification, SimplifyFilters) :: Nil }