aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorw00228970 <wangfei1@huawei.com>2014-09-27 12:06:06 -0700
committerMichael Armbrust <michael@databricks.com>2014-09-27 12:06:16 -0700
commit0800881051df8029afb22a4ec17970e316a85855 (patch)
tree5d2174f5612dce70b3ab9b59d8336da3040c4244
parent66107f46f374f83729cd79ab260eb59fa123c041 (diff)
downloadspark-0800881051df8029afb22a4ec17970e316a85855.tar.gz
spark-0800881051df8029afb22a4ec17970e316a85855.tar.bz2
spark-0800881051df8029afb22a4ec17970e316a85855.zip
[SPARK-3676][SQL] Fix hive test suite failure due to diffs in JDK 1.6/1.7
This is a bug in JDK6: http://bugs.java.com/bugdatabase/view_bug.do?bug_id=4428022 this is because jdk get different result to operate ```double```, ```System.out.println(1/500d)``` in different jdk get different result jdk 1.6.0(_31) ---- 0.0020 jdk 1.7.0(_05) ---- 0.002 this leads to HiveQuerySuite failed when generate golden answer in jdk 1.7 and run tests in jdk 1.6, result did not match Author: w00228970 <wangfei1@huawei.com> Closes #2517 from scwf/HiveQuerySuite and squashes the following commits: 0cb5e8d [w00228970] delete golden answer of division-0 and timestamp cast #1 1df3964 [w00228970] Jdk version leads to different query output for Double, this make HiveQuerySuite failed
-rw-r--r--sql/hive/src/test/resources/golden/division-0-63b19f8a22471c8ba0415c1d3bc276f71
-rw-r--r--sql/hive/src/test/resources/golden/timestamp cast #1-0-69fc614ccea92bbe39f4decc299edcc61
-rw-r--r--sql/hive/src/test/scala/org/apache/spark/sql/hive/execution/HiveQuerySuite.scala15
3 files changed, 11 insertions, 6 deletions
diff --git a/sql/hive/src/test/resources/golden/division-0-63b19f8a22471c8ba0415c1d3bc276f7 b/sql/hive/src/test/resources/golden/division-0-63b19f8a22471c8ba0415c1d3bc276f7
deleted file mode 100644
index 7b7a917511..0000000000
--- a/sql/hive/src/test/resources/golden/division-0-63b19f8a22471c8ba0415c1d3bc276f7
+++ /dev/null
@@ -1 +0,0 @@
-2.0 0.5 0.3333333333333333 0.002
diff --git a/sql/hive/src/test/resources/golden/timestamp cast #1-0-69fc614ccea92bbe39f4decc299edcc6 b/sql/hive/src/test/resources/golden/timestamp cast #1-0-69fc614ccea92bbe39f4decc299edcc6
deleted file mode 100644
index 8ebf695ba7..0000000000
--- a/sql/hive/src/test/resources/golden/timestamp cast #1-0-69fc614ccea92bbe39f4decc299edcc6
+++ /dev/null
@@ -1 +0,0 @@
-0.001
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 2f876cafaf..2da8a6fac3 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
@@ -135,8 +135,12 @@ class HiveQuerySuite extends HiveComparisonTest {
createQueryTest("div",
"SELECT 1 DIV 2, 1 div 2, 1 dIv 2, 100 DIV 51, 100 DIV 49 FROM src LIMIT 1")
- createQueryTest("division",
- "SELECT 2 / 1, 1 / 2, 1 / 3, 1 / COUNT(*) FROM src LIMIT 1")
+ // Jdk version leads to different query output for double, so not use createQueryTest here
+ test("division") {
+ val res = sql("SELECT 2 / 1, 1 / 2, 1 / 3, 1 / COUNT(*) FROM src LIMIT 1").collect().head
+ Seq(2.0, 0.5, 0.3333333333333333, 0.002).zip(res).foreach( x =>
+ assert(x._1 == x._2.asInstanceOf[Double]))
+ }
createQueryTest("modulus",
"SELECT 11 % 10, IF((101.1 % 100.0) BETWEEN 1.01 AND 1.11, \"true\", \"false\"), (101 / 2) % 10 FROM src LIMIT 1")
@@ -306,8 +310,11 @@ class HiveQuerySuite extends HiveComparisonTest {
createQueryTest("case statements WITHOUT key #4",
"SELECT (CASE WHEN key > 2 THEN 3 WHEN 2 > key THEN 2 ELSE 0 END) FROM src WHERE key < 15")
- createQueryTest("timestamp cast #1",
- "SELECT CAST(CAST(1 AS TIMESTAMP) AS DOUBLE) FROM src LIMIT 1")
+ // Jdk version leads to different query output for double, so not use createQueryTest here
+ test("timestamp cast #1") {
+ val res = sql("SELECT CAST(CAST(1 AS TIMESTAMP) AS DOUBLE) FROM src LIMIT 1").collect().head
+ assert(0.001 == res.getDouble(0))
+ }
createQueryTest("timestamp cast #2",
"SELECT CAST(CAST(1.2 AS TIMESTAMP) AS DOUBLE) FROM src LIMIT 1")