From 8dd82d8a5298da8f1db406d353dbc70d24b35426 Mon Sep 17 00:00:00 2001 From: Haejoon Lee Date: Tue, 8 Oct 2024 13:13:50 +0900 Subject: [PATCH 1/2] [SPARK-49904][SQL] Assign proper error condition for _LEGACY_ERROR_TEMP_2140 --- .../src/main/resources/error/error-conditions.json | 13 +++++++------ .../apache/spark/sql/errors/ExecutionErrors.scala | 2 +- .../spark/sql/ScalaReflectionRelationSuite.scala | 4 ++-- 3 files changed, 10 insertions(+), 9 deletions(-) diff --git a/common/utils/src/main/resources/error/error-conditions.json b/common/utils/src/main/resources/error/error-conditions.json index e3bffea0b62eb..9372df7c15709 100644 --- a/common/utils/src/main/resources/error/error-conditions.json +++ b/common/utils/src/main/resources/error/error-conditions.json @@ -2578,6 +2578,13 @@ }, "sqlState" : "42K0K" }, + "INVALID_JAVA_IDENTIFIER_AS_FIELD_NAME" : { + "message" : [ + "`` is not a valid identifier of Java and cannot be used as field name", + "." + ], + "sqlState" : "42601" + }, "INVALID_JOIN_TYPE_FOR_JOINWITH" : { "message" : [ "Invalid join type in joinWith: ." @@ -7172,12 +7179,6 @@ "cannot have circular references in class, but got the circular reference of class ." ] }, - "_LEGACY_ERROR_TEMP_2140" : { - "message" : [ - "`` is not a valid identifier of Java and cannot be used as field name", - "." - ] - }, "_LEGACY_ERROR_TEMP_2144" : { "message" : [ "Unable to find constructor for . This could happen if is an interface, or a trait without companion object constructor." diff --git a/sql/api/src/main/scala/org/apache/spark/sql/errors/ExecutionErrors.scala b/sql/api/src/main/scala/org/apache/spark/sql/errors/ExecutionErrors.scala index 3527a10496862..55938a40c448f 100644 --- a/sql/api/src/main/scala/org/apache/spark/sql/errors/ExecutionErrors.scala +++ b/sql/api/src/main/scala/org/apache/spark/sql/errors/ExecutionErrors.scala @@ -195,7 +195,7 @@ private[sql] trait ExecutionErrors extends DataTypeErrorsBase { fieldName: String, walkedTypePath: WalkedTypePath): SparkUnsupportedOperationException = { new SparkUnsupportedOperationException( - errorClass = "_LEGACY_ERROR_TEMP_2140", + errorClass = "INVALID_JAVA_IDENTIFIER_AS_FIELD_NAME", messageParameters = Map("fieldName" -> fieldName, "walkedTypePath" -> walkedTypePath.toString)) } diff --git a/sql/core/src/test/scala/org/apache/spark/sql/ScalaReflectionRelationSuite.scala b/sql/core/src/test/scala/org/apache/spark/sql/ScalaReflectionRelationSuite.scala index 16118526f2fe4..c15a3d607491f 100644 --- a/sql/core/src/test/scala/org/apache/spark/sql/ScalaReflectionRelationSuite.scala +++ b/sql/core/src/test/scala/org/apache/spark/sql/ScalaReflectionRelationSuite.scala @@ -163,7 +163,7 @@ class ScalaReflectionRelationSuite extends SparkFunSuite with SharedSparkSession exception = intercept[SparkUnsupportedOperationException] { Seq(InvalidInJava(1)).toDS() }, - condition = "_LEGACY_ERROR_TEMP_2140", + condition = "INVALID_JAVA_IDENTIFIER_AS_FIELD_NAME", parameters = Map( "fieldName" -> "abstract", "walkedTypePath" -> "- root class: \"org.apache.spark.sql.InvalidInJava\"")) @@ -174,7 +174,7 @@ class ScalaReflectionRelationSuite extends SparkFunSuite with SharedSparkSession exception = intercept[SparkUnsupportedOperationException] { Seq(InvalidInJava2(1)).toDS() }, - condition = "_LEGACY_ERROR_TEMP_2140", + condition = "INVALID_JAVA_IDENTIFIER_AS_FIELD_NAME", parameters = Map( "fieldName" -> "0", "walkedTypePath" -> From c0839baaf96f0fa7b610936e636a2271907ddbd2 Mon Sep 17 00:00:00 2001 From: Haejoon Lee Date: Mon, 14 Oct 2024 10:09:28 +0900 Subject: [PATCH 2/2] applied the comments --- common/utils/src/main/resources/error/error-conditions.json | 4 ++-- .../scala/org/apache/spark/sql/errors/ExecutionErrors.scala | 2 +- .../org/apache/spark/sql/ScalaReflectionRelationSuite.scala | 4 ++-- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/common/utils/src/main/resources/error/error-conditions.json b/common/utils/src/main/resources/error/error-conditions.json index fca2a3980b9b3..b8d5896d300de 100644 --- a/common/utils/src/main/resources/error/error-conditions.json +++ b/common/utils/src/main/resources/error/error-conditions.json @@ -2595,10 +2595,10 @@ }, "INVALID_JAVA_IDENTIFIER_AS_FIELD_NAME" : { "message" : [ - "`` is not a valid identifier of Java and cannot be used as field name", + " is not a valid identifier of Java and cannot be used as field name", "." ], - "sqlState" : "42601" + "sqlState" : "46121" }, "INVALID_JOIN_TYPE_FOR_JOINWITH" : { "message" : [ diff --git a/sql/api/src/main/scala/org/apache/spark/sql/errors/ExecutionErrors.scala b/sql/api/src/main/scala/org/apache/spark/sql/errors/ExecutionErrors.scala index 55938a40c448f..907c46f583cf1 100644 --- a/sql/api/src/main/scala/org/apache/spark/sql/errors/ExecutionErrors.scala +++ b/sql/api/src/main/scala/org/apache/spark/sql/errors/ExecutionErrors.scala @@ -197,7 +197,7 @@ private[sql] trait ExecutionErrors extends DataTypeErrorsBase { new SparkUnsupportedOperationException( errorClass = "INVALID_JAVA_IDENTIFIER_AS_FIELD_NAME", messageParameters = - Map("fieldName" -> fieldName, "walkedTypePath" -> walkedTypePath.toString)) + Map("fieldName" -> toSQLId(fieldName), "walkedTypePath" -> walkedTypePath.toString)) } def primaryConstructorNotFoundError(cls: Class[_]): SparkRuntimeException = { diff --git a/sql/core/src/test/scala/org/apache/spark/sql/ScalaReflectionRelationSuite.scala b/sql/core/src/test/scala/org/apache/spark/sql/ScalaReflectionRelationSuite.scala index c15a3d607491f..76919d6583106 100644 --- a/sql/core/src/test/scala/org/apache/spark/sql/ScalaReflectionRelationSuite.scala +++ b/sql/core/src/test/scala/org/apache/spark/sql/ScalaReflectionRelationSuite.scala @@ -165,7 +165,7 @@ class ScalaReflectionRelationSuite extends SparkFunSuite with SharedSparkSession }, condition = "INVALID_JAVA_IDENTIFIER_AS_FIELD_NAME", parameters = Map( - "fieldName" -> "abstract", + "fieldName" -> "`abstract`", "walkedTypePath" -> "- root class: \"org.apache.spark.sql.InvalidInJava\"")) } @@ -176,7 +176,7 @@ class ScalaReflectionRelationSuite extends SparkFunSuite with SharedSparkSession }, condition = "INVALID_JAVA_IDENTIFIER_AS_FIELD_NAME", parameters = Map( - "fieldName" -> "0", + "fieldName" -> "`0`", "walkedTypePath" -> "- root class: \"org.apache.spark.sql.ScalaReflectionRelationSuite.InvalidInJava2\"")) }