Skip to content

Commit 8aee8a5

Browse files
committed
add ut
1 parent bc454b6 commit 8aee8a5

File tree

1 file changed

+12
-0
lines changed

1 file changed

+12
-0
lines changed

sql/catalyst/src/test/scala/org/apache/spark/sql/catalyst/optimizer/EliminateSortsSuite.scala

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ import org.apache.spark.sql.catalyst.dsl.expressions._
2424
import org.apache.spark.sql.catalyst.dsl.plans._
2525
import org.apache.spark.sql.catalyst.encoders.ExpressionEncoder
2626
import org.apache.spark.sql.catalyst.expressions._
27+
import org.apache.spark.sql.catalyst.expressions.aggregate.{MaxBy, MinBy}
2728
import org.apache.spark.sql.catalyst.plans._
2829
import org.apache.spark.sql.catalyst.plans.logical._
2930
import org.apache.spark.sql.catalyst.rules._
@@ -319,4 +320,15 @@ class EliminateSortsSuite extends PlanTest {
319320
val correctAnswer = PushDownOptimizer.execute(noOrderByPlan.analyze)
320321
comparePlans(optimized, correctAnswer)
321322
}
323+
324+
test("SPARK-32360: Add MaxMinBy to support eliminate sorts") {
325+
Seq(MaxBy(Symbol("a"), Symbol("b")), MinBy(Symbol("a"), Symbol("b"))).foreach { agg =>
326+
val projectPlan = testRelation.select(Symbol("a"), Symbol("b"))
327+
val unnecessaryOrderByPlan = projectPlan.orderBy(Symbol("a").asc)
328+
val groupByPlan = unnecessaryOrderByPlan.groupBy(Symbol("a"))(agg)
329+
val optimized = Optimize.execute(groupByPlan.analyze)
330+
val correctAnswer = projectPlan.groupBy(Symbol("a"))(agg).analyze
331+
comparePlans(optimized, correctAnswer)
332+
}
333+
}
322334
}

0 commit comments

Comments
 (0)