Skip to content

Commit 1397a36

Browse files
authored
Allow V2 reader to read v1 manifests (#1634)
1 parent f74b1b2 commit 1397a36

File tree

1 file changed

+16
-1
lines changed

1 file changed

+16
-1
lines changed

crates/iceberg/src/spec/manifest_list.rs

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -796,8 +796,11 @@ pub(super) mod _serde {
796796
pub manifest_path: String,
797797
pub manifest_length: i64,
798798
pub partition_spec_id: i32,
799+
#[serde(default = "v2_default_content_for_v1")]
799800
pub content: i32,
801+
#[serde(default = "v2_default_sequence_number_for_v1")]
800802
pub sequence_number: i64,
803+
#[serde(default = "v2_default_min_sequence_number_for_v1")]
801804
pub min_sequence_number: i64,
802805
pub added_snapshot_id: i64,
803806
#[serde(alias = "added_data_files_count", alias = "added_files_count")]
@@ -836,6 +839,18 @@ pub(super) mod _serde {
836839
}
837840
}
838841

842+
fn v2_default_content_for_v1() -> i32 {
843+
super::ManifestContentType::Data as i32
844+
}
845+
846+
fn v2_default_sequence_number_for_v1() -> i64 {
847+
0
848+
}
849+
850+
fn v2_default_min_sequence_number_for_v1() -> i64 {
851+
0
852+
}
853+
839854
impl ManifestFileV1 {
840855
/// Converts the [ManifestFileV1] into a [ManifestFile].
841856
pub fn try_into(self) -> Result<ManifestFile> {
@@ -1304,7 +1319,7 @@ mod test {
13041319
let io = FileIOBuilder::new_fs_io().build().unwrap();
13051320
let output_file = io.new_output(path.to_str().unwrap()).unwrap();
13061321

1307-
let mut writer = ManifestListWriter::v2(output_file, 1646658105718557341, Some(0), 1);
1322+
let mut writer = ManifestListWriter::v1(output_file, 1646658105718557341, Some(0));
13081323
writer
13091324
.add_manifests(expected_manifest_list.entries.clone().into_iter())
13101325
.unwrap();

0 commit comments

Comments
 (0)