This is an automated email from the ASF dual-hosted git repository.
lzljs3620320 pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-paimon.git
The following commit(s) were added to refs/heads/master by this push:
new 4efe2e5cf [core] compacted_full should never return null (#1517)
4efe2e5cf is described below
commit 4efe2e5cf99962159bdb687ac3f5e0e234b8c701
Author: Jingsong Lee <[email protected]>
AuthorDate: Fri Jul 7 19:30:59 2023 +0800
[core] compacted_full should never return null (#1517)
---
.../paimon/table/source/snapshot/CompactedStartingScanner.java | 3 ++-
.../table/source/snapshot/FullCompactedStartingScanner.java | 2 +-
.../src/main/java/org/apache/paimon/utils/SnapshotManager.java | 9 ++-------
.../apache/paimon/table/ChangelogWithKeyFileStoreTableTest.java | 9 ++++++++-
4 files changed, 13 insertions(+), 10 deletions(-)
diff --git
a/paimon-core/src/main/java/org/apache/paimon/table/source/snapshot/CompactedStartingScanner.java
b/paimon-core/src/main/java/org/apache/paimon/table/source/snapshot/CompactedStartingScanner.java
index f4a1ccfc2..0f89c5b42 100644
---
a/paimon-core/src/main/java/org/apache/paimon/table/source/snapshot/CompactedStartingScanner.java
+++
b/paimon-core/src/main/java/org/apache/paimon/table/source/snapshot/CompactedStartingScanner.java
@@ -19,6 +19,7 @@
package org.apache.paimon.table.source.snapshot;
import org.apache.paimon.CoreOptions;
+import org.apache.paimon.Snapshot;
import org.apache.paimon.operation.ScanKind;
import org.apache.paimon.utils.SnapshotManager;
@@ -53,6 +54,6 @@ public class CompactedStartingScanner implements
StartingScanner {
@Nullable
protected Long pick(SnapshotManager snapshotManager) {
- return snapshotManager.latestCompactedSnapshotId();
+ return snapshotManager.pickOrLatest(s -> s.commitKind() ==
Snapshot.CommitKind.COMPACT);
}
}
diff --git
a/paimon-core/src/main/java/org/apache/paimon/table/source/snapshot/FullCompactedStartingScanner.java
b/paimon-core/src/main/java/org/apache/paimon/table/source/snapshot/FullCompactedStartingScanner.java
index 46b2f2453..31df3c8b9 100644
---
a/paimon-core/src/main/java/org/apache/paimon/table/source/snapshot/FullCompactedStartingScanner.java
+++
b/paimon-core/src/main/java/org/apache/paimon/table/source/snapshot/FullCompactedStartingScanner.java
@@ -40,7 +40,7 @@ public class FullCompactedStartingScanner extends
CompactedStartingScanner {
@Override
@Nullable
protected Long pick(SnapshotManager snapshotManager) {
- return snapshotManager.pickFromLatest(this::picked);
+ return snapshotManager.pickOrLatest(this::picked);
}
private boolean picked(Snapshot snapshot) {
diff --git
a/paimon-core/src/main/java/org/apache/paimon/utils/SnapshotManager.java
b/paimon-core/src/main/java/org/apache/paimon/utils/SnapshotManager.java
index 05a18d8da..b44d61d12 100644
--- a/paimon-core/src/main/java/org/apache/paimon/utils/SnapshotManager.java
+++ b/paimon-core/src/main/java/org/apache/paimon/utils/SnapshotManager.java
@@ -19,7 +19,6 @@
package org.apache.paimon.utils;
import org.apache.paimon.Snapshot;
-import org.apache.paimon.Snapshot.CommitKind;
import org.apache.paimon.fs.FileIO;
import org.apache.paimon.fs.Path;
@@ -113,11 +112,7 @@ public class SnapshotManager implements Serializable {
}
}
- public @Nullable Long latestCompactedSnapshotId() {
- return pickFromLatest(s -> s.commitKind() == CommitKind.COMPACT);
- }
-
- public @Nullable Long pickFromLatest(Predicate<Snapshot> predicate) {
+ public @Nullable Long pickOrLatest(Predicate<Snapshot> predicate) {
Long latestId = latestSnapshotId();
Long earliestId = earliestSnapshotId();
if (latestId == null || earliestId == null) {
@@ -133,7 +128,7 @@ public class SnapshotManager implements Serializable {
}
}
- return null;
+ return latestId;
}
/**
diff --git
a/paimon-core/src/test/java/org/apache/paimon/table/ChangelogWithKeyFileStoreTableTest.java
b/paimon-core/src/test/java/org/apache/paimon/table/ChangelogWithKeyFileStoreTableTest.java
index 2ced6f9e1..c76a6e15d 100644
---
a/paimon-core/src/test/java/org/apache/paimon/table/ChangelogWithKeyFileStoreTableTest.java
+++
b/paimon-core/src/test/java/org/apache/paimon/table/ChangelogWithKeyFileStoreTableTest.java
@@ -889,6 +889,14 @@ public class ChangelogWithKeyFileStoreTableTest extends
FileStoreTableTestBase {
write.write(rowData(1, 10, 100L));
commit.commit(0, write.prepareCommit(true, 0));
+ ReadBuilder readBuilder = table.newReadBuilder();
+ assertThat(
+ getResult(
+ readBuilder.newRead(),
+ readBuilder.newScan().plan().splits(),
+ BATCH_ROW_TO_STRING))
+
.containsExactly("1|10|100|binary|varbinary|mapKey:mapVal|multiset");
+
write.write(rowData(1, 10, 200L));
commit.commit(1, write.prepareCommit(true, 1));
@@ -901,7 +909,6 @@ public class ChangelogWithKeyFileStoreTableTest extends
FileStoreTableTestBase {
write.close();
- ReadBuilder readBuilder = table.newReadBuilder();
assertThat(
getResult(
readBuilder.newRead(),