aboutsummaryrefslogtreecommitdiff
path: root/sql/core/src/test/scala/org
diff options
context:
space:
mode:
authorDongjoon Hyun <dongjoon@apache.org>2016-10-05 10:52:43 -0700
committerHerman van Hovell <hvanhovell@databricks.com>2016-10-05 10:52:43 -0700
commit6a05eb24d043aa93390f353850d56efa6124e063 (patch)
treebb482ab8e0d7a6077814fb6ec036a126ec2c1f96 /sql/core/src/test/scala/org
parent89516c1c4a167249b0c82f60a62edb45ede3bd2c (diff)
downloadspark-6a05eb24d043aa93390f353850d56efa6124e063.tar.gz
spark-6a05eb24d043aa93390f353850d56efa6124e063.tar.bz2
spark-6a05eb24d043aa93390f353850d56efa6124e063.zip
[SPARK-17328][SQL] Fix NPE with EXPLAIN DESCRIBE TABLE
## What changes were proposed in this pull request? This PR fixes the following NPE scenario in two ways. **Reported Error Scenario** ```scala scala> sql("EXPLAIN DESCRIBE TABLE x").show(truncate = false) INFO SparkSqlParser: Parsing command: EXPLAIN DESCRIBE TABLE x java.lang.NullPointerException ``` - **DESCRIBE**: Extend `DESCRIBE` syntax to accept `TABLE`. - **EXPLAIN**: Prevent NPE in case of the parsing failure of target statement, e.g., `EXPLAIN DESCRIBE TABLES x`. ## How was this patch tested? Pass the Jenkins test with a new test case. Author: Dongjoon Hyun <dongjoon@apache.org> Closes #15357 from dongjoon-hyun/SPARK-17328.
Diffstat (limited to 'sql/core/src/test/scala/org')
-rw-r--r--sql/core/src/test/scala/org/apache/spark/sql/execution/SparkSqlParserSuite.scala18
1 files changed, 16 insertions, 2 deletions
diff --git a/sql/core/src/test/scala/org/apache/spark/sql/execution/SparkSqlParserSuite.scala b/sql/core/src/test/scala/org/apache/spark/sql/execution/SparkSqlParserSuite.scala
index 8161c08b2c..6712d32924 100644
--- a/sql/core/src/test/scala/org/apache/spark/sql/execution/SparkSqlParserSuite.scala
+++ b/sql/core/src/test/scala/org/apache/spark/sql/execution/SparkSqlParserSuite.scala
@@ -17,11 +17,12 @@
package org.apache.spark.sql.execution
-import org.apache.spark.sql.catalyst.FunctionIdentifier
+import org.apache.spark.sql.catalyst.{FunctionIdentifier, TableIdentifier}
import org.apache.spark.sql.catalyst.parser.ParseException
import org.apache.spark.sql.catalyst.plans.PlanTest
import org.apache.spark.sql.catalyst.plans.logical.LogicalPlan
-import org.apache.spark.sql.execution.command.{DescribeFunctionCommand, ShowFunctionsCommand}
+import org.apache.spark.sql.execution.command.{DescribeFunctionCommand, DescribeTableCommand,
+ ShowFunctionsCommand}
import org.apache.spark.sql.internal.SQLConf
/**
@@ -72,4 +73,17 @@ class SparkSqlParserSuite extends PlanTest {
DescribeFunctionCommand(FunctionIdentifier("bar", database = Option("f")), isExtended = true))
}
+ test("SPARK-17328 Fix NPE with EXPLAIN DESCRIBE TABLE") {
+ assertEqual("describe table t",
+ DescribeTableCommand(
+ TableIdentifier("t"), Map.empty, isExtended = false, isFormatted = false))
+ assertEqual("describe table extended t",
+ DescribeTableCommand(
+ TableIdentifier("t"), Map.empty, isExtended = true, isFormatted = false))
+ assertEqual("describe table formatted t",
+ DescribeTableCommand(
+ TableIdentifier("t"), Map.empty, isExtended = false, isFormatted = true))
+
+ intercept("explain describe tables x", "Unsupported SQL statement")
+ }
}