Skip to content

Commit 2f5e333

Browse files
Jan KaulJanKaul
authored andcommitted
refactor appends
1 parent fa6e5fc commit 2f5e333

File tree

1 file changed

+31
-42
lines changed

1 file changed

+31
-42
lines changed

iceberg-rust/src/table/transaction/operation.rs

Lines changed: 31 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ use iceberg_rust_spec::spec::{
2020
};
2121
use iceberg_rust_spec::table_metadata::FormatVersion;
2222
use iceberg_rust_spec::util::strip_prefix;
23+
use itertools::Either;
2324
use object_store::ObjectStore;
2425
use smallvec::SmallVec;
2526
use tokio::task::JoinHandle;
@@ -172,48 +173,36 @@ impl Operation {
172173

173174
// Write manifest files
174175
// Split manifest file if limit is exceeded
175-
if n_data_files != 0 {
176-
if n_data_splits == 0 {
177-
manifest_list_writer
178-
.append(
179-
new_datafile_iter,
180-
snapshot_id,
181-
object_store.clone(),
182-
Content::Data,
183-
)
184-
.await?;
185-
} else {
186-
manifest_list_writer
187-
.append_multiple(
188-
new_datafile_iter,
189-
snapshot_id,
190-
n_data_splits,
191-
object_store.clone(),
192-
Content::Data,
193-
)
194-
.await?;
195-
}
196-
}
197-
if n_delete_files != 0 {
198-
if n_delete_splits == 0 {
199-
manifest_list_writer
200-
.append(
201-
new_deletefile_iter,
202-
snapshot_id,
203-
object_store.clone(),
204-
Content::Deletes,
205-
)
206-
.await?;
207-
} else {
208-
manifest_list_writer
209-
.append_multiple(
210-
new_deletefile_iter,
211-
snapshot_id,
212-
n_delete_splits,
213-
object_store.clone(),
214-
Content::Deletes,
215-
)
216-
.await?;
176+
for (content, files, n_files, n_splits) in [
177+
(
178+
Content::Data,
179+
Either::Left(new_datafile_iter),
180+
n_data_files,
181+
n_data_splits,
182+
),
183+
(
184+
Content::Deletes,
185+
Either::Right(new_deletefile_iter),
186+
n_delete_files,
187+
n_delete_splits,
188+
),
189+
] {
190+
if n_files != 0 {
191+
if n_splits == 0 {
192+
manifest_list_writer
193+
.append(files, snapshot_id, object_store.clone(), content)
194+
.await?;
195+
} else {
196+
manifest_list_writer
197+
.append_multiple(
198+
files,
199+
snapshot_id,
200+
n_data_splits,
201+
object_store.clone(),
202+
content,
203+
)
204+
.await?;
205+
}
217206
}
218207
}
219208

0 commit comments

Comments
 (0)