CTTY commented on code in PR #17825:
URL: https://github.com/apache/hudi/pull/17825#discussion_r2756470429
##########
hudi-common/src/main/java/org/apache/hudi/common/engine/HoodieReaderContext.java:
##########
@@ -75,12 +80,22 @@
* @param <T> The type of engine-specific record representation, e.g.,{@code
InternalRow} in Spark
* and {@code RowData} in Flink.
*/
+@Getter
+@Setter
Review Comment:
Do we really need class-level getter/setter if we need so many field level
getters
##########
hudi-client/hudi-spark-client/src/test/java/org/apache/hudi/table/TestCleaner.java:
##########
@@ -715,18 +715,30 @@ public void testCleanMetadataUpgradeDowngrade() {
List<String> failedDeleteFiles1 = Collections.singletonList(filePath2);
// create partition1 clean stat.
- HoodieCleanStat cleanStat1 = new
HoodieCleanStat(HoodieCleaningPolicy.KEEP_LATEST_FILE_VERSIONS,
- partition1, deletePathPatterns1, successDeleteFiles1,
- failedDeleteFiles1, instantTime, "");
+ HoodieCleanStat cleanStat1 = HoodieCleanStat.builder()
+ .withPolicy(HoodieCleaningPolicy.KEEP_LATEST_FILE_VERSIONS)
+ .withPartitionPath(partition1)
+ .withDeletePathPatterns(deletePathPatterns1)
+ .withSuccessDeleteFiles(successDeleteFiles1)
+ .withFailedDeleteFiles(failedDeleteFiles1)
+ .withEarliestCommitToRetain(instantTime)
+ .withLastCompletedCommitTimestamp("")
+ .build();
List<String> deletePathPatterns2 = new ArrayList<>();
List<String> successDeleteFiles2 = new ArrayList<>();
List<String> failedDeleteFiles2 = new ArrayList<>();
// create partition2 empty clean stat.
- HoodieCleanStat cleanStat2 = new
HoodieCleanStat(HoodieCleaningPolicy.KEEP_LATEST_COMMITS,
- partition2, deletePathPatterns2, successDeleteFiles2,
- failedDeleteFiles2, instantTime, "");
+ HoodieCleanStat cleanStat2 = HoodieCleanStat.builder()
+ .withPolicy(HoodieCleaningPolicy.KEEP_LATEST_FILE_VERSIONS)
Review Comment:
The policy was changed? Probably doesn't matter that much but needs
revisiting
```suggestion
.withPolicy(HoodieCleaningPolicy.KEEP_LATEST_COMMITS)
```
##########
hudi-common/src/main/java/org/apache/hudi/common/HoodieCleanStat.java:
##########
@@ -19,207 +19,45 @@
package org.apache.hudi.common;
import org.apache.hudi.common.model.HoodieCleaningPolicy;
-import org.apache.hudi.common.table.timeline.HoodieInstant;
import org.apache.hudi.common.util.CollectionUtils;
-import org.apache.hudi.common.util.Option;
+
+import lombok.Builder;
+import lombok.Value;
import java.io.Serializable;
import java.util.List;
/**
* Collects stats about a single partition clean operation.
*/
+@Builder(setterPrefix = "with")
+@Value
public class HoodieCleanStat implements Serializable {
// Policy used
- private final HoodieCleaningPolicy policy;
+ HoodieCleaningPolicy policy;
// Partition path cleaned
- private final String partitionPath;
+ String partitionPath;
// The patterns that were generated for the delete operation
- private final List<String> deletePathPatterns;
- private final List<String> successDeleteFiles;
- // Files that could not be deleted
- private final List<String> failedDeleteFiles;
- // Bootstrap Base Path patterns that were generated for the delete operation
- private final List<String> deleteBootstrapBasePathPatterns;
- private final List<String> successDeleteBootstrapBaseFiles;
+ @Builder.Default
+ List<String> deletePathPatterns = CollectionUtils.createImmutableList();
+ @Builder.Default
+ List<String> successDeleteFiles = CollectionUtils.createImmutableList();
// Files that could not be deleted
- private final List<String> failedDeleteBootstrapBaseFiles;
+ @Builder.Default
+ List<String> failedDeleteFiles = CollectionUtils.createImmutableList();
// Earliest commit that was retained in this clean
- private final String earliestCommitToRetain;
+ String earliestCommitToRetain;
// Last completed commit timestamp before clean
- private final String lastCompletedCommitTimestamp;
+ String lastCompletedCommitTimestamp;
+ // Bootstrap Base Path patterns that were generated for the delete operation
+ @Builder.Default
+ List<String> deleteBootstrapBasePathPatterns =
CollectionUtils.createImmutableList();
+ @Builder.Default
+ List<String> successDeleteBootstrapBaseFiles =
CollectionUtils.createImmutableList();;
+ // Files that could not be deleted
+ @Builder.Default
+ List<String> failedDeleteBootstrapBaseFiles =
CollectionUtils.createImmutableList();;
Review Comment:
```suggestion
List<String> failedDeleteBootstrapBaseFiles =
CollectionUtils.createImmutableList();
```
##########
hudi-common/src/main/java/org/apache/hudi/common/HoodieCleanStat.java:
##########
@@ -19,207 +19,45 @@
package org.apache.hudi.common;
import org.apache.hudi.common.model.HoodieCleaningPolicy;
-import org.apache.hudi.common.table.timeline.HoodieInstant;
import org.apache.hudi.common.util.CollectionUtils;
-import org.apache.hudi.common.util.Option;
+
+import lombok.Builder;
+import lombok.Value;
import java.io.Serializable;
import java.util.List;
/**
* Collects stats about a single partition clean operation.
*/
+@Builder(setterPrefix = "with")
+@Value
public class HoodieCleanStat implements Serializable {
// Policy used
- private final HoodieCleaningPolicy policy;
+ HoodieCleaningPolicy policy;
// Partition path cleaned
- private final String partitionPath;
+ String partitionPath;
// The patterns that were generated for the delete operation
- private final List<String> deletePathPatterns;
- private final List<String> successDeleteFiles;
- // Files that could not be deleted
- private final List<String> failedDeleteFiles;
- // Bootstrap Base Path patterns that were generated for the delete operation
- private final List<String> deleteBootstrapBasePathPatterns;
- private final List<String> successDeleteBootstrapBaseFiles;
+ @Builder.Default
+ List<String> deletePathPatterns = CollectionUtils.createImmutableList();
+ @Builder.Default
+ List<String> successDeleteFiles = CollectionUtils.createImmutableList();
// Files that could not be deleted
- private final List<String> failedDeleteBootstrapBaseFiles;
+ @Builder.Default
+ List<String> failedDeleteFiles = CollectionUtils.createImmutableList();
// Earliest commit that was retained in this clean
- private final String earliestCommitToRetain;
+ String earliestCommitToRetain;
// Last completed commit timestamp before clean
- private final String lastCompletedCommitTimestamp;
+ String lastCompletedCommitTimestamp;
+ // Bootstrap Base Path patterns that were generated for the delete operation
+ @Builder.Default
+ List<String> deleteBootstrapBasePathPatterns =
CollectionUtils.createImmutableList();
+ @Builder.Default
+ List<String> successDeleteBootstrapBaseFiles =
CollectionUtils.createImmutableList();;
Review Comment:
```suggestion
List<String> successDeleteBootstrapBaseFiles =
CollectionUtils.createImmutableList();
```
--
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]