Skip to content

Commit ee69a1b

Browse files
committed
Test with different jvm and session zone ids
1 parent 4ea85ad commit ee69a1b

File tree

1 file changed

+37
-18
lines changed

1 file changed

+37
-18
lines changed

sql/core/src/test/scala/org/apache/spark/sql/execution/HiveResultSuite.scala

Lines changed: 37 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -17,34 +17,53 @@
1717

1818
package org.apache.spark.sql.execution
1919

20+
import org.apache.spark.sql.catalyst.util.DateTimeTestUtils._
2021
import org.apache.spark.sql.connector.InMemoryTableCatalog
22+
import org.apache.spark.sql.internal.SQLConf
2123
import org.apache.spark.sql.test.{ExamplePoint, ExamplePointUDT, SharedSparkSession}
2224

2325
class HiveResultSuite extends SharedSparkSession {
2426
import testImplicits._
2527

28+
private def withOutstandingZoneIds(f: => Unit): Unit = {
29+
for {
30+
jvmZoneId <- outstandingZoneIds
31+
sessionZoneId <- outstandingZoneIds
32+
} {
33+
withDefaultTimeZone(jvmZoneId) {
34+
withSQLConf(SQLConf.SESSION_LOCAL_TIMEZONE.key -> sessionZoneId.getId) {
35+
f
36+
}
37+
}
38+
}
39+
}
40+
2641
test("date formatting in hive result") {
27-
val dates = Seq("2018-12-28", "1582-10-03", "1582-10-04", "1582-10-15")
28-
val df = dates.toDF("a").selectExpr("cast(a as date) as b")
29-
val result = HiveResult.hiveResultString(df)
30-
assert(result == dates)
31-
val df2 = df.selectExpr("array(b)")
32-
val result2 = HiveResult.hiveResultString(df2)
33-
assert(result2 == dates.map(x => s"[$x]"))
42+
withOutstandingZoneIds {
43+
val dates = Seq("2018-12-28", "1582-10-03", "1582-10-04", "1582-10-15")
44+
val df = dates.toDF("a").selectExpr("cast(a as date) as b")
45+
val result = HiveResult.hiveResultString(df)
46+
assert(result == dates)
47+
val df2 = df.selectExpr("array(b)")
48+
val result2 = HiveResult.hiveResultString(df2)
49+
assert(result2 == dates.map(x => s"[$x]"))
50+
}
3451
}
3552

3653
test("timestamp formatting in hive result") {
37-
val timestamps = Seq(
38-
"2018-12-28 01:02:03",
39-
"1582-10-03 01:02:03",
40-
"1582-10-04 01:02:03",
41-
"1582-10-15 01:02:03")
42-
val df = timestamps.toDF("a").selectExpr("cast(a as timestamp) as b")
43-
val result = HiveResult.hiveResultString(df)
44-
assert(result == timestamps)
45-
val df2 = df.selectExpr("array(b)")
46-
val result2 = HiveResult.hiveResultString(df2)
47-
assert(result2 == timestamps.map(x => s"[$x]"))
54+
withOutstandingZoneIds {
55+
val timestamps = Seq(
56+
"2018-12-28 01:02:03",
57+
"1582-10-03 01:02:03",
58+
"1582-10-04 01:02:03",
59+
"1582-10-15 01:02:03")
60+
val df = timestamps.toDF("a").selectExpr("cast(a as timestamp) as b")
61+
val result = HiveResult.hiveResultString(df)
62+
assert(result == timestamps)
63+
val df2 = df.selectExpr("array(b)")
64+
val result2 = HiveResult.hiveResultString(df2)
65+
assert(result2 == timestamps.map(x => s"[$x]"))
66+
}
4867
}
4968

5069
test("toHiveString correctly handles UDTs") {

0 commit comments

Comments
 (0)