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);
     }
 }

Reply via email to