aokolnychyi commented on a change in pull request #3056:
URL: https://github.com/apache/iceberg/pull/3056#discussion_r809665743



##########
File path: 
spark/v3.2/spark/src/main/java/org/apache/iceberg/spark/SparkCatalog.java
##########
@@ -244,10 +248,25 @@ public SparkTable alterTable(Identifier ident, 
TableChange... changes) throws No
 
   @Override
   public boolean dropTable(Identifier ident) {
+    return dropTableInternal(ident, false);
+  }
+
+  @Override
+  public boolean purgeTable(Identifier ident) {
+    return dropTableInternal(ident, true);
+  }
+
+  private boolean dropTableInternal(Identifier ident, boolean purge) {
     try {
+      if (purge) {
+        Table table = load(ident).first();
+        ValidationException.check(
+            PropertyUtil.propertyAsBoolean(table.properties(), GC_ENABLED, 
GC_ENABLED_DEFAULT),
+            "Cannot purge table: GC is disabled (deleting files may corrupt 
other tables)");
+      }
       return isPathIdentifier(ident) ?

Review comment:
       I know we used a ternary operator here before but the whole statement 
seems too complicated. I'd consider refactoring this into a separate utility 
method like `dropTableWithoutPurging` in the example above.




-- 
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.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]



---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to