Hacktoberfest 2026 : les issues que les mainteneurs ont marquées pour octobre, ouvertes et accessibles aux débutants. Parcourir les issues Hacktoberfest

[Umbrella] Implement PendingUpdate subclasses

Ouverte
#364 4 commentaires 0 réactions 0 personnes assignées Voir sur GitHub

Les mainteneurs répondent en général sous 2 jours

Personne n'a encore pris cette issue.

Évaluation

Difficulté
5/5
Temps estimé
Plus d'une semaine
Accessibilité débutants
35/100
Type d'issue
Fonctionnalité
Clarté
Plutôt claire
Activité
Calme
Stack technique
cpp
Domaine
databases

Piste de recherche

Commencez par les sous-classes non cochées répertoriées pour le répertoire iceberg/update et comparez-les aux implémentations terminées. Lisez src/iceberg/table_metadata.h, src/iceberg/table_update.h, src/iceberg/table.h et src/iceberg/transaction.h pour suivre les interfaces requises de métadonnées, de mise à jour et publiques. Le travail est considéré comme terminé lorsque la sous-classe sélectionnée est implémentée et exposée via les API Table et Transaction pertinentes.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Description

enhancement

This issue tracks the progress of implementation of PendingUpdate subclasses. To implement each subclass, we need to make sure that following goals are met:

  1. Implement respective functions in the TableMetadataBuilder for this kind of update.
  2. Implement respective TableUpdate subclass (if exists) to apply uncommitted changes to TableMetadataBuilder and generate update requirements.
  3. Expose the new update as an interface to Table and Transaction classes.

Below is the list of subclasses that are expected to add. They should be put into the iceberg/update subdirectory.

Medadata Update:

Unlike Java, we don't need pure interface for these classes.

  • UpdateProperties @WZhuo
  • ReplaceSortOrder @HeartLinked
  • UpdateSchema @gty404
  • UpdatePartitionSpec @zhjwpku
  • ManageSnapshots (<- SnapshotManager) @zhjwpku
  • SetSnapshot @HeartLinked
  • UpdateLocation (<- SetLocation) @HeartLinked
  • UpdatePartitionStatistics @HeartLinked
  • UpdateSnapshotReference @zhjwpku
  • UpdateStatistics @HeartLinked
  • ExpireSnapshots @dongxiao1198 @shangxinli
Data Update:

For these classes, we still need intermediate interfaces and classes to consolidate common logic.

  • SnapshotUpdate(SnapshotProducer) @zhjwpku
  • FastAppend @zhjwpku
  • MergingSnapshotProducer @gty404 (planned in 0.3.0)
  • OverwriteFiles @gty404 (planned in 0.3.0)
  • RowDelta
  • MergeAppend
  • DeleteFiles
  • RewriteFiles
  • ReplacePartitions
  • RewriteManifests
  • CherryPickOperation
Langage dominant
C++
Étoiles
226
Forks
133
Merge moyen
5 j 10 h
PR mergées (30 j)
33

Préparer son environnement

Ce projet ne fournit ni conteneur de développement, ni Dockerfile, ni guide de contribution : l'installation est à votre charge. Commencez par son README, et consultez notre guide de la première contribution pour les étapes générales.

Par où commencer

  1. Lisez l'issue en entier, puis le guide de contribution du projet.
  2. Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
  3. Forkez le dépôt et travaillez sur une branche.
  4. Ouvrez une pull request qui référence le numéro de l'issue.

Autres issues de apache/iceberg-cpp

Toutes les issues de apache/iceberg-cpp

Issues similaires

Plus d'issues C++

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.