zhengzengprc commented on a change in pull request #3039:
URL: https://github.com/apache/iceberg/pull/3039#discussion_r700640111
##########
File path: core/src/main/java/org/apache/iceberg/util/SnapshotUtil.java
##########
@@ -65,12 +65,16 @@ public static boolean ancestorOf(Table table, long
snapshotId, long ancestorSnap
}
/**
- * Traverses the history of the table's current snapshot and finds the
oldest Snapshot.
- * @return null if there is no current snapshot in the table, else the
oldest Snapshot.
+ * Traverses the history of the table's current snapshot and finds the
oldest Snapshot after the timestamp.
+ * @return null if there is no current snapshot in the table, else the
oldest Snapshot after the timestamp.
*/
- public static Snapshot oldestSnapshot(Table table) {
+ public static Snapshot oldestSnapshot(Table table, long timestamp) {
Snapshot current = table.currentSnapshot();
- while (current != null && current.parentId() != null) {
+ if (current == null || current.timestampMillis() < timestamp) {
+ return null;
+ }
+
+ while (current.parentId() != null &&
table.snapshot(current.parentId()).timestampMillis() > timestamp) {
Review comment:
> What would happen if there was a snapshot exactly at this timestamp?
Do we want to allow users to specify an exact starting timestamp (assuming they
know the exact timestamp of the snapshot they're looking for)?
I think it is a valid case users specify an exact starting timestamp. And
the discussion please refer to above comment
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]