Skip to content

Commit 868b993

Browse files
odysashaeqahmed
authored andcommitted
fix: default_partition_spec using the partion_spec_id set (apache#190)
* add unit tests * fix type
1 parent 75d112d commit 868b993

File tree

1 file changed

+38
-2
lines changed

1 file changed

+38
-2
lines changed

crates/iceberg/src/spec/table_metadata.rs

Lines changed: 38 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -183,7 +183,7 @@ impl TableMetadata {
183183
self.partition_spec_by_id(DEFAULT_SPEC_ID)
184184
} else {
185185
Some(
186-
self.partition_spec_by_id(DEFAULT_SPEC_ID)
186+
self.partition_spec_by_id(self.default_spec_id)
187187
.expect("Default partition spec id set, but not found in table metadata"),
188188
)
189189
}
@@ -856,6 +856,13 @@ mod tests {
856856
assert_eq!(parsed_json_value, desered_type);
857857
}
858858

859+
fn get_test_table_metadata(file_name: &str) -> TableMetadata {
860+
let path = format!("testdata/table_metadata/{}", file_name);
861+
let metadata: String = fs::read_to_string(path).unwrap();
862+
863+
serde_json::from_str(&metadata).unwrap()
864+
}
865+
859866
#[test]
860867
fn test_table_data_v2() {
861868
let data = r#"
@@ -1529,9 +1536,38 @@ mod tests {
15291536
}
15301537

15311538
#[test]
1532-
fn order_of_format_version() {
1539+
fn test_order_of_format_version() {
15331540
assert!(FormatVersion::V1 < FormatVersion::V2);
15341541
assert_eq!(FormatVersion::V1, FormatVersion::V1);
15351542
assert_eq!(FormatVersion::V2, FormatVersion::V2);
15361543
}
1544+
1545+
#[test]
1546+
fn test_default_partition_spec() {
1547+
let default_spec_id = 1234;
1548+
let mut table_meta_data = get_test_table_metadata("TableMetadataV2Valid.json");
1549+
table_meta_data.default_spec_id = default_spec_id;
1550+
table_meta_data
1551+
.partition_specs
1552+
.insert(default_spec_id, Arc::new(PartitionSpec::default()));
1553+
1554+
assert_eq!(
1555+
table_meta_data.default_partition_spec(),
1556+
table_meta_data.partition_spec_by_id(default_spec_id)
1557+
);
1558+
}
1559+
#[test]
1560+
fn test_default_sort_order() {
1561+
let default_sort_order_id = 1234;
1562+
let mut table_meta_data = get_test_table_metadata("TableMetadataV2Valid.json");
1563+
table_meta_data.default_sort_order_id = default_sort_order_id;
1564+
table_meta_data
1565+
.sort_orders
1566+
.insert(default_sort_order_id, Arc::new(SortOrder::default()));
1567+
1568+
assert_eq!(
1569+
table_meta_data.default_sort_order(),
1570+
table_meta_data.sort_orders.get(&default_sort_order_id)
1571+
)
1572+
}
15371573
}

0 commit comments

Comments
 (0)