aboutsummaryrefslogtreecommitdiff
path: root/sql
diff options
context:
space:
mode:
authorscwf <wangfei1@huawei.com>2015-04-30 18:50:14 -0700
committerMichael Armbrust <michael@databricks.com>2015-04-30 18:50:14 -0700
commit473552fa5db9fa81f1a800f4ebacd23472e8c212 (patch)
tree020751ce9c26ba5ae26613234b1551729ada3132 /sql
parent3ba5aaab8266822545ac82b9e733fd25cc215a77 (diff)
downloadspark-473552fa5db9fa81f1a800f4ebacd23472e8c212.tar.gz
spark-473552fa5db9fa81f1a800f4ebacd23472e8c212.tar.bz2
spark-473552fa5db9fa81f1a800f4ebacd23472e8c212.zip
[SPARK-7123] [SQL] support table.star in sqlcontext
Run following sql get error `SELECT r.* FROM testData l join testData2 r on (l.key = r.a)` Author: scwf <wangfei1@huawei.com> Closes #5690 from scwf/tablestar and squashes the following commits: 3b2e2b6 [scwf] support table.star
Diffstat (limited to 'sql')
-rw-r--r--sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/SqlParser.scala1
-rw-r--r--sql/core/src/test/scala/org/apache/spark/sql/SQLQuerySuite.scala10
2 files changed, 11 insertions, 0 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 0af969cc5c..1d3a2dc0d9 100644
--- 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
@@ -365,6 +365,7 @@ class SqlParser extends AbstractSparkSQLParser with DataTypeParser {
protected lazy val baseExpression: Parser[Expression] =
( "*" ^^^ UnresolvedStar(None)
+ | ident <~ "." ~ "*" ^^ { case tableName => UnresolvedStar(Option(tableName)) }
| primary
)
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 255f8c3982..0ab8558c1d 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
@@ -51,6 +51,16 @@ class SQLQuerySuite extends QueryTest with BeforeAndAfterAll {
Row("1", 1) :: Row("2", 1) :: Row("3", 1) :: Nil)
}
+ test("support table.star") {
+ checkAnswer(
+ sql(
+ """
+ |SELECT r.*
+ |FROM testData l join testData2 r on (l.key = r.a)
+ """.stripMargin),
+ Row(1, 1) :: Row(1, 2) :: Row(2, 1) :: Row(2, 2) :: Row(3, 1) :: Row(3, 2) :: Nil)
+ }
+
test("self join with alias in agg") {
Seq(1,2,3)
.map(i => (i, i.toString))