aboutsummaryrefslogtreecommitdiff
path: root/sql/core/src/test
diff options
context:
space:
mode:
authorNong <nong@cloudera.com>2015-11-03 16:44:37 -0800
committerYin Huai <yhuai@databricks.com>2015-11-03 16:44:37 -0800
commite352de0db2789919e1e0385b79f29b508a6b2b77 (patch)
treed1d9ca958230fa76c3437cf35f03ada6e96ee2d2 /sql/core/src/test
parentd648a4ad546eb05deab1005e92b815b2cbea621b (diff)
downloadspark-e352de0db2789919e1e0385b79f29b508a6b2b77.tar.gz
spark-e352de0db2789919e1e0385b79f29b508a6b2b77.tar.bz2
spark-e352de0db2789919e1e0385b79f29b508a6b2b77.zip
[SPARK-11329] [SQL] Cleanup from spark-11329 fix.
Author: Nong <nong@cloudera.com> Closes #9442 from nongli/spark-11483.
Diffstat (limited to 'sql/core/src/test')
-rw-r--r--sql/core/src/test/scala/org/apache/spark/sql/SQLQuerySuite.scala79
1 files changed, 46 insertions, 33 deletions
diff --git a/sql/core/src/test/scala/org/apache/spark/sql/SQLQuerySuite.scala b/sql/core/src/test/scala/org/apache/spark/sql/SQLQuerySuite.scala
index ee54bff24b..6388a8b9c3 100644
--- a/sql/core/src/test/scala/org/apache/spark/sql/SQLQuerySuite.scala
+++ b/sql/core/src/test/scala/org/apache/spark/sql/SQLQuerySuite.scala
@@ -25,7 +25,7 @@ import org.apache.spark.sql.catalyst.DefaultParserDialect
import org.apache.spark.sql.catalyst.analysis.FunctionRegistry
import org.apache.spark.sql.catalyst.errors.DialectException
import org.apache.spark.sql.execution.aggregate
-import org.apache.spark.sql.execution.joins.{SortMergeJoin, CartesianProduct}
+import org.apache.spark.sql.execution.joins.{CartesianProduct, SortMergeJoin}
import org.apache.spark.sql.functions._
import org.apache.spark.sql.test.SQLTestData._
import org.apache.spark.sql.test.{SharedSQLContext, TestSQLContext}
@@ -1956,7 +1956,8 @@ class SQLQuerySuite extends QueryTest with SharedSQLContext {
// Try with a registered table.
sql("select struct(a, b) as record from testData2").registerTempTable("structTable")
- checkAnswer(sql("SELECT record.* FROM structTable"),
+ checkAnswer(
+ sql("SELECT record.* FROM structTable"),
Row(1, 1) :: Row(1, 2) :: Row(2, 1) :: Row(2, 2) :: Row(3, 1) :: Row(3, 2) :: Nil)
checkAnswer(sql(
@@ -2019,50 +2020,62 @@ class SQLQuerySuite extends QueryTest with SharedSQLContext {
Row(1, 1) :: Row(1, 2) :: Row(2, 1) :: Row(2, 2) :: Row(3, 1) :: Row(3, 2) :: Nil)
// Try with a registered table
- nestedStructData.registerTempTable("nestedStructTable")
- checkAnswer(sql("SELECT record.* FROM nestedStructTable"),
- nestedStructData.select($"record.*"))
- checkAnswer(sql("SELECT record.r1 FROM nestedStructTable"),
- nestedStructData.select($"record.r1"))
- checkAnswer(sql("SELECT record.r1.* FROM nestedStructTable"),
- nestedStructData.select($"record.r1.*"))
-
- // Create paths with unusual characters.
+ withTempTable("nestedStructTable") {
+ nestedStructData.registerTempTable("nestedStructTable")
+ checkAnswer(
+ sql("SELECT record.* FROM nestedStructTable"),
+ nestedStructData.select($"record.*"))
+ checkAnswer(
+ sql("SELECT record.r1 FROM nestedStructTable"),
+ nestedStructData.select($"record.r1"))
+ checkAnswer(
+ sql("SELECT record.r1.* FROM nestedStructTable"),
+ nestedStructData.select($"record.r1.*"))
+
+ // Try resolving something not there.
+ assert(intercept[AnalysisException](sql("SELECT abc.* FROM nestedStructTable"))
+ .getMessage.contains("cannot resolve"))
+ }
+
+ // Create paths with unusual characters
val specialCharacterPath = sql(
"""
| SELECT struct(`col$.a_`, `a.b.c.`) as `r&&b.c` FROM
| (SELECT struct(a, b) as `col$.a_`, struct(b, a) as `a.b.c.` FROM testData2) tmp
""".stripMargin)
- specialCharacterPath.registerTempTable("specialCharacterTable")
- checkAnswer(specialCharacterPath.select($"`r&&b.c`.*"),
- nestedStructData.select($"record.*"))
- checkAnswer(sql("SELECT `r&&b.c`.`col$.a_` FROM specialCharacterTable"),
- nestedStructData.select($"record.r1"))
- checkAnswer(sql("SELECT `r&&b.c`.`a.b.c.` FROM specialCharacterTable"),
- nestedStructData.select($"record.r2"))
- checkAnswer(sql("SELECT `r&&b.c`.`col$.a_`.* FROM specialCharacterTable"),
- nestedStructData.select($"record.r1.*"))
+ withTempTable("specialCharacterTable") {
+ specialCharacterPath.registerTempTable("specialCharacterTable")
+ checkAnswer(
+ specialCharacterPath.select($"`r&&b.c`.*"),
+ nestedStructData.select($"record.*"))
+ checkAnswer(
+ sql("SELECT `r&&b.c`.`col$.a_` FROM specialCharacterTable"),
+ nestedStructData.select($"record.r1"))
+ checkAnswer(
+ sql("SELECT `r&&b.c`.`a.b.c.` FROM specialCharacterTable"),
+ nestedStructData.select($"record.r2"))
+ checkAnswer(
+ sql("SELECT `r&&b.c`.`col$.a_`.* FROM specialCharacterTable"),
+ nestedStructData.select($"record.r1.*"))
+ }
// Try star expanding a scalar. This should fail.
assert(intercept[AnalysisException](sql("select a.* from testData2")).getMessage.contains(
"Can only star expand struct data types."))
-
- // Try resolving something not there.
- assert(intercept[AnalysisException](sql("SELECT abc.* FROM nestedStructTable"))
- .getMessage.contains("cannot resolve"))
}
-
test("Struct Star Expansion - Name conflict") {
// Create a data set that contains a naming conflict
val nameConflict = sql("SELECT struct(a, b) as nameConflict, a as a FROM testData2")
- nameConflict.registerTempTable("nameConflict")
- // Unqualified should resolve to table.
- checkAnswer(sql("SELECT nameConflict.* FROM nameConflict"),
- Row(Row(1, 1), 1) :: Row(Row(1, 2), 1) :: Row(Row(2, 1), 2) :: Row(Row(2, 2), 2) ::
- Row(Row(3, 1), 3) :: Row(Row(3, 2), 3) :: Nil)
- // Qualify the struct type with the table name.
- checkAnswer(sql("SELECT nameConflict.nameConflict.* FROM nameConflict"),
- Row(1, 1) :: Row(1, 2) :: Row(2, 1) :: Row(2, 2) :: Row(3, 1) :: Row(3, 2) :: Nil)
+ withTempTable("nameConflict") {
+ nameConflict.registerTempTable("nameConflict")
+ // Unqualified should resolve to table.
+ checkAnswer(sql("SELECT nameConflict.* FROM nameConflict"),
+ Row(Row(1, 1), 1) :: Row(Row(1, 2), 1) :: Row(Row(2, 1), 2) :: Row(Row(2, 2), 2) ::
+ Row(Row(3, 1), 3) :: Row(Row(3, 2), 3) :: Nil)
+ // Qualify the struct type with the table name.
+ checkAnswer(sql("SELECT nameConflict.nameConflict.* FROM nameConflict"),
+ Row(1, 1) :: Row(1, 2) :: Row(2, 1) :: Row(2, 2) :: Row(3, 1) :: Row(3, 2) :: Nil)
+ }
}
}