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(); }