Hacktoberfest 2026: as issues que os mantenedores marcaram para outubro, abertas e boas para iniciantes. Ver issues do Hacktoberfest

Support column default values (initial-default / write-default)

Aberta
#730 0 comentários 0 reações 0 responsáveis Ver no GitHub

Mantenedores costumam responder em até 2 dias

Ninguém assumiu esta issue ainda.

  • #731 de @huan233usc — fechado sem integrar

Avaliação

Dificuldade
4/5
Tempo estimado
3-5 dias
Facilidade para iniciantes
42/100
Tipo de issue
Funcionalidade
Clareza
Razoavelmente clara
Status de atividade
Pouca atividade
Stack de tecnologia
cpp
Domínio
data-engineering

Direção de pesquisa

Comece pela especificação de default-values do Iceberg v3 e rastreie SchemaField, JSON serde e os caminhos de leitura e escrita indicados no escopo. O trabalho estará concluído quando o comportamento de initial-default e write-default estiver implementado, incluindo leituras de colunas ausentes, escritas de valores omitidos e a validação indicada de required-column e da versão.

Escrita pelo modelo de indexação a partir do texto da issue.

Descrição

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:

  • Schema model: carry initial-default / write-default on SchemaField
  • JSON serde: parse/write the two fields using single-value serialization
  • Read path: project missing columns as the initial-default constant instead of null when reading data files written before the column existed
  • 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.
Linguagem predominante
C++
Estrelas
226
Forks
133
Merge médio
3d 13h
PRs com merge (30d)
27

Preparar o ambiente

Este projeto não oferece contêiner de desenvolvimento, Dockerfile nem guia de contribuição, então a configuração fica por sua conta: comece pelo README e veja nosso guia da primeira contribuição para os passos gerais.

Primeiros passos

  1. Leia a issue inteira e depois o guia de contribuição do projeto.
  2. Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
  3. Faça um fork do repositório e trabalhe em uma branch.
  4. Abra um pull request que referencie o número da issue.

Mais de apache/iceberg-cpp

Todas as issues de apache/iceberg-cpp

Issues semelhantes

Mais issues de C++

Receba novas issues na sua caixa de entrada

Um resumo curto de issues do GitHub para quem está começando.