Skip to content

Commit e88c6e9

Browse files
committed
[core] Fix incorrect sequenceNumber in manifest after row-tracking compaction
1 parent 949b9f5 commit e88c6e9

2 files changed

Lines changed: 10 additions & 0 deletions

File tree

paimon-core/src/main/java/org/apache/paimon/append/AppendCompactTask.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@
3535

3636
import java.util.ArrayList;
3737
import java.util.Collections;
38+
import java.util.Comparator;
3839
import java.util.List;
3940
import java.util.Objects;
4041

@@ -49,6 +50,7 @@ public class AppendCompactTask {
4950

5051
public AppendCompactTask(BinaryRow partition, List<DataFileMeta> files) {
5152
Preconditions.checkArgument(files != null);
53+
files.sort(Comparator.comparingLong(DataFileMeta::minSequenceNumber));
5254
this.partition = partition;
5355
compactBefore = new ArrayList<>(files);
5456
compactAfter = new ArrayList<>();

paimon-spark/paimon-spark-ut/src/test/scala/org/apache/paimon/spark/sql/RowTrackingTestBase.scala

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -252,6 +252,14 @@ abstract class RowTrackingTestBase extends PaimonSparkTestBase {
252252
sql("SELECT *, _ROW_ID, _SEQUENCE_NUMBER FROM t ORDER BY id"),
253253
Seq(Row(1, 1, 0, 1), Row(2, 2, 1, 2), Row(3, 3, 2, 3))
254254
)
255+
256+
sql("INSERT INTO t VALUES (4, '4')")
257+
sql("INSERT INTO t VALUES (5, '5')")
258+
sql("CALL sys.compact(table => 't')")
259+
checkAnswer(
260+
sql("SELECT min_sequence_number, max_sequence_number FROM `t$files`"),
261+
Seq(Row(1, 5))
262+
)
255263
}
256264
}
257265

0 commit comments

Comments
 (0)