From 8ff88094daa4945e7d718baa7b20703fd8087ab0 Mon Sep 17 00:00:00 2001 From: Cheng Lian Date: Sun, 6 Mar 2016 12:54:04 +0800 Subject: 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 Closes #11539 from liancheng/revert-pr-11466. --- .../org/apache/spark/sql/hive/SQLBuilder.scala | 23 +----------- .../spark/sql/hive/LogicalPlanToSQLSuite.scala | 41 ---------------------- 2 files changed, 1 insertion(+), 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") } -- cgit v1.2.3