aboutsummaryrefslogtreecommitdiff
path: root/sql/catalyst
diff options
context:
space:
mode:
authorCheng Lian <lian.cs.zju@gmail.com>2014-10-20 15:29:54 -0700
committerMichael Armbrust <michael@databricks.com>2014-10-20 15:29:54 -0700
commit1b3ce61ce9061719d8c28d621c3200e0bff3a4e9 (patch)
tree723bd7a7d611688890eb9bd89272e66ab12b6e14 /sql/catalyst
parenteadc4c590ee43572528da55d84ed65f09153e857 (diff)
downloadspark-1b3ce61ce9061719d8c28d621c3200e0bff3a4e9.tar.gz
spark-1b3ce61ce9061719d8c28d621c3200e0bff3a4e9.tar.bz2
spark-1b3ce61ce9061719d8c28d621c3200e0bff3a4e9.zip
[SPARK-3906][SQL] Adds multiple join support for SQLContext
Author: Cheng Lian <lian.cs.zju@gmail.com> Closes #2767 from liancheng/multi-join and squashes the following commits: 9dc0d18 [Cheng Lian] Adds multiple join support for SQLContext
Diffstat (limited to 'sql/catalyst')
-rwxr-xr-xsql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/SqlParser.scala8
1 files changed, 5 insertions, 3 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 b4d606d37e..a277684f63 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
@@ -181,9 +181,11 @@ class SqlParser extends AbstractSparkSQLParser {
)
protected lazy val joinedRelation: Parser[LogicalPlan] =
- relationFactor ~ joinType.? ~ (JOIN ~> relationFactor) ~ joinConditions.? ^^ {
- case r1 ~ jt ~ r2 ~ cond =>
- Join(r1, r2, joinType = jt.getOrElse(Inner), cond)
+ relationFactor ~ rep1(joinType.? ~ (JOIN ~> relationFactor) ~ joinConditions.?) ^^ {
+ case r1 ~ joins =>
+ joins.foldLeft(r1) { case (lhs, jt ~ rhs ~ cond) =>
+ Join(lhs, rhs, joinType = jt.getOrElse(Inner), cond)
+ }
}
protected lazy val joinConditions: Parser[Expression] =