This is an automated email from the ASF dual-hosted git repository.

agrove pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/arrow.git


The following commit(s) were added to refs/heads/master by this push:
     new c7f8128  ARROW-9519 [Rust] Improved error message when getting a field 
by name.
c7f8128 is described below

commit c7f8128e82fbea6283657d4e0b1ca14373a0b014
Author: Jorge C. Leitao <[email protected]>
AuthorDate: Mon Jul 20 12:24:45 2020 -0600

    ARROW-9519 [Rust] Improved error message when getting a field by name.
    
    Closes #7795 from jorgecarleitao/improve_error
    
    Authored-by: Jorge C. Leitao <[email protected]>
    Signed-off-by: Andy Grove <[email protected]>
---
 rust/arrow/src/datatypes.rs | 15 ++++++++++++---
 1 file changed, 12 insertions(+), 3 deletions(-)

diff --git a/rust/arrow/src/datatypes.rs b/rust/arrow/src/datatypes.rs
index df8e8e2..45ac221 100644
--- a/rust/arrow/src/datatypes.rs
+++ b/rust/arrow/src/datatypes.rs
@@ -1521,7 +1521,12 @@ impl Schema {
                 return Ok(i);
             }
         }
-        Err(ArrowError::InvalidArgumentError(name.to_owned()))
+        let valid_fields: Vec<String> =
+            self.fields.iter().map(|f| f.name().clone()).collect();
+        Err(ArrowError::InvalidArgumentError(format!(
+            "Unable to get field named \"{}\". Valid fields: {:?}",
+            name, valid_fields
+        )))
     }
 
     /// Returns an immutable reference to the Map of custom metadata key-value 
pairs.
@@ -2359,7 +2364,9 @@ mod tests {
     }
 
     #[test]
-    #[should_panic(expected = "InvalidArgumentError(\"nickname\")")]
+    #[should_panic(
+        expected = "Unable to get field named \\\"nickname\\\". Valid fields: 
[\\\"first_name\\\", \\\"last_name\\\", \\\"address\\\"]"
+    )]
     fn schema_index_of() {
         let schema = person_schema();
         assert_eq!(schema.index_of("first_name").unwrap(), 0);
@@ -2368,7 +2375,9 @@ mod tests {
     }
 
     #[test]
-    #[should_panic(expected = "InvalidArgumentError(\"nickname\")")]
+    #[should_panic(
+        expected = "Unable to get field named \\\"nickname\\\". Valid fields: 
[\\\"first_name\\\", \\\"last_name\\\", \\\"address\\\"]"
+    )]
     fn schema_field_with_name() {
         let schema = person_schema();
         assert_eq!(

Reply via email to