View does not expose metadata_location: RestCatalog.load_view discards it from the server's response
Les mainteneurs répondent en général sous 1 jour
@Soumo-git-hub y travaille déjà.
Depuis le 4/10/2026.
Évaluation
- Difficulté
- 2/5
- Temps estimé
- 1-3 heures
- Accessibilité débutants
- 84/100
Piste de recherche
Commencez dans pyiceberg/catalog/rest/init.py, au niveau de _response_to_view, en le comparant à _response_to_table et au modèle ViewResponse. Vérifiez que load_view et create_view préservent la valeur REST de metadata-location et que la View résultante l’expose pour le cas d’utilisation de register_view décrit dans l’issue.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Description
Apache Iceberg version
0.12.0 (latest release)
Please describe the bug 🐞
RestCatalog.load_view (and create_view) parse the server's metadata-location but drop it when building the View, so callers cannot learn where a view's current metadata file is. Tables keep it as Table.metadata_location; views have no equivalent. The behaviour is unchanged on main.
The spec (open-api/rest-catalog-open-api.yaml) requires the field in every view load result:
LoadViewResult:
required:
- metadata-location
- metadata
with the description: "The corresponding file location of view metadata is returned in the metadata-location field. Clients can check whether metadata has changed by comparing metadata locations after the view has been created."
pyiceberg parses it, then discards it (pyiceberg/catalog/rest/__init__.py on main):
class ViewResponse(IcebergBaseModel):
metadata_location: str | None = Field(alias="metadata-location", default=None)
metadata: ViewMetadata
config: Properties = Field(default_factory=dict)
def _response_to_view(self, identifier_tuple, view_response: ViewResponse) -> View:
return View(
identifier=identifier_tuple,
metadata=view_response.metadata,
config=view_response.config,
) # view_response.metadata_location is never passed on
_response_to_table, by contrast, passes metadata_location=table_response.metadata_location to Table.
Why it matters: without it, a client cannot detect changes to a view the way the spec suggests (comparing metadata locations), record where a view's metadata lives, or re-register a view from that file later with register_view.
Expected: View exposes metadata_location, set from the REST response, like Table.metadata_location.
PR #3390 ("REST: Add metadata_location to View, and register_view integration test") addressed this but was closed unmerged. Related umbrella issue: #818.
Willingness to contribute
- I can contribute a fix for this bug independently
- I would be willing to contribute a fix for this bug with guidance from the Iceberg community
- I cannot contribute a fix for this bug at this time
- Langage dominant
- Python
- Étoiles
- 1.1k
- Forks
- 606
- Merge moyen
- 1 j 11 h
- PR mergées (30 j)
- 76
Préparer son environnement
- Aucun Dockerfile ni fichier Docker Compose
- Propose un modèle de pull request
- Aucun guide de contribution
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Autres issues de apache/iceberg-python
-
Difficulté 2/5 1-3 heures Accessibilité débutants 70/100
apache/iceberg-python#4010 · 3 commentaires · 1 réaction ·
Les mainteneurs répondent en général sous 1 jour
-
to_bytes silently rescales a Decimal with a negative scalePeut-être pris @Rodrigo-Palma l’a pris il y a 17 jours. Ouverte
Difficulté 2/5 1-3 heures Accessibilité débutants 78/100
apache/iceberg-python#3996 ·
Les mainteneurs répondent en général sous 1 jour
-
Deletion vector bitmap count is read from the blob and used as a loop bound without validationPeut-être pris @ghoshp83 l’a pris il y a 18 jours. Ouvertebug
Difficulté 2/5 1-3 heures Accessibilité débutants 72/100
apache/iceberg-python#3979 ·
Les mainteneurs répondent en général sous 1 jour
-
FsspecFileIO: `_adls` mutates shared properties, so a second storage account gets the first account's filesystemPeut-être pris @krishnakaanchan-png l’a pris il y a 35 jours. Ouverte
Difficulté 2/5 1-3 heures Accessibilité débutants 78/100
apache/iceberg-python#3885 ·
Les mainteneurs répondent en général sous 1 jour
-
[Bug] REST catalog drop_table serializes purgeRequested as "True" instead of "true"Peut-être à nouveau libre Une pull request pour cette issue a été fermée sans être fusionnée. Ouverte
Difficulté 2/5 1-3 heures Accessibilité débutants 78/100
apache/iceberg-python#3836 · 1 commentaire ·
Les mainteneurs répondent en général sous 1 jour
Toutes les issues de apache/iceberg-python
Issues similaires
-
bug llm translation
Difficulté 2/5 1-3 heures Accessibilité débutants 78/100
Les mainteneurs répondent en général sous 1 jour
-
Arkansas 2025 tax is $1.70 high above $100,000 net taxable income ($3,809 + 3.9% rule)Peut-être pris @PavelMakarchuk l’a pris aujourd’hui. Ouverte
Difficulté 2/5 1-3 heures Accessibilité débutants 74/100
PolicyEngine/policyengine-us#9828 ·
Les mainteneurs répondent en général sous 2 jours
-
bug
Difficulté 2/5 1-3 heures Accessibilité débutants 68/100
jellyfin/jellyfin-mpv-shim#800 ·
Les mainteneurs répondent en général sous 1 jour
-
skillfs: one malformed chat-log line aborts the entire skill-usage analysis (skill_usage_from_chat_logs.py)Peut-être pris @zjncs l’a pris aujourd’hui. Ouvertecomponent:skillfs
Difficulté 2/5 1-3 heures Accessibilité débutants 82/100
agentic-os-org/ANOLISA#6116 · 1 commentaire ·
Les mainteneurs répondent en général sous 1 jour
-
P4: low query
Difficulté 2/5 1-3 heures Accessibilité débutants 76/100
jeffknupp/association#336 ·