File tree Expand file tree Collapse file tree 1 file changed +31
-42
lines changed
iceberg-rust/src/table/transaction Expand file tree Collapse file tree 1 file changed +31
-42
lines changed Original file line number Diff line number Diff line change @@ -20,6 +20,7 @@ use iceberg_rust_spec::spec::{
2020} ;
2121use iceberg_rust_spec:: table_metadata:: FormatVersion ;
2222use iceberg_rust_spec:: util:: strip_prefix;
23+ use itertools:: Either ;
2324use object_store:: ObjectStore ;
2425use smallvec:: SmallVec ;
2526use 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
You can’t perform that action at this time.
0 commit comments