diff --git a/sql/catalyst/src/main/scala/org/apache/spark/sql/types/DataType.scala b/sql/catalyst/src/main/scala/org/apache/spark/sql/types/DataType.scala index d781b05a7e..22c94287b9 100644 --- a/sql/catalyst/src/main/scala/org/apache/spark/sql/types/DataType.scala +++ b/sql/catalyst/src/main/scala/org/apache/spark/sql/types/DataType.scala @@ -173,18 +173,18 @@ object DataType { private val otherTypes = { Seq(NullType, DateType, TimestampType, BinaryType, IntegerType, BooleanType, LongType, DoubleType, FloatType, ShortType, ByteType, StringType, CalendarIntervalType, - DayTimeIntervalType(DAY, DAY), + DayTimeIntervalType(DAY), DayTimeIntervalType(DAY, HOUR), DayTimeIntervalType(DAY, MINUTE), DayTimeIntervalType(DAY, SECOND), - DayTimeIntervalType(HOUR, HOUR), + DayTimeIntervalType(HOUR), DayTimeIntervalType(HOUR, MINUTE), DayTimeIntervalType(HOUR, SECOND), - DayTimeIntervalType(MINUTE, MINUTE), + DayTimeIntervalType(MINUTE), DayTimeIntervalType(MINUTE, SECOND), - DayTimeIntervalType(SECOND, SECOND), - YearMonthIntervalType(YEAR, YEAR), - YearMonthIntervalType(MONTH, MONTH), + DayTimeIntervalType(SECOND), + YearMonthIntervalType(YEAR), + YearMonthIntervalType(MONTH), YearMonthIntervalType(YEAR, MONTH), TimestampWithoutTZType) .map(t => t.typeName -> t).toMap diff --git a/sql/catalyst/src/main/scala/org/apache/spark/sql/types/DayTimeIntervalType.scala b/sql/catalyst/src/main/scala/org/apache/spark/sql/types/DayTimeIntervalType.scala index c6d2537bb4..99aa5f1301 100644 --- a/sql/catalyst/src/main/scala/org/apache/spark/sql/types/DayTimeIntervalType.scala +++ b/sql/catalyst/src/main/scala/org/apache/spark/sql/types/DayTimeIntervalType.scala @@ -101,6 +101,7 @@ case object DayTimeIntervalType extends AbstractDataType { val DEFAULT = DayTimeIntervalType(DAY, SECOND) def apply(): DayTimeIntervalType = DEFAULT + def apply(field: Byte): DayTimeIntervalType = DayTimeIntervalType(field, field) override private[sql] def defaultConcreteType: DataType = DEFAULT diff --git a/sql/catalyst/src/main/scala/org/apache/spark/sql/types/YearMonthIntervalType.scala b/sql/catalyst/src/main/scala/org/apache/spark/sql/types/YearMonthIntervalType.scala index e6e2643ea9..04902e3c61 100644 --- a/sql/catalyst/src/main/scala/org/apache/spark/sql/types/YearMonthIntervalType.scala +++ b/sql/catalyst/src/main/scala/org/apache/spark/sql/types/YearMonthIntervalType.scala @@ -95,6 +95,7 @@ case object YearMonthIntervalType extends AbstractDataType { val DEFAULT = YearMonthIntervalType(YEAR, MONTH) def apply(): YearMonthIntervalType = DEFAULT + def apply(field: Byte): YearMonthIntervalType = YearMonthIntervalType(field, field) override private[sql] def defaultConcreteType: DataType = DEFAULT diff --git a/sql/catalyst/src/test/scala/org/apache/spark/sql/catalyst/CatalystTypeConvertersSuite.scala b/sql/catalyst/src/test/scala/org/apache/spark/sql/catalyst/CatalystTypeConvertersSuite.scala index f08dc5fafa..f850a5af2d 100644 --- a/sql/catalyst/src/test/scala/org/apache/spark/sql/catalyst/CatalystTypeConvertersSuite.scala +++ b/sql/catalyst/src/test/scala/org/apache/spark/sql/catalyst/CatalystTypeConvertersSuite.scala @@ -277,16 +277,16 @@ class CatalystTypeConvertersSuite extends SparkFunSuite with SQLHelper { test("SPARK-35726: Truncate java.time.Duration by fields of day-time interval type") { val duration = Duration.ofSeconds(90061, 1000000023) - Seq((DayTimeIntervalType(DAY, DAY), 86400000000L, -86400000000L), + Seq((DayTimeIntervalType(DAY), 86400000000L, -86400000000L), (DayTimeIntervalType(DAY, HOUR), 90000000000L, -90000000000L), (DayTimeIntervalType(DAY, MINUTE), 90060000000L, -90060000000L), (DayTimeIntervalType(DAY, SECOND), 90062000000L, -90062000001L), - (DayTimeIntervalType(HOUR, HOUR), 90000000000L, -90000000000L), + (DayTimeIntervalType(HOUR), 90000000000L, -90000000000L), (DayTimeIntervalType(HOUR, MINUTE), 90060000000L, -90060000000L), (DayTimeIntervalType(HOUR, SECOND), 90062000000L, -90062000001L), - (DayTimeIntervalType(MINUTE, MINUTE), 90060000000L, -90060000000L), + (DayTimeIntervalType(MINUTE), 90060000000L, -90060000000L), (DayTimeIntervalType(MINUTE, SECOND), 90062000000L, -90062000001L), - (DayTimeIntervalType(SECOND, SECOND), 90062000000L, -90062000001L)) + (DayTimeIntervalType(SECOND), 90062000000L, -90062000001L)) .foreach { case (dt, positive, negative) => assert(CatalystTypeConverters.createToCatalystConverter(dt)(duration) == positive) assert( @@ -331,9 +331,9 @@ class CatalystTypeConvertersSuite extends SparkFunSuite with SQLHelper { } test("SPARK-35769: Truncate java.time.Period by fields of year-month interval type") { - Seq(YearMonthIntervalType(YEAR, YEAR) -> 12, + Seq(YearMonthIntervalType(YEAR) -> 12, YearMonthIntervalType(YEAR, MONTH) -> 13, - YearMonthIntervalType(MONTH, MONTH) -> 13) + YearMonthIntervalType(MONTH) -> 13) .foreach { case (ym, value) => assert(CatalystTypeConverters.createToCatalystConverter(ym)(Period.of(1, 1, 0)) == value) } diff --git a/sql/catalyst/src/test/scala/org/apache/spark/sql/catalyst/expressions/CastSuite.scala b/sql/catalyst/src/test/scala/org/apache/spark/sql/catalyst/expressions/CastSuite.scala index bdf8defcd0..96596601b2 100644 --- a/sql/catalyst/src/test/scala/org/apache/spark/sql/catalyst/expressions/CastSuite.scala +++ b/sql/catalyst/src/test/scala/org/apache/spark/sql/catalyst/expressions/CastSuite.scala @@ -687,9 +687,9 @@ class CastSuite extends CastSuiteBase { test("SPARK-35819: Support cast YearMonthIntervalType in different fields") { val ym = cast(Literal.create("1-1"), YearMonthIntervalType(YEAR, MONTH)) - Seq(YearMonthIntervalType(YEAR, YEAR) -> 12, + Seq(YearMonthIntervalType(YEAR) -> 12, YearMonthIntervalType(YEAR, MONTH) -> 13, - YearMonthIntervalType(MONTH, MONTH) -> 13) + YearMonthIntervalType(MONTH) -> 13) .foreach { case (dt, value) => checkEvaluation(cast(ym, dt), value) } diff --git a/sql/catalyst/src/test/scala/org/apache/spark/sql/types/DataTypeTestUtils.scala b/sql/catalyst/src/test/scala/org/apache/spark/sql/types/DataTypeTestUtils.scala index d358ab6f2a..efa01e1db6 100644 --- a/sql/catalyst/src/test/scala/org/apache/spark/sql/types/DataTypeTestUtils.scala +++ b/sql/catalyst/src/test/scala/org/apache/spark/sql/types/DataTypeTestUtils.scala @@ -53,21 +53,21 @@ object DataTypeTestUtils { val numericTypeWithoutDecimal: Set[DataType] = integralType ++ Set(DoubleType, FloatType) val dayTimeIntervalTypes: Seq[DayTimeIntervalType] = Seq( - DayTimeIntervalType(DAY, DAY), + DayTimeIntervalType(DAY), DayTimeIntervalType(DAY, HOUR), DayTimeIntervalType(DAY, MINUTE), DayTimeIntervalType(DAY, SECOND), - DayTimeIntervalType(HOUR, HOUR), + DayTimeIntervalType(HOUR), DayTimeIntervalType(HOUR, MINUTE), DayTimeIntervalType(HOUR, SECOND), - DayTimeIntervalType(MINUTE, MINUTE), + DayTimeIntervalType(MINUTE), DayTimeIntervalType(MINUTE, SECOND), - DayTimeIntervalType(SECOND, SECOND)) + DayTimeIntervalType(SECOND)) val yearMonthIntervalTypes: Seq[YearMonthIntervalType] = Seq( YearMonthIntervalType(YEAR, MONTH), - YearMonthIntervalType(YEAR, YEAR), - YearMonthIntervalType(MONTH, MONTH)) + YearMonthIntervalType(YEAR), + YearMonthIntervalType(MONTH)) /** * Instances of all [[NumericType]]s and [[CalendarIntervalType]]