Skip to content

Commit bf26218

Browse files
authored
feat(manifest): add ManifestFilterManager and ManifestMergeManager (#652)
Implement two manifest management classes for table write operations: - ManifestFilterManager: filters manifest entries by row filter expression, file path, or partition value; supports FailMissingDeletePaths validation. Rewrites manifests that contain matching files, marking entries as DELETED; passes through manifests that cannot contain matching files unchanged. - ManifestMergeManager: merges small manifests using greedy bin-packing, grouping by partition_spec_id (manifests with different specs are never merged). Oversized manifests pass through unchanged. ADDED entries from prior manifests become EXISTING when merged (matching Java semantics).
1 parent 83aa988 commit bf26218

13 files changed

Lines changed: 1711 additions & 0 deletions

src/iceberg/CMakeLists.txt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,8 +45,10 @@ set(ICEBERG_SOURCES
4545
location_provider.cc
4646
manifest/manifest_adapter.cc
4747
manifest/manifest_entry.cc
48+
manifest/manifest_filter_manager.cc
4849
manifest/manifest_group.cc
4950
manifest/manifest_list.cc
51+
manifest/manifest_merge_manager.cc
5052
manifest/manifest_reader.cc
5153
manifest/manifest_util.cc
5254
manifest/manifest_writer.cc

0 commit comments

Comments
 (0)