Skip to content

Commit 57a08c3

Browse files
author
Jan Kaul
committed
refactor appends
1 parent 2c08d07 commit 57a08c3

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;
@@ -166,48 +167,36 @@ impl Operation {
166167

167168
// Write manifest files
168169
// Split manifest file if limit is exceeded
169-
if n_data_files != 0 {
170-
if n_data_splits == 0 {
171-
manifest_list_writer
172-
.append(
173-
new_datafile_iter,
174-
snapshot_id,
175-
object_store.clone(),
176-
Content::Data,
177-
)
178-
.await?;
179-
} else {
180-
manifest_list_writer
181-
.append_multiple(
182-
new_datafile_iter,
183-
snapshot_id,
184-
n_data_splits,
185-
object_store.clone(),
186-
Content::Data,
187-
)
188-
.await?;
189-
}
190-
}
191-
if n_delete_files != 0 {
192-
if n_delete_splits == 0 {
193-
manifest_list_writer
194-
.append(
195-
new_deletefile_iter,
196-
snapshot_id,
197-
object_store.clone(),
198-
Content::Deletes,
199-
)
200-
.await?;
201-
} else {
202-
manifest_list_writer
203-
.append_multiple(
204-
new_deletefile_iter,
205-
snapshot_id,
206-
n_delete_splits,
207-
object_store.clone(),
208-
Content::Deletes,
209-
)
210-
.await?;
170+
for (content, files, n_files, n_splits) in [
171+
(
172+
Content::Data,
173+
Either::Left(new_datafile_iter),
174+
n_data_files,
175+
n_data_splits,
176+
),
177+
(
178+
Content::Deletes,
179+
Either::Right(new_deletefile_iter),
180+
n_delete_files,
181+
n_delete_splits,
182+
),
183+
] {
184+
if n_files != 0 {
185+
if n_splits == 0 {
186+
manifest_list_writer
187+
.append(files, snapshot_id, object_store.clone(), content)
188+
.await?;
189+
} else {
190+
manifest_list_writer
191+
.append_multiple(
192+
files,
193+
snapshot_id,
194+
n_data_splits,
195+
object_store.clone(),
196+
content,
197+
)
198+
.await?;
199+
}
211200
}
212201
}
213202

0 commit comments

Comments
 (0)