Skip to content

Commit 086dff7

Browse files
authored
feat(transaction): Implement TransactionAction for FastAppendAction (#1448)
## Which issue does this PR close? Related Issues: - #1382 [EPIC] ## What changes are included in this PR? - Implement `TransactionAction` for `FastAppendAction` - Changed `SnapshotProduceAction` to `SnapshotProducer` - The idea is to make `SnapshotProduceAction` an _stateless_ helper class that helps with fast_append::commit (as discussed [here](#1400 (comment))) ## Are these changes tested? Added unit tests
1 parent f0c5d3d commit 086dff7

File tree

11 files changed

+280
-372
lines changed

11 files changed

+280
-372
lines changed

crates/iceberg/src/io/object_cache.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -266,7 +266,7 @@ mod tests {
266266
let mut writer = ManifestWriterBuilder::new(
267267
self.next_manifest_file(),
268268
Some(current_snapshot.snapshot_id()),
269-
vec![],
269+
None,
270270
current_schema.clone(),
271271
current_partition_spec.as_ref().clone(),
272272
)

crates/iceberg/src/scan/mod.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -752,7 +752,7 @@ pub mod tests {
752752
let mut writer = ManifestWriterBuilder::new(
753753
self.next_manifest_file(),
754754
Some(current_snapshot.snapshot_id()),
755-
vec![],
755+
None,
756756
current_schema.clone(),
757757
current_partition_spec.as_ref().clone(),
758758
)
@@ -964,7 +964,7 @@ pub mod tests {
964964
let mut writer = ManifestWriterBuilder::new(
965965
self.next_manifest_file(),
966966
Some(current_snapshot.snapshot_id()),
967-
vec![],
967+
None,
968968
current_schema.clone(),
969969
current_partition_spec.as_ref().clone(),
970970
)

crates/iceberg/src/spec/manifest/mod.rs

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -232,7 +232,7 @@ mod tests {
232232
let mut writer = ManifestWriterBuilder::new(
233233
output_file,
234234
Some(1),
235-
vec![],
235+
None,
236236
metadata.schema.clone(),
237237
metadata.partition_spec.clone(),
238238
)
@@ -417,7 +417,7 @@ mod tests {
417417
let mut writer = ManifestWriterBuilder::new(
418418
output_file,
419419
Some(2),
420-
vec![],
420+
None,
421421
metadata.schema.clone(),
422422
metadata.partition_spec.clone(),
423423
)
@@ -514,7 +514,7 @@ mod tests {
514514
let mut writer = ManifestWriterBuilder::new(
515515
output_file,
516516
Some(3),
517-
vec![],
517+
None,
518518
metadata.schema.clone(),
519519
metadata.partition_spec.clone(),
520520
)
@@ -623,7 +623,7 @@ mod tests {
623623
let mut writer = ManifestWriterBuilder::new(
624624
output_file,
625625
Some(2),
626-
vec![],
626+
None,
627627
metadata.schema.clone(),
628628
metadata.partition_spec.clone(),
629629
)
@@ -731,7 +731,7 @@ mod tests {
731731
let mut writer = ManifestWriterBuilder::new(
732732
output_file,
733733
Some(2),
734-
vec![],
734+
None,
735735
metadata.schema.clone(),
736736
metadata.partition_spec.clone(),
737737
)
@@ -1010,7 +1010,7 @@ mod tests {
10101010
let mut writer = ManifestWriterBuilder::new(
10111011
output_file,
10121012
Some(1),
1013-
vec![],
1013+
None,
10141014
metadata.schema.clone(),
10151015
metadata.partition_spec.clone(),
10161016
)

crates/iceberg/src/spec/manifest/writer.rs

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ use crate::{Error, ErrorKind};
4040
pub struct ManifestWriterBuilder {
4141
output: OutputFile,
4242
snapshot_id: Option<i64>,
43-
key_metadata: Vec<u8>,
43+
key_metadata: Option<Vec<u8>>,
4444
schema: SchemaRef,
4545
partition_spec: PartitionSpec,
4646
}
@@ -50,7 +50,7 @@ impl ManifestWriterBuilder {
5050
pub fn new(
5151
output: OutputFile,
5252
snapshot_id: Option<i64>,
53-
key_metadata: Vec<u8>,
53+
key_metadata: Option<Vec<u8>>,
5454
schema: SchemaRef,
5555
partition_spec: PartitionSpec,
5656
) -> Self {
@@ -115,7 +115,7 @@ pub struct ManifestWriter {
115115

116116
min_seq_num: Option<i64>,
117117

118-
key_metadata: Vec<u8>,
118+
key_metadata: Option<Vec<u8>>,
119119

120120
manifest_entries: Vec<ManifestEntry>,
121121

@@ -127,7 +127,7 @@ impl ManifestWriter {
127127
pub(crate) fn new(
128128
output: OutputFile,
129129
snapshot_id: Option<i64>,
130-
key_metadata: Vec<u8>,
130+
key_metadata: Option<Vec<u8>>,
131131
metadata: ManifestMetadata,
132132
) -> Self {
133133
Self {
@@ -416,7 +416,7 @@ impl ManifestWriter {
416416
existing_rows_count: Some(self.existing_rows),
417417
deleted_rows_count: Some(self.deleted_rows),
418418
partitions: Some(partition_summary),
419-
key_metadata: Some(self.key_metadata),
419+
key_metadata: self.key_metadata,
420420
})
421421
}
422422
}
@@ -622,7 +622,7 @@ mod tests {
622622
let mut writer = ManifestWriterBuilder::new(
623623
output_file,
624624
Some(3),
625-
vec![],
625+
None,
626626
metadata.schema.clone(),
627627
metadata.partition_spec.clone(),
628628
)

0 commit comments

Comments
 (0)