aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaoyuan Wang <daoyuan.wang@intel.com>2014-09-26 12:04:37 -0700
committerMichael Armbrust <michael@databricks.com>2014-09-26 12:04:37 -0700
commit0ec2d2e8f0c0dc61a7ed6377898846661d2424cd (patch)
treec93a6ab5dec1a2ac5e9d143d3265edff46fd643f
parent8da10bf14660f1d5b1dab692cb56b9832ab10d40 (diff)
downloadspark-0ec2d2e8f0c0dc61a7ed6377898846661d2424cd.tar.gz
spark-0ec2d2e8f0c0dc61a7ed6377898846661d2424cd.tar.bz2
spark-0ec2d2e8f0c0dc61a7ed6377898846661d2424cd.zip
[SPARK-3531][SQL]select null from table would throw a MatchError
Author: Daoyuan Wang <daoyuan.wang@intel.com> Closes #2396 from adrian-wang/selectnull and squashes the following commits: 2458229 [Daoyuan Wang] rebase solution
-rw-r--r--sql/hive/src/main/scala/org/apache/spark/sql/hive/HiveMetastoreCatalog.scala1
-rw-r--r--sql/hive/src/test/resources/golden/select null from table-0-5bb53cca754cc8afe9cd22feb8c586d11
-rw-r--r--sql/hive/src/test/scala/org/apache/spark/sql/hive/execution/HiveQuerySuite.scala3
3 files changed, 5 insertions, 0 deletions
diff --git a/sql/hive/src/main/scala/org/apache/spark/sql/hive/HiveMetastoreCatalog.scala b/sql/hive/src/main/scala/org/apache/spark/sql/hive/HiveMetastoreCatalog.scala
index 6b4399e852..9a0b9b46ac 100644
--- a/sql/hive/src/main/scala/org/apache/spark/sql/hive/HiveMetastoreCatalog.scala
+++ b/sql/hive/src/main/scala/org/apache/spark/sql/hive/HiveMetastoreCatalog.scala
@@ -244,6 +244,7 @@ object HiveMetastoreTypes extends RegexParsers {
case BooleanType => "boolean"
case DecimalType => "decimal"
case TimestampType => "timestamp"
+ case NullType => "void"
}
}
diff --git a/sql/hive/src/test/resources/golden/select null from table-0-5bb53cca754cc8afe9cd22feb8c586d1 b/sql/hive/src/test/resources/golden/select null from table-0-5bb53cca754cc8afe9cd22feb8c586d1
new file mode 100644
index 0000000000..7951defec1
--- /dev/null
+++ b/sql/hive/src/test/resources/golden/select null from table-0-5bb53cca754cc8afe9cd22feb8c586d1
@@ -0,0 +1 @@
+NULL
diff --git a/sql/hive/src/test/scala/org/apache/spark/sql/hive/execution/HiveQuerySuite.scala b/sql/hive/src/test/scala/org/apache/spark/sql/hive/execution/HiveQuerySuite.scala
index 426f5fcee6..2f876cafaf 100644
--- a/sql/hive/src/test/scala/org/apache/spark/sql/hive/execution/HiveQuerySuite.scala
+++ b/sql/hive/src/test/scala/org/apache/spark/sql/hive/execution/HiveQuerySuite.scala
@@ -330,6 +330,9 @@ class HiveQuerySuite extends HiveComparisonTest {
createQueryTest("timestamp cast #8",
"SELECT CAST(CAST(-1.2 AS TIMESTAMP) AS DOUBLE) FROM src LIMIT 1")
+ createQueryTest("select null from table",
+ "SELECT null FROM src LIMIT 1")
+
test("implement identity function using case statement") {
val actual = sql("SELECT (CASE key WHEN key THEN key END) FROM src")
.map { case Row(i: Int) => i }