@@ -21,10 +21,9 @@ import java.math.MathContext
2121import java .sql .Timestamp
2222
2323import org .apache .spark .AccumulatorSuite
24- import org .apache .spark .sql .catalyst .CatalystQl
25- import org .apache .spark .sql .catalyst .analysis .FunctionRegistry
26- import org .apache .spark .sql .catalyst .parser .ParserConf
27- import org .apache .spark .sql .execution .{aggregate , SparkQl }
24+ import org .apache .spark .sql .catalyst .analysis .{FunctionRegistry , UnresolvedException }
25+ import org .apache .spark .sql .catalyst .expressions .SortOrder
26+ import org .apache .spark .sql .execution .aggregate
2827import org .apache .spark .sql .execution .joins .{CartesianProduct , SortMergeJoin }
2928import org .apache .spark .sql .expressions .{MutableAggregationBuffer , UserDefinedAggregateFunction }
3029import org .apache .spark .sql .functions ._
@@ -456,21 +455,36 @@ class SQLQuerySuite extends QueryTest with SharedSQLContext {
456455
457456 test(" literal in agg grouping expressions" ) {
458457 checkAnswer(
459- sql(" SELECT a, count(1) FROM testData2 GROUP BY a, 1" ),
460- Seq (Row (1 , 2 ), Row (2 , 2 ), Row (3 , 2 )))
458+ sql(" SELECT SUM(a) FROM testData2 GROUP BY 2" ),
459+ Seq (Row (6 ), Row (6 )))
460+
461461 checkAnswer(
462- sql(" SELECT a, count(2) FROM testData2 GROUP BY a, 2" ),
462+ sql(" SELECT a, SUM(b) FROM testData2 GROUP BY 1" ),
463+ Seq (Row (1 , 3 ), Row (2 , 3 ), Row (3 , 3 )))
464+
465+ checkAnswer(
466+ sql(" SELECT a, SUM(b) FROM testData2 GROUP BY 1" ),
467+ Seq (Row (1 , 3 ), Row (2 , 3 ), Row (3 , 3 )))
468+
469+ checkAnswer(
470+ sql(" SELECT a, count(1) FROM testData2 GROUP BY a, 1" ),
463471 Seq (Row (1 , 2 ), Row (2 , 2 ), Row (3 , 2 )))
464472
465473 checkAnswer(
466474 sql(" SELECT a, 1, sum(b) FROM testData2 GROUP BY a, 1" ),
467475 sql(" SELECT a, 1, sum(b) FROM testData2 GROUP BY a" ))
476+
468477 checkAnswer(
469- sql(" SELECT a, 1, sum(b) FROM testData2 GROUP BY a, 1 + 2" ),
470- sql(" SELECT a, 1, sum(b) FROM testData2 GROUP BY a" ))
478+ sql(" SELECT a, count(2) FROM testData2 GROUP BY a, 2" ),
479+ Seq (Row (1 , 1 ), Row (1 , 1 ), Row (2 , 1 ), Row (2 , 1 ), Row (3 , 1 ), Row (3 , 1 )))
480+
471481 checkAnswer(
472482 sql(" SELECT 1, 2, sum(b) FROM testData2 GROUP BY 1, 2" ),
473- sql(" SELECT 1, 2, sum(b) FROM testData2" ))
483+ sql(" SELECT 1, 2, sum(b) FROM testData2 GROUP BY a, b" ))
484+
485+ checkAnswer(
486+ sql(" SELECT a, 1, sum(b) FROM testData2 GROUP BY a, 1 + 2" ),
487+ sql(" SELECT a, 1, sum(b) FROM testData2 GROUP BY a" ))
474488 }
475489
476490 test(" aggregates with nulls" ) {
@@ -493,6 +507,21 @@ class SQLQuerySuite extends QueryTest with SharedSQLContext {
493507 Row (" 1" ))
494508 }
495509
510+ test(" order by number index" ) {
511+ intercept[UnresolvedException [SortOrder ]] {
512+ sql(" SELECT * FROM testData2 ORDER BY -1 DESC, b ASC" ).collect()
513+ }
514+ checkAnswer(
515+ sql(" SELECT * FROM testData2 ORDER BY 1 DESC" ),
516+ Seq (Row (3 , 1 ), Row (3 , 2 ), Row (2 , 1 ), Row (2 , 2 ), Row (1 , 1 ), Row (1 , 2 )))
517+ checkAnswer(
518+ sql(" SELECT * FROM testData2 ORDER BY 1 DESC, b ASC" ),
519+ sql(" SELECT * FROM testData2 ORDER BY a DESC, b ASC" ))
520+ checkAnswer(
521+ sql(" SELECT * FROM testData2 ORDER BY 1 ASC, b ASC" ),
522+ Seq (Row (1 , 1 ), Row (1 , 2 ), Row (2 , 1 ), Row (2 , 2 ), Row (3 , 1 ), Row (3 , 2 )))
523+ }
524+
496525 def sortTest (): Unit = {
497526 checkAnswer(
498527 sql(" SELECT * FROM testData2 ORDER BY a ASC, b ASC" ),
0 commit comments