This is an automated email from the ASF dual-hosted git repository. maxgekk pushed a commit to branch branch-3.4 in repository https://gitbox.apache.org/repos/asf/spark.git
The following commit(s) were added to refs/heads/branch-3.4 by this push: new 8dae1245e32 [3.4][SPARK-41490][SQL] Assign name to _LEGACY_ERROR_TEMP_2441 8dae1245e32 is described below commit 8dae1245e32f9e51c8178e03ab3a1c20c856a621 Author: itholic <haejoon....@databricks.com> AuthorDate: Thu Feb 2 10:13:18 2023 +0300 [3.4][SPARK-41490][SQL] Assign name to _LEGACY_ERROR_TEMP_2441 ### What changes were proposed in this pull request? backport for https://github.com/apache/spark/pull/39700 ### Why are the changes needed? We should want to include PRs related to error classes into Spark 3.4. ### Does this PR introduce _any_ user-facing change? No. ### How was this patch tested? The CI should pass. Closes #39830 from itholic/41490-3.4. Authored-by: itholic <haejoon....@databricks.com> Signed-off-by: Max Gekk <max.g...@gmail.com> --- core/src/main/resources/error/error-classes.json | 12 ++++++------ .../apache/spark/sql/catalyst/analysis/CheckAnalysis.scala | 5 ++--- .../spark/sql/catalyst/analysis/ResolveSubquerySuite.scala | 6 +++++- .../sql-tests/results/postgreSQL/window_part3.sql.out | 10 ++++------ 4 files changed, 17 insertions(+), 16 deletions(-) diff --git a/core/src/main/resources/error/error-classes.json b/core/src/main/resources/error/error-classes.json index 9038968e7f7..e1598a4bc7b 100644 --- a/core/src/main/resources/error/error-classes.json +++ b/core/src/main/resources/error/error-classes.json @@ -1471,6 +1471,12 @@ }, "sqlState" : "0A000" }, + "UNSUPPORTED_EXPR_FOR_OPERATOR" : { + "message" : [ + "A query operator contains one or more unsupported expressions. Consider to rewrite it to avoid window functions, aggregate functions, and generator functions in the WHERE clause.", + "Invalid expressions: [<invalidExprSqls>]" + ] + }, "UNSUPPORTED_FEATURE" : { "message" : [ "The feature is not supported:" @@ -5296,12 +5302,6 @@ "in operator <operator>." ] }, - "_LEGACY_ERROR_TEMP_2441" : { - "message" : [ - "The query operator `<operator>` contains one or more unsupported expression types Aggregate, Window or Generate.", - "Invalid expressions: [<invalidExprSqls>]." - ] - }, "_LEGACY_ERROR_TEMP_2443" : { "message" : [ "Multiple definitions of observed metrics named '<name>': <plan>." diff --git a/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/analysis/CheckAnalysis.scala b/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/analysis/CheckAnalysis.scala index 5c00e1ec9f5..57852bd950d 100644 --- a/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/analysis/CheckAnalysis.scala +++ b/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/analysis/CheckAnalysis.scala @@ -731,11 +731,10 @@ trait CheckAnalysis extends PredicateHelper with LookupCatalog with QueryErrorsB case other if PlanHelper.specialExpressionsInUnsupportedOperator(other).nonEmpty => val invalidExprSqls = - PlanHelper.specialExpressionsInUnsupportedOperator(other).map(_.sql) + PlanHelper.specialExpressionsInUnsupportedOperator(other).map(toSQLExpr) other.failAnalysis( - errorClass = "_LEGACY_ERROR_TEMP_2441", + errorClass = "UNSUPPORTED_EXPR_FOR_OPERATOR", messageParameters = Map( - "operator" -> other.nodeName, "invalidExprSqls" -> invalidExprSqls.mkString(", "))) // This should not happen, resolved Project or Aggregate should restore or resolve diff --git a/sql/catalyst/src/test/scala/org/apache/spark/sql/catalyst/analysis/ResolveSubquerySuite.scala b/sql/catalyst/src/test/scala/org/apache/spark/sql/catalyst/analysis/ResolveSubquerySuite.scala index 7b99153acf9..67265fe6f3b 100644 --- a/sql/catalyst/src/test/scala/org/apache/spark/sql/catalyst/analysis/ResolveSubquerySuite.scala +++ b/sql/catalyst/src/test/scala/org/apache/spark/sql/catalyst/analysis/ResolveSubquerySuite.scala @@ -187,7 +187,11 @@ class ResolveSubquerySuite extends AnalysisTest { test("lateral join with unsupported expressions") { val plan = lateralJoin(t1, t0.select(($"a" + $"b").as("c")), condition = Some(sum($"a") === sum($"c"))) - assertAnalysisError(plan, Seq("Invalid expressions: [sum(a), sum(c)]")) + assertAnalysisErrorClass( + plan, + expectedErrorClass = "UNSUPPORTED_EXPR_FOR_OPERATOR", + expectedMessageParameters = Map("invalidExprSqls" -> "\"sum(a)\", \"sum(c)\"") + ) } test("SPARK-35618: lateral join with star expansion") { diff --git a/sql/core/src/test/resources/sql-tests/results/postgreSQL/window_part3.sql.out b/sql/core/src/test/resources/sql-tests/results/postgreSQL/window_part3.sql.out index 1edf41ebc08..6eccdcb89e1 100644 --- a/sql/core/src/test/resources/sql-tests/results/postgreSQL/window_part3.sql.out +++ b/sql/core/src/test/resources/sql-tests/results/postgreSQL/window_part3.sql.out @@ -333,10 +333,9 @@ struct<> -- !query output org.apache.spark.sql.AnalysisException { - "errorClass" : "_LEGACY_ERROR_TEMP_2441", + "errorClass" : "UNSUPPORTED_EXPR_FOR_OPERATOR", "messageParameters" : { - "invalidExprSqls" : "row_number() OVER (ORDER BY spark_catalog.default.empsalary.salary ASC NULLS FIRST ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW)", - "operator" : "Join" + "invalidExprSqls" : "\"row_number() OVER (ORDER BY salary ASC NULLS FIRST ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW)\"" }, "queryContext" : [ { "objectType" : "", @@ -355,10 +354,9 @@ struct<> -- !query output org.apache.spark.sql.AnalysisException { - "errorClass" : "_LEGACY_ERROR_TEMP_2441", + "errorClass" : "UNSUPPORTED_EXPR_FOR_OPERATOR", "messageParameters" : { - "invalidExprSqls" : "RANK() OVER (ORDER BY 1 ASC NULLS FIRST ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW)", - "operator" : "Aggregate" + "invalidExprSqls" : "\"RANK() OVER (ORDER BY 1 ASC NULLS FIRST ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW)\"" }, "queryContext" : [ { "objectType" : "", --------------------------------------------------------------------- To unsubscribe, e-mail: commits-unsubscr...@spark.apache.org For additional commands, e-mail: commits-h...@spark.apache.org