This is an automated email from the ASF dual-hosted git repository.
fokko pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/iceberg-rust.git
The following commit(s) were added to refs/heads/main by this push:
new 149c7fa fix: `default_partition_spec` using the `partion_spec_id` set
(#190)
149c7fa is described below
commit 149c7faa44ad85611b30a0ef5c28291b158a70d8
Author: Chengxu Bian <[email protected]>
AuthorDate: Tue Feb 6 11:57:31 2024 -0500
fix: `default_partition_spec` using the `partion_spec_id` set (#190)
* add unit tests
* fix type
---
crates/iceberg/src/spec/table_metadata.rs | 40 +++++++++++++++++++++++++++++--
1 file changed, 38 insertions(+), 2 deletions(-)
diff --git a/crates/iceberg/src/spec/table_metadata.rs
b/crates/iceberg/src/spec/table_metadata.rs
index 7fc3ee0..18e9ce8 100644
--- a/crates/iceberg/src/spec/table_metadata.rs
+++ b/crates/iceberg/src/spec/table_metadata.rs
@@ -183,7 +183,7 @@ impl TableMetadata {
self.partition_spec_by_id(DEFAULT_SPEC_ID)
} else {
Some(
- self.partition_spec_by_id(DEFAULT_SPEC_ID)
+ self.partition_spec_by_id(self.default_spec_id)
.expect("Default partition spec id set, but not found in
table metadata"),
)
}
@@ -856,6 +856,13 @@ mod tests {
assert_eq!(parsed_json_value, desered_type);
}
+ fn get_test_table_metadata(file_name: &str) -> TableMetadata {
+ let path = format!("testdata/table_metadata/{}", file_name);
+ let metadata: String = fs::read_to_string(path).unwrap();
+
+ serde_json::from_str(&metadata).unwrap()
+ }
+
#[test]
fn test_table_data_v2() {
let data = r#"
@@ -1529,9 +1536,38 @@ mod tests {
}
#[test]
- fn order_of_format_version() {
+ fn test_order_of_format_version() {
assert!(FormatVersion::V1 < FormatVersion::V2);
assert_eq!(FormatVersion::V1, FormatVersion::V1);
assert_eq!(FormatVersion::V2, FormatVersion::V2);
}
+
+ #[test]
+ fn test_default_partition_spec() {
+ let default_spec_id = 1234;
+ let mut table_meta_data =
get_test_table_metadata("TableMetadataV2Valid.json");
+ table_meta_data.default_spec_id = default_spec_id;
+ table_meta_data
+ .partition_specs
+ .insert(default_spec_id, Arc::new(PartitionSpec::default()));
+
+ assert_eq!(
+ table_meta_data.default_partition_spec(),
+ table_meta_data.partition_spec_by_id(default_spec_id)
+ );
+ }
+ #[test]
+ fn test_default_sort_order() {
+ let default_sort_order_id = 1234;
+ let mut table_meta_data =
get_test_table_metadata("TableMetadataV2Valid.json");
+ table_meta_data.default_sort_order_id = default_sort_order_id;
+ table_meta_data
+ .sort_orders
+ .insert(default_sort_order_id, Arc::new(SortOrder::default()));
+
+ assert_eq!(
+ table_meta_data.default_sort_order(),
+ table_meta_data.sort_orders.get(&default_sort_order_id)
+ )
+ }
}