[Umbrella] Implement PendingUpdate subclasses
- Vorherrschende Sprache
- C++
- Sterne
- 221
- Forks
- 124
- Ø Merge
- 1 T. 16 Std.
- Gemergte PRs (30 T.)
- 21
Beschreibung
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`](https://github.com/apache/iceberg-cpp/blob/dbcbdf23ff7ebe5510431715fd66c7841df3d9fd/src/iceberg/table_metadata.h#L196) for this kind of update.
2. Implement respective [`TableUpdate`](https://github.com/apache/iceberg-cpp/blob/main/src/iceberg/table_update.h) subclass (if exists) to apply uncommitted changes to TableMetadataBuilder and generate update requirements.
3. Expose the new update as an interface to [`Table`](https://github.com/apache/iceberg-cpp/blob/main/src/iceberg/table.h) and [`Transaction`](https://github.com/apache/iceberg-cpp/blob/main/src/iceberg/transaction.h) 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.
- [x] UpdateProperties @WZhuo
- [x] ReplaceSortOrder @HeartLinked
- [x] UpdateSchema @gty404
- [x] UpdatePartitionSpec @zhjwpku
- [x] ManageSnapshots (<- SnapshotManager) @zhjwpku
- [x] SetSnapshot @HeartLinked
- [x] UpdateLocation (<- SetLocation) @HeartLinked
- [x] UpdatePartitionStatistics @HeartLinked
- [x] UpdateSnapshotReference @zhjwpku
- [x] UpdateStatistics @HeartLinked
- [x] ExpireSnapshots @dongxiao1198 @shangxinli
### Data Update:
For these classes, we still need intermediate interfaces and classes to consolidate common logic.
- [x] SnapshotUpdate(SnapshotProducer) @zhjwpku
- [x] FastAppend @zhjwpku
- [ ] MergingSnapshotProducer @gty404 (planned in 0.3.0)
- [ ] OverwriteFiles @gty404 (planned in 0.3.0)
- [ ] RowDelta
- [ ] MergeAppend
- [ ] DeleteFiles
- [ ] RewriteFiles
- [ ] ReplacePartitions
- [ ] RewriteManifests
- [ ] CherryPickOperation
Beitragsleitfaden
Für dieses Repository ist kein Beitragsleitfaden indexiert
Rechercherichtung
Beginnen Sie mit den nicht abgehakten Unterklassen im Verzeichnis iceberg/update und vergleichen Sie sie mit den abgeschlossenen Implementierungen. Lesen Sie src/iceberg/table_metadata.h, src/iceberg/table_update.h, src/iceberg/table.h und src/iceberg/transaction.h, um die erforderlichen Metadaten-, Update- und öffentlichen Schnittstellen nachzuverfolgen. Als erledigt gilt die Aufgabe, wenn die ausgewählte Unterklasse implementiert und über die relevanten Table- und Transaction-APIs verfügbar gemacht wurde.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Bewertung
- Tech-Stack
- cpp
- Bereich
- databases
- Issue-Typ
- Feature
- Schwierigkeit
- 5/5
- Geschätzter Aufwand
- Über eine Woche
- Aktivitätsstatus
- Ruhig
- Klarheit
- Größtenteils klar
- Anfängerfreundlichkeit
- 35/100