nastra commented on code in PR #7361:
URL: https://github.com/apache/iceberg/pull/7361#discussion_r1189564974


##########
api/src/main/java/org/apache/iceberg/actions/RewriteDataFiles.java:
##########
@@ -197,6 +199,10 @@ default int rewrittenDataFilesCount() {
     default long rewrittenBytesCount() {
       return 
rewriteResults().stream().mapToLong(FileGroupRewriteResult::rewrittenBytesCount).sum();
     }
+
+    default int failedDataFilesCount() {

Review Comment:
   this should have `@Value.Default`



##########
core/src/main/java/org/apache/iceberg/actions/BaseRewriteDataFilesResult.java:
##########
@@ -30,12 +31,21 @@
 public class BaseRewriteDataFilesResult implements Result {
   private final List<FileGroupRewriteResult> rewriteResults;
 
-  public BaseRewriteDataFilesResult(List<FileGroupRewriteResult> 
rewriteResults) {
+  private final List<FileGroupFailureResult> rewriteFailures;

Review Comment:
   this class is deprecated and not used anymore, so no need to add changes to 
it. Not modifying this class also ensures that no API-breaking changes are 
introduced (as indicated by RevAPI)



##########
api/src/main/java/org/apache/iceberg/actions/RewriteDataFiles.java:
##########
@@ -181,6 +181,8 @@ default RewriteDataFiles zOrder(String... columns) {
   interface Result {
     List<FileGroupRewriteResult> rewriteResults();
 
+    List<FileGroupFailureResult> rewriteFailures();

Review Comment:
   to avoid introducing API-breaking changes, what you'd rather want to do is 
   ```
       @Value.Default
       default List<FileGroupFailureResult> rewriteFailures() {
         return ImmutableList.of();
       }
   ```



##########
spark/v3.4/spark/src/test/java/org/apache/iceberg/spark/actions/TestRewriteDataFilesAction.java:
##########
@@ -756,6 +756,8 @@ public void testPartialProgressWithRewriteFailure() {
     RewriteDataFiles.Result result = spyRewrite.execute();
 
     Assert.assertEquals("Should have 7 fileGroups", 
result.rewriteResults().size(), 7);
+    Assert.assertEquals("Should have 3 failed fileGroups", 
result.rewriteFailures().size(), 3);

Review Comment:
   I think it's better to change this to 
   ```
       assertThat(result.rewriteResults()).hasSize(7);
       assertThat(result.rewriteFailures()).hasSize(3);
       assertThat(result.failedDataFilesCount()).isEqualTo(6);
   ```
   
   the advantage here is that the content of `result.rewriteResults()` / 
`result.rewriteFailures()` will be shown if the assertion ever fails, which 
makes debugging a lot easier.
   
   Could you please do the same changes further below in L801ff



##########
.palantir/revapi.yml:
##########
@@ -426,6 +426,12 @@ acceptedBreaks:
     - code: "java.field.removedWithConstant"
       old: "field org.apache.iceberg.TableProperties.HMS_TABLE_OWNER"
       justification: "Removing deprecations for 1.3.0"
+    - code: "java.method.numberOfParametersChanged"

Review Comment:
   @waltczhang can you please revert all changes to the `revapi.yml`? Those 
shouldn't be necessary anymore once my other comments are applied



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