aboutsummaryrefslogtreecommitdiff
path: root/sql/core/src/test
diff options
context:
space:
mode:
Diffstat (limited to 'sql/core/src/test')
-rw-r--r--sql/core/src/test/scala/org/apache/spark/sql/SQLQuerySuite.scala22
1 files changed, 22 insertions, 0 deletions
diff --git a/sql/core/src/test/scala/org/apache/spark/sql/SQLQuerySuite.scala b/sql/core/src/test/scala/org/apache/spark/sql/SQLQuerySuite.scala
index d8e7cdbd3a..0ab8558c1d 100644
--- a/sql/core/src/test/scala/org/apache/spark/sql/SQLQuerySuite.scala
+++ b/sql/core/src/test/scala/org/apache/spark/sql/SQLQuerySuite.scala
@@ -19,13 +19,18 @@ package org.apache.spark.sql
import org.scalatest.BeforeAndAfterAll
+import org.apache.spark.sql.catalyst.errors.DialectException
import org.apache.spark.sql.execution.GeneratedAggregate
import org.apache.spark.sql.functions._
import org.apache.spark.sql.TestData._
import org.apache.spark.sql.test.TestSQLContext
import org.apache.spark.sql.test.TestSQLContext.{udf => _, _}
+
import org.apache.spark.sql.types._
+/** A SQL Dialect for testing purpose, and it can not be nested type */
+class MyDialect extends DefaultDialect
+
class SQLQuerySuite extends QueryTest with BeforeAndAfterAll {
// Make sure the tables are loaded.
TestData
@@ -74,6 +79,23 @@ class SQLQuerySuite extends QueryTest with BeforeAndAfterAll {
Row("1", 1) :: Row("2", 1) :: Row("3", 1) :: Nil)
}
+ test("SQL Dialect Switching to a new SQL parser") {
+ val newContext = new SQLContext(TestSQLContext.sparkContext)
+ newContext.setConf("spark.sql.dialect", classOf[MyDialect].getCanonicalName())
+ assert(newContext.getSQLDialect().getClass === classOf[MyDialect])
+ assert(newContext.sql("SELECT 1").collect() === Array(Row(1)))
+ }
+
+ test("SQL Dialect Switch to an invalid parser with alias") {
+ val newContext = new SQLContext(TestSQLContext.sparkContext)
+ newContext.sql("SET spark.sql.dialect=MyTestClass")
+ intercept[DialectException] {
+ newContext.sql("SELECT 1")
+ }
+ // test if the dialect set back to DefaultSQLDialect
+ assert(newContext.getSQLDialect().getClass === classOf[DefaultDialect])
+ }
+
test("SPARK-4625 support SORT BY in SimpleSQLParser & DSL") {
checkAnswer(
sql("SELECT a FROM testData2 SORT BY a"),