This is an automated email from the ASF dual-hosted git repository.
danny0405 pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/hudi.git
The following commit(s) were added to refs/heads/master by this push:
new 93794743d71 [HUDI-6196] Keep compatibility for old version archival
instants without ACTION_STATE field (#8607)
93794743d71 is described below
commit 93794743d71e28dc846329d47aa6ec1ca184268d
Author: Prashant Wason <[email protected]>
AuthorDate: Tue May 9 19:29:44 2023 -0700
[HUDI-6196] Keep compatibility for old version archival instants without
ACTION_STATE field (#8607)
---
.../common/table/timeline/HoodieArchivedTimeline.java | 16 ++++++++++++----
1 file changed, 12 insertions(+), 4 deletions(-)
diff --git
a/hudi-common/src/main/java/org/apache/hudi/common/table/timeline/HoodieArchivedTimeline.java
b/hudi-common/src/main/java/org/apache/hudi/common/table/timeline/HoodieArchivedTimeline.java
index d5145ee0c6c..eb4dc631ed6 100644
---
a/hudi-common/src/main/java/org/apache/hudi/common/table/timeline/HoodieArchivedTimeline.java
+++
b/hudi-common/src/main/java/org/apache/hudi/common/table/timeline/HoodieArchivedTimeline.java
@@ -143,7 +143,11 @@ public class HoodieArchivedTimeline extends
HoodieDefaultTimeline {
public void loadCompletedInstantDetailsInMemory() {
loadInstants(null, true,
- record ->
HoodieInstant.State.COMPLETED.toString().equals(record.get(ACTION_STATE).toString()));
+ record -> {
+ // Very old archived instants don't have action state set.
+ Object action = record.get(ACTION_STATE);
+ return action == null ||
HoodieInstant.State.COMPLETED.toString().equals(action.toString());
+ });
}
public void loadCompactionDetailsInMemory(String compactionInstantTime) {
@@ -152,9 +156,13 @@ public class HoodieArchivedTimeline extends
HoodieDefaultTimeline {
public void loadCompactionDetailsInMemory(String startTs, String endTs) {
// load compactionPlan
- loadInstants(new TimeRangeFilter(startTs, endTs), true, record ->
-
record.get(ACTION_TYPE_KEY).toString().equals(HoodieTimeline.COMPACTION_ACTION)
- &&
HoodieInstant.State.INFLIGHT.toString().equals(record.get(ACTION_STATE).toString())
+ loadInstants(new TimeRangeFilter(startTs, endTs), true,
+ record -> {
+ // Older files don't have action state set.
+ Object action = record.get(ACTION_STATE);
+ return
record.get(ACTION_TYPE_KEY).toString().equals(HoodieTimeline.COMPACTION_ACTION)
+ && (action == null ||
HoodieInstant.State.INFLIGHT.toString().equals(action.toString()));
+ }
);
}