This is an automated email from the ASF dual-hosted git repository.
etudenhoefner pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/iceberg.git
The following commit(s) were added to refs/heads/main by this push:
new 4433aa8c62 API, Core: Add uuid() to View (#8851)
4433aa8c62 is described below
commit 4433aa8c62002e2f3c589c7d3d8ef61dee8284b1
Author: Eduard Tudenhoefner <[email protected]>
AuthorDate: Tue Oct 31 07:57:49 2023 +0100
API, Core: Add uuid() to View (#8851)
---
api/src/main/java/org/apache/iceberg/view/View.java | 10 ++++++++++
core/src/main/java/org/apache/iceberg/view/BaseView.java | 6 ++++++
.../test/java/org/apache/iceberg/view/ViewCatalogTests.java | 3 +++
3 files changed, 19 insertions(+)
diff --git a/api/src/main/java/org/apache/iceberg/view/View.java
b/api/src/main/java/org/apache/iceberg/view/View.java
index 9c33c545ec..6a26f4e4a3 100644
--- a/api/src/main/java/org/apache/iceberg/view/View.java
+++ b/api/src/main/java/org/apache/iceberg/view/View.java
@@ -20,6 +20,7 @@ package org.apache.iceberg.view;
import java.util.List;
import java.util.Map;
+import java.util.UUID;
import org.apache.iceberg.Schema;
import org.apache.iceberg.UpdateLocation;
@@ -111,4 +112,13 @@ public interface View {
default UpdateLocation updateLocation() {
throw new UnsupportedOperationException("Updating a view's location is not
supported");
}
+
+ /**
+ * Returns the view's UUID
+ *
+ * @return the view's UUID
+ */
+ default UUID uuid() {
+ throw new UnsupportedOperationException("Retrieving a view's uuid is not
supported");
+ }
}
diff --git a/core/src/main/java/org/apache/iceberg/view/BaseView.java
b/core/src/main/java/org/apache/iceberg/view/BaseView.java
index a1b2863eef..89f15d02b5 100644
--- a/core/src/main/java/org/apache/iceberg/view/BaseView.java
+++ b/core/src/main/java/org/apache/iceberg/view/BaseView.java
@@ -21,6 +21,7 @@ package org.apache.iceberg.view;
import java.io.Serializable;
import java.util.List;
import java.util.Map;
+import java.util.UUID;
import org.apache.iceberg.Schema;
import org.apache.iceberg.UpdateLocation;
@@ -97,4 +98,9 @@ public class BaseView implements View, Serializable {
public UpdateLocation updateLocation() {
return new SetViewLocation(ops);
}
+
+ @Override
+ public UUID uuid() {
+ return UUID.fromString(ops.current().uuid());
+ }
}
diff --git a/core/src/test/java/org/apache/iceberg/view/ViewCatalogTests.java
b/core/src/test/java/org/apache/iceberg/view/ViewCatalogTests.java
index f35511de8e..682d7ade67 100644
--- a/core/src/test/java/org/apache/iceberg/view/ViewCatalogTests.java
+++ b/core/src/test/java/org/apache/iceberg/view/ViewCatalogTests.java
@@ -24,6 +24,7 @@ import static
org.assertj.core.api.Assertions.assertThatThrownBy;
import java.nio.file.Path;
import java.nio.file.Paths;
+import java.util.UUID;
import org.apache.iceberg.Schema;
import org.apache.iceberg.Transaction;
import org.apache.iceberg.UpdateLocation;
@@ -158,6 +159,8 @@ public abstract class ViewCatalogTests<C extends
ViewCatalog & SupportsNamespace
}
// validate view settings
+ assertThat(view.uuid())
+ .isEqualTo(UUID.fromString(((BaseView)
view).operations().current().uuid()));
assertThat(view.name()).isEqualTo(ViewUtil.fullViewName(catalog().name(),
identifier));
assertThat(view.properties()).containsEntry("prop1",
"val1").containsEntry("prop2", "val2");
assertThat(view.history())