Github user dongjoon-hyun commented on a diff in the pull request: https://github.com/apache/spark/pull/14191#discussion_r70748362 --- Diff: sql/hive/src/test/scala/org/apache/spark/sql/hive/execution/SQLQuerySuite.scala --- @@ -1755,4 +1755,97 @@ class SQLQuerySuite extends QueryTest with SQLTestUtils with TestHiveSingleton { } } } + + test("select into(check relation)") { + val originalConf = sessionState.conf.convertCTAS + + setConf(SQLConf.CONVERT_CTAS, true) + + val defaultDataSource = sessionState.conf.defaultDataSourceName + try { + sql("DROP TABLE IF EXISTS si1") + sql("SELECT key, value INTO si1 FROM src ORDER BY key, value") + val message = intercept[AnalysisException] { + sql("SELECT key, value INTO si1 FROM src ORDER BY key, value") + }.getMessage + assert(message.contains("already exists")) + checkRelation("si1", true, defaultDataSource) + sql("DROP TABLE si1") + + // Specifying database name for query can be converted to data source write path + // is not allowed right now. + sql("SELECT key, value INTO default.si1 FROM src ORDER BY key, value") + checkRelation("si1", true, defaultDataSource) + sql("DROP TABLE si1") + + } finally { + setConf(SQLConf.CONVERT_CTAS, originalConf) + sql("DROP TABLE IF EXISTS si1") + } + } + + test("select into(check answer)") { + sql("DROP TABLE IF EXISTS si1") + sql("DROP TABLE IF EXISTS si2") + sql("DROP TABLE IF EXISTS si3") + + sql("SELECT key, value INTO si1 FROM src") + checkAnswer( + sql("SELECT key, value FROM si1 ORDER BY key"), + sql("SELECT key, value FROM src ORDER BY key").collect().toSeq) + + sql("SELECT key k, value INTO si2 FROM src ORDER BY k,value").collect() + checkAnswer( + sql("SELECT k, value FROM si2 ORDER BY k, value"), + sql("SELECT key, value FROM src ORDER BY key, value").collect().toSeq) + + sql("SELECT 1 AS key,value INTO si3 FROM src LIMIT 1").collect() + intercept[AnalysisException] { + sql("SELECT key, value INTO si3 FROM src ORDER BY key, value").collect() + } --- End diff -- Checking the real error message is better. ``` val m = intercept[AnalysisException] { sql("SELECT key, value INTO si3 FROM src ORDER BY key, value").collect() }.getMessage assert(m.contains("your exception message")) ```
--- If your project is set up for it, you can reply to this email and have your reply appear on GitHub as well. If your project does not have this feature enabled and wishes so, or if the feature is enabled but not working, please contact infrastructure at infrastruct...@apache.org or file a JIRA ticket with INFRA. --- --------------------------------------------------------------------- To unsubscribe, e-mail: reviews-unsubscr...@spark.apache.org For additional commands, e-mail: reviews-h...@spark.apache.org