This is an automated email from the ASF dual-hosted git repository. dongjoon pushed a commit to branch branch-3.5 in repository https://gitbox.apache.org/repos/asf/spark.git
The following commit(s) were added to refs/heads/branch-3.5 by this push: new fc0ef07f2949 Revert "[SPARK-48016][SQL] Fix a bug in try_divide function when with decimals" fc0ef07f2949 is described below commit fc0ef07f2949c399537c6d9b5fb7b81f546de212 Author: Dongjoon Hyun <dh...@apple.com> AuthorDate: Wed May 1 11:18:29 2024 -0700 Revert "[SPARK-48016][SQL] Fix a bug in try_divide function when with decimals" This reverts commit e78ee2c5770218a521340cb84f57a02dd00f7f3a. --- .../sql/catalyst/analysis/DecimalPrecision.scala | 14 ++--- .../spark/sql/catalyst/analysis/TypeCoercion.scala | 10 ++-- sql/core/src/test/resources/log4j2.properties | 2 +- .../analyzer-results/ansi/try_arithmetic.sql.out | 56 ------------------- .../analyzer-results/try_arithmetic.sql.out | 56 ------------------- .../resources/sql-tests/inputs/try_arithmetic.sql | 8 --- .../sql-tests/results/ansi/try_arithmetic.sql.out | 64 ---------------------- .../sql-tests/results/try_arithmetic.sql.out | 64 ---------------------- 8 files changed, 13 insertions(+), 261 deletions(-) diff --git a/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/analysis/DecimalPrecision.scala b/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/analysis/DecimalPrecision.scala index f51127f53b38..09cf61a77955 100644 --- a/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/analysis/DecimalPrecision.scala +++ b/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/analysis/DecimalPrecision.scala @@ -83,7 +83,7 @@ object DecimalPrecision extends TypeCoercionRule { val resultType = widerDecimalType(p1, s1, p2, s2) val newE1 = if (e1.dataType == resultType) e1 else Cast(e1, resultType) val newE2 = if (e2.dataType == resultType) e2 else Cast(e2, resultType) - b.withNewChildren(Seq(newE1, newE2)) + b.makeCopy(Array(newE1, newE2)) } /** @@ -202,21 +202,21 @@ object DecimalPrecision extends TypeCoercionRule { case (l: Literal, r) if r.dataType.isInstanceOf[DecimalType] && l.dataType.isInstanceOf[IntegralType] && literalPickMinimumPrecision => - b.withNewChildren(Seq(Cast(l, DataTypeUtils.fromLiteral(l)), r)) + b.makeCopy(Array(Cast(l, DataTypeUtils.fromLiteral(l)), r)) case (l, r: Literal) if l.dataType.isInstanceOf[DecimalType] && r.dataType.isInstanceOf[IntegralType] && literalPickMinimumPrecision => - b.withNewChildren(Seq(l, Cast(r, DataTypeUtils.fromLiteral(r)))) + b.makeCopy(Array(l, Cast(r, DataTypeUtils.fromLiteral(r)))) // Promote integers inside a binary expression with fixed-precision decimals to decimals, // and fixed-precision decimals in an expression with floats / doubles to doubles case (l @ IntegralTypeExpression(), r @ DecimalExpression(_, _)) => - b.withNewChildren(Seq(Cast(l, DecimalType.forType(l.dataType)), r)) + b.makeCopy(Array(Cast(l, DecimalType.forType(l.dataType)), r)) case (l @ DecimalExpression(_, _), r @ IntegralTypeExpression()) => - b.withNewChildren(Seq(l, Cast(r, DecimalType.forType(r.dataType)))) + b.makeCopy(Array(l, Cast(r, DecimalType.forType(r.dataType)))) case (l, r @ DecimalExpression(_, _)) if isFloat(l.dataType) => - b.withNewChildren(Seq(l, Cast(r, DoubleType))) + b.makeCopy(Array(l, Cast(r, DoubleType))) case (l @ DecimalExpression(_, _), r) if isFloat(r.dataType) => - b.withNewChildren(Seq(Cast(l, DoubleType), r)) + b.makeCopy(Array(Cast(l, DoubleType), r)) case _ => b } } diff --git a/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/analysis/TypeCoercion.scala b/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/analysis/TypeCoercion.scala index c9a4a2d40246..190e72a8e669 100644 --- a/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/analysis/TypeCoercion.scala +++ b/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/analysis/TypeCoercion.scala @@ -1102,22 +1102,22 @@ object TypeCoercion extends TypeCoercionBase { case a @ BinaryArithmetic(left @ StringTypeExpression(), right) if right.dataType != CalendarIntervalType => - a.withNewChildren(Seq(Cast(left, DoubleType), right)) + a.makeCopy(Array(Cast(left, DoubleType), right)) case a @ BinaryArithmetic(left, right @ StringTypeExpression()) if left.dataType != CalendarIntervalType => - a.withNewChildren(Seq(left, Cast(right, DoubleType))) + a.makeCopy(Array(left, Cast(right, DoubleType))) // For equality between string and timestamp we cast the string to a timestamp // so that things like rounding of subsecond precision does not affect the comparison. case p @ Equality(left @ StringTypeExpression(), right @ TimestampTypeExpression()) => - p.withNewChildren(Seq(Cast(left, TimestampType), right)) + p.makeCopy(Array(Cast(left, TimestampType), right)) case p @ Equality(left @ TimestampTypeExpression(), right @ StringTypeExpression()) => - p.withNewChildren(Seq(left, Cast(right, TimestampType))) + p.makeCopy(Array(left, Cast(right, TimestampType))) case p @ BinaryComparison(left, right) if findCommonTypeForBinaryComparison(left.dataType, right.dataType, conf).isDefined => val commonType = findCommonTypeForBinaryComparison(left.dataType, right.dataType, conf).get - p.withNewChildren(Seq(castExpr(left, commonType), castExpr(right, commonType))) + p.makeCopy(Array(castExpr(left, commonType), castExpr(right, commonType))) } } diff --git a/sql/core/src/test/resources/log4j2.properties b/sql/core/src/test/resources/log4j2.properties index d793d16ca685..7ab47c16d4f9 100644 --- a/sql/core/src/test/resources/log4j2.properties +++ b/sql/core/src/test/resources/log4j2.properties @@ -50,7 +50,7 @@ logger.parquet_recordwriter.name = org.apache.parquet.hadoop.InternalParquetReco logger.parquet_recordwriter.additivity = false logger.parquet_recordwriter.level = off -logger.parquet_outputcommitter.name = org.sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/analysis/TypeCoercion.scalaapache.parquet.hadoop.ParquetOutputCommitter +logger.parquet_outputcommitter.name = org.apache.parquet.hadoop.ParquetOutputCommitter logger.parquet_outputcommitter.additivity = false logger.parquet_outputcommitter.level = off diff --git a/sql/core/src/test/resources/sql-tests/analyzer-results/ansi/try_arithmetic.sql.out b/sql/core/src/test/resources/sql-tests/analyzer-results/ansi/try_arithmetic.sql.out index 15fe614ff0d2..bbc07c22805a 100644 --- a/sql/core/src/test/resources/sql-tests/analyzer-results/ansi/try_arithmetic.sql.out +++ b/sql/core/src/test/resources/sql-tests/analyzer-results/ansi/try_arithmetic.sql.out @@ -13,20 +13,6 @@ Project [try_add(2147483647, 1) AS try_add(2147483647, 1)#x] +- OneRowRelation --- !query -SELECT try_add(2147483647, decimal(1)) --- !query analysis -Project [try_add(2147483647, cast(1 as decimal(10,0))) AS try_add(2147483647, 1)#x] -+- OneRowRelation - - --- !query -SELECT try_add(2147483647, "1") --- !query analysis -Project [try_add(2147483647, 1) AS try_add(2147483647, 1)#xL] -+- OneRowRelation - - -- !query SELECT try_add(-2147483648, -1) -- !query analysis @@ -225,20 +211,6 @@ Project [try_divide(1, (1.0 / 0.0)) AS try_divide(1, (1.0 / 0.0))#x] +- OneRowRelation --- !query -SELECT try_divide(1, decimal(0)) --- !query analysis -Project [try_divide(1, cast(0 as decimal(10,0))) AS try_divide(1, 0)#x] -+- OneRowRelation - - --- !query -SELECT try_divide(1, "0") --- !query analysis -Project [try_divide(1, 0) AS try_divide(1, 0)#x] -+- OneRowRelation - - -- !query SELECT try_divide(interval 2 year, 2) -- !query analysis @@ -295,20 +267,6 @@ Project [try_subtract(2147483647, -1) AS try_subtract(2147483647, -1)#x] +- OneRowRelation --- !query -SELECT try_subtract(2147483647, decimal(-1)) --- !query analysis -Project [try_subtract(2147483647, cast(-1 as decimal(10,0))) AS try_subtract(2147483647, -1)#x] -+- OneRowRelation - - --- !query -SELECT try_subtract(2147483647, "-1") --- !query analysis -Project [try_subtract(2147483647, -1) AS try_subtract(2147483647, -1)#xL] -+- OneRowRelation - - -- !query SELECT try_subtract(-2147483648, 1) -- !query analysis @@ -393,20 +351,6 @@ Project [try_multiply(2147483647, -2) AS try_multiply(2147483647, -2)#x] +- OneRowRelation --- !query -SELECT try_multiply(2147483647, decimal(-2)) --- !query analysis -Project [try_multiply(2147483647, cast(-2 as decimal(10,0))) AS try_multiply(2147483647, -2)#x] -+- OneRowRelation - - --- !query -SELECT try_multiply(2147483647, "-2") --- !query analysis -Project [try_multiply(2147483647, -2) AS try_multiply(2147483647, -2)#xL] -+- OneRowRelation - - -- !query SELECT try_multiply(-2147483648, 2) -- !query analysis diff --git a/sql/core/src/test/resources/sql-tests/analyzer-results/try_arithmetic.sql.out b/sql/core/src/test/resources/sql-tests/analyzer-results/try_arithmetic.sql.out index ceda149c4843..bbc07c22805a 100644 --- a/sql/core/src/test/resources/sql-tests/analyzer-results/try_arithmetic.sql.out +++ b/sql/core/src/test/resources/sql-tests/analyzer-results/try_arithmetic.sql.out @@ -13,20 +13,6 @@ Project [try_add(2147483647, 1) AS try_add(2147483647, 1)#x] +- OneRowRelation --- !query -SELECT try_add(2147483647, decimal(1)) --- !query analysis -Project [try_add(2147483647, cast(1 as decimal(10,0))) AS try_add(2147483647, 1)#x] -+- OneRowRelation - - --- !query -SELECT try_add(2147483647, "1") --- !query analysis -Project [try_add(2147483647, 1) AS try_add(2147483647, 1)#x] -+- OneRowRelation - - -- !query SELECT try_add(-2147483648, -1) -- !query analysis @@ -225,20 +211,6 @@ Project [try_divide(1, (1.0 / 0.0)) AS try_divide(1, (1.0 / 0.0))#x] +- OneRowRelation --- !query -SELECT try_divide(1, decimal(0)) --- !query analysis -Project [try_divide(1, cast(0 as decimal(10,0))) AS try_divide(1, 0)#x] -+- OneRowRelation - - --- !query -SELECT try_divide(1, "0") --- !query analysis -Project [try_divide(1, 0) AS try_divide(1, 0)#x] -+- OneRowRelation - - -- !query SELECT try_divide(interval 2 year, 2) -- !query analysis @@ -295,20 +267,6 @@ Project [try_subtract(2147483647, -1) AS try_subtract(2147483647, -1)#x] +- OneRowRelation --- !query -SELECT try_subtract(2147483647, decimal(-1)) --- !query analysis -Project [try_subtract(2147483647, cast(-1 as decimal(10,0))) AS try_subtract(2147483647, -1)#x] -+- OneRowRelation - - --- !query -SELECT try_subtract(2147483647, "-1") --- !query analysis -Project [try_subtract(2147483647, -1) AS try_subtract(2147483647, -1)#x] -+- OneRowRelation - - -- !query SELECT try_subtract(-2147483648, 1) -- !query analysis @@ -393,20 +351,6 @@ Project [try_multiply(2147483647, -2) AS try_multiply(2147483647, -2)#x] +- OneRowRelation --- !query -SELECT try_multiply(2147483647, decimal(-2)) --- !query analysis -Project [try_multiply(2147483647, cast(-2 as decimal(10,0))) AS try_multiply(2147483647, -2)#x] -+- OneRowRelation - - --- !query -SELECT try_multiply(2147483647, "-2") --- !query analysis -Project [try_multiply(2147483647, -2) AS try_multiply(2147483647, -2)#x] -+- OneRowRelation - - -- !query SELECT try_multiply(-2147483648, 2) -- !query analysis diff --git a/sql/core/src/test/resources/sql-tests/inputs/try_arithmetic.sql b/sql/core/src/test/resources/sql-tests/inputs/try_arithmetic.sql index 943865b68d39..55907b6701e5 100644 --- a/sql/core/src/test/resources/sql-tests/inputs/try_arithmetic.sql +++ b/sql/core/src/test/resources/sql-tests/inputs/try_arithmetic.sql @@ -1,8 +1,6 @@ -- Numeric + Numeric SELECT try_add(1, 1); SELECT try_add(2147483647, 1); -SELECT try_add(2147483647, decimal(1)); -SELECT try_add(2147483647, "1"); SELECT try_add(-2147483648, -1); SELECT try_add(9223372036854775807L, 1); SELECT try_add(-9223372036854775808L, -1); @@ -40,8 +38,6 @@ SELECT try_divide(0, 0); SELECT try_divide(1, (2147483647 + 1)); SELECT try_divide(1L, (9223372036854775807L + 1L)); SELECT try_divide(1, 1.0 / 0.0); -SELECT try_divide(1, decimal(0)); -SELECT try_divide(1, "0"); -- Interval / Numeric SELECT try_divide(interval 2 year, 2); @@ -54,8 +50,6 @@ SELECT try_divide(interval 106751991 day, 0.5); -- Numeric - Numeric SELECT try_subtract(1, 1); SELECT try_subtract(2147483647, -1); -SELECT try_subtract(2147483647, decimal(-1)); -SELECT try_subtract(2147483647, "-1"); SELECT try_subtract(-2147483648, 1); SELECT try_subtract(9223372036854775807L, -1); SELECT try_subtract(-9223372036854775808L, 1); @@ -72,8 +66,6 @@ SELECT try_subtract(interval 106751991 day, interval -3 day); -- Numeric * Numeric SELECT try_multiply(2, 3); SELECT try_multiply(2147483647, -2); -SELECT try_multiply(2147483647, decimal(-2)); -SELECT try_multiply(2147483647, "-2"); SELECT try_multiply(-2147483648, 2); SELECT try_multiply(9223372036854775807L, 2); SELECT try_multiply(-9223372036854775808L, -2); diff --git a/sql/core/src/test/resources/sql-tests/results/ansi/try_arithmetic.sql.out b/sql/core/src/test/resources/sql-tests/results/ansi/try_arithmetic.sql.out index bb630243ee1a..414198b19645 100644 --- a/sql/core/src/test/resources/sql-tests/results/ansi/try_arithmetic.sql.out +++ b/sql/core/src/test/resources/sql-tests/results/ansi/try_arithmetic.sql.out @@ -15,22 +15,6 @@ struct<try_add(2147483647, 1):int> NULL --- !query -SELECT try_add(2147483647, decimal(1)) --- !query schema -struct<try_add(2147483647, 1):decimal(11,0)> --- !query output -2147483648 - - --- !query -SELECT try_add(2147483647, "1") --- !query schema -struct<try_add(2147483647, 1):bigint> --- !query output -2147483648 - - -- !query SELECT try_add(-2147483648, -1) -- !query schema @@ -357,22 +341,6 @@ org.apache.spark.SparkArithmeticException } --- !query -SELECT try_divide(1, decimal(0)) --- !query schema -struct<try_divide(1, 0):decimal(12,11)> --- !query output -NULL - - --- !query -SELECT try_divide(1, "0") --- !query schema -struct<try_divide(1, 0):double> --- !query output -NULL - - -- !query SELECT try_divide(interval 2 year, 2) -- !query schema @@ -437,22 +405,6 @@ struct<try_subtract(2147483647, -1):int> NULL --- !query -SELECT try_subtract(2147483647, decimal(-1)) --- !query schema -struct<try_subtract(2147483647, -1):decimal(11,0)> --- !query output -2147483648 - - --- !query -SELECT try_subtract(2147483647, "-1") --- !query schema -struct<try_subtract(2147483647, -1):bigint> --- !query output -2147483648 - - -- !query SELECT try_subtract(-2147483648, 1) -- !query schema @@ -595,22 +547,6 @@ struct<try_multiply(2147483647, -2):int> NULL --- !query -SELECT try_multiply(2147483647, decimal(-2)) --- !query schema -struct<try_multiply(2147483647, -2):decimal(21,0)> --- !query output --4294967294 - - --- !query -SELECT try_multiply(2147483647, "-2") --- !query schema -struct<try_multiply(2147483647, -2):bigint> --- !query output --4294967294 - - -- !query SELECT try_multiply(-2147483648, 2) -- !query schema diff --git a/sql/core/src/test/resources/sql-tests/results/try_arithmetic.sql.out b/sql/core/src/test/resources/sql-tests/results/try_arithmetic.sql.out index 76f1d89b2092..c706a2607892 100644 --- a/sql/core/src/test/resources/sql-tests/results/try_arithmetic.sql.out +++ b/sql/core/src/test/resources/sql-tests/results/try_arithmetic.sql.out @@ -15,22 +15,6 @@ struct<try_add(2147483647, 1):int> NULL --- !query -SELECT try_add(2147483647, decimal(1)) --- !query schema -struct<try_add(2147483647, 1):decimal(11,0)> --- !query output -2147483648 - - --- !query -SELECT try_add(2147483647, "1") --- !query schema -struct<try_add(2147483647, 1):double> --- !query output -2.147483648E9 - - -- !query SELECT try_add(-2147483648, -1) -- !query schema @@ -265,22 +249,6 @@ struct<try_divide(1, (1.0 / 0.0)):decimal(16,9)> NULL --- !query -SELECT try_divide(1, decimal(0)) --- !query schema -struct<try_divide(1, 0):decimal(12,11)> --- !query output -NULL - - --- !query -SELECT try_divide(1, "0") --- !query schema -struct<try_divide(1, 0):double> --- !query output -NULL - - -- !query SELECT try_divide(interval 2 year, 2) -- !query schema @@ -345,22 +313,6 @@ struct<try_subtract(2147483647, -1):int> NULL --- !query -SELECT try_subtract(2147483647, decimal(-1)) --- !query schema -struct<try_subtract(2147483647, -1):decimal(11,0)> --- !query output -2147483648 - - --- !query -SELECT try_subtract(2147483647, "-1") --- !query schema -struct<try_subtract(2147483647, -1):double> --- !query output -2.147483648E9 - - -- !query SELECT try_subtract(-2147483648, 1) -- !query schema @@ -457,22 +409,6 @@ struct<try_multiply(2147483647, -2):int> NULL --- !query -SELECT try_multiply(2147483647, decimal(-2)) --- !query schema -struct<try_multiply(2147483647, -2):decimal(21,0)> --- !query output --4294967294 - - --- !query -SELECT try_multiply(2147483647, "-2") --- !query schema -struct<try_multiply(2147483647, -2):double> --- !query output --4.294967294E9 - - -- !query SELECT try_multiply(-2147483648, 2) -- !query schema --------------------------------------------------------------------- To unsubscribe, e-mail: commits-unsubscr...@spark.apache.org For additional commands, e-mail: commits-h...@spark.apache.org