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 ;
@@ -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
You can’t perform that action at this time.
0 commit comments