This is an automated email from the ASF dual-hosted git repository.

yufei pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/polaris.git


The following commit(s) were added to refs/heads/main by this push:
     new f9a1a5c5f Spark: Use builder for CreateGenericTableRequest instead of 
constructor for easier API spec update (#1546)
f9a1a5c5f is described below

commit f9a1a5c5fab3a1822fbd3a00d336bc020560197a
Author: gh-yzou <167037035+gh-y...@users.noreply.github.com>
AuthorDate: Fri May 9 17:32:29 2025 -0700

    Spark: Use builder for CreateGenericTableRequest instead of constructor for 
easier API spec update (#1546)
---
 .../polaris/service/it/env/GenericTableApi.java    |  7 ++++++-
 .../apache/polaris/spark/PolarisRESTCatalog.java   |  9 ++++++++-
 .../spark/rest/CreateGenericTableRESTRequest.java  |  4 ++++
 .../polaris/spark/rest/DeserializationTest.java    |  9 ++++++++-
 .../generic/GenericTableCatalogHandler.java        | 22 ++++++++++++----------
 5 files changed, 38 insertions(+), 13 deletions(-)

diff --git 
a/integration-tests/src/main/java/org/apache/polaris/service/it/env/GenericTableApi.java
 
b/integration-tests/src/main/java/org/apache/polaris/service/it/env/GenericTableApi.java
index 52935a8dc..a31fd0cd2 100644
--- 
a/integration-tests/src/main/java/org/apache/polaris/service/it/env/GenericTableApi.java
+++ 
b/integration-tests/src/main/java/org/apache/polaris/service/it/env/GenericTableApi.java
@@ -89,7 +89,12 @@ public class GenericTableApi extends RestApi {
                 "polaris/v1/{cat}/namespaces/{ns}/generic-tables/",
                 Map.of("cat", catalog, "ns", ns))
             .post(
-                Entity.json(new CreateGenericTableRequest(id.name(), format, 
"doc", properties)))) {
+                Entity.json(
+                    CreateGenericTableRequest.builder()
+                        .setName(id.name())
+                        .setFormat(format)
+                        .setDoc("doc")
+                        .setProperties(properties)))) {
       return res.readEntity(LoadGenericTableResponse.class).getTable();
     }
   }
diff --git 
a/plugins/spark/v3.5/spark/src/main/java/org/apache/polaris/spark/PolarisRESTCatalog.java
 
b/plugins/spark/v3.5/spark/src/main/java/org/apache/polaris/spark/PolarisRESTCatalog.java
index 72d258511..05a95d857 100644
--- 
a/plugins/spark/v3.5/spark/src/main/java/org/apache/polaris/spark/PolarisRESTCatalog.java
+++ 
b/plugins/spark/v3.5/spark/src/main/java/org/apache/polaris/spark/PolarisRESTCatalog.java
@@ -47,6 +47,7 @@ import org.apache.iceberg.util.EnvironmentUtil;
 import org.apache.iceberg.util.PropertyUtil;
 import org.apache.polaris.core.rest.PolarisEndpoints;
 import org.apache.polaris.core.rest.PolarisResourcePaths;
+import org.apache.polaris.service.types.CreateGenericTableRequest;
 import org.apache.polaris.service.types.GenericTable;
 import org.apache.polaris.spark.rest.CreateGenericTableRESTRequest;
 import org.apache.polaris.spark.rest.LoadGenericTableRESTResponse;
@@ -202,7 +203,13 @@ public class PolarisRESTCatalog implements PolarisCatalog, 
Closeable {
       TableIdentifier identifier, String format, String doc, Map<String, 
String> props) {
     Endpoint.check(endpoints, PolarisEndpoints.V1_CREATE_GENERIC_TABLE);
     CreateGenericTableRESTRequest request =
-        new CreateGenericTableRESTRequest(identifier.name(), format, doc, 
props);
+        new CreateGenericTableRESTRequest(
+            CreateGenericTableRequest.builder()
+                .setName(identifier.name())
+                .setFormat(format)
+                .setDoc(doc)
+                .setProperties(props)
+                .build());
 
     LoadGenericTableRESTResponse response =
         restClient
diff --git 
a/plugins/spark/v3.5/spark/src/main/java/org/apache/polaris/spark/rest/CreateGenericTableRESTRequest.java
 
b/plugins/spark/v3.5/spark/src/main/java/org/apache/polaris/spark/rest/CreateGenericTableRESTRequest.java
index 4ec348a80..6a9c89a5f 100644
--- 
a/plugins/spark/v3.5/spark/src/main/java/org/apache/polaris/spark/rest/CreateGenericTableRESTRequest.java
+++ 
b/plugins/spark/v3.5/spark/src/main/java/org/apache/polaris/spark/rest/CreateGenericTableRESTRequest.java
@@ -41,6 +41,10 @@ public class CreateGenericTableRESTRequest extends 
CreateGenericTableRequest
     super(name, format, doc, properties);
   }
 
+  public CreateGenericTableRESTRequest(CreateGenericTableRequest request) {
+    this(request.getName(), request.getFormat(), request.getDoc(), 
request.getProperties());
+  }
+
   @Override
   public void validate() {}
 }
diff --git 
a/plugins/spark/v3.5/spark/src/test/java/org/apache/polaris/spark/rest/DeserializationTest.java
 
b/plugins/spark/v3.5/spark/src/test/java/org/apache/polaris/spark/rest/DeserializationTest.java
index e6747e653..3ec9ddbdf 100644
--- 
a/plugins/spark/v3.5/spark/src/test/java/org/apache/polaris/spark/rest/DeserializationTest.java
+++ 
b/plugins/spark/v3.5/spark/src/test/java/org/apache/polaris/spark/rest/DeserializationTest.java
@@ -36,6 +36,7 @@ import java.util.stream.Stream;
 import org.apache.iceberg.catalog.Namespace;
 import org.apache.iceberg.catalog.TableIdentifier;
 import org.apache.iceberg.rest.RESTSerializers;
+import org.apache.polaris.service.types.CreateGenericTableRequest;
 import org.apache.polaris.service.types.GenericTable;
 import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
@@ -90,7 +91,13 @@ public class DeserializationTest {
   public void testCreateGenericTableRESTRequest(String doc, Map<String, 
String> properties)
       throws JsonProcessingException {
     CreateGenericTableRESTRequest request =
-        new CreateGenericTableRESTRequest("test-table", "delta", doc, 
properties);
+        new CreateGenericTableRESTRequest(
+            CreateGenericTableRequest.builder()
+                .setName("test-table")
+                .setFormat("delta")
+                .setDoc(doc)
+                .setProperties(properties)
+                .build());
     String json = mapper.writeValueAsString(request);
     CreateGenericTableRESTRequest deserializedRequest =
         mapper.readValue(json, CreateGenericTableRESTRequest.class);
diff --git 
a/service/common/src/main/java/org/apache/polaris/service/catalog/generic/GenericTableCatalogHandler.java
 
b/service/common/src/main/java/org/apache/polaris/service/catalog/generic/GenericTableCatalogHandler.java
index 7f6d48cc6..126023c2b 100644
--- 
a/service/common/src/main/java/org/apache/polaris/service/catalog/generic/GenericTableCatalogHandler.java
+++ 
b/service/common/src/main/java/org/apache/polaris/service/catalog/generic/GenericTableCatalogHandler.java
@@ -75,11 +75,12 @@ public class GenericTableCatalogHandler extends 
CatalogHandler {
     GenericTableEntity createdEntity =
         this.genericTableCatalog.createGenericTable(identifier, format, doc, 
properties);
     GenericTable createdTable =
-        new GenericTable(
-            createdEntity.getName(),
-            createdEntity.getFormat(),
-            createdEntity.getDoc(),
-            createdEntity.getPropertiesAsMap());
+        GenericTable.builder()
+            .setName(createdEntity.getName())
+            .setFormat(createdEntity.getFormat())
+            .setDoc(createdEntity.getDoc())
+            .setProperties(createdEntity.getPropertiesAsMap())
+            .build();
 
     return LoadGenericTableResponse.builder().setTable(createdTable).build();
   }
@@ -97,11 +98,12 @@ public class GenericTableCatalogHandler extends 
CatalogHandler {
 
     GenericTableEntity loadedEntity = 
this.genericTableCatalog.loadGenericTable(identifier);
     GenericTable loadedTable =
-        new GenericTable(
-            loadedEntity.getName(),
-            loadedEntity.getFormat(),
-            loadedEntity.getDoc(),
-            loadedEntity.getPropertiesAsMap());
+        GenericTable.builder()
+            .setName(loadedEntity.getName())
+            .setFormat(loadedEntity.getFormat())
+            .setDoc(loadedEntity.getDoc())
+            .setProperties(loadedEntity.getPropertiesAsMap())
+            .build();
 
     return LoadGenericTableResponse.builder().setTable(loadedTable).build();
   }

Reply via email to