aboutsummaryrefslogtreecommitdiff
path: root/sql/catalyst/src/test
diff options
context:
space:
mode:
authorHerman van Hovell <hvanhovell@questtec.nl>2016-05-02 18:12:31 -0700
committerReynold Xin <rxin@databricks.com>2016-05-02 18:12:31 -0700
commit1c19c2769edecaefabc2cd67b3b32f901feb3f59 (patch)
tree1d561c79d936f5b4cd3e05924abbcb7cc0417f99 /sql/catalyst/src/test
parentd37c7f7f042f7943b5b684e53cf4284c601fb347 (diff)
downloadspark-1c19c2769edecaefabc2cd67b3b32f901feb3f59.tar.gz
spark-1c19c2769edecaefabc2cd67b3b32f901feb3f59.tar.bz2
spark-1c19c2769edecaefabc2cd67b3b32f901feb3f59.zip
[SPARK-15047][SQL] Cleanup SQL Parser
## What changes were proposed in this pull request? This PR addresses a few minor issues in SQL parser: - Removes some unused rules and keywords in the grammar. - Removes code path for fallback SQL parsing (was needed for Hive native parsing). - Use `UnresolvedGenerator` instead of hard-coding `Explode` & `JsonTuple`. - Adds a more generic way of creating error messages for unsupported Hive features. - Use `visitFunctionName` as much as possible. - Interpret a `CatalogColumn`'s `DataType` directly instead of parsing it again. ## How was this patch tested? Existing tests. Author: Herman van Hovell <hvanhovell@questtec.nl> Closes #12826 from hvanhovell/SPARK-15047.
Diffstat (limited to 'sql/catalyst/src/test')
-rw-r--r--sql/catalyst/src/test/scala/org/apache/spark/sql/catalyst/parser/PlanParserSuite.scala15
1 files changed, 9 insertions, 6 deletions
diff --git a/sql/catalyst/src/test/scala/org/apache/spark/sql/catalyst/parser/PlanParserSuite.scala b/sql/catalyst/src/test/scala/org/apache/spark/sql/catalyst/parser/PlanParserSuite.scala
index 5e896a33bd..b7af2ceda6 100644
--- a/sql/catalyst/src/test/scala/org/apache/spark/sql/catalyst/parser/PlanParserSuite.scala
+++ b/sql/catalyst/src/test/scala/org/apache/spark/sql/catalyst/parser/PlanParserSuite.scala
@@ -53,7 +53,7 @@ class PlanParserSuite extends PlanTest {
assertEqual("show functions foo", ShowFunctions(None, Some("foo")))
assertEqual("show functions foo.bar", ShowFunctions(Some("foo"), Some("bar")))
assertEqual("show functions 'foo\\\\.*'", ShowFunctions(None, Some("foo\\.*")))
- intercept("show functions foo.bar.baz", "SHOW FUNCTIONS unsupported name")
+ intercept("show functions foo.bar.baz", "Unsupported function name")
}
test("describe function") {
@@ -263,11 +263,14 @@ class PlanParserSuite extends PlanTest {
}
test("lateral view") {
+ val explode = UnresolvedGenerator(FunctionIdentifier("explode"), Seq('x))
+ val jsonTuple = UnresolvedGenerator(FunctionIdentifier("json_tuple"), Seq('x, 'y))
+
// Single lateral view
assertEqual(
"select * from t lateral view explode(x) expl as x",
table("t")
- .generate(Explode('x), join = true, outer = false, Some("expl"), Seq("x"))
+ .generate(explode, join = true, outer = false, Some("expl"), Seq("x"))
.select(star()))
// Multiple lateral views
@@ -277,12 +280,12 @@ class PlanParserSuite extends PlanTest {
|lateral view explode(x) expl
|lateral view outer json_tuple(x, y) jtup q, z""".stripMargin,
table("t")
- .generate(Explode('x), join = true, outer = false, Some("expl"), Seq.empty)
- .generate(JsonTuple(Seq('x, 'y)), join = true, outer = true, Some("jtup"), Seq("q", "z"))
+ .generate(explode, join = true, outer = false, Some("expl"), Seq.empty)
+ .generate(jsonTuple, join = true, outer = true, Some("jtup"), Seq("q", "z"))
.select(star()))
// Multi-Insert lateral views.
- val from = table("t1").generate(Explode('x), join = true, outer = false, Some("expl"), Seq("x"))
+ val from = table("t1").generate(explode, join = true, outer = false, Some("expl"), Seq("x"))
assertEqual(
"""from t1
|lateral view explode(x) expl as x
@@ -294,7 +297,7 @@ class PlanParserSuite extends PlanTest {
|where s < 10
""".stripMargin,
Union(from
- .generate(JsonTuple(Seq('x, 'y)), join = true, outer = false, Some("jtup"), Seq("q", "z"))
+ .generate(jsonTuple, join = true, outer = false, Some("jtup"), Seq("q", "z"))
.select(star())
.insertInto("t2"),
from.where('s < 10).select(star()).insertInto("t3")))