fqaiser94 commented on code in PR #9860:
URL: https://github.com/apache/iceberg/pull/9860#discussion_r1519703373


##########
core/src/main/java/org/apache/iceberg/BaseReplacePartitions.java:
##########
@@ -87,31 +87,40 @@ public BaseReplacePartitions toBranch(String branch) {
 
   @Override
   public void validate(TableMetadata currentMetadata, Snapshot parent) {
-    if (validateConflictingData) {
-      if (dataSpec().isUnpartitioned()) {
-        validateAddedDataFiles(
-            currentMetadata, startingSnapshotId, Expressions.alwaysTrue(), 
parent);
-      } else {
-        validateAddedDataFiles(currentMetadata, startingSnapshotId, 
replacedPartitions, parent);
-      }
-    }
-
-    if (validateConflictingDeletes) {
-      if (dataSpec().isUnpartitioned()) {
-        validateDeletedDataFiles(
-            currentMetadata, startingSnapshotId, Expressions.alwaysTrue(), 
parent);
-        validateNoNewDeleteFiles(
-            currentMetadata, startingSnapshotId, Expressions.alwaysTrue(), 
parent);
-      } else {
-        validateDeletedDataFiles(currentMetadata, startingSnapshotId, 
replacedPartitions, parent);
-        validateNoNewDeleteFiles(currentMetadata, startingSnapshotId, 
replacedPartitions, parent);
-      }
-    }
+    dataSpecs()
+        .forEach(
+            dataSpec -> {
+              if (validateConflictingData) {
+                if (dataSpec.isUnpartitioned()) {
+                  validateAddedDataFiles(
+                      currentMetadata, startingSnapshotId, 
Expressions.alwaysTrue(), parent);
+                } else {
+                  validateAddedDataFiles(
+                      currentMetadata, startingSnapshotId, replacedPartitions, 
parent);
+                }
+              }
+
+              if (validateConflictingDeletes) {
+                if (dataSpec.isUnpartitioned()) {
+                  validateDeletedDataFiles(
+                      currentMetadata, startingSnapshotId, 
Expressions.alwaysTrue(), parent);
+                  validateNoNewDeleteFiles(
+                      currentMetadata, startingSnapshotId, 
Expressions.alwaysTrue(), parent);
+                } else {
+                  validateDeletedDataFiles(
+                      currentMetadata, startingSnapshotId, replacedPartitions, 
parent);
+                  validateNoNewDeleteFiles(
+                      currentMetadata, startingSnapshotId, replacedPartitions, 
parent);
+                }
+              }
+            });
   }
 
   @Override
   public List<ManifestFile> apply(TableMetadata base, Snapshot snapshot) {
-    if (dataSpec().fields().size() <= 0) {
+    // TODO: I don't understand this, why delete all data? what if only part 
of the table is

Review Comment:
   Your explanation makes sense but I'm still a little lost when looking at the 
code. 
   
   Specifically, I don't understand how this [line of 
code](https://github.com/apache/iceberg/blob/131265d4ec79ccd114219b2989dd68694b473240/core/src/main/java/org/apache/iceberg/BaseReplacePartitions.java#L114)
 is correct? 
   It's presumably checking `dataSpec().fields().size() <= 0` to figure out if 
the current schema of the table is unpartitioned. 
   However, to my understanding, `dataSpec()` returns the spec of the files 
added, which is not necessarily the same as the current schema of the table. 
   I feel like the correct way to do this check would be to do something along 
the lines of  `base.spec().isPartitioned()`? 
   
   Would love to understand this more as this class in general is the only part 
of this PR I'm unsure about how to go about updating. 



-- 
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: issues-unsubscr...@iceberg.apache.org

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


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

Reply via email to