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 624c25d95c704..3cd29e5c72579 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 @@ -93,7 +93,7 @@ trait CheckAnalysis extends PredicateHelper { case alter: AlterTable => alter.table match { - case u @ UnresolvedTableWithViewExists(view) if !view.isTempView => + case u @ UnresolvedTableWithViewExists(view) => u.failAnalysis("Cannot alter a view with ALTER TABLE. Please use ALTER VIEW instead") case _ => } diff --git a/sql/core/src/test/resources/sql-tests/results/change-column.sql.out b/sql/core/src/test/resources/sql-tests/results/change-column.sql.out index bb5b4ae84d3b7..921166d9cb0db 100644 --- a/sql/core/src/test/resources/sql-tests/results/change-column.sql.out +++ b/sql/core/src/test/resources/sql-tests/results/change-column.sql.out @@ -195,7 +195,7 @@ ALTER TABLE temp_view CHANGE a TYPE INT COMMENT 'this is column a' struct<> -- !query 20 output org.apache.spark.sql.AnalysisException -temp_view is a temp view not a table.; line 1 pos 0 +Cannot alter a view with ALTER TABLE. Please use ALTER VIEW instead; line 1 pos 0 -- !query 21 @@ -212,7 +212,7 @@ ALTER TABLE global_temp.global_temp_view CHANGE a TYPE INT COMMENT 'this is colu struct<> -- !query 22 output org.apache.spark.sql.AnalysisException -global_temp.global_temp_view is a temp view not a table.; line 1 pos 0 +Cannot alter a view with ALTER TABLE. Please use ALTER VIEW instead; line 1 pos 0 -- !query 23 diff --git a/sql/core/src/test/scala/org/apache/spark/sql/execution/SQLViewSuite.scala b/sql/core/src/test/scala/org/apache/spark/sql/execution/SQLViewSuite.scala index 4ed2506b35a80..7bc60bcd98e1d 100644 --- a/sql/core/src/test/scala/org/apache/spark/sql/execution/SQLViewSuite.scala +++ b/sql/core/src/test/scala/org/apache/spark/sql/execution/SQLViewSuite.scala @@ -145,13 +145,13 @@ abstract class SQLViewSuite extends QueryTest with SQLTestUtils { // For v2 ALTER TABLE statements, we have better error message saying view is not supported. assertAnalysisError( s"ALTER TABLE $viewName SET LOCATION '/path/to/your/lovely/heart'", - s"$viewName is a temp view not a table") + "Cannot alter a view with ALTER TABLE. Please use ALTER VIEW instead") // For the following v2 ALERT TABLE statements, relations are first resolved before // unsupported operations are checked. assertAnalysisError( s"ALTER TABLE $viewName PARTITION (a='4') SET LOCATION '/path/to/home'", - s"$viewName is a temp view not a table") + "Cannot alter a view with ALTER TABLE. Please use ALTER VIEW instead") } } diff --git a/sql/core/src/test/scala/org/apache/spark/sql/execution/command/DDLSuite.scala b/sql/core/src/test/scala/org/apache/spark/sql/execution/command/DDLSuite.scala index 64c85c19ba489..778292345c335 100644 --- a/sql/core/src/test/scala/org/apache/spark/sql/execution/command/DDLSuite.scala +++ b/sql/core/src/test/scala/org/apache/spark/sql/execution/command/DDLSuite.scala @@ -2779,7 +2779,8 @@ abstract class DDLSuite extends QueryTest with SQLTestUtils { val e = intercept[AnalysisException] { sql("ALTER TABLE tmp_v ADD COLUMNS (c3 INT)") } - assert(e.message.contains("tmp_v is a temp view not a table")) + assert( + e.message.contains("Cannot alter a view with ALTER TABLE. Please use ALTER VIEW instead")) } }