From d20988aca8c7b86a862d57d718dbc837c20a29d8 Mon Sep 17 00:00:00 2001 From: Kent Yao Date: Wed, 30 Oct 2019 17:51:27 +0800 Subject: [PATCH 1/3] [SPARK-29653][SQL] Fix MICROS_PER_MONTH in IntervalUtils --- .../org/apache/spark/sql/catalyst/util/IntervalUtils.scala | 2 +- .../apache/spark/sql/catalyst/util/IntervalUtilsSuite.scala | 6 ++++++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/util/IntervalUtils.scala b/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/util/IntervalUtils.scala index f55b0545ee9cb..cc2d6ac7ab2ea 100644 --- a/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/util/IntervalUtils.scala +++ b/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/util/IntervalUtils.scala @@ -36,7 +36,7 @@ object IntervalUtils { final val MICROS_PER_MINUTE: Long = DateTimeUtils.MILLIS_PER_MINUTE * DateTimeUtils.MICROS_PER_MILLIS final val DAYS_PER_MONTH: Byte = 30 - final val MICROS_PER_MONTH: Long = DAYS_PER_MONTH * DateTimeUtils.SECONDS_PER_DAY + final val MICROS_PER_MONTH: Long = DAYS_PER_MONTH * DateTimeUtils.MICROS_PER_DAY /* 365.25 days per year assumes leap year every four years */ final val MICROS_PER_YEAR: Long = (36525L * DateTimeUtils.MICROS_PER_DAY) / 100 diff --git a/sql/catalyst/src/test/scala/org/apache/spark/sql/catalyst/util/IntervalUtilsSuite.scala b/sql/catalyst/src/test/scala/org/apache/spark/sql/catalyst/util/IntervalUtilsSuite.scala index 9addc396b8d33..af6d9f52cf424 100644 --- a/sql/catalyst/src/test/scala/org/apache/spark/sql/catalyst/util/IntervalUtilsSuite.scala +++ b/sql/catalyst/src/test/scala/org/apache/spark/sql/catalyst/util/IntervalUtilsSuite.scala @@ -19,6 +19,7 @@ package org.apache.spark.sql.catalyst.util import org.apache.spark.SparkFunSuite import org.apache.spark.sql.catalyst.util.IntervalUtils.{fromDayTimeString, fromString, fromYearMonthString} +import org.apache.spark.sql.types.Decimal import org.apache.spark.unsafe.types.CalendarInterval import org.apache.spark.unsafe.types.CalendarInterval._ @@ -148,4 +149,9 @@ class IntervalUtilsSuite extends SparkFunSuite { assert(e.getMessage.contains("Cannot support (interval")) } } + + test("get epoch") { + val decimal = IntervalUtils.getEpoch(fromYearMonthString("0-1")) + assert(decimal === Decimal("2592000.000000")) + } } From 7cc8edc5c00ab22e1c8b8ac3098b9541d0cad4bf Mon Sep 17 00:00:00 2001 From: Kent Yao Date: Wed, 30 Oct 2019 18:08:25 +0800 Subject: [PATCH 2/3] fix date_part get epoch --- sql/core/src/test/resources/sql-tests/results/date_part.sql.out | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sql/core/src/test/resources/sql-tests/results/date_part.sql.out b/sql/core/src/test/resources/sql-tests/results/date_part.sql.out index 8f4edf1960755..37de7159c2d5d 100644 --- a/sql/core/src/test/resources/sql-tests/results/date_part.sql.out +++ b/sql/core/src/test/resources/sql-tests/results/date_part.sql.out @@ -857,7 +857,7 @@ select date_part('epoch', c) from t2 -- !query 106 schema struct -- !query 106 output -31873892788.332003 +31897220765.004003 -- !query 107 From f1f090a244ee5526e938e2ae9aae35956416ec18 Mon Sep 17 00:00:00 2001 From: Kent Yao Date: Wed, 30 Oct 2019 18:23:51 +0800 Subject: [PATCH 3/3] rm test --- .../apache/spark/sql/catalyst/util/IntervalUtilsSuite.scala | 6 ------ 1 file changed, 6 deletions(-) diff --git a/sql/catalyst/src/test/scala/org/apache/spark/sql/catalyst/util/IntervalUtilsSuite.scala b/sql/catalyst/src/test/scala/org/apache/spark/sql/catalyst/util/IntervalUtilsSuite.scala index af6d9f52cf424..9addc396b8d33 100644 --- a/sql/catalyst/src/test/scala/org/apache/spark/sql/catalyst/util/IntervalUtilsSuite.scala +++ b/sql/catalyst/src/test/scala/org/apache/spark/sql/catalyst/util/IntervalUtilsSuite.scala @@ -19,7 +19,6 @@ package org.apache.spark.sql.catalyst.util import org.apache.spark.SparkFunSuite import org.apache.spark.sql.catalyst.util.IntervalUtils.{fromDayTimeString, fromString, fromYearMonthString} -import org.apache.spark.sql.types.Decimal import org.apache.spark.unsafe.types.CalendarInterval import org.apache.spark.unsafe.types.CalendarInterval._ @@ -149,9 +148,4 @@ class IntervalUtilsSuite extends SparkFunSuite { assert(e.getMessage.contains("Cannot support (interval")) } } - - test("get epoch") { - val decimal = IntervalUtils.getEpoch(fromYearMonthString("0-1")) - assert(decimal === Decimal("2592000.000000")) - } }