Hi I agree that registerView makes sense.
Regarding the /register endpoint in the IRC spec, maybe we can use a header param (optional) when we want to register a view (view=true for instance). Regards JB On Tue, Dec 2, 2025 at 5:12 AM Kevin Liu <[email protected]> wrote: > Hi Ajantha, > > Thanks for bringing this up. I think it's a good idea to be able to > register views, and by extension, to replicate from one catalog to another. > > The `registerView` function makes sense to me. The IRC spec, however, > might be a bit more complicated. The "register" endpoint > (`/v1/{prefix}/namespaces/{namespace}/register`) [1] is currently used to > register tables only. We could either extend this endpoint to support views > or create a separate "registerView" endpoint. > > Would love to hear what others think. > > Best, > Kevin Liu > > [1] > https://github.com/apache/iceberg/blob/b35c7ec1b03e3897da68960cd556d635b2f5ae54/open-api/rest-catalog-open-api.yaml#L868 > > On Tue, Nov 25, 2025 at 2:28 AM Ajantha Bhat <[email protected]> > wrote: > >> Hi everyone, >> >> Currently, catalogs provide a *registerTable* function that allows >> registering an existing table with a catalog if it does not already exist. >> This is particularly useful for migrating Iceberg tables between catalogs. >> >> We have users who are in the process of migrating from one catalog to >> another. While migrating tables works well, migrating *views* remains >> challenging. One option is to simply recreate the views, since view >> creation is a lightweight operation. However, this approach has two main >> drawbacks: >> >> - >> >> Recreating a view loses its version history and original metadata. >> - >> >> Some catalogs may not allow recreating a view if a view with the same >> name already exists in the target location. >> >> To address this, I propose adding a *registerView* functionality for >> completeness. This would enable users to register existing views with a >> catalog, similar to how we register existing tables today. >> >> As a follow-up, I can open a PR to implement: >> >> - >> >> registerView(TableIdentifier identifier, String metadataFileLocation) >> in ViewCatalog >> - >> >> Corresponding updates to the Iceberg REST catalog spec >> - >> >> Necessary API additions >> >> Would love to hear your thoughts and feedback on this proposal. >> >> - Ajantha >> >
