This is an automated email from the ASF dual-hosted git repository. maxgekk pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/spark.git
The following commit(s) were added to refs/heads/master by this push: new 0bd8c856c74 [SPARK-41465][SQL] Assign a name to the error class _LEGACY_ERROR_TEMP_1235 0bd8c856c74 is described below commit 0bd8c856c748a73f0bb1fecdeae05bf6f2e4063e Author: panbingkun <pbk1...@gmail.com> AuthorDate: Thu Dec 15 21:21:44 2022 +0300 [SPARK-41465][SQL] Assign a name to the error class _LEGACY_ERROR_TEMP_1235 ### What changes were proposed in this pull request? In the PR, I propose to assign the name `ANALYZE_UNSUPPORTED_COLUMN_TYPE` to the error class `_LEGACY_ERROR_TEMP_1235`. ### Why are the changes needed? Proper names of error classes should improve user experience with Spark SQL. ### Does this PR introduce _any_ user-facing change? No. ### How was this patch tested? Add new UT. Pass GA. Closes #39003 from panbingkun/LEGACY_ERROR_TEMP_1235. Authored-by: panbingkun <pbk1...@gmail.com> Signed-off-by: Max Gekk <max.g...@gmail.com> --- core/src/main/resources/error/error-classes.json | 10 +++++----- .../spark/sql/errors/QueryCompilationErrors.scala | 8 ++++---- .../apache/spark/sql/StatisticsCollectionSuite.scala | 9 +++++---- .../org/apache/spark/sql/hive/StatisticsSuite.scala | 19 +++++++++++++++++++ 4 files changed, 33 insertions(+), 13 deletions(-) diff --git a/core/src/main/resources/error/error-classes.json b/core/src/main/resources/error/error-classes.json index b7bf07a0e48..a60a24d14c6 100644 --- a/core/src/main/resources/error/error-classes.json +++ b/core/src/main/resources/error/error-classes.json @@ -1289,6 +1289,11 @@ "The ANALYZE TABLE FOR COLUMNS command can operate on temporary views that have been cached already. Consider to cache the view <viewName>." ] }, + "ANALYZE_UNSUPPORTED_COLUMN_TYPE" : { + "message" : [ + "The ANALYZE TABLE FOR COLUMNS command does not support the type <columnType> of the column <columnName> in the table <tableName>." + ] + }, "CATALOG_OPERATION" : { "message" : [ "Catalog <catalogName> does not support <operation>." @@ -2892,11 +2897,6 @@ "Partition spec is invalid. The spec (<specKeys>) must match the partition spec (<partitionColumnNames>) defined in table '<tableName>'." ] }, - "_LEGACY_ERROR_TEMP_1235" : { - "message" : [ - "Column <name> in table <tableIdent> is of type <dataType>, and Spark does not support statistics collection on this column type." - ] - }, "_LEGACY_ERROR_TEMP_1236" : { "message" : [ "ANALYZE TABLE is not supported on views." diff --git a/sql/catalyst/src/main/scala/org/apache/spark/sql/errors/QueryCompilationErrors.scala b/sql/catalyst/src/main/scala/org/apache/spark/sql/errors/QueryCompilationErrors.scala index a5ff2084ca8..18ac6b7bcf8 100644 --- a/sql/catalyst/src/main/scala/org/apache/spark/sql/errors/QueryCompilationErrors.scala +++ b/sql/catalyst/src/main/scala/org/apache/spark/sql/errors/QueryCompilationErrors.scala @@ -2298,11 +2298,11 @@ private[sql] object QueryCompilationErrors extends QueryErrorsBase { tableIdent: TableIdentifier, dataType: DataType): Throwable = { new AnalysisException( - errorClass = "_LEGACY_ERROR_TEMP_1235", + errorClass = "UNSUPPORTED_FEATURE.ANALYZE_UNSUPPORTED_COLUMN_TYPE", messageParameters = Map( - "name" -> name, - "tableIdent" -> tableIdent.toString, - "dataType" -> dataType.toString)) + "columnType" -> toSQLType(dataType), + "columnName" -> toSQLId(name), + "tableName" -> toSQLId(tableIdent.toString))) } def analyzeTableNotSupportedOnViewsError(): Throwable = { diff --git a/sql/core/src/test/scala/org/apache/spark/sql/StatisticsCollectionSuite.scala b/sql/core/src/test/scala/org/apache/spark/sql/StatisticsCollectionSuite.scala index 95d9245c57d..dda1cc5b52b 100644 --- a/sql/core/src/test/scala/org/apache/spark/sql/StatisticsCollectionSuite.scala +++ b/sql/core/src/test/scala/org/apache/spark/sql/StatisticsCollectionSuite.scala @@ -76,6 +76,7 @@ class StatisticsCollectionSuite extends StatisticsCollectionTestBase with Shared val viewName = "view" withView(viewName) { sql(s"CREATE VIEW $viewName AS SELECT * FROM $tableName") + assertAnalyzeUnsupported(s"ANALYZE TABLE $viewName COMPUTE STATISTICS") assertAnalyzeUnsupported(s"ANALYZE TABLE $viewName COMPUTE STATISTICS FOR COLUMNS id") } @@ -128,11 +129,11 @@ class StatisticsCollectionSuite extends StatisticsCollectionTestBase with Shared exception = intercept[AnalysisException] { sql(s"ANALYZE TABLE $tableName COMPUTE STATISTICS FOR COLUMNS data") }, - errorClass = "_LEGACY_ERROR_TEMP_1235", + errorClass = "UNSUPPORTED_FEATURE.ANALYZE_UNSUPPORTED_COLUMN_TYPE", parameters = Map( - "name" -> "data", - "tableIdent" -> "`spark_catalog`.`default`.`column_stats_test1`", - "dataType" -> "ArrayType(IntegerType,true)" + "columnType" -> "\"ARRAY<INT>\"", + "columnName" -> "`data`", + "tableName" -> "`spark_catalog`.`default`.`column_stats_test1`" ) ) diff --git a/sql/hive/src/test/scala/org/apache/spark/sql/hive/StatisticsSuite.scala b/sql/hive/src/test/scala/org/apache/spark/sql/hive/StatisticsSuite.scala index 2f8a681ea12..65fd2f72727 100644 --- a/sql/hive/src/test/scala/org/apache/spark/sql/hive/StatisticsSuite.scala +++ b/sql/hive/src/test/scala/org/apache/spark/sql/hive/StatisticsSuite.scala @@ -1628,4 +1628,23 @@ class StatisticsSuite extends StatisticsCollectionTestBase with TestHiveSingleto } } } + + test("Don't support MapType") { + val tableName = "analyzeTable_column" + withTable(tableName) { + sql(s"CREATE TABLE $tableName (key STRING, value MAP<STRING, STRING>) " + + s"PARTITIONED BY (ds STRING)") + checkError( + exception = intercept[AnalysisException] { + sql(s"ANALYZE TABLE $tableName COMPUTE STATISTICS FOR COLUMNS value") + }, + errorClass = "UNSUPPORTED_FEATURE.ANALYZE_UNSUPPORTED_COLUMN_TYPE", + parameters = Map( + "columnType" -> "\"MAP<STRING, STRING>\"", + "columnName" -> "`value`", + "tableName" -> "`spark_catalog`.`default`.`analyzetable_column`" + ) + ) + } + } } --------------------------------------------------------------------- To unsubscribe, e-mail: commits-unsubscr...@spark.apache.org For additional commands, e-mail: commits-h...@spark.apache.org