From f3f7b44b9af39184cc4c7daaaf98f0aceb6b9dea Mon Sep 17 00:00:00 2001 From: Max Gekk Date: Tue, 11 Aug 2020 23:21:33 +0300 Subject: [PATCH 1/3] Add a test --- .../sql/hive/execution/HiveSerDeReadWriteSuite.scala | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/sql/hive/src/test/scala/org/apache/spark/sql/hive/execution/HiveSerDeReadWriteSuite.scala b/sql/hive/src/test/scala/org/apache/spark/sql/hive/execution/HiveSerDeReadWriteSuite.scala index f8ba7bf2c1a62..e05ad33026323 100644 --- a/sql/hive/src/test/scala/org/apache/spark/sql/hive/execution/HiveSerDeReadWriteSuite.scala +++ b/sql/hive/src/test/scala/org/apache/spark/sql/hive/execution/HiveSerDeReadWriteSuite.scala @@ -184,4 +184,12 @@ class HiveSerDeReadWriteSuite extends QueryTest with SQLTestUtils with TestHiveS checkComplexTypes(fileFormat) } } + + test("SPARK-32594: insert dates to a Hive table") { + withTable("table1") { + sql("CREATE TABLE table1 (d date)") + sql("INSERT INTO table1 VALUES (date '2020-02-24')") + checkAnswer(spark.table("table1"), Row(Date.valueOf("2020-02-24"))) + } + } } From cf6bc31ba6703fee9b48ecc95a8e6313c5c1ad61 Mon Sep 17 00:00:00 2001 From: Max Gekk Date: Tue, 11 Aug 2020 23:22:02 +0300 Subject: [PATCH 2/3] Bug fix --- .../apache/spark/sql/execution/datasources/DaysWritable.scala | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/sql/core/src/main/scala/org/apache/spark/sql/execution/datasources/DaysWritable.scala b/sql/core/src/main/scala/org/apache/spark/sql/execution/datasources/DaysWritable.scala index 486f678e49d7d..56c176e024aca 100644 --- a/sql/core/src/main/scala/org/apache/spark/sql/execution/datasources/DaysWritable.scala +++ b/sql/core/src/main/scala/org/apache/spark/sql/execution/datasources/DaysWritable.scala @@ -54,7 +54,9 @@ class DaysWritable( } override def getDays: Int = julianDays - override def get(): Date = new Date(DateWritable.daysToMillis(julianDays)) + override def get(doesTimeMatter: Boolean): Date = { + new Date(DateWritable.daysToMillis(julianDays, doesTimeMatter)) + } override def set(d: Int): Unit = { gregorianDays = d From 713f6ee1b6b63edb8d184dbdd4115838800fe412 Mon Sep 17 00:00:00 2001 From: Max Gekk Date: Tue, 11 Aug 2020 23:23:13 +0300 Subject: [PATCH 3/3] Use recent date in the test --- .../spark/sql/hive/execution/HiveSerDeReadWriteSuite.scala | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sql/hive/src/test/scala/org/apache/spark/sql/hive/execution/HiveSerDeReadWriteSuite.scala b/sql/hive/src/test/scala/org/apache/spark/sql/hive/execution/HiveSerDeReadWriteSuite.scala index e05ad33026323..10a0cdb760362 100644 --- a/sql/hive/src/test/scala/org/apache/spark/sql/hive/execution/HiveSerDeReadWriteSuite.scala +++ b/sql/hive/src/test/scala/org/apache/spark/sql/hive/execution/HiveSerDeReadWriteSuite.scala @@ -188,8 +188,8 @@ class HiveSerDeReadWriteSuite extends QueryTest with SQLTestUtils with TestHiveS test("SPARK-32594: insert dates to a Hive table") { withTable("table1") { sql("CREATE TABLE table1 (d date)") - sql("INSERT INTO table1 VALUES (date '2020-02-24')") - checkAnswer(spark.table("table1"), Row(Date.valueOf("2020-02-24"))) + sql("INSERT INTO table1 VALUES (date '2020-08-11')") + checkAnswer(spark.table("table1"), Row(Date.valueOf("2020-08-11"))) } } }