Skip to content

Commit 71d9cb6

Browse files
committed
Update some error reporting
1 parent f27e349 commit 71d9cb6

File tree

3 files changed

+17
-9
lines changed

3 files changed

+17
-9
lines changed

arrow-cast/src/cast/mod.rs

Lines changed: 14 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -8600,8 +8600,12 @@ mod tests {
86008600

86018601
let new_array_result = cast(&array, &new_type.clone());
86028602
assert!(!can_cast_types(array.data_type(), &new_type));
8603-
assert!(
8604-
matches!(new_array_result, Err(ArrowError::CastError(t)) if t == r#"Casting from Map(Field { name: "entries", data_type: Struct([Field { name: "key", data_type: Utf8, nullable: false, dict_id: 0, dict_is_ordered: false, metadata: {} }, Field { name: "value", data_type: Utf8, nullable: true, dict_id: 0, dict_is_ordered: false, metadata: {} }]), nullable: false, dict_id: 0, dict_is_ordered: false, metadata: {} }, false) to Map(Field { name: "entries", data_type: Struct([Field { name: "key", data_type: Utf8, nullable: false, dict_id: 0, dict_is_ordered: false, metadata: {} }, Field { name: "value", data_type: Utf8, nullable: false, dict_id: 0, dict_is_ordered: false, metadata: {} }]), nullable: false, dict_id: 0, dict_is_ordered: false, metadata: {} }, true) not supported"#)
8603+
let Err(ArrowError::CastError(t)) = new_array_result else {
8604+
panic!();
8605+
};
8606+
assert_eq!(
8607+
t,
8608+
r#"Casting from Map(Field { "entries": Struct(key Utf8, value nullable Utf8) }, false) to Map(Field { "entries": Struct(key Utf8, value Utf8) }, true) not supported"#
86058609
);
86068610
}
86078611

@@ -8647,8 +8651,12 @@ mod tests {
86478651

86488652
let new_array_result = cast(&array, &new_type.clone());
86498653
assert!(!can_cast_types(array.data_type(), &new_type));
8650-
assert!(
8651-
matches!(new_array_result, Err(ArrowError::CastError(t)) if t == r#"Casting from Map(Field { name: "entries", data_type: Struct([Field { name: "key", data_type: Utf8, nullable: false, dict_id: 0, dict_is_ordered: false, metadata: {} }, Field { name: "value", data_type: Interval(DayTime), nullable: true, dict_id: 0, dict_is_ordered: false, metadata: {} }]), nullable: false, dict_id: 0, dict_is_ordered: false, metadata: {} }, false) to Map(Field { name: "entries", data_type: Struct([Field { name: "key", data_type: Utf8, nullable: false, dict_id: 0, dict_is_ordered: false, metadata: {} }, Field { name: "value", data_type: Duration(Second), nullable: false, dict_id: 0, dict_is_ordered: false, metadata: {} }]), nullable: false, dict_id: 0, dict_is_ordered: false, metadata: {} }, true) not supported"#)
8654+
let Err(ArrowError::CastError(t)) = new_array_result else {
8655+
panic!();
8656+
};
8657+
assert_eq!(
8658+
t,
8659+
r#"Casting from Map(Field { "entries": Struct(key Utf8, value nullable Interval(DayTime)) }, false) to Map(Field { "entries": Struct(key Utf8, value Duration(Second)) }, true) not supported"#
86528660
);
86538661
}
86548662

@@ -10740,7 +10748,7 @@ mod tests {
1074010748
let to_type = DataType::Utf8;
1074110749
let result = cast(&struct_array, &to_type);
1074210750
assert_eq!(
10743-
r#"Cast error: Casting from Struct([Field { name: "a", data_type: Boolean, nullable: false, dict_id: 0, dict_is_ordered: false, metadata: {} }]) to Utf8 not supported"#,
10751+
r#"Cast error: Casting from Struct(a Boolean) to Utf8 not supported"#,
1074410752
result.unwrap_err().to_string()
1074510753
);
1074610754
}
@@ -10751,7 +10759,7 @@ mod tests {
1075110759
let to_type = DataType::Struct(vec![Field::new("a", DataType::Boolean, false)].into());
1075210760
let result = cast(&array, &to_type);
1075310761
assert_eq!(
10754-
r#"Cast error: Casting from Utf8 to Struct([Field { name: "a", data_type: Boolean, nullable: false, dict_id: 0, dict_is_ordered: false, metadata: {} }]) not supported"#,
10762+
r#"Cast error: Casting from Utf8 to Struct(a Boolean) not supported"#,
1075510763
result.unwrap_err().to_string()
1075610764
);
1075710765
}

arrow-json/src/lib.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -87,7 +87,7 @@ use serde_json::{Number, Value};
8787
///
8888
/// This enum controls which form(s) the Reader will accept and which form the
8989
/// Writer will produce. For example, if the RecordBatch Schema is
90-
/// `[("a", Int32), ("r", Struct([("b", Boolean), ("c", Utf8)]))]`
90+
/// `[("a", Int32), ("r", Struct(b Boolean, c Utf8))]`
9191
/// then a Reader with [`StructMode::ObjectOnly`] would read rows of the form
9292
/// `{"a": 1, "r": {"b": true, "c": "cat"}}` while with ['StructMode::ListOnly']
9393
/// would read rows of the form `[1, [true, "cat"]]`. A Writer would produce

parquet/src/arrow/arrow_reader/mod.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3677,8 +3677,8 @@ mod tests {
36773677
),
36783678
])),
36793679
"Arrow: Incompatible supplied Arrow schema: data type mismatch for field nested: \
3680-
requested Struct([Field { name: \"nested1_valid\", data_type: Utf8, nullable: false, dict_id: 0, dict_is_ordered: false, metadata: {} }, Field { name: \"nested1_invalid\", data_type: Int32, nullable: false, dict_id: 0, dict_is_ordered: false, metadata: {} }]) \
3681-
but found Struct([Field { name: \"nested1_valid\", data_type: Utf8, nullable: false, dict_id: 0, dict_is_ordered: false, metadata: {} }, Field { name: \"nested1_invalid\", data_type: Int64, nullable: false, dict_id: 0, dict_is_ordered: false, metadata: {} }])",
3680+
requested Struct(nested1_valid Utf8, nested1_invalid Int32) \
3681+
but found Struct(nested1_valid Utf8, nested1_invalid Int64)",
36823682
);
36833683
}
36843684

0 commit comments

Comments
 (0)