aboutsummaryrefslogtreecommitdiff
path: root/sql/catalyst/src/test/scala/org/apache/spark/sql/catalyst/optimizer/ColumnPruningSuite.scala
diff options
context:
space:
mode:
Diffstat (limited to 'sql/catalyst/src/test/scala/org/apache/spark/sql/catalyst/optimizer/ColumnPruningSuite.scala')
-rw-r--r--sql/catalyst/src/test/scala/org/apache/spark/sql/catalyst/optimizer/ColumnPruningSuite.scala43
1 files changed, 10 insertions, 33 deletions
diff --git a/sql/catalyst/src/test/scala/org/apache/spark/sql/catalyst/optimizer/ColumnPruningSuite.scala b/sql/catalyst/src/test/scala/org/apache/spark/sql/catalyst/optimizer/ColumnPruningSuite.scala
index 52b574c0e6..b5664a5e69 100644
--- a/sql/catalyst/src/test/scala/org/apache/spark/sql/catalyst/optimizer/ColumnPruningSuite.scala
+++ b/sql/catalyst/src/test/scala/org/apache/spark/sql/catalyst/optimizer/ColumnPruningSuite.scala
@@ -24,7 +24,6 @@ import org.apache.spark.sql.catalyst.dsl.expressions._
import org.apache.spark.sql.catalyst.dsl.plans._
import org.apache.spark.sql.catalyst.encoders.ExpressionEncoder
import org.apache.spark.sql.catalyst.expressions._
-import org.apache.spark.sql.catalyst.expressions.aggregate.{AggregateExpression, Complete, Count}
import org.apache.spark.sql.catalyst.plans.{Inner, PlanTest}
import org.apache.spark.sql.catalyst.plans.logical._
import org.apache.spark.sql.catalyst.rules.RuleExecutor
@@ -267,17 +266,11 @@ class ColumnPruningSuite extends PlanTest {
test("Column pruning on Window with useless aggregate functions") {
val input = LocalRelation('a.int, 'b.string, 'c.double, 'd.int)
+ val winSpec = windowSpec('a :: Nil, 'b.asc :: Nil, UnspecifiedFrame)
+ val winExpr = windowExpr(count('b), winSpec)
- val originalQuery =
- input.groupBy('a, 'c, 'd)('a, 'c, 'd,
- WindowExpression(
- AggregateExpression(Count('b), Complete, isDistinct = false),
- WindowSpecDefinition( 'a :: Nil,
- SortOrder('b, Ascending) :: Nil,
- UnspecifiedFrame)).as('window)).select('a, 'c)
-
+ val originalQuery = input.groupBy('a, 'c, 'd)('a, 'c, 'd, winExpr.as('window)).select('a, 'c)
val correctAnswer = input.select('a, 'c, 'd).groupBy('a, 'c, 'd)('a, 'c).analyze
-
val optimized = Optimize.execute(originalQuery.analyze)
comparePlans(optimized, correctAnswer)
@@ -285,25 +278,15 @@ class ColumnPruningSuite extends PlanTest {
test("Column pruning on Window with selected agg expressions") {
val input = LocalRelation('a.int, 'b.string, 'c.double, 'd.int)
+ val winSpec = windowSpec('a :: Nil, 'b.asc :: Nil, UnspecifiedFrame)
+ val winExpr = windowExpr(count('b), winSpec)
val originalQuery =
- input.select('a, 'b, 'c, 'd,
- WindowExpression(
- AggregateExpression(Count('b), Complete, isDistinct = false),
- WindowSpecDefinition( 'a :: Nil,
- SortOrder('b, Ascending) :: Nil,
- UnspecifiedFrame)).as('window)).where('window > 1).select('a, 'c)
-
+ input.select('a, 'b, 'c, 'd, winExpr.as('window)).where('window > 1).select('a, 'c)
val correctAnswer =
input.select('a, 'b, 'c)
- .window(WindowExpression(
- AggregateExpression(Count('b), Complete, isDistinct = false),
- WindowSpecDefinition( 'a :: Nil,
- SortOrder('b, Ascending) :: Nil,
- UnspecifiedFrame)).as('window) :: Nil,
- 'a :: Nil, 'b.asc :: Nil)
+ .window(winExpr.as('window) :: Nil, 'a :: Nil, 'b.asc :: Nil)
.where('window > 1).select('a, 'c).analyze
-
val optimized = Optimize.execute(originalQuery.analyze)
comparePlans(optimized, correctAnswer)
@@ -311,17 +294,11 @@ class ColumnPruningSuite extends PlanTest {
test("Column pruning on Window in select") {
val input = LocalRelation('a.int, 'b.string, 'c.double, 'd.int)
+ val winSpec = windowSpec('a :: Nil, 'b.asc :: Nil, UnspecifiedFrame)
+ val winExpr = windowExpr(count('b), winSpec)
- val originalQuery =
- input.select('a, 'b, 'c, 'd,
- WindowExpression(
- AggregateExpression(Count('b), Complete, isDistinct = false),
- WindowSpecDefinition( 'a :: Nil,
- SortOrder('b, Ascending) :: Nil,
- UnspecifiedFrame)).as('window)).select('a, 'c)
-
+ val originalQuery = input.select('a, 'b, 'c, 'd, winExpr.as('window)).select('a, 'c)
val correctAnswer = input.select('a, 'c).analyze
-
val optimized = Optimize.execute(originalQuery.analyze)
comparePlans(optimized, correctAnswer)