From bbdbb2fad5508b1f58d4d422f0a065986fbc9d2b Mon Sep 17 00:00:00 2001 From: xuyu <11161569@vivo.com> Date: Thu, 26 Sep 2024 10:16:05 +0800 Subject: [PATCH] address comments --- .../apache/paimon/table/AbstractFileStoreTable.java | 12 ++++++------ .../apache/paimon/table/DelegatedFileStoreTable.java | 2 +- .../java/org/apache/paimon/table/FormatTable.java | 2 +- .../java/org/apache/paimon/table/ReadonlyTable.java | 2 +- .../src/main/java/org/apache/paimon/table/Table.java | 2 +- 5 files changed, 10 insertions(+), 10 deletions(-) diff --git a/paimon-core/src/main/java/org/apache/paimon/table/AbstractFileStoreTable.java b/paimon-core/src/main/java/org/apache/paimon/table/AbstractFileStoreTable.java index dc269d897b59..c19ad4aa9590 100644 --- a/paimon-core/src/main/java/org/apache/paimon/table/AbstractFileStoreTable.java +++ b/paimon-core/src/main/java/org/apache/paimon/table/AbstractFileStoreTable.java @@ -166,6 +166,7 @@ public Identifier identifier() { @Override public Optional statistics() { + // todo: support time travel Snapshot latestSnapshot = snapshotManager().latestSnapshot(); if (latestSnapshot != null) { return store().newStatsFileHandler().readStats(latestSnapshot); @@ -174,17 +175,16 @@ public Optional statistics() { } @Override - public Optional statistics(Long snapshotId) { - if (!snapshotManager().snapshotExists(snapshotId)) { - throw new SnapshotNotExistException( - String.format("snapshot id: %s is not existed", snapshotId)); - } - + public Optional statistics(long snapshotId) { Long latestSnapshotId = snapshotManager().latestSnapshotId(); if (latestSnapshotId == null) { return Optional.empty(); } + if (!snapshotManager().snapshotExists(snapshotId)) { + return store().newStatsFileHandler().readStats(snapshotManager().latestSnapshot()); + } + while (latestSnapshotId > 0) { Snapshot latestSnapshot = snapshotManager().snapshot(latestSnapshotId); // reduce unnessary loop diff --git a/paimon-core/src/main/java/org/apache/paimon/table/DelegatedFileStoreTable.java b/paimon-core/src/main/java/org/apache/paimon/table/DelegatedFileStoreTable.java index ef5225bdf221..a48b471d37b0 100644 --- a/paimon-core/src/main/java/org/apache/paimon/table/DelegatedFileStoreTable.java +++ b/paimon-core/src/main/java/org/apache/paimon/table/DelegatedFileStoreTable.java @@ -129,7 +129,7 @@ public Optional statistics() { } @Override - public Optional statistics(Long snapshotId) { + public Optional statistics(long snapshotId) { return wrapped.statistics(snapshotId); } diff --git a/paimon-core/src/main/java/org/apache/paimon/table/FormatTable.java b/paimon-core/src/main/java/org/apache/paimon/table/FormatTable.java index 64c3ee8cda93..51b406b39b6b 100644 --- a/paimon-core/src/main/java/org/apache/paimon/table/FormatTable.java +++ b/paimon-core/src/main/java/org/apache/paimon/table/FormatTable.java @@ -217,7 +217,7 @@ default Optional statistics() { } @Override - default Optional statistics(Long snapshotId) { + default Optional statistics(long snapshotId) { return Optional.empty(); } diff --git a/paimon-core/src/main/java/org/apache/paimon/table/ReadonlyTable.java b/paimon-core/src/main/java/org/apache/paimon/table/ReadonlyTable.java index 85c57c552053..14568a71b2b3 100644 --- a/paimon-core/src/main/java/org/apache/paimon/table/ReadonlyTable.java +++ b/paimon-core/src/main/java/org/apache/paimon/table/ReadonlyTable.java @@ -62,7 +62,7 @@ default Optional statistics() { } @Override - default Optional statistics(Long snapshotId) { + default Optional statistics(long snapshotId) { return Optional.empty(); } diff --git a/paimon-core/src/main/java/org/apache/paimon/table/Table.java b/paimon-core/src/main/java/org/apache/paimon/table/Table.java index 6ecf1a27acfe..4f9aa13f685a 100644 --- a/paimon-core/src/main/java/org/apache/paimon/table/Table.java +++ b/paimon-core/src/main/java/org/apache/paimon/table/Table.java @@ -75,7 +75,7 @@ default String fullName() { Optional statistics(); @Experimental - Optional statistics(Long snapshotId); + Optional statistics(long snapshotId); // ================= Table Operations ====================