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 f140c1296 [hotfix] Clean up redundant code in Manifests Table. (#1523)
f140c1296 is described below
commit f140c1296729ceaf78d5cad2738c71248072ed16
Author: Kerwin <[email protected]>
AuthorDate: Mon Jul 10 20:37:47 2023 +0800
[hotfix] Clean up redundant code in Manifests Table. (#1523)
---
.../org/apache/paimon/catalog/AbstractCatalog.java | 4 +-
.../apache/paimon/table/system/ManifestsTable.java | 50 +++++++---------------
2 files changed, 17 insertions(+), 37 deletions(-)
diff --git
a/paimon-core/src/main/java/org/apache/paimon/catalog/AbstractCatalog.java
b/paimon-core/src/main/java/org/apache/paimon/catalog/AbstractCatalog.java
index 19c361bfc..8a3bc6531 100644
--- a/paimon-core/src/main/java/org/apache/paimon/catalog/AbstractCatalog.java
+++ b/paimon-core/src/main/java/org/apache/paimon/catalog/AbstractCatalog.java
@@ -103,7 +103,7 @@ public abstract class AbstractCatalog implements Catalog {
return dataTableLocation(warehouse(), identifier);
}
- private boolean isSystemTable(Identifier identifier) {
+ private static boolean isSystemTable(Identifier identifier) {
return identifier.getObjectName().contains(SYSTEM_TABLE_SPLITTER);
}
@@ -131,7 +131,7 @@ public abstract class AbstractCatalog implements Catalog {
}
public static Path dataTableLocation(String warehouse, Identifier
identifier) {
- if (identifier.getObjectName().contains(SYSTEM_TABLE_SPLITTER)) {
+ if (isSystemTable(identifier)) {
throw new IllegalArgumentException(
String.format(
"Table name[%s] cannot contain '%s' separator",
diff --git
a/paimon-core/src/main/java/org/apache/paimon/table/system/ManifestsTable.java
b/paimon-core/src/main/java/org/apache/paimon/table/system/ManifestsTable.java
index f1cc8bce9..bad1a374a 100644
---
a/paimon-core/src/main/java/org/apache/paimon/table/system/ManifestsTable.java
+++
b/paimon-core/src/main/java/org/apache/paimon/table/system/ManifestsTable.java
@@ -142,7 +142,7 @@ public class ManifestsTable implements ReadonlyTable {
@Override
public long rowCount() {
- return new StatsManifestsGetter(fileIO, location,
dataTable).manifestFileMetas().size();
+ return allManifests(fileIO, location, dataTable).size();
}
@Override
@@ -167,9 +167,9 @@ public class ManifestsTable implements ReadonlyTable {
private int[][] projection;
- private FileIO fileIO;
+ private final FileIO fileIO;
- private Table dataTable;
+ private final Table dataTable;
public ManifestsRead(FileIO fileIO, Table dataTable) {
this.fileIO = fileIO;
@@ -194,9 +194,7 @@ public class ManifestsTable implements ReadonlyTable {
throw new IllegalArgumentException("Unsupported split: " +
split.getClass());
}
Path location = ((ManifestsSplit) split).location;
- Snapshot snapshot = new SnapshotManager(fileIO,
location).latestSnapshot();
- List<ManifestFileMeta> manifestFileMetas =
- new StatsManifestsGetter(fileIO, location,
dataTable).manifestFileMetas();
+ List<ManifestFileMeta> manifestFileMetas = allManifests(fileIO,
location, dataTable);
Iterator<InternalRow> rows =
Iterators.transform(manifestFileMetas.iterator(),
this::toRow);
@@ -218,35 +216,17 @@ public class ManifestsTable implements ReadonlyTable {
}
}
- private static class StatsManifestsGetter {
- private final FileIO fileIO;
- private final Table dataTable;
- private final Path location;
-
- private List<ManifestFileMeta> manifestFileMetas;
-
- private StatsManifestsGetter(FileIO fileIO, Path location, Table
dataTable) {
- this.fileIO = fileIO;
- this.location = location;
- this.dataTable = dataTable;
- }
-
- private void initialize() {
- Snapshot snapshot = new SnapshotManager(fileIO,
location).latestSnapshot();
- FileStorePathFactory fileStorePathFactory = new
FileStorePathFactory(location);
- CoreOptions coreOptions = CoreOptions.fromMap(dataTable.options());
- FileFormat fileFormat = coreOptions.manifestFormat();
- ManifestList manifestList =
- new ManifestList.Factory(fileIO, fileFormat,
fileStorePathFactory, null)
- .create();
- manifestFileMetas = snapshot.allManifests(manifestList);
- }
-
- private List<ManifestFileMeta> manifestFileMetas() {
- if (manifestFileMetas == null) {
- initialize();
- }
- return manifestFileMetas;
+ private static List<ManifestFileMeta> allManifests(
+ FileIO fileIO, Path location, Table dataTable) {
+ Snapshot snapshot = new SnapshotManager(fileIO,
location).latestSnapshot();
+ if (snapshot == null) {
+ return Collections.emptyList();
}
+ FileStorePathFactory fileStorePathFactory = new
FileStorePathFactory(location);
+ CoreOptions coreOptions = CoreOptions.fromMap(dataTable.options());
+ FileFormat fileFormat = coreOptions.manifestFormat();
+ ManifestList manifestList =
+ new ManifestList.Factory(fileIO, fileFormat,
fileStorePathFactory, null).create();
+ return snapshot.allManifests(manifestList);
}
}