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

Reply via email to