Hacktoberfest 2026: los issues que los mantenedores marcaron para octubre, abiertos y aptos para principiantes. Explorar issues de Hacktoberfest

Catalog Labels: client-library read support for C++

Abierto
#938 1 comentario 0 reacciones 1 asignado Ver en GitHub

Los mantenedores suelen responder en 1 día

@NihalJain ya está trabajando en esto.

Desde el 23/9/2026.

Evaluación

Dificultad
4/5
Tiempo estimado
3-5 días
Aptitud para principiantes
55/100
Tipo de issue
Nueva funcionalidad
Claridad
Bastante claro
Estado de actividad
Activo
Stack tecnológico
cpp
Área
api, backend

Línea de trabajo

Start with iceberg-cpp's existing storage-credentials or vended-credentials REST handling and the LoadTableResult path. Implement the C1 serde, Table::catalog_labels() accessor, and REST serde unit test, then add the labels kind to inspect::MetadataTable for C2. Integration tests against the iceberg-rest-fixture are gated until the fixture is published.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

One of the tasks from https://github.com/apache/iceberg/issues/18126

Below are relevant sections quoted as is, as written by @laskoviymishka from https://github.com/apache/iceberg/issues/18126


Summary

Catalog Labels were added to the Iceberg REST spec in #15750 (merged) and implemented on the Java client/engine side as a stacked set of PRs (#18045–#18049). This is a tracking issue to bring the other REST client libraries to iceberg-cpp** — to read-path parity.

Labels are catalog-provided enrichment, not table state: they are returned on the load response, are transient/runtime-only, and are never persisted into table metadata or serialized. A client that ignores labels remains spec-compliant.

Wire shape

LoadTableResult / LoadViewResult gain an optional labels object:

"labels": {
  "object-labels": { "<key>": "<value>" },
  "fields": [ { "field-id": 3, "labels": { "classification": "pii" } } ]
}
  • object-labels: flat catalog-object-level map. fields: per-field labels keyed by field-id.
  • A field-id may carry multiple keys and may not resolve to a current column (e.g. a dropped column) — clients should tolerate both.
Java reference implementation
  • Spec: #15750
  • serde: #18045 · table accessor (SupportsLabels): #18046 · REST server test fixture: #18047 · labels metadata table: #18048 · Spark DESCRIBE: #18049

Shared prerequisite

Client integration tests need a server that emits labels — that is the REST server test fixture (#18047); once merged it must ship in the iceberg-rest-fixture Docker image. This gates the integration-test PRs only; unit-test PRs (mocked responses) can proceed immediately.

  • #18047 merged and published to the iceberg-rest-fixture image

Per-repo proposed PRs

Each repo mirrors the Java layering (serde → table accessor → labels metadata table → integration tests), modeled on that client's existing storage-credentials / vended-credentials field. Read-path parity (metadata table) is included in all four. Rust and C++ are table-only (no LoadViewResult yet). Each per-repo group is a stack (each PR based on the previous); repos are independent.

iceberg-cpp — table-only (no views yet)
  • C1 serde (FieldLabels/CatalogLabels + LoadTableResult.labels) + Table::catalog_labels() accessor + first REST serde unit test
  • C2 labels kind on inspect::MetadataTable
  • C3 integration tests against the fixture (gated)

Notes

  • C++ is table-only until LoadViewResult lands in those clients.
Lenguaje dominante
C++
Estrellas
223
Forks
127
Merge medio
1 d 13 h
PR fusionados (30 d)
28

Preparar el entorno

Aún no hemos revisado los archivos de configuración de este proyecto. Empieza por su README y consulta nuestra guía para la primera contribución para los pasos generales.

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de apache/iceberg-cpp

Todos los issues de apache/iceberg-cpp

Issues similares

Más issues de C++

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.