imback82 commented on a change in pull request #31494:
URL: https://github.com/apache/spark/pull/31494#discussion_r572305204



##########
File path: 
sql/core/src/test/scala/org/apache/spark/sql/connector/AlterTableTests.scala
##########
@@ -1141,6 +1141,36 @@ trait AlterTableTests extends SharedSparkSession {
     }
   }
 
+  test("AlterTable: remove nonexistent table property") {
+    val t = s"${catalogAndNamespace}table_name"
+    withTable(t) {
+      sql(s"CREATE TABLE $t (id int) USING $v2Format TBLPROPERTIES('test' = 
'34')")
+
+      val tableName = fullTableName(t)
+      val table = getTableMetadata(tableName)
+
+      assert(table.name === tableName)
+      assert(table.properties ===
+        withDefaultOwnership(Map("provider" -> v2Format, "test" -> 
"34")).asJava)
+
+      val exc = intercept[AnalysisException] {
+        sql(s"ALTER TABLE $t UNSET TBLPROPERTIES ('unknown')")
+      }
+      assert(exc.getMessage.contains("Attempted to unset non-existent property 
'unknown'"))
+
+      // Reserved property "comment" should be allowed regardless.
+      sql(s"ALTER TABLE $t UNSET TBLPROPERTIES ('comment')")

Review comment:
       The "comment" property seems to be treated differently that other 
reserved properties (not checked in the following):
   
https://github.com/apache/spark/blob/3b26bc25362a245a610c3e222b971b4ae612bc3e/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/parser/AstBuilder.scala#L2836-L2850
   
   The following works:
   ```
   scala> sql("CREATE TABLE t (id int) TBLPROPERTIES('comment' = 'hello')")
   scala> sql("DESCRIBE EXTENDED t").show
   +--------------------+--------------------+-------+
   |            col_name|           data_type|comment|
   +--------------------+--------------------+-------+
   |                  id|                 int|   null|
   |                    |                    |       |
   |# Detailed Table ...|                    |       |
   |            Database|             default|       |
   |               Table|                   t|       |
   |               Owner|              terryk|       |
   |        Created Time|Mon Feb 08 11:08:...|       |
   |         Last Access|             UNKNOWN|       |
   |          Created By|         Spark 3.0.1|       |
   |                Type|             MANAGED|       |
   |            Provider|                hive|       |
   |             Comment|               hello|       |
   ```
   
   Note the following to see how v1 command can unset the comment using this 
command:
   
https://github.com/apache/spark/blob/3b26bc25362a245a610c3e222b971b4ae612bc3e/sql/core/src/main/scala/org/apache/spark/sql/execution/command/ddl.scala#L315-L316




----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org



---------------------------------------------------------------------
To unsubscribe, e-mail: reviews-unsubscr...@spark.apache.org
For additional commands, e-mail: reviews-h...@spark.apache.org

Reply via email to