Hi,

What speaks against making /register first try the provided metadata as a
table and then as a view before rejecting as invalid?

@JB, why would you prefer a header param over an optional field `type` in
the request?

Kind regards,
Tobias

Am Di., 2. Dez. 2025 um 07:45 Uhr schrieb Jean-Baptiste Onofré <
[email protected]>:

> 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
>>>
>>

Reply via email to