This is an automated email from the ASF dual-hosted git repository. dongjoon 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 e3b8402a1c0 Revert "[SPARK-45075][SQL] Fix alter table with invalid default value will not report error" e3b8402a1c0 is described below commit e3b8402a1c042c46d84a6527516402e79fbf0c19 Author: Dongjoon Hyun <dh...@apple.com> AuthorDate: Mon Sep 11 09:05:29 2023 -0700 Revert "[SPARK-45075][SQL] Fix alter table with invalid default value will not report error" This reverts commit 4a181e5eacfb8103cce50decaeabdd1441dca676. --- .../spark/sql/connector/catalog/TableChange.java | 3 ++- .../plans/logical/v2AlterTableCommands.scala | 11 ++------ .../spark/sql/connector/AlterTableTests.scala | 29 ---------------------- 3 files changed, 4 insertions(+), 39 deletions(-) diff --git a/sql/catalyst/src/main/java/org/apache/spark/sql/connector/catalog/TableChange.java b/sql/catalyst/src/main/java/org/apache/spark/sql/connector/catalog/TableChange.java index ebecb6f507e..609cfab2d56 100644 --- a/sql/catalyst/src/main/java/org/apache/spark/sql/connector/catalog/TableChange.java +++ b/sql/catalyst/src/main/java/org/apache/spark/sql/connector/catalog/TableChange.java @@ -696,8 +696,9 @@ public interface TableChange { /** * Returns the column default value SQL string (Spark SQL dialect). The default value literal * is not provided as updating column default values does not need to back-fill existing data. - * Empty string means dropping the column default value. + * Null means dropping the column default value. */ + @Nullable public String newDefaultValue() { return newDefaultValue; } @Override diff --git a/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/plans/logical/v2AlterTableCommands.scala b/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/plans/logical/v2AlterTableCommands.scala index b02c4fac12d..eb9d45f06ec 100644 --- a/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/plans/logical/v2AlterTableCommands.scala +++ b/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/plans/logical/v2AlterTableCommands.scala @@ -17,9 +17,9 @@ package org.apache.spark.sql.catalyst.plans.logical -import org.apache.spark.sql.catalyst.analysis.{FieldName, FieldPosition, ResolvedFieldName} +import org.apache.spark.sql.catalyst.analysis.{FieldName, FieldPosition} import org.apache.spark.sql.catalyst.catalog.CatalogTypes.TablePartitionSpec -import org.apache.spark.sql.catalyst.util.{ResolveDefaultColumns, TypeUtils} +import org.apache.spark.sql.catalyst.util.TypeUtils import org.apache.spark.sql.connector.catalog.{TableCatalog, TableChange} import org.apache.spark.sql.errors.QueryCompilationErrors import org.apache.spark.sql.types.DataType @@ -228,13 +228,6 @@ case class AlterColumn( TableChange.updateColumnPosition(colName, newPosition.position) } val defaultValueChange = setDefaultExpression.map { newDefaultExpression => - if (newDefaultExpression.nonEmpty) { - // SPARK-45075: We call 'ResolveDefaultColumns.analyze' here to make sure that the default - // value parses successfully, and return an error otherwise - val newDataType = dataType.getOrElse(column.asInstanceOf[ResolvedFieldName].field.dataType) - ResolveDefaultColumns.analyze(column.name.last, newDataType, newDefaultExpression, - "ALTER TABLE ALTER COLUMN") - } TableChange.updateColumnDefaultValue(colName, newDefaultExpression) } typeChange.toSeq ++ nullabilityChange ++ commentChange ++ positionChange ++ defaultValueChange diff --git a/sql/core/src/test/scala/org/apache/spark/sql/connector/AlterTableTests.scala b/sql/core/src/test/scala/org/apache/spark/sql/connector/AlterTableTests.scala index 6d20c45d48f..2047212a4ea 100644 --- a/sql/core/src/test/scala/org/apache/spark/sql/connector/AlterTableTests.scala +++ b/sql/core/src/test/scala/org/apache/spark/sql/connector/AlterTableTests.scala @@ -366,35 +366,6 @@ trait AlterTableTests extends SharedSparkSession with QueryErrorsBase { } } - test("SPARK-45075: ALTER COLUMN with invalid default value") { - withSQLConf(SQLConf.DEFAULT_COLUMN_ALLOWED_PROVIDERS.key -> s"$v2Format, ") { - withTable("t") { - sql(s"create table t(i boolean) using $v2Format") - // The default value fails to analyze. - checkError( - exception = intercept[AnalysisException] { - sql("alter table t add column s bigint default badvalue") - }, - errorClass = "INVALID_DEFAULT_VALUE.UNRESOLVED_EXPRESSION", - parameters = Map( - "statement" -> "ALTER TABLE", - "colName" -> "`s`", - "defaultValue" -> "badvalue")) - - sql("alter table t add column s bigint default 3L") - checkError( - exception = intercept[AnalysisException] { - sql("alter table t alter column s set default badvalue") - }, - errorClass = "INVALID_DEFAULT_VALUE.UNRESOLVED_EXPRESSION", - parameters = Map( - "statement" -> "ALTER TABLE ALTER COLUMN", - "colName" -> "`s`", - "defaultValue" -> "badvalue")) - } - } - } - test("AlterTable: add complex column") { val t = s"${catalogAndNamespace}table_name" withTable(t) { --------------------------------------------------------------------- To unsubscribe, e-mail: commits-unsubscr...@spark.apache.org For additional commands, e-mail: commits-h...@spark.apache.org