rdblue commented on code in PR #16584:
URL: https://github.com/apache/iceberg/pull/16584#discussion_r3574529694


##########
core/src/main/java/org/apache/iceberg/rest/RESTSessionCatalog.java:
##########
@@ -731,6 +732,38 @@ public Table registerTable(
         ops, fullTableName(ident), metricsReporter(paths.metrics(ident), 
tableClient));
   }
 
+  /**
+   * Unregister a table from the catalog without removing its data or metadata 
files.
+   *
+   * <p>This is the opposite of {@link #registerTable(SessionContext, 
TableIdentifier, String)}. On
+   * success, the table no longer exists in the catalog and the returned 
metadata location can be
+   * used to register the table in another catalog.
+   *
+   * @param context session context
+   * @param identifier a table identifier
+   * @return the last metadata location for the unregistered table
+   */
+  public String unregisterTable(SessionContext context, TableIdentifier 
identifier) {
+    Endpoint.check(endpoints, Endpoint.V1_UNREGISTER_TABLE);
+    checkIdentifierIsValid(identifier);
+
+    try {
+      AuthSession contextualSession = authManager.contextualSession(context, 
catalogAuth);
+      UnregisterTableResponse response =
+          client
+              .withAuthSession(contextualSession)
+              .post(
+                  paths.unregister(identifier),
+                  null,
+                  UnregisterTableResponse.class,
+                  mutationHeaders,
+                  ErrorHandlers.tableErrorHandler());
+      return response.metadataLocation();

Review Comment:
   `TableMetadata` isn't part of the public API. It's nice to have an 
implementation, but I think we should update `Catalog` and decide on the API 
first.
   
   The public API uses `Table` and not `TableOperations`. I think we should 
continue to use that here. We already have a `StaticTableOperations` 
implementation that wraps a fixed location and does not allow modification so 
it makes sense to return that. Then all we need is to ensure that the metadata 
location is exposed. We could expose a specific `Table` subclass, like 
`StaticTable`, or add a getter on the `Table` interface.



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to