diff options
author | Cheng Lian <lian@databricks.com> | 2016-03-06 12:54:04 +0800 |
---|---|---|
committer | Cheng Lian <lian@databricks.com> | 2016-03-06 12:54:04 +0800 |
commit | 8ff88094daa4945e7d718baa7b20703fd8087ab0 (patch) | |
tree | a4db4a4043beb73bbaf65a398214de0a954fdb8d | |
parent | 8290004d94760c22d6d3ca8dda3003ac8644422f (diff) | |
download | spark-8ff88094daa4945e7d718baa7b20703fd8087ab0.tar.gz spark-8ff88094daa4945e7d718baa7b20703fd8087ab0.tar.bz2 spark-8ff88094daa4945e7d718baa7b20703fd8087ab0.zip |
Revert "[SPARK-13616][SQL] Let SQLBuilder convert logical plan without a project on top of it"
This reverts commit f87ce0504ea0697969ac3e67690c78697b76e94a.
According to discussion in #11466, let's revert PR #11466 for safe.
Author: Cheng Lian <lian@databricks.com>
Closes #11539 from liancheng/revert-pr-11466.
-rw-r--r-- | sql/hive/src/main/scala/org/apache/spark/sql/hive/SQLBuilder.scala | 23 | ||||
-rw-r--r-- | sql/hive/src/test/scala/org/apache/spark/sql/hive/LogicalPlanToSQLSuite.scala | 41 |
2 files changed, 1 insertions, 63 deletions
diff --git a/sql/hive/src/main/scala/org/apache/spark/sql/hive/SQLBuilder.scala b/sql/hive/src/main/scala/org/apache/spark/sql/hive/SQLBuilder.scala index 8d411a9a40..683f738054 100644 --- a/sql/hive/src/main/scala/org/apache/spark/sql/hive/SQLBuilder.scala +++ b/sql/hive/src/main/scala/org/apache/spark/sql/hive/SQLBuilder.scala @@ -65,7 +65,7 @@ class SQLBuilder(logicalPlan: LogicalPlan, sqlContext: SQLContext) extends Loggi case e => e } - val generatedSQL = toSQL(replaced, true) + val generatedSQL = toSQL(replaced) logDebug( s"""Built SQL query string successfully from given logical plan: | @@ -90,27 +90,6 @@ class SQLBuilder(logicalPlan: LogicalPlan, sqlContext: SQLContext) extends Loggi } } - private def toSQL(node: LogicalPlan, topNode: Boolean): String = { - if (topNode) { - node match { - case d: Distinct => toSQL(node) - case p: Project => toSQL(node) - case a: Aggregate => toSQL(node) - case s: Sort => toSQL(node) - case r: RepartitionByExpression => toSQL(node) - case _ => - build( - "SELECT", - node.output.map(_.sql).mkString(", "), - "FROM", - toSQL(node) - ) - } - } else { - toSQL(node) - } - } - private def toSQL(node: LogicalPlan): String = node match { case Distinct(p: Project) => projectToSQL(p, isDistinct = true) diff --git a/sql/hive/src/test/scala/org/apache/spark/sql/hive/LogicalPlanToSQLSuite.scala b/sql/hive/src/test/scala/org/apache/spark/sql/hive/LogicalPlanToSQLSuite.scala index f457d43e19..ed85856f01 100644 --- a/sql/hive/src/test/scala/org/apache/spark/sql/hive/LogicalPlanToSQLSuite.scala +++ b/sql/hive/src/test/scala/org/apache/spark/sql/hive/LogicalPlanToSQLSuite.scala @@ -19,8 +19,6 @@ package org.apache.spark.sql.hive import scala.util.control.NonFatal -import org.apache.spark.sql.{DataFrame, SQLContext} -import org.apache.spark.sql.catalyst.plans.logical._ import org.apache.spark.sql.functions._ import org.apache.spark.sql.test.SQLTestUtils @@ -56,33 +54,6 @@ class LogicalPlanToSQLSuite extends SQLBuilderTest with SQLTestUtils { sql("DROP TABLE IF EXISTS t0") } - private def checkPlan(plan: LogicalPlan, sqlContext: SQLContext, expected: String): Unit = { - val convertedSQL = try new SQLBuilder(plan, sqlContext).toSQL catch { - case NonFatal(e) => - fail( - s"""Cannot convert the following logical query plan back to SQL query string: - | - |# Original logical query plan: - |${plan.treeString} - """.stripMargin, e) - } - - try { - checkAnswer(sql(convertedSQL), DataFrame(sqlContext, plan)) - } catch { case cause: Throwable => - fail( - s"""Failed to execute converted SQL string or got wrong answer: - | - |# Converted SQL query string: - |$convertedSQL - | - |# Original logical query plan: - |${plan.treeString} - """.stripMargin, - cause) - } - } - private def checkHiveQl(hiveQl: String): Unit = { val df = sql(hiveQl) @@ -186,18 +157,6 @@ class LogicalPlanToSQLSuite extends SQLBuilderTest with SQLTestUtils { "SELECT x.key, COUNT(*) FROM parquet_t1 x JOIN parquet_t1 y ON x.key = y.key group by x.key") } - test("join plan") { - val expectedSql = "SELECT x.key FROM parquet_t1 x JOIN parquet_t1 y ON x.key = y.key" - - val df1 = sqlContext.table("parquet_t1").as("x") - val df2 = sqlContext.table("parquet_t1").as("y") - val joinPlan = df1.join(df2).queryExecution.analyzed - - // Make sure we have a plain Join operator without Project on top of it. - assert(joinPlan.isInstanceOf[Join]) - checkPlan(joinPlan, sqlContext, expectedSql) - } - test("case") { checkHiveQl("SELECT CASE WHEN id % 2 > 0 THEN 0 WHEN id % 2 = 0 THEN 1 END FROM parquet_t0") } |