Hacktoberfest 2026: le issue che i maintainer hanno segnato per ottobre, aperte e adatte ai principianti. Sfoglia le issue Hacktoberfest

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

Aperta
#938 1 commento 0 reazioni 1 assegnatario Vedi su GitHub

I maintainer di solito rispondono entro 1 giorno

@NihalJain ci sta già lavorando.

Dal 23/9/2026.

Valutazione

Difficoltà
4/5
Tempo stimato
3-5 giorni
Idoneità per principianti
55/100
Tipo di issue
Funzionalità
Chiarezza
Abbastanza chiara
Stato di attività
Attiva
Stack tecnologico
cpp
Ambito
api, backend

Direzione di ricerca

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.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

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.
Lingua principale
C++
Stelle
223
Fork
127
Merge medio
1g 13h
PR unite (30g)
28

Preparare l'ambiente

Non abbiamo ancora controllato i file di configurazione di questo progetto. Parti dal suo README e consulta la nostra guida al primo contributo per i passaggi generali.

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di apache/iceberg-cpp

Tutte le issue di apache/iceberg-cpp

Issue simili

Altre issue su C++

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.