diff --git a/paimon-core/src/main/java/org/apache/paimon/mergetree/compact/PartialUpdateMergeFunction.java b/paimon-core/src/main/java/org/apache/paimon/mergetree/compact/PartialUpdateMergeFunction.java index faddc8c4ec08..b24cf1edeb30 100644 --- a/paimon-core/src/main/java/org/apache/paimon/mergetree/compact/PartialUpdateMergeFunction.java +++ b/paimon-core/src/main/java/org/apache/paimon/mergetree/compact/PartialUpdateMergeFunction.java @@ -114,6 +114,7 @@ public void reset() { this.meetInsert = false; this.notNullColumnFilled = false; this.row = new GenericRow(getters.length); + this.latestSequenceNumber = 0; fieldAggregators.values().forEach(FieldAggregator::reset); } diff --git a/paimon-core/src/test/java/org/apache/paimon/mergetree/compact/MergeFunctionTestUtils.java b/paimon-core/src/test/java/org/apache/paimon/mergetree/compact/MergeFunctionTestUtils.java index d52d1fa1f854..4acea88b2d36 100644 --- a/paimon-core/src/test/java/org/apache/paimon/mergetree/compact/MergeFunctionTestUtils.java +++ b/paimon-core/src/test/java/org/apache/paimon/mergetree/compact/MergeFunctionTestUtils.java @@ -66,12 +66,10 @@ public static List getExpectedForPartialUpdate( expected.add(group.get(group.size() - 1)); } else { if (group.stream().noneMatch(data -> data.valueKind == RowKind.INSERT)) { - // No insert: fill the pk and left nullable fields to null; sequenceNumber = - // latest + // No insert: fill the pk and left nullable fields to null; sequenceNumber = 0 + // because it's not updated ReusingTestData last = group.get(group.size() - 1); - expected.add( - new ReusingTestData( - last.key, last.sequenceNumber, RowKind.DELETE, null)); + expected.add(new ReusingTestData(last.key, 0, RowKind.DELETE, null)); } else { // get the last INSERT data because later DELETE data are ignored group.stream()