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 <[email protected]>
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();
}