Support column default values (initial-default / write-default)
- Lenguaje dominante
- C++
- Estrellas
- 221
- Forks
- 124
- Merge medio
- 1 d 16 h
- PR fusionados (30 d)
- 21
Descripción
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.
Guía de contribución
No hay ninguna guía de contribución indexada para este repositorio
Línea de trabajo
Comienza con la especificación de default-values de Iceberg v3 y sigue SchemaField, JSON serde y las rutas de lectura y escritura indicadas en el alcance. Se considera terminado cuando esté implementado el comportamiento de initial-default y write-default, incluidas las lecturas de columnas ausentes, las escrituras de valores omitidos y la validación indicada de required-column y de la versión.
Escrito por el modelo de indexación a partir del texto del issue.
Evaluación
- Stack tecnológico
- cpp
- Área
- data-engineering
- Tipo de issue
- Nueva funcionalidad
- Dificultad
- 4/5
- Tiempo estimado
- 3-5 días
- Estado de actividad
- Tranquilo
- Claridad
- Bastante claro
- Aptitud para principiantes
- 42/100