Support column default values (initial-default / write-default)
- Langage dominant
- C++
- Étoiles
- 221
- Forks
- 124
- Merge moyen
- 1 j 16 h
- PR mergées (30 j)
- 21
Description
Sub-issue of #637 (item 2: Column Default Values).
Iceberg v3 allows schema evolution with column default values (spec — Default values (https://iceberg.apache.org/spec/#default-values)):
- initial-default: returned for rows that predate the column's addition, i.e. applied on the read path when a data file does not contain the field.
- write-default: applied on the write path when a writer does not supply a value or the column.
Planned scope:
- [x] Schema model: carry initial-default / write-default on SchemaField
- [x] JSON serde: parse/write the two fields using single-value serialization
- [x] Read path: project missing columns as the initial-default constant instead of null when reading data files written before the column existed
- [x] Write path: apply write-default where values are omitted; validation (e.g. adding a required column requires an initial-default, v3+ gating)
I plan to work on this and will send PR(s) referencing this issue.
Guide de contribution
Aucun guide de contribution indexé pour ce dépôt
Piste de recherche
Commencez par la spécification des default-values d’Iceberg v3 et suivez SchemaField, JSON serde ainsi que les chemins de lecture et d’écriture mentionnés dans le périmètre. Le travail est terminé lorsque le comportement initial-default et write-default est implémenté, y compris la lecture de colonnes manquantes, l’écriture de valeurs omises, ainsi que la validation indiquée de required-column et de la version.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Évaluation
- Stack technique
- cpp
- Domaine
- data-engineering
- Type d'issue
- Fonctionnalité
- Difficulté
- 4/5
- Temps estimé
- 3-5 jours
- Activité
- Calme
- Clarté
- Plutôt claire
- Accessibilité débutants
- 42/100