Catalog Labels: client-library read support for C++
Les mainteneurs répondent en général sous 1 jour
@NihalJain y travaille déjà.
Depuis le 23/9/2026.
Évaluation
- Difficulté
- 4/5
- Temps estimé
- 3-5 jours
- Accessibilité débutants
- 55/100
Piste de recherche
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.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Description
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 byfield-id.- A
field-idmay 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-fixtureimage
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
LoadViewResultlands in those clients.
- Langage dominant
- C++
- Étoiles
- 223
- Forks
- 127
- Merge moyen
- 1 j 13 h
- PR mergées (30 j)
- 28
Préparer son environnement
Nous n'avons pas encore vérifié les fichiers d'installation de ce projet. Commencez par son README, et consultez notre guide de la première contribution pour les étapes générales.
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Autres issues de apache/iceberg-cpp
-
Difficulté 2/5 1-3 heures Accessibilité débutants 88/100
apache/iceberg-cpp#973 ·
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 5/5 Plus d'une semaine Accessibilité débutants 20/100
apache/iceberg-cpp#959 · 1 commentaire ·
Les mainteneurs répondent en général sous 1 jour
-
Release Apache Iceberg C++ 0.4.0Ouverte
Difficulté 4/5 3-5 jours Accessibilité débutants 45/100
apache/iceberg-cpp#955 · 3 commentaires · 1 réaction ·
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 5/5 Plus d'une semaine Accessibilité débutants 35/100
apache/iceberg-cpp#946 · 5 commentaires ·
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 4/5 3-5 jours Accessibilité débutants 45/100
apache/iceberg-cpp#944 ·
Les mainteneurs répondent en général sous 1 jour
Toutes les issues de apache/iceberg-cpp
Issues similaires
-
`enzymexla.linalg.lu` lowering fails for a tall matrix: the permutation is built with the pivot typeOuverte
Difficulté 2/5 1-3 heures Accessibilité débutants 78/100
EnzymeAD/Enzyme-JAX#3286 ·
Les mainteneurs répondent en général sous 1 jour
-
bug
Difficulté 2/5 1-3 heures Accessibilité débutants 76/100
Les mainteneurs répondent en général sous 1 jour
-
Add c++23 mapping to nvccOuvertefeature request
Difficulté 1/5 Moins d'une heure Accessibilité débutants 86/100
Les mainteneurs répondent en général sous 2 jours
-
Difficulté 2/5 1-3 heures Accessibilité débutants 84/100
Les mainteneurs répondent en général sous 1 jour
-
CDN Benchmark installation errorOuverte
Difficulté 2/5 1-3 heures Accessibilité débutants 82/100
facebookresearch/DCPerf#890 ·
Les mainteneurs répondent en général sous 2 jours