aboutsummaryrefslogtreecommitdiff
path: root/sql/hive
diff options
context:
space:
mode:
authorKeuntae Park <sirpkt@apache.org>2015-07-08 14:29:52 -0700
committerMichael Armbrust <michael@databricks.com>2015-07-08 14:29:52 -0700
commitf031543782e8f0f5b6a4471ba1c1d5c53efbe5cd (patch)
tree3253ee6cb9cd58387fae6e5cf794ba993c6146cb /sql/hive
parent2b40365d76b7d9d382ad5077cdf979906bca17f2 (diff)
downloadspark-f031543782e8f0f5b6a4471ba1c1d5c53efbe5cd.tar.gz
spark-f031543782e8f0f5b6a4471ba1c1d5c53efbe5cd.tar.bz2
spark-f031543782e8f0f5b6a4471ba1c1d5c53efbe5cd.zip
[SPARK-8783] [SQL] CTAS with WITH clause does not work
Currently, CTESubstitution only handles the case that WITH is on the top of the plan. I think it SHOULD handle the case that WITH is child of CTAS. This patch simply changes 'match' to 'transform' for recursive search of WITH in the plan. Author: Keuntae Park <sirpkt@apache.org> Closes #7180 from sirpkt/SPARK-8783 and squashes the following commits: e4428f0 [Keuntae Park] Merge remote-tracking branch 'upstream/master' into CTASwithWITH 1671c77 [Keuntae Park] WITH clause can be inside CTAS
Diffstat (limited to 'sql/hive')
-rw-r--r--sql/hive/src/test/scala/org/apache/spark/sql/hive/execution/SQLQuerySuite.scala18
1 files changed, 18 insertions, 0 deletions
diff --git a/sql/hive/src/test/scala/org/apache/spark/sql/hive/execution/SQLQuerySuite.scala b/sql/hive/src/test/scala/org/apache/spark/sql/hive/execution/SQLQuerySuite.scala
index bf9f2ecd51..05a1f0094e 100644
--- a/sql/hive/src/test/scala/org/apache/spark/sql/hive/execution/SQLQuerySuite.scala
+++ b/sql/hive/src/test/scala/org/apache/spark/sql/hive/execution/SQLQuerySuite.scala
@@ -159,6 +159,24 @@ class SQLQuerySuite extends QueryTest {
checkAnswer(query, Row(1, 1) :: Nil)
}
+ test("CTAS with WITH clause") {
+ val df = Seq((1, 1)).toDF("c1", "c2")
+ df.registerTempTable("table1")
+
+ sql(
+ """
+ |CREATE TABLE with_table1 AS
+ |WITH T AS (
+ | SELECT *
+ | FROM table1
+ |)
+ |SELECT *
+ |FROM T
+ """.stripMargin)
+ val query = sql("SELECT * FROM with_table1")
+ checkAnswer(query, Row(1, 1) :: Nil)
+ }
+
test("explode nested Field") {
Seq(NestedArray1(NestedArray2(Seq(1, 2, 3)))).toDF.registerTempTable("nestedArray")
checkAnswer(