You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@iceberg.apache.org by bl...@apache.org on 2022/11/16 16:25:48 UTC
[iceberg] branch master updated: REST: Assign metadata UUID on create transaction (#6201)
This is an automated email from the ASF dual-hosted git repository.
blue pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/iceberg.git
The following commit(s) were added to refs/heads/master by this push:
new 6697129a31 REST: Assign metadata UUID on create transaction (#6201)
6697129a31 is described below
commit 6697129a314d98cb793601495f7ebb2ae000b40a
Author: Bryan Keller <br...@gmail.com>
AuthorDate: Wed Nov 16 08:25:43 2022 -0800
REST: Assign metadata UUID on create transaction (#6201)
---
core/src/main/java/org/apache/iceberg/MetadataUpdate.java | 2 +-
core/src/main/java/org/apache/iceberg/TableMetadata.java | 11 +++++++++++
.../main/java/org/apache/iceberg/rest/RESTSessionCatalog.java | 1 +
3 files changed, 13 insertions(+), 1 deletion(-)
diff --git a/core/src/main/java/org/apache/iceberg/MetadataUpdate.java b/core/src/main/java/org/apache/iceberg/MetadataUpdate.java
index 9159e0f58c..4671e54bad 100644
--- a/core/src/main/java/org/apache/iceberg/MetadataUpdate.java
+++ b/core/src/main/java/org/apache/iceberg/MetadataUpdate.java
@@ -41,7 +41,7 @@ public interface MetadataUpdate extends Serializable {
@Override
public void applyTo(TableMetadata.Builder metadataBuilder) {
- throw new UnsupportedOperationException("Not implemented");
+ metadataBuilder.assignUUID(uuid);
}
}
diff --git a/core/src/main/java/org/apache/iceberg/TableMetadata.java b/core/src/main/java/org/apache/iceberg/TableMetadata.java
index 2f2671463e..afa2c7ac2d 100644
--- a/core/src/main/java/org/apache/iceberg/TableMetadata.java
+++ b/core/src/main/java/org/apache/iceberg/TableMetadata.java
@@ -915,6 +915,17 @@ public class TableMetadata implements Serializable {
return this;
}
+ public Builder assignUUID(String newUuid) {
+ Preconditions.checkArgument(newUuid != null, "Cannot set uuid to null");
+
+ if (!newUuid.equals(uuid)) {
+ this.uuid = newUuid;
+ changes.add(new MetadataUpdate.AssignUUID(uuid));
+ }
+
+ return this;
+ }
+
public Builder upgradeFormatVersion(int newFormatVersion) {
Preconditions.checkArgument(
newFormatVersion <= SUPPORTED_TABLE_FORMAT_VERSION,
diff --git a/core/src/main/java/org/apache/iceberg/rest/RESTSessionCatalog.java b/core/src/main/java/org/apache/iceberg/rest/RESTSessionCatalog.java
index 8c5ce1d3ee..0b4edc9a84 100644
--- a/core/src/main/java/org/apache/iceberg/rest/RESTSessionCatalog.java
+++ b/core/src/main/java/org/apache/iceberg/rest/RESTSessionCatalog.java
@@ -691,6 +691,7 @@ public class RESTSessionCatalog extends BaseSessionCatalog
private static List<MetadataUpdate> createChanges(TableMetadata meta) {
ImmutableList.Builder<MetadataUpdate> changes = ImmutableList.builder();
+ changes.add(new MetadataUpdate.AssignUUID(meta.uuid()));
changes.add(new MetadataUpdate.UpgradeFormatVersion(meta.formatVersion()));
Schema schema = meta.schema();