aboutsummaryrefslogtreecommitdiff
path: root/sql
diff options
context:
space:
mode:
authorscwf <wangfei1@huawei.com>2015-01-10 17:07:34 -0800
committerMichael Armbrust <michael@databricks.com>2015-01-10 17:07:34 -0800
commitd22a31f5e84e27e27a059f540d08a8a441fc17fa (patch)
tree1065e8c1cc60c0de8df353b72b309c8c0598893c /sql
parent92d9a704ce1232bddc570bca13758b11ff9ddb1f (diff)
downloadspark-d22a31f5e84e27e27a059f540d08a8a441fc17fa.tar.gz
spark-d22a31f5e84e27e27a059f540d08a8a441fc17fa.tar.bz2
spark-d22a31f5e84e27e27a059f540d08a8a441fc17fa.zip
[SPARK-5029][SQL] Enable from follow multiple brackets
Enable from follow multiple brackets: ``` select key from ((select * from testData limit 1) union all (select * from testData limit 1)) x limit 1 ``` Author: scwf <wangfei1@huawei.com> Closes #3853 from scwf/from and squashes the following commits: 14f110a [scwf] enable from follow multiple brackets
Diffstat (limited to 'sql')
-rwxr-xr-xsql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/SqlParser.scala2
-rw-r--r--sql/core/src/test/scala/org/apache/spark/sql/SQLQuerySuite.scala17
2 files changed, 18 insertions, 1 deletions
diff --git a/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/SqlParser.scala b/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/SqlParser.scala
index fc7b874559..5d974df98b 100755
--- a/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/SqlParser.scala
+++ b/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/SqlParser.scala
@@ -125,7 +125,7 @@ class SqlParser extends AbstractSparkSQLParser {
}
protected lazy val start: Parser[LogicalPlan] =
- ( select *
+ ( (select | ("(" ~> select <~ ")")) *
( UNION ~ ALL ^^^ { (q1: LogicalPlan, q2: LogicalPlan) => Union(q1, q2) }
| INTERSECT ^^^ { (q1: LogicalPlan, q2: LogicalPlan) => Intersect(q1, q2) }
| EXCEPT ^^^ { (q1: LogicalPlan, q2: LogicalPlan) => Except(q1, q2)}
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 add4e218a2..d9de5686dc 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
@@ -272,6 +272,23 @@ class SQLQuerySuite extends QueryTest with BeforeAndAfterAll {
mapData.collect().take(1).toSeq)
}
+ test("from follow multiple brackets") {
+ checkAnswer(sql(
+ "select key from ((select * from testData limit 1) union all (select * from testData limit 1)) x limit 1"),
+ 1
+ )
+
+ checkAnswer(sql(
+ "select key from (select * from testData) x limit 1"),
+ 1
+ )
+
+ checkAnswer(sql(
+ "select key from (select * from testData limit 1 union all select * from testData limit 1) x limit 1"),
+ 1
+ )
+ }
+
test("average") {
checkAnswer(
sql("SELECT AVG(a) FROM testData2"),