@@ -236,10 +236,10 @@ class ReachableFileCleanup : public FileCleanupStrategy {
236236
237237 if (!manifests_to_delete.empty ()) {
238238 if (level == CleanupLevel::kAll ) {
239- // Deleting data files
240- auto data_files_to_delete = FindDataFilesToDelete (
239+ // Deleting data and delete files.
240+ auto files_to_delete = FindFilesToDelete (
241241 metadata_before_expiration, manifests_to_delete, current_manifests);
242- DeleteFiles (data_files_to_delete );
242+ DeleteFiles (files_to_delete );
243243 }
244244
245245 // Deleting manifest files
@@ -300,25 +300,22 @@ class ReachableFileCleanup : public FileCleanupStrategy {
300300 return manifests_to_delete;
301301 }
302302
303- Result<std::unordered_set<std::string>> ReadLiveDataFilePaths (
303+ Result<std::unordered_set<std::string>> ReadLiveFilePaths (
304304 const TableMetadata& metadata, const ManifestFile& manifest) {
305- ICEBERG_PRECHECK (manifest.content == ManifestContent::kData ,
306- " Cannot read data file paths from a delete manifest: {}" ,
307- manifest.manifest_path );
308-
309305 // TODO(shangxinli): optimize by only reading file paths
310306 ICEBERG_ASSIGN_OR_RAISE (auto reader,
311307 MakeManifestReader (manifest, file_io_, metadata));
308+ reader->Select ({" file_path" });
312309 ICEBERG_ASSIGN_OR_RAISE (auto entries, reader->LiveEntries ());
313310
314- std::unordered_set<std::string> data_file_paths ;
311+ std::unordered_set<std::string> file_paths ;
315312 for (const auto & entry : entries) {
316313 if (entry.data_file ) {
317- data_file_paths .insert (entry.data_file ->file_path );
314+ file_paths .insert (entry.data_file ->file_path );
318315 }
319316 }
320317
321- return data_file_paths ;
318+ return file_paths ;
322319 }
323320
324321 // / \brief Project manifests to manifest paths for deletion.
@@ -332,8 +329,8 @@ class ReachableFileCleanup : public FileCleanupStrategy {
332329 return manifest_paths;
333330 }
334331
335- // / \brief Find data files to delete from manifests being removed.
336- std::unordered_set<std::string> FindDataFilesToDelete (
332+ // / \brief Find files to delete from manifests being removed.
333+ std::unordered_set<std::string> FindFilesToDelete (
337334 const TableMetadata& metadata,
338335 const std::unordered_set<ManifestFile>& manifests_to_delete,
339336 const std::unordered_set<ManifestFile>& current_manifests) {
@@ -342,7 +339,7 @@ class ReachableFileCleanup : public FileCleanupStrategy {
342339 plan_executor_, manifests_to_delete,
343340 [this , &metadata](
344341 const ManifestFile& manifest) -> Result<std::unordered_set<std::string>> {
345- auto result = ReadLiveDataFilePaths (metadata, manifest);
342+ auto result = ReadLiveFilePaths (metadata, manifest);
346343 // Ignore expired-manifest read failures and keep scanning candidates.
347344 if (!result.has_value ()) {
348345 return std::unordered_set<std::string>{};
@@ -352,26 +349,26 @@ class ReachableFileCleanup : public FileCleanupStrategy {
352349 if (!live_file_results.has_value ()) {
353350 return {};
354351 }
355- auto data_files_to_delete = std::move (live_file_results).value ();
356- if (data_files_to_delete .empty ()) {
357- return data_files_to_delete ;
352+ auto files_to_delete = std::move (live_file_results).value ();
353+ if (files_to_delete .empty ()) {
354+ return files_to_delete ;
358355 }
359356
360357 // Remove files still referenced by current manifests.
361358 auto current_live_results =
362359 ParallelCollect (plan_executor_, current_manifests,
363360 [this , &metadata](const ManifestFile& manifest) {
364- return ReadLiveDataFilePaths (metadata, manifest);
361+ return ReadLiveFilePaths (metadata, manifest);
365362 });
366363 // Fail closed if any retained manifest cannot be read safely.
367364 if (!current_live_results.has_value ()) {
368365 return std::unordered_set<std::string>{};
369366 }
370367 for (const auto & file_path : current_live_results.value ()) {
371- data_files_to_delete .erase (file_path);
368+ files_to_delete .erase (file_path);
372369 }
373370
374- return data_files_to_delete ;
371+ return files_to_delete ;
375372 }
376373};
377374
0 commit comments