From fe42e2a6d37ae6543a13c509d8f9c5d76b32b882 Mon Sep 17 00:00:00 2001 From: Christian Thiel Date: Fri, 30 Aug 2024 17:25:24 +0200 Subject: [PATCH] Add expired_metadata_logs to TableMetadataBuildResult --- crates/iceberg/src/spec/table_metadata_builder.rs | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/crates/iceberg/src/spec/table_metadata_builder.rs b/crates/iceberg/src/spec/table_metadata_builder.rs index 4eb999ac5..8d07f8488 100644 --- a/crates/iceberg/src/spec/table_metadata_builder.rs +++ b/crates/iceberg/src/spec/table_metadata_builder.rs @@ -57,6 +57,7 @@ pub struct TableMetadataBuilder { pub struct TableMetadataBuildResult { pub metadata: TableMetadata, pub changes: Vec, + pub expired_metadata_logs: Vec, } impl TableMetadataBuilder { @@ -839,7 +840,7 @@ impl TableMetadataBuilder { .with_fields(sort_order.fields) .build(schema)?; - self.expire_metadata_log(); + let expired_metadata_logs = self.expire_metadata_log(); self.update_snapshot_log()?; self.metadata.try_normalize()?; @@ -850,10 +851,11 @@ impl TableMetadataBuilder { Ok(TableMetadataBuildResult { metadata: self.metadata, changes: self.changes, + expired_metadata_logs, }) } - fn expire_metadata_log(&mut self) { + fn expire_metadata_log(&mut self) -> Vec { let max_size = self .metadata .properties @@ -865,7 +867,10 @@ impl TableMetadataBuilder { if self.metadata.metadata_log.len() > max_size { self.metadata .metadata_log - .drain(0..self.metadata.metadata_log.len() - max_size); + .drain(0..self.metadata.metadata_log.len() - max_size) + .collect() + } else { + Vec::new() } }